All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 00/49] USB: prepare for enabling irq in complete()
@ 2013-08-17 16:24 Ming Lei
  2013-08-17 16:24 ` [PATCH v1 23/49] hid: usbhid: " Ming Lei
                   ` (17 more replies)
  0 siblings, 18 replies; 39+ messages in thread
From: Ming Lei @ 2013-08-17 16:24 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-usb, Oliver Neukum, Alan Stern, linux-input,
	linux-bluetooth, netdev, linux-wireless, linux-media, alsa-devel

Hi,

As we are going to run URB->complete() in tasklet context[1][2], and
hard interrupt may be enabled when running URB completion handler[3],
so we might need to disable interrupt when acquiring one lock in
the completion handler for the below reasons:

- URB->complete() holds a subsystem wide lock which may be acquired
in another hard irq context, and the subsystem wide lock is acquired
by spin_lock()/read_lock()/write_lock() in complete()

- URB->complete() holds a private lock with spin_lock()/read_lock()/write_lock()
but driver may export APIs to make other drivers acquire the same private
lock in its interrupt handler.

For the sake of safety and making the change simple, this patch set
converts all spin_lock()/read_lock()/write_lock() in completion handler
path into their irqsave version mechanically.

But if you are sure the above two cases do not happen in your driver,
please let me know and I can drop the unnecessary change.

Also if you find some conversions are missed, also please let me know so
that I can add it in the next round.


[1], USB: URB documentation: claim complete() will be run with IRQs enabled
https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=85721d45261c4be684730c7509a59daa6cda30d8

[2], USB: HCD: support giveback of URB in tasklet context
https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=94dfd7edfd5c9b605caf7b562de7a813d216e011

[3], http://marc.info/?l=linux-usb&m=137286330626363&w=2

V1:
	- rename patchset title
	- add missed changes on 'usb_skeleon and usb sg lib'
	- remove several sound usb drivers which have been done via sound tree
	- some patch style fix
	- replace snd_pcm_stream_lock with snd_pcm_stream_lock_irqsave for related
	a/v drivers

Cc: linux-input@vger.kernel.org
Cc: linux-bluetooth@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: alsa-devel@alsa-project.org

 drivers/bluetooth/bfusb.c                     |   12 ++++----
 drivers/bluetooth/btusb.c                     |    5 ++--
 drivers/hid/usbhid/hid-core.c                 |    5 ++--
 drivers/input/misc/cm109.c                    |   10 ++++---
 drivers/isdn/hardware/mISDN/hfcsusb.c         |   36 ++++++++++++-----------
 drivers/media/dvb-core/dvb_demux.c            |   17 +++++++----
 drivers/media/usb/cx231xx/cx231xx-audio.c     |   10 ++++---
 drivers/media/usb/cx231xx/cx231xx-core.c      |   10 ++++---
 drivers/media/usb/cx231xx/cx231xx-vbi.c       |    5 ++--
 drivers/media/usb/em28xx/em28xx-audio.c       |    5 ++--
 drivers/media/usb/em28xx/em28xx-core.c        |    5 ++--
 drivers/media/usb/sn9c102/sn9c102_core.c      |    7 +++--
 drivers/media/usb/tlg2300/pd-alsa.c           |    5 ++--
 drivers/media/usb/tlg2300/pd-video.c          |    5 ++--
 drivers/media/usb/tm6000/tm6000-video.c       |    5 ++--
 drivers/net/usb/cdc-phonet.c                  |    5 ++--
 drivers/net/usb/hso.c                         |   38 ++++++++++++++-----------
 drivers/net/usb/kaweth.c                      |    7 +++--
 drivers/net/usb/rtl8150.c                     |    5 ++--
 drivers/net/wireless/ath/ath9k/hif_usb.c      |   29 ++++++++++---------
 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c |    9 +++---
 drivers/net/wireless/ath/ath9k/wmi.c          |   11 +++----
 drivers/net/wireless/ath/carl9170/rx.c        |    5 ++--
 drivers/net/wireless/libertas/if_usb.c        |    5 ++--
 drivers/net/wireless/libertas_tf/if_usb.c     |    6 ++--
 drivers/net/wireless/zd1211rw/zd_usb.c        |   21 ++++++++------
 drivers/staging/bcm/InterfaceRx.c             |    5 ++--
 drivers/staging/btmtk_usb/btmtk_usb.c         |    5 ++--
 drivers/staging/ced1401/usb1401.c             |   35 ++++++++++++-----------
 drivers/staging/vt6656/usbpipe.c              |    9 +++---
 drivers/usb/class/cdc-wdm.c                   |   16 +++++++----
 drivers/usb/class/usblp.c                     |   10 ++++---
 drivers/usb/core/devio.c                      |    5 ++--
 drivers/usb/core/message.c                    |    5 ++--
 drivers/usb/misc/adutux.c                     |   10 ++++---
 drivers/usb/misc/iowarrior.c                  |    5 ++--
 drivers/usb/misc/ldusb.c                      |    7 +++--
 drivers/usb/misc/legousbtower.c               |    6 ++--
 drivers/usb/misc/usbtest.c                    |   10 ++++---
 drivers/usb/misc/uss720.c                     |    7 ++++-
 drivers/usb/serial/cyberjack.c                |   15 ++++++----
 drivers/usb/serial/digi_acceleport.c          |   23 ++++++++-------
 drivers/usb/serial/io_edgeport.c              |   14 +++++----
 drivers/usb/serial/io_ti.c                    |    5 ++--
 drivers/usb/serial/mos7720.c                  |    5 ++--
 drivers/usb/serial/mos7840.c                  |    5 ++--
 drivers/usb/serial/quatech2.c                 |    5 ++--
 drivers/usb/serial/sierra.c                   |    9 +++---
 drivers/usb/serial/symbolserial.c             |    5 ++--
 drivers/usb/serial/ti_usb_3410_5052.c         |    9 +++---
 drivers/usb/serial/usb_wwan.c                 |    5 ++--
 drivers/usb/usb-skeleton.c                    |   11 ++++---
 sound/usb/caiaq/audio.c                       |    5 ++--
 sound/usb/midi.c                              |    5 ++--
 54 files changed, 318 insertions(+), 221 deletions(-)


