Page MenuHomeFreeBSD

D54886.diff
No OneTemporary

D54886.diff

diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c
--- a/sys/dev/qlnx/qlnxe/qlnx_os.c
+++ b/sys/dev/qlnx/qlnxe/qlnx_os.c
@@ -2568,9 +2568,7 @@
mcnt = if_foreach_llmaddr(ifp, qlnx_copy_maddr, mta);
- QLNX_LOCK(ha);
qlnx_hw_set_multi(ha, mta, mcnt, add_multi);
- QLNX_UNLOCK(ha);
return (0);
}
@@ -2637,11 +2635,10 @@
#ifdef INET
if (ifa->ifa_addr->sa_family == AF_INET) {
if_setflagbits(ifp, IFF_UP, 0);
- if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) {
- QLNX_LOCK(ha);
+ QLNX_LOCK(ha);
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
qlnx_init_locked(ha);
- QLNX_UNLOCK(ha);
- }
+ QLNX_UNLOCK(ha);
QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx) ipv4 [0x%08x]\n",
cmd, ntohl(IA_SIN(ifa)->sin_addr.s_addr));
@@ -2703,19 +2700,23 @@
case SIOCADDMULTI:
QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI", cmd);
- if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
+ QLNX_LOCK(ha);
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) {
if (qlnx_set_multi(ha, 1))
ret = EINVAL;
}
+ QLNX_UNLOCK(ha);
break;
case SIOCDELMULTI:
QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCDELMULTI", cmd);
- if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
+ QLNX_LOCK(ha);
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) {
if (qlnx_set_multi(ha, 0))
ret = EINVAL;
}
+ QLNX_UNLOCK(ha);
break;
case SIOCSIFMEDIA:

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 14, 4:22 PM (13 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28051707
Default Alt Text
D54886.diff (1 KB)

Event Timeline