freebsd-skq/sys/dev/sfxge
George V. Neville-Neil 092a178372 Check that port is started when MAC filter is set
The MAC filter set may be called without softc_lock held in the case of
SIOCADDMULTI and SIOCDELMULTI ioctls. The ioctl handler checks IFF_DRV_RUNNING
flag which implies port started, but it is not guaranteed to remain.
softc_lock shared lock can't be held in the case of these ioctls processing,
since it results in failure where kernel complains that non-sleepable
lock is held in sleeping thread.

Both problems are repeatable on LAG with LACP proto bring up.

Submitted by:   Andrew Rybchenko <Andrew.Rybchenko at oktetlabs.ru>
Sponsored by:   Solarflare Communications, Inc.

MFC after:	2 weeks
2014-04-22 20:19:09 +00:00
..
common Commit various fixes for the SolarFlare drivers, in particular 2014-04-14 16:31:56 +00:00
sfxge_dma.c Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
sfxge_ev.c Commit various fixes for the SolarFlare drivers, in particular 2014-04-14 16:31:56 +00:00
sfxge_intr.c Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
sfxge_mcdi.c
sfxge_port.c Check that port is started when MAC filter is set 2014-04-22 20:19:09 +00:00
sfxge_rx.c
sfxge_rx.h
sfxge_tx.c Commit various fixes for the SolarFlare drivers, in particular 2014-04-14 16:31:56 +00:00
sfxge_tx.h sfxge: limit software Tx queue size. 2014-03-22 18:24:44 +00:00
sfxge.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
sfxge.h The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00