Messages in this thread | | | Date | Sat, 20 Sep 2014 09:32:24 +0300 | Subject | Re: [PATCH v5 4/4] gpio: add support for the Diolan DLN-2 USB GPIO driver | From | Octavian Purdila <> |
| |
On Sat, Sep 20, 2014 at 5:48 AM, Arnd Bergmann <arnd@arndb.de> wrote: > On Friday 19 September 2014, Octavian Purdila wrote: >> +struct dln2_gpio_pin { >> + __le16 pin; >> +} __packed; > > This does not need to be marked packed, since it is never embedded in another > structure. >
Will do.
>> +struct dln2_gpio_pin_val { >> + __le16 pin; >> + u8 value; >> +} __packed; > > It's enough here to mark just the 'pin' member as packed. >
OK.
>> +static int dln2_gpio_get_pin_count(struct platform_device *pdev) >> +{ >> + int ret; >> + __le16 count; >> + int len = sizeof(count); >> + >> + ret = dln2_transfer(pdev, DLN2_GPIO_GET_PIN_COUNT, NULL, 0, &count, >> + &len); > > You must not do a USB transaction on stack memory. >
dln2_transfer allocate a new buffer (in dln2_prep_buf(), with kmalloc()) and does the USB transfer with that buffer.
| |