freebsd-skq/sys/dev/usb
Robert Watson 59dd72d040 Remove NETISR_MPSAFE, which allows specific netisr handlers to be directly
dispatched without Giant, and add NETISR_FORCEQUEUE, which allows specific
netisr handlers to always be dispatched via a queue (deferred).  Mark the
usb and if_ppp netisr handlers as NETISR_FORCEQUEUE, and explicitly
acquire Giant in those handlers.

Previously, any netisr handler not marked NETISR_MPSAFE would necessarily
run deferred and with Giant acquired.  This change removes Giant
scaffolding from the netisr infrastructure, but NETISR_FORCEQUEUE allows
non-MPSAFE handlers to continue to force deferred dispatch so as to avoid
lock order reversals between their acqusition of Giant and any calling
context.

It is likely we will be able to remove NETISR_FORCEQUEUE once
IFF_NEEDSGIANT is removed, as non-MPSAFE usb and if_ppp drivers will no
longer be supported.

Reviewed by:	bz
MFC after:	1 month
X-MFC note:	We can't remove NETISR_MPSAFE from stable/7 for KPI reasons,
		but the rest can go back.
2008-07-04 00:21:38 +00:00
..
dsbr100io.h Don't pretend to support !BSD systems. 2007-06-12 19:01:32 +00:00
ehci_pci.c Identify ICH9 USB controllers. 2008-04-11 05:50:53 +00:00
ehci.c >From NetBSD: 2008-06-10 02:41:36 +00:00
ehcireg.h
ehcivar.h >From NetBSD: 2008-06-10 02:41:36 +00:00
FILES Acknowledge (dearly) departed files 2006-11-21 22:29:06 +00:00
hid.c s/logprintf/printf/g 2007-06-20 05:11:37 +00:00
hid.h
if_aue.c Replace callout_init(..., 1) with callout_init(..., CALLOUT_MPSAFE) for 2008-04-16 16:47:14 +00:00
if_auereg.h Remove my "custom" locks that allow for lock acquire abort, they are 2007-01-08 23:24:21 +00:00
if_axe.c From the OpenBSD commit log : 2008-05-13 14:00:09 +00:00
if_axereg.h Add private tx/rx buffer management to support large frame sizes 2007-11-10 16:23:38 +00:00
if_cdce.c Fix two more PRs: 2007-06-30 20:18:44 +00:00
if_cdcereg.h Prefer device_printf over printf 2007-06-10 07:33:48 +00:00
if_cue.c Note the Belkin F5U111 Adapter is covered by NETMATE entry. 2007-06-23 06:29:19 +00:00
if_cuereg.h Prefer device_printf to printf where sane. 2007-06-11 05:42:47 +00:00
if_kue.c Add a boatload of devices from OpenBSD and NetBSD to kue and cdce. 2007-06-23 06:47:43 +00:00
if_kuereg.h Prefer device_printf to printf 2007-06-11 05:50:47 +00:00
if_rue.c When all the other drivers were converted to scheduling a taskqueue to 2007-07-09 16:58:07 +00:00
if_ruereg.h Missed in last commit: add usb task for rue to use for its ticks. 2007-07-09 20:56:39 +00:00
if_rum.c Add the D-Link DWA-111 2008-06-13 02:02:21 +00:00
if_rumreg.h Update 802.11 wireless support: 2007-06-11 03:36:55 +00:00
if_rumvar.h Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
if_udav.c Add support for the Davicom DM9601. 2008-04-26 05:46:28 +00:00
if_udavreg.h More removing compatibility macros. 2006-09-07 00:06:42 +00:00
if_ural.c Change the calling convention for ic_node_alloc to deal with 2008-06-07 18:38:02 +00:00
if_uralreg.h Update 802.11 wireless support: 2007-06-11 03:36:55 +00:00
if_uralvar.h Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
if_zyd.c Change the calling convention for ic_node_alloc to deal with 2008-06-07 18:38:02 +00:00
if_zydfw.h upgrade zd1211b firmware for the zyd driver. This solves a hardware 2007-11-03 19:24:51 +00:00
if_zydreg.h Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
kue_fw.h s/Static/static/g 2006-09-06 23:44:25 +00:00
ohci_pci.c Latest round of usb cleanups: 2007-06-21 14:42:34 +00:00
ohci.c Don't let hacksync() call bus_dmamap_sync(9) on DMA maps which 2008-05-13 20:58:08 +00:00
ohcireg.h
ohcivar.h Expand callout compatibility macros in the main usb bridges. 2007-06-14 16:23:31 +00:00
rio500_usb.h Don't pretend to support !BSD systems. 2007-06-12 19:01:32 +00:00
rt2573_ucode.h Add support for Ralink Technology RT2501USB/RT2601USB devices. 2007-05-06 10:07:21 +00:00
sl811hs.c Include usb_port.h to fix build. 2007-06-19 10:28:08 +00:00
sl811hsreg.h
sl811hsvar.h Use pause() rather than using tsleep() on a dummy variable. 2007-02-27 17:19:33 +00:00
slhci_pccard.c Include usb_port.h to fix build. 2007-06-19 10:28:08 +00:00
uark.c Allow arbitrary baud rates, not just the standard ones. 2008-01-26 04:30:48 +00:00
ubsa.c Add the support for the Globetrotter Max 3.6 HSDPA Modem. 2008-06-05 16:56:56 +00:00
ubser.c Prefer device_printf to printf("%s: ...", device_get_nameunit()). On 2007-07-05 06:42:14 +00:00
ubser.h
uchcom.c Add Winchiphead (or Nanjin QinHeng Electronics) USB Serial converter driver. 2007-10-18 10:51:06 +00:00
ucom.c split out tty create part of ucom_attach into ucom_attach_tty so 2008-03-25 23:46:24 +00:00
ucomvar.h split out tty create part of ucom_attach into ucom_attach_tty so 2008-03-25 23:46:24 +00:00
ucycom.c Latest round of usb cleanups: 2007-06-21 14:42:34 +00:00
udbp.c Prefer device_printf to printf + device_get_nameunit. This saves 2007-07-05 15:25:32 +00:00
udbp.h
ufm.c Latest round of usb cleanups: 2007-06-21 14:42:34 +00:00
ufoma.c Minor Bug fix that will cause panic with some terminal with voice path on USB. 2007-07-27 12:00:29 +00:00
uftdi.c Calculate baud rate divisor instead of allowing only a fixed set of 2008-01-25 02:41:44 +00:00
uftdireg.h Calculate baud rate divisor instead of allowing only a fixed set of 2008-01-25 02:41:44 +00:00
ugen.c The timeout is in milliseconds, not in hz. Only the portion of the 2007-06-28 06:22:40 +00:00
ugraphire_rdesc.h
uhci_pci.c Identify ICH9 USB controllers. 2008-04-11 05:50:53 +00:00
uhci.c Expand callout compatibility macros in the main usb bridges. 2007-06-14 16:23:31 +00:00
uhcireg.h
uhcivar.h Expand callout compatibility macros in the main usb bridges. 2007-06-14 16:23:31 +00:00
uhid.c Latest round of usb cleanups: 2007-06-21 14:42:34 +00:00
uhub.c Fix two more PRs: 2007-06-30 20:18:44 +00:00
uipaq.c Add ID for HTC PPC6700 Modem. 2008-05-08 21:22:27 +00:00
ukbd.c Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
ulpt.c Latest round of usb cleanups: 2007-06-21 14:42:34 +00:00
umass.c Add support for the Nikon D300 camera 2008-05-16 19:47:15 +00:00
umct.c Finish removal of usb_port.h macros. 2007-06-18 22:27:57 +00:00
umodem.c Add missing newline in printf. 2007-07-29 18:16:43 +00:00
ums.c Add support for Microsoft Notebook Optical Mouse 3000 Model 1049. 2008-04-30 19:37:54 +00:00
uplcom.c Add Belkin F5U257 to the mix. 2008-06-10 19:31:09 +00:00
urio.c Latest round of usb cleanups: 2007-06-21 14:42:34 +00:00
usb_ethersubr.c Remove NETISR_MPSAFE, which allows specific netisr handlers to be directly 2008-07-04 00:21:38 +00:00
usb_ethersubr.h Add the following functions to abstract away the creation of task threads 2007-01-08 23:21:06 +00:00
usb_if.m
usb_mem.c s/logprintf/printf/g 2007-06-20 05:11:37 +00:00
usb_mem.h Remove more __OtherBSD__ ifdefs that don't make sense, and haven't for 2007-06-13 05:45:48 +00:00
usb_port.h Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
usb_quirks.c Add a quirk to ignore ASUS LCM display found on some ASUS laptops. 2008-03-14 15:59:30 +00:00
usb_quirks.h Add support for various MS Wirless usb mice. the patch is from 2007-06-29 21:07:41 +00:00
usb_subr.c Fix two more PRs: 2007-06-30 20:18:44 +00:00
usb.c Drop Giant before calling kproc_exit(), so we don't trigger assertion in 2008-05-20 12:34:30 +00:00
usb.h Add definition for UIPROTO_MOUSE. 2007-06-30 02:40:21 +00:00
usbcdc.h
usbdevs Add USB ids for the Epson DX7400 / CX7300 multifunction scanner printer 2008-06-27 10:30:08 +00:00
usbdi_util.c s/logprintf/printf/g 2007-06-20 05:11:37 +00:00
usbdi_util.h protect against multiple inclusion (this is useful when you 2007-01-03 10:50:03 +00:00
usbdi.c Correct cache handling for xfer requests marked URQ_REQUEST: many (if not 2008-03-20 16:04:13 +00:00
usbdi.h add support for %b printing of request + xfer flags 2008-03-20 03:09:59 +00:00
usbdivar.h add support for %b printing of request + xfer flags 2008-03-20 03:09:59 +00:00
usbhid.h
uscanner.c Add USB ids for the Epson DX7400 / CX7300 multifunction scanner printer 2008-06-27 10:30:08 +00:00
uslcom.c Oops, I accidently concatenated uslcom.[c4] multiple times before the 2008-03-05 14:18:29 +00:00
uvisor.c Prefer device_printf to printf("%s:...", device_get_nameunit(),...); 2007-07-05 06:28:46 +00:00
uvscom.c Prefer device_printf to printf("%s:...", device_get_nameunit(),...); 2007-07-05 06:28:46 +00:00
uxb360gp_rdesc.h Change my email address to the one from the FreeBSD project. 2008-05-24 18:35:55 +00:00