summaryrefslogtreecommitdiffstats
path: root/sys/dev/txp
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2004-08-13 23:53:36 +0000
committerrwatson <rwatson@FreeBSD.org>2004-08-13 23:53:36 +0000
commit9fc2ef2be3ad82a83db37ed87fbf2ee6ba9a8185 (patch)
tree687587a7e123e223980bf5cdf552f5c23839dfd7 /sys/dev/txp
parent8c9dc6fcfbf93e27e61a73b6209b31099153016c (diff)
downloadFreeBSD-src-9fc2ef2be3ad82a83db37ed87fbf2ee6ba9a8185.zip
FreeBSD-src-9fc2ef2be3ad82a83db37ed87fbf2ee6ba9a8185.tar.gz
Since if_txp doesn't contain locking or run with INTR_MPSAFE, mark
the interface as IFF_NEEDSGIANT so if_start is run holding Giant. Note: mutexes are initialized in the softc for this driver, but the locking appears inadequate to allow Giant-free operation.
Diffstat (limited to 'sys/dev/txp')
-rw-r--r--sys/dev/txp/if_txp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/txp/if_txp.c b/sys/dev/txp/if_txp.c
index 976b0f2..2a7221d 100644
--- a/sys/dev/txp/if_txp.c
+++ b/sys/dev/txp/if_txp.c
@@ -332,7 +332,8 @@ txp_attach(dev)
ifp->if_softc = sc;
if_initname(ifp, device_get_name(dev), device_get_unit(dev));
ifp->if_mtu = ETHERMTU;
- ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
+ ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST |
+ IFF_NEEDSGIANT;
ifp->if_ioctl = txp_ioctl;
ifp->if_start = txp_start;
ifp->if_watchdog = txp_watchdog;
OpenPOWER on IntegriCloud