mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 19:56:18 +00:00
firewire: cdev: reduce stack usage by ioctl_dispatch
Replace a hardcoded buffer size by a sizeof union {}. This shrinks the stack-allocated ioctl argument buffer from 256 to 40 bytes. (This is not much, but subsequent stack usage particularly by the queue_iso ioctl handler adds up.) The new form is also easier to keep up to date than a hardcoded size if more ioctls are added. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
This commit is contained in:
parent
19593ffdb6
commit
b2c0a2ac3e
1 changed files with 17 additions and 1 deletions
|
@ -1299,7 +1299,23 @@ static int (* const ioctl_handlers[])(struct client *client, void *buffer) = {
|
||||||
static int dispatch_ioctl(struct client *client,
|
static int dispatch_ioctl(struct client *client,
|
||||||
unsigned int cmd, void __user *arg)
|
unsigned int cmd, void __user *arg)
|
||||||
{
|
{
|
||||||
char buffer[256];
|
char buffer[sizeof(union {
|
||||||
|
struct fw_cdev_get_info _00;
|
||||||
|
struct fw_cdev_send_request _01;
|
||||||
|
struct fw_cdev_allocate _02;
|
||||||
|
struct fw_cdev_deallocate _03;
|
||||||
|
struct fw_cdev_send_response _04;
|
||||||
|
struct fw_cdev_initiate_bus_reset _05;
|
||||||
|
struct fw_cdev_add_descriptor _06;
|
||||||
|
struct fw_cdev_remove_descriptor _07;
|
||||||
|
struct fw_cdev_create_iso_context _08;
|
||||||
|
struct fw_cdev_queue_iso _09;
|
||||||
|
struct fw_cdev_start_iso _0a;
|
||||||
|
struct fw_cdev_stop_iso _0b;
|
||||||
|
struct fw_cdev_get_cycle_timer _0c;
|
||||||
|
struct fw_cdev_allocate_iso_resource _0d;
|
||||||
|
struct fw_cdev_send_stream_packet _13;
|
||||||
|
})];
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (_IOC_TYPE(cmd) != '#' ||
|
if (_IOC_TYPE(cmd) != '#' ||
|
||||||
|
|
Loading…
Reference in a new issue