summaryrefslogtreecommitdiffstats
path: root/sys/dev/re
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2011-11-16 22:09:14 +0000
committeryongari <yongari@FreeBSD.org>2011-11-16 22:09:14 +0000
commit6fccac0389344a3f78dda28b1ef6e281478b64a1 (patch)
treea26a52b8d498d24335ed6b14aec9d663b72724bc /sys/dev/re
parentc0296e4e57fcd0f0ed7f81c76003bd877cd630e3 (diff)
downloadFreeBSD-src-6fccac0389344a3f78dda28b1ef6e281478b64a1.zip
FreeBSD-src-6fccac0389344a3f78dda28b1ef6e281478b64a1.tar.gz
Add missing driver lock in SIOCSIFCAP handler.
Diffstat (limited to 'sys/dev/re')
-rw-r--r--sys/dev/re/if_re.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index 90b23ed..621cc0e 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -3312,6 +3312,7 @@ re_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
}
}
#endif /* DEVICE_POLLING */
+ RL_LOCK(sc);
if ((mask & IFCAP_TXCSUM) != 0 &&
(ifp->if_capabilities & IFCAP_TXCSUM) != 0) {
ifp->if_capenable ^= IFCAP_TXCSUM;
@@ -3370,8 +3371,9 @@ re_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
}
if (reinit && ifp->if_drv_flags & IFF_DRV_RUNNING) {
ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
- re_init(sc);
+ re_init_locked(sc);
}
+ RL_UNLOCK(sc);
VLAN_CAPABILITIES(ifp);
}
break;
OpenPOWER on IntegriCloud