Thanks,
--
Ming Lei


^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2013-08-26 11:44 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-17 16:24 [PATCH v1 00/49] USB: prepare for enabling irq in complete() Ming Lei
2013-08-17 16:24 ` [PATCH v1 23/49] hid: usbhid: " Ming Lei
2013-08-22 12:19   ` Ming Lei
2013-08-26 11:44   ` Jiri Kosina
2013-08-17 16:24 ` [PATCH v1 26/49] input: cm109: " Ming Lei
2013-08-18  3:37   ` Dmitry Torokhov
2013-08-18 14:10     ` Ming Lei
2013-08-18 18:05       ` Greg Kroah-Hartman
2013-08-17 16:24 ` [PATCH v1 27/49] ISDN: hfcsusb: " Ming Lei
2013-08-17 16:24 ` [PATCH v1 28/49] USBNET: cdc-phonet: " Ming Lei
2013-08-17 16:24 ` [PATCH v1 32/49] wireless: ath9k: " Ming Lei
2013-08-17 16:24   ` Ming Lei
2013-08-17 16:24 ` [PATCH v1 33/49] wireless: zd1211rw: " Ming Lei
2013-08-17 16:24 ` [PATCH v1 34/49] wireless: ath: carl9170: " Ming Lei
2013-08-17 16:25 ` [PATCH v1 35/49] wireless: libertas: " Ming Lei
2013-08-17 16:25   ` Ming Lei
2013-08-17 16:25 ` [PATCH v1 36/49] wireless: libertas_tf: " Ming Lei
2013-08-17 16:25 ` [PATCH v1 37/49] media: usb: cx231xx: " Ming Lei
2013-08-22 11:33   ` Hans Verkuil
2013-08-17 16:25 ` [PATCH v1 38/49] media: usb: em28xx: " Ming Lei
2013-08-22 12:24   ` Hans Verkuil
2013-08-17 16:25 ` [PATCH v1 39/49] media: usb: sn9x102: " Ming Lei
2013-08-22 12:24   ` Hans Verkuil
2013-08-17 16:25 ` [PATCH v1 40/49] media: usb: tlg2300: " Ming Lei
2013-08-22 12:24   ` Hans Verkuil
2013-08-17 16:25 ` [PATCH v1 41/49] media: usb: tm6000: " Ming Lei
2013-08-22 12:24   ` Hans Verkuil
2013-08-17 16:25 ` [PATCH v1 42/49] media: dvb-core: " Ming Lei
2013-08-22 12:32   ` Hans Verkuil
2013-08-17 16:25 ` [PATCH v1 43/49] media: usb: em28xx: " Ming Lei
2013-08-22 12:24   ` Hans Verkuil
     [not found] ` <1376756714-25479-1-git-send-email-ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2013-08-17 16:24   ` [PATCH v1 29/49] USBNET: hso: " Ming Lei
2013-08-17 16:24   ` [PATCH v1 30/49] USBNET: kaweth: " Ming Lei
2013-08-17 16:24   ` [PATCH v1 31/49] USBNET: rtl8150: " Ming Lei
2013-08-17 16:25   ` [PATCH v1 44/49] sound: usb: midi: " Ming Lei
     [not found]     ` <1376756714-25479-45-git-send-email-ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2013-08-19 13:47       ` Takashi Iwai
2013-08-17 16:25   ` [PATCH v1 45/49] sound: usb: caiaq: " Ming Lei
     [not found]     ` <1376756714-25479-46-git-send-email-ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2013-08-19 13:48       ` Takashi Iwai
     [not found] ` <1376756714-25479-25-git-send-email-ming.lei@canonical.com>
2013-08-22 12:23   ` [PATCH v1 24/49] BT: btusb: " Ming Lei

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.