Re: [PATCH] usb: gadget: ffs: add eventfd notification about ffs events

From: Robert Baldyga
Date: Fri Jan 23 2015 - 07:34:59 EST


On 01/23/2015 01:21 PM, MichaÅ Nazarewicz wrote:
> 23 sty 2015 10:28 "Robert Baldyga" <r.baldyga@xxxxxxxxxxx
> <mailto:r.baldyga@xxxxxxxxxxx>> napisaÅ(a):
>> Add eventfd which notifies userspace about ep0 events and AIO completion
>> events. It simplifies using of FunctionFS with event loop, because now
>> we need to poll on single file (instead of polling on ep0 and eventfd's
>> supplied to AIO layer).
>>
>> FunctionFS eventfd is not triggered if another eventfd is supplied to
>> AIO layer (in AIO request). It can be useful, for example, when we want
>> to handle AIO transations for chosen endpoint in separate thread.
>>
>> Signed-off-by: Robert Baldyga
>
> I don't know much about eventfd interface bit from ffs point of view:
>
> Acked-by: Michal Nazarewicz <mina86@xxxxxxxxxx <mailto:mina86@xxxxxxxxxx>>
>
>> @@ -2180,6 +2191,20 @@ static int __ffs_data_got_descs(struct ffs_data
> *ffs,
>> goto error;
>> }
>>
>> + if (flags & FUNCTIONFS_EVENTFD) {
>> + if (len < 4)
>> + goto error;
>> + ffs->ffs_eventfd =
>> + eventfd_ctx_fdget((int)get_unaligned_le32(data));
>> + if (IS_ERR(ffs->ffs_eventfd)) {
>> + ffs->ffs_eventfd = NULL;
>> + ret = PTR_ERR(ffs->ffs_eventfd);
>
> Need to swap those lines.
>
>> + goto error;
>> + }
>> + data += 4;
>> + len -= 4;
>> + }
>> +
>> /* Read fs_count, hs_count and ss_count (if present) */
>> for (i = 0; i < 3; ++i) {
>> if (!(flags & (1 << i))) {
>

Good catch, thanks!

Best regards,
Robert Baldyga
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/