linux/drivers/usb/gadget
Kent Overstreet 0460fef2a9 aio: use cancellation list lazily
Cancelling kiocbs requires adding them to a per kioctx linked list,
which is one of the few things we need to take the kioctx lock for in
the fast path.  But most kiocbs can't be cancelled - so if we just do
this lazily, we can avoid quite a bit of locking overhead.

While we're at it, instead of using a flag bit switch to using ki_cancel
itself to indicate that a kiocb has been cancelled/completed.  This lets
us get rid of ki_flags entirely.

[akpm@linux-foundation.org: remove buggy BUG()]
Signed-off-by: Kent Overstreet <koverstreet@google.com>
Cc: Zach Brown <zab@redhat.com>
Cc: Felipe Balbi <balbi@ti.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Mark Fasheh <mfasheh@suse.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Asai Thambi S P <asamymuthupa@micron.com>
Cc: Selvan Mani <smani@micron.com>
Cc: Sam Bradshaw <sbradshaw@micron.com>
Cc: Jeff Moyer <jmoyer@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Benjamin LaHaise <bcrl@kvack.org>
Reviewed-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-05-07 18:38:29 -07:00
..
Kconfig USB: OMAP: ISP1301 needs USB_PHY 2013-04-25 10:58:00 -07:00
Makefile usb: gadget: f_obex: convert to new function interface with backward compatibility 2013-04-03 14:43:35 +03:00
acm_ms.c usb: gadget: push tty port allocation from gadget into f_acm 2013-04-03 14:43:31 +03:00
amd5536udc.c usb: gadget: amd5536udc: don't assign gadget.dev.release directly 2013-03-18 11:17:46 +02:00
amd5536udc.h usb: gadget: amd5536udc: remove unused structure member 2013-03-18 11:16:56 +02:00
at91_udc.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
at91_udc.h
atmel_usba_udc.c usb: gadget: atmel_usba_udc: don't touch gadget.dev.driver 2013-03-18 11:17:33 +02:00
atmel_usba_udc.h usb: gadget: atmel: remove unused DMA_ADDR_INVALID 2013-03-18 11:18:11 +02:00
audio.c usb: gadget: remove usb_gadget_controller_number() 2012-09-10 16:43:24 +03:00
bcm63xx_udc.c usb: gadget: bcm63xx_udc: don't assign gadget.dev.release directly 2013-03-18 11:17:46 +02:00
cdc2.c usb: gadget: cdc2: fix error return code in cdc_do_config() 2013-04-23 14:11:51 +03:00
composite.c usb: gadget: the start of the configfs interface 2013-04-03 14:43:32 +03:00
config.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
configfs.c usb, gadget: use appropriate warning accessors 2013-04-08 09:08:35 -07:00
dbgp.c usb: gadget: allocate & giveback serial ports instead hard code them 2013-01-21 20:52:43 +02:00
dummy_hcd.c usb: gadget: dummy: fix sparse warning 2013-03-27 13:18:58 +02:00
epautoconf.c usb: gadget: libcomposite: add epautoconf.c to libcomposite 2012-09-10 15:37:51 +03:00
ether.c usb: gadget: move the global the_dev variable to their users 2013-04-03 14:43:31 +03:00
f_acm.c usb: gadget: the start of the configfs interface 2013-04-03 14:43:32 +03:00
f_ecm.c usb: gadget: move the global the_dev variable to their users 2013-04-03 14:43:31 +03:00
f_eem.c usb: gadget: move the global the_dev variable to their users 2013-04-03 14:43:31 +03:00
f_fs.c gadgetfs: don't bother with fops->owner 2013-04-09 14:13:03 -04:00
f_hid.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
f_loopback.c usb: gadget: convert source sink and loopback to new function interface 2013-01-21 20:52:40 +02:00
f_mass_storage.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
f_midi.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
f_ncm.c usb: gadget: move the global the_dev variable to their users 2013-04-03 14:43:31 +03:00
f_obex.c usb: gadget: f_obex: fix error return code in obex_bind() 2013-04-23 14:09:57 +03:00
f_phonet.c usb: gadget: always update HS/SS descriptors and create a copy of them 2012-10-31 15:09:44 +02:00
f_rndis.c usb: patches for v3.10 merge window 2013-04-05 15:18:00 -07:00
f_serial.c usb: gadget: f_serial: add configfs support 2013-04-03 14:43:35 +03:00
f_sourcesink.c usb: gadget: f_sourcesink.c: correct a copy-paste misnomer 2013-04-23 14:12:02 +03:00
f_subset.c usb: gadget: move the global the_dev variable to their users 2013-04-03 14:43:31 +03:00
f_uac1.c usb: gadget: f_uac1: silence an info leak warning 2013-03-04 13:13:58 +02:00
f_uac2.c usb: gadget: f_uac2: fix compile warning 2013-01-21 20:52:49 +02:00
f_uvc.c usb: gadget: uvc: Delay the status stage when setting alternate setting 1 2013-03-18 11:18:21 +02:00
f_uvc.h usb: gadget: uvc: Fix coding style issues introduced by SS support 2013-03-18 11:18:18 +02:00
fsl_mxc_udc.c usb: gadget: fsl_mxc_udc: replace MX35_IO_ADDRESS to ioremap 2013-01-18 14:08:21 +02:00
fsl_qe_udc.c usb: gadget: fsl_qe_udc: don't assign gadget.dev.release directly 2013-03-18 11:17:47 +02:00
fsl_qe_udc.h
fsl_udc_core.c gadget: single_open() leaks 2013-05-05 00:16:11 -04:00
fsl_usb2_udc.h usb: gadget: fsl_mxc_udc: replace MX35_IO_ADDRESS to ioremap 2013-01-18 14:08:21 +02:00
functions.c usb: gadget: add a forward pointer from usb_function to its "instance" 2013-01-21 20:52:46 +02:00
fusb300_udc.c usb: gadget: fusb300_udc: bug fix of not doing idma reset for each time 2013-04-02 16:58:39 +03:00
fusb300_udc.h usb: gadget: fusb300_udc: add FUSB300_EPSET0_STL_CLR for clearing EP0 stall 2013-04-02 16:57:24 +03:00
g_ffs.c usb: patches for v3.10 merge window 2013-04-05 15:18:00 -07:00
g_zero.h usb: gadget: convert source sink and loopback to new function interface 2013-01-21 20:52:40 +02:00
gadget_chips.h usb: gadget: remove usb_gadget_controller_number() 2012-09-10 16:43:24 +03:00
gmidi.c usb: gadget: consider link speed for bMaxPower 2013-01-10 12:38:52 +02:00
goku_udc.c gadget: single_open() leaks 2013-05-05 00:16:11 -04:00
goku_udc.h usb: gadget: goku_udc: let udc-core manage gadget->dev 2013-03-18 11:16:45 +02:00
hid.c usb: remove use of __devexit 2012-11-21 13:27:17 -08:00
imx_udc.c usb: gadget: imx_udc: don't touch gadget.dev.driver 2013-03-18 11:17:36 +02:00
imx_udc.h
inode.c aio: use cancellation list lazily 2013-05-07 18:38:29 -07:00
lpc32xx_udc.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
m66592-udc.c usb: gadget: m66592-udc: don't assign gadget.dev.release directly 2013-03-18 11:17:49 +02:00
m66592-udc.h usb: gadget: m66592-udc: convert to udc_start/udc_stop 2013-01-24 21:11:29 +02:00
mass_storage.c usb: gadget: libcomposite: move composite.c into libcomposite 2012-09-10 16:13:03 +03:00
multi.c usb: gadget: multi: fix error return code in rndis_do_config() 2013-04-23 14:11:29 +03:00
mv_u3d.h
mv_u3d_core.c usb: gadget: mv_u3d_core: remove unused clock 2013-04-02 11:42:47 +03:00
mv_udc.h usb: gadget: mv_udc_core: remove unused clock 2013-04-02 11:42:45 +03:00
mv_udc_core.c usb: gadget: mv_udc_core: remove unused clock 2013-04-02 11:42:45 +03:00
ncm.c usb: gadget: move the global the_dev variable to their users 2013-04-03 14:43:31 +03:00
ndis.h
net2272.c usb: patches for v3.10 merge window 2013-04-05 15:18:00 -07:00
net2272.h
net2280.c usb: patches for v3.10 merge window 2013-04-05 15:18:00 -07:00
net2280.h
nokia.c usb: gadget: nokia: include f_ecm.c 2013-04-03 21:02:47 +03:00
omap_udc.c usb: gadget: omap_udc: don't assign gadget.dev.release directly 2013-03-18 11:17:53 +02:00
omap_udc.h
pch_udc.c usb: gadget: pch_udc: fix sparse warnings 2013-03-27 13:18:59 +02:00
printer.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
pxa25x_udc.c usb: gadget: pxa25x_udc: don't touch gadget.dev.driver 2013-03-18 11:17:41 +02:00
pxa25x_udc.h usb: gadget: pxa25x_udc: convert to udc_start/udc_stop 2013-01-24 21:11:31 +02:00
pxa27x_udc.c usb: gadget: pxa27x_udc: fix Section Mismatches 2013-04-02 17:13:40 +03:00
pxa27x_udc.h usb: gadget: pxa27x_udc: convert to udc_start/udc_stop 2013-01-24 21:11:31 +02:00
r8a66597-udc.c usb: gadget: r8a66597-udc: don't assign gadget.dev.release directly 2013-03-18 11:17:54 +02:00
r8a66597-udc.h
rndis.c procfs: new helper - PDE_DATA(inode) 2013-04-09 14:13:32 -04:00
rndis.h
s3c-hsotg.c usb: gadget: s3c-hsotg: fix PHY error handling 2013-03-18 11:18:29 +02:00
s3c-hsotg.h
s3c-hsudc.c usb: gadget: s3c-hsudc: delete outdated comment 2013-03-18 11:18:10 +02:00
s3c2410_udc.c usb: gadget: s3c2410_udc: don't touch gadget.dev.driver 2013-03-18 11:17:43 +02:00
s3c2410_udc.h usb: gadget: s3c2410: convert to udc_start/udc_stop 2013-01-24 21:11:32 +02:00
serial.c usb: gadget: serial: convert to new interface of f_obex 2013-04-03 14:43:36 +03:00
storage_common.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
tcm_usb_gadget.c usb: gadget: tcm_usb_gadge: fix to return error or 0 in tcm_usbg_drop_nexus() 2012-12-13 12:04:00 +02:00
tcm_usb_gadget.h usb: gadget: make sure each gadget is using same index for Product, Serial,… 2012-09-10 16:13:00 +03:00
u_ether.c usb: gadget: move the global the_dev variable to their users 2013-04-03 14:43:31 +03:00
u_ether.h usb: gadget: move the global the_dev variable to their users 2013-04-03 14:43:31 +03:00
u_phonet.h
u_serial.c usb: gadget: u_serial: fix typo which cause build warning 2013-03-14 12:47:53 +02:00
u_serial.h usb: gadget: nokia: use function framework for ACM 2013-04-03 14:43:20 +03:00
u_uac1.c usb: gadget: u_uac1: NULL dereference on error path 2013-03-04 13:16:45 +02:00
u_uac1.h
udc-core.c usb: patches for v3.10 merge window 2013-04-05 15:18:00 -07:00
usbstring.c usb: gadget: libcomposite: move MODULE_VERSION to composite.c 2012-09-10 16:13:03 +03:00
uvc.h usb: gadget: uvc: Delay the status stage when setting alternate setting 1 2013-03-18 11:18:21 +02:00
uvc_queue.c usb: gadget/uvc: Add support for 'get_unmapped_area' for MMUless architectures 2013-04-02 11:42:49 +03:00
uvc_queue.h usb: gadget/uvc: Port UVC webcam gadget to use videobuf2 framework 2013-04-02 11:42:48 +03:00
uvc_v4l2.c usb: gadget/uvc: Add support for 'get_unmapped_area' for MMUless architectures 2013-04-02 11:42:49 +03:00
uvc_video.c usb: gadget/uvc: Port UVC webcam gadget to use videobuf2 framework 2013-04-02 11:42:48 +03:00
webcam.c usb: gadget: consider link speed for bMaxPower 2013-01-10 12:38:52 +02:00
zero.c usb: gadget: zero: put function instances on unbind 2013-04-23 14:12:21 +03:00