1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-20 11:11:24 +00:00
freebsd/sys/dev
Bill Paul 55ad415824 When ndis_attach() runs, it has to very briefly initialize the card
in order to query the underlying Windows driver for the station address
and some other properties. There is a slim chance that the card may
receive a packet and indicate it up to us before ndis_attach() can call
ndis_halt_nic(). This is bad, because both the softc structure and
the ifnet structure aren't fully initialized yet: many pointers are
still NULL, so if we make it into ndis_rxeof(), we will panic.

To fix this, we need to do the following:

- Move the calls to IoAllocateWorkItem() to before the call to ndis_init_nic().
- Move the initialization of the RX DPC and status callback function pointers
  to before ndis_init_nic() as well.
- Modify ndis_rxeof() to check if the IFF_DRV_RUNNING flag is set. If it
  isn't, we return any supplied NDIS_PACKETs to the NIC without processing
  them.

This fixes a crash than can occur when activating a wireless NIC in
close proximity to a very busy wireless network, reported by Ryan
Beasley (ryan%^$!ATgoddamnbastard-****!!!DOTorg.

MFC after:	3 days
2006-02-04 19:42:49 +00:00
..
aac Initialize the event tailq. 2005-12-28 21:18:55 +00:00
acpi_support Add support for Asus A4D laptops. Currently without display switching 2006-01-29 23:59:43 +00:00
acpica Make the ACPI and OpenFirmware PCI bus drivers subclasses of the generic 2006-01-20 22:01:34 +00:00
adlink
advansys Fix -Wundef. 2005-12-04 02:12:43 +00:00
agp Don't add an agp child in vgapci's attach routine if the PCIY_AGP 2006-02-01 15:45:29 +00:00
aha
ahb
aic
aic7xxx Fix -Wundef warnings from compiling GENERIC and LINT kernels of 2005-12-06 11:19:37 +00:00
amd
amr Enable 64bit SGL's on PERC 4/DC 2006-02-02 17:51:47 +00:00
an Since the A-Z range is contained in the previous check, the else-if is 2006-01-26 19:55:29 +00:00
ar
arcmsr Fix -Wundef. 2005-12-04 02:12:43 +00:00
arl - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
asr Squash another use of vtophys. Instead of creating separate busdma objects 2006-02-04 17:56:17 +00:00
ata Add support for the JMicron JMB360 SATAII controller. 2006-01-25 23:07:42 +00:00
ath track bmiss threshold change from time to frame count 2006-01-23 20:58:05 +00:00
atkbdc Fix a bug in Synaptics Touchapd support where psm(4) will enter an infinite 2006-01-05 19:24:01 +00:00
auxio - Only touch the LED bit of the (LED) AUXIO register when turning the 2006-01-26 19:04:18 +00:00
awi
bfe - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
bge Enable 'complete' rx checksum offloading (i.e. let chip calculate checksums 2006-02-02 09:58:31 +00:00
bktr if we are compiling with smbus support, properly depend upon the iic and 2006-01-27 08:42:48 +00:00
buslogic
cardbus Make the 'pci_devclass' pointer variable private (drivers really shouldn't 2006-01-20 22:00:50 +00:00
ce Fix compilation with -Wundef (NBPF is undefined on FreeBSD >4). 2006-02-03 20:55:30 +00:00
ciss It seems ciss should ignore overrun and underrun on a SCSI INQUIRY 2005-12-16 06:50:55 +00:00
cm
cnw
cp trim trailing ^I 2005-12-17 07:09:17 +00:00
cpufreq
cs
ct
ctau
cx - Use swi_remove() to teardown swi handlers rather than 2005-10-26 15:52:16 +00:00
cy Catch up with new interrupt handling code. 2005-10-26 06:44:59 +00:00
dc Add missing parens. 2005-12-28 18:00:37 +00:00
dcons Use ttyalloc() instead of ttymalloc() 2006-01-04 09:20:41 +00:00
de Use the copy of the card's MAC address saved in tulip_enaddr() in the softc 2005-12-22 16:18:23 +00:00
dec
digi Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
dpt
drm - Bump FreeBSD version for the hostb(4) and vgapci(4) drivers as well as 2005-12-20 22:44:36 +00:00
ed Have a function pointer to the routine to call for writing an mbuf 2006-01-27 19:10:13 +00:00
eisa
em Now that the em driver no longer needs to directly touch the scheduler, remove some 2006-02-04 16:50:14 +00:00
en Drop the driver lock around atm_input() analogous to all the ethernet 2005-10-27 21:08:12 +00:00
ep Remove ifdef notdef SIOCHWADDR vestige. 2006-02-04 08:16:07 +00:00
esp Fix -Wundef from compiling the amd64 LINT. 2005-12-04 10:06:06 +00:00
ex Remove ifdef notyet SIOCGHWADDR vestige. 2006-02-04 08:16:41 +00:00
exca Set the name of the chipset found 2005-10-19 00:25:39 +00:00
fatm
fb Fix -Wundef warnings from compiling GENERIC and LINT kernels of 2005-12-06 11:19:37 +00:00
fdc
fe Return 0 if we are a network card and do match. Previously, we'd bogusly 2005-11-19 23:26:57 +00:00
firewire Make tv_sec a time_t on all platforms but alpha. Brings us more in line with 2005-12-24 22:22:17 +00:00
fxp Check for 10BaseT media correctly. Before we were confusing 2006-01-04 23:00:01 +00:00
gem Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
gfb
harp
hatm
hfa
hifn
hme fix Rx checksum computation on little endian systems. 2006-01-17 06:02:22 +00:00
hptmv Fix -Wundef. 2005-12-04 02:12:43 +00:00
hwpmc Fix a memory leak. 2006-01-17 16:53:50 +00:00
ic Register definitions for the ancient via6522. This 20+ year-old chip 2005-12-02 22:36:14 +00:00
ichsmb This signal handling code is worse than a no-op. If a 2006-01-03 17:01:43 +00:00
ichwd
ida
idt
ie Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
ieee488 Make resources do the right thing by design instead of accident. 2006-01-14 09:46:27 +00:00
if_ndis When ndis_attach() runs, it has to very briefly initialize the card 2006-02-04 19:42:49 +00:00
iicbus
iir Convert iir inlines to ANSI C function declarations. 2006-01-21 19:56:19 +00:00
io
ips Shuffle some definitions so that this can be included from userland. 2006-01-03 23:03:39 +00:00
ipw Use memcpy/memset consistently accross ipw and iwi instead of bcopy/bzero. 2005-11-20 16:13:00 +00:00
isp Actually, no, I had it wrong in 1.109. The arguments to bus_dma_create_tag 2006-02-04 08:39:02 +00:00
ispfw Fix -Wunder and make the sbus code really compile only on sparc64. 2005-12-04 10:03:00 +00:00
iwi o Re-enable scatter/gather 2006-01-29 12:03:03 +00:00
ixgb - Fix VLAN_INPUT_TAG() macro, so that it doesn't touch mtag in 2005-12-18 18:24:27 +00:00
joy Unbreak second joystick (joy1) support. 2005-11-09 20:26:00 +00:00
kbd
kbdmux Spotted a call to a cdev-related function not wrapped 2005-10-18 06:38:14 +00:00
le Add le(4), a driver for AMD Am7900 LANCE and Am79C9xx PCnet NICs ported 2006-01-31 14:48:58 +00:00
led
lge Add locking and mark MPSAFE: 2005-11-23 18:51:34 +00:00
lmc Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
lnc Really fix it this time. 2005-11-12 19:14:21 +00:00
mc146818
mca
mcd
md make sure that the start and end preloaded MFS markers are 2006-01-31 13:35:30 +00:00
mem
mii 1) fix tiny bug in bge_start_locked() 2005-12-08 13:31:52 +00:00
mk48txx
mlx
mly
mpt Rev MPI spec to 1.05.09 level in preparation for SAS support. 2006-01-21 00:29:52 +00:00
mse
my Fix -Wundef from compiling the amd64 LINT. 2005-12-04 10:06:06 +00:00
ncv
nge - Fix VLAN_INPUT_TAG() macro, so that it doesn't touch mtag in 2005-12-18 18:24:27 +00:00
nmdm Use ttyalloc() instead of ttymalloc() 2006-01-04 08:34:23 +00:00
nsp
null
nve Make nve(4) work for people with nf3/nf4 who never got it 2005-12-12 06:23:43 +00:00
ofw - Add a new method ofw_bus_default_get_devinfo() that allows to retrieve 2005-11-22 16:37:45 +00:00
patm
pbio
pccard Add some sanity checking to the pccard insertion case. Whine if the 2005-12-28 05:30:09 +00:00
pccbb Remove extra debugging that crept in with the integration from p4. 2005-12-31 20:04:39 +00:00
pcf If the device has a PNPID, don't bother to attach. There were some 2006-02-02 23:57:31 +00:00
pci Don't add an agp child in vgapci's attach routine if the PCIY_AGP 2006-02-01 15:45:29 +00:00
pdq - Make IFP2ENADDR() a pointer to IF_LLADDR() rather than another 2005-11-11 07:36:14 +00:00
ppbus Add missing MODULE_DEPEND() so that ppbus.ko and these .ko's can be 2005-12-21 10:54:47 +00:00
ppc Add missing MODULE_DEPEND() so that ppbus.ko and these .ko's can be 2005-12-21 10:54:47 +00:00
pst
puc Careful measurement of the ST Labs card shows that the pulse width of 2005-12-08 22:29:42 +00:00
ral Adjust tx power based on user preferences. 2006-01-29 12:47:07 +00:00
random Remove GIANT from device random. 2005-12-20 21:41:52 +00:00
ray - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
rc - Use swi_remove() to teardown swi handlers rather than 2005-10-26 15:52:16 +00:00
re - Fix VLAN_INPUT_TAG() macro, so that it doesn't touch mtag in 2005-12-18 18:24:27 +00:00
rndtest
rp The UPCI 32 rp(4) card uses BAR 2 like the UPCI 80 card. 2006-01-25 14:55:11 +00:00
sab - Use swi_remove() to teardown swi handlers rather than 2005-10-26 15:52:16 +00:00
safe
sbni - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
sbsh
scd
sf - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
si - Update copyright years from the Specialix SDK. 2006-01-06 20:17:48 +00:00
sio Use __DEVOLATILE to cast conspeed. 2005-12-07 07:23:53 +00:00
sk The number of ticks per usec for YUKON_EC is 125. 2006-01-17 06:58:25 +00:00
smbus Drivers for AMD-8111 and NVIDIA nForce2/3/4 SMBus 2.0 controllers. 2005-12-21 15:49:51 +00:00
sn Fix mismerge after last cvs update for the IFQ_DRV_DEQUEUE changes. 2006-02-04 08:19:00 +00:00
snc Fix -Wundef warnings from compiling GENERIC and LINT kernels of 2005-12-06 11:19:37 +00:00
snp
sound Fix some potential NULL pointer dereferences. 2006-01-29 16:48:41 +00:00
speaker Add /dev/speaker support to amd64. 2005-11-11 09:57:32 +00:00
sr
stg
streams
sym FreeBSD has had endian conversion macros for a long time. Axe the custom 2005-12-05 22:37:37 +00:00
syscons When SC_DISABLE_KDBKEY or SC_DISABLE_REBOOT are not defined allow the 2006-01-14 17:57:17 +00:00
tdfx Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
tga
ti - Tx side bus_dmamap_load_mbuf_sg(9) support. This reduces bookkeeping 2006-01-03 06:14:07 +00:00
trm
twa twa corresponding to the 9.3.0.1 release on the 3ware website. This driver has 2005-11-08 22:51:43 +00:00
twe Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
tx Convert to ANSI C function declarations. 2006-01-21 20:07:19 +00:00
txp - Fix VLAN_INPUT_TAG() macro, so that it doesn't touch mtag in 2005-12-18 18:24:27 +00:00
uart Make uart_getenv() not be ns8250 dependent. This will allow, in the future, 2005-12-12 21:00:58 +00:00
ubsec
usb ADDON is registered as 0x0d7d, not PNY. Don't confuse the two as we 2006-01-31 19:09:38 +00:00
utopia
vge - Fix VLAN_INPUT_TAG() macro, so that it doesn't touch mtag in 2005-12-18 18:24:27 +00:00
vkbd
vr - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
vx - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
watchdog
wds
wi - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
wl - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
xe - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
zs - Use swi_remove() to teardown swi handlers rather than 2005-10-26 15:52:16 +00:00