diff options
author | rwatson <rwatson@FreeBSD.org> | 2004-08-13 23:53:36 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2004-08-13 23:53:36 +0000 |
commit | 9fc2ef2be3ad82a83db37ed87fbf2ee6ba9a8185 (patch) | |
tree | 687587a7e123e223980bf5cdf552f5c23839dfd7 /sys/dev/txp | |
parent | 8c9dc6fcfbf93e27e61a73b6209b31099153016c (diff) | |
download | FreeBSD-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.c | 3 |
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; |