Module Name: src
Committed By: martin
Date: Thu Mar 8 14:37:58 UTC 2018
Modified Files:
src/sys/net [netbsd-8]: if_ethersubr.c
Log Message:
Pull up following revision(s) (requested by msaitoh in ticket #618):
sys/net/if_ethersubr.c: revision 1.245
sys/net/if_ethersubr.c: revision 1.247
Use macro(ETHER_LOCK() and ETHER_UNLOCK()). No functional change.
- Modify ether_ioctl() for readability. No functional change.
- KNF
To generate a diff of this commit:
cvs rdiff -u -r1.242.6.3 -r1.242.6.4 src/sys/net/if_ethersubr.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/net/if_ethersubr.c
diff -u src/sys/net/if_ethersubr.c:1.242.6.3 src/sys/net/if_ethersubr.c:1.242.6.4
--- src/sys/net/if_ethersubr.c:1.242.6.3 Tue Jan 9 19:23:04 2018
+++ src/sys/net/if_ethersubr.c Thu Mar 8 14:37:58 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ethersubr.c,v 1.242.6.3 2018/01/09 19:23:04 snj Exp $ */
+/* $NetBSD: if_ethersubr.c,v 1.242.6.4 2018/03/08 14:37:58 martin Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.242.6.3 2018/01/09 19:23:04 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.242.6.4 2018/03/08 14:37:58 martin Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -226,13 +226,13 @@ ether_output(struct ifnet * const ifp0,
ifp = ifp->if_carpdev;
/* ac = (struct arpcom *)ifp; */
- if ((ifp0->if_flags & (IFF_UP|IFF_RUNNING)) !=
- (IFF_UP|IFF_RUNNING))
+ if ((ifp0->if_flags & (IFF_UP | IFF_RUNNING)) !=
+ (IFF_UP | IFF_RUNNING))
senderr(ENETDOWN);
}
#endif /* NCARP > 0 */
- if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING))
+ if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) != (IFF_UP | IFF_RUNNING))
senderr(ENETDOWN);
switch (dst->sa_family) {
@@ -640,7 +640,7 @@ ether_input(struct ifnet *ifp, struct mb
return;
}
#endif /* NCARP > 0 */
- if ((m->m_flags & (M_BCAST|M_MCAST|M_PROMISC)) == 0 &&
+ if ((m->m_flags & (M_BCAST | M_MCAST | M_PROMISC)) == 0 &&
(ifp->if_flags & IFF_PROMISC) != 0 &&
memcmp(CLLADDR(ifp->if_sadl), eh->ether_dhost,
ETHER_ADDR_LEN) != 0) {
@@ -1005,13 +1005,13 @@ ether_ifdetach(struct ifnet *ifp)
vlan_ifdetach(ifp);
#endif
- mutex_enter(ec->ec_lock);
+ ETHER_LOCK(ec);
while ((enm = LIST_FIRST(&ec->ec_multiaddrs)) != NULL) {
LIST_REMOVE(enm, enm_list);
kmem_intr_free(enm, sizeof(*enm));
ec->ec_multicnt--;
}
- mutex_exit(ec->ec_lock);
+ ETHER_UNLOCK(ec);
mutex_destroy(ec->ec_lock);
@@ -1231,7 +1231,7 @@ ether_addmulti(const struct sockaddr *sa
if (enm == NULL)
return ENOBUFS;
- mutex_enter(ec->ec_lock);
+ ETHER_LOCK(ec);
error = ether_multiaddr(sa, addrlo, addrhi);
if (error != 0)
goto out;
@@ -1270,7 +1270,7 @@ ether_addmulti(const struct sockaddr *sa
error = ENETRESET;
enm = NULL;
out:
- mutex_exit(ec->ec_lock);
+ ETHER_UNLOCK(ec);
if (enm != NULL)
kmem_intr_free(enm, sizeof(*enm));
return error;
@@ -1287,7 +1287,7 @@ ether_delmulti(const struct sockaddr *sa
u_char addrhi[ETHER_ADDR_LEN];
int error;
- mutex_enter(ec->ec_lock);
+ ETHER_LOCK(ec);
error = ether_multiaddr(sa, addrlo, addrhi);
if (error != 0)
goto error;
@@ -1312,7 +1312,7 @@ ether_delmulti(const struct sockaddr *sa
*/
LIST_REMOVE(enm, enm_list);
ec->ec_multicnt--;
- mutex_exit(ec->ec_lock);
+ ETHER_UNLOCK(ec);
kmem_intr_free(enm, sizeof(*enm));
/*
@@ -1321,7 +1321,7 @@ ether_delmulti(const struct sockaddr *sa
*/
return ENETRESET;
error:
- mutex_exit(ec->ec_lock);
+ ETHER_UNLOCK(ec);
return error;
}
@@ -1351,8 +1351,8 @@ ether_ioctl(struct ifnet *ifp, u_long cm
{
struct ifaddr *ifa = (struct ifaddr *)data;
if (ifa->ifa_addr->sa_family != AF_LINK
- && (ifp->if_flags & (IFF_UP|IFF_RUNNING)) !=
- (IFF_UP|IFF_RUNNING)) {
+ && (ifp->if_flags & (IFF_UP | IFF_RUNNING)) !=
+ (IFF_UP | IFF_RUNNING)) {
ifp->if_flags |= IFF_UP;
if ((error = (*ifp->if_init)(ifp)) != 0)
return error;
@@ -1387,7 +1387,7 @@ ether_ioctl(struct ifnet *ifp, u_long cm
case SIOCSIFFLAGS:
if ((error = ifioctl_common(ifp, cmd, data)) != 0)
return error;
- switch (ifp->if_flags & (IFF_UP|IFF_RUNNING)) {
+ switch (ifp->if_flags & (IFF_UP | IFF_RUNNING)) {
case IFF_RUNNING:
/*
* If interface is marked down and it is running,
@@ -1401,18 +1401,21 @@ ether_ioctl(struct ifnet *ifp, u_long cm
* start it.
*/
return (*ifp->if_init)(ifp);
- case IFF_UP|IFF_RUNNING:
+ case IFF_UP | IFF_RUNNING:
error = 0;
- if (ec->ec_ifflags_cb == NULL ||
- (error = (*ec->ec_ifflags_cb)(ec)) == ENETRESET) {
- /*
- * Reset the interface to pick up
- * changes in any other flags that
- * affect the hardware state.
- */
- return (*ifp->if_init)(ifp);
- } else
- return error;
+ if (ec->ec_ifflags_cb != NULL) {
+ error = (*ec->ec_ifflags_cb)(ec);
+ if (error == ENETRESET) {
+ /*
+ * Reset the interface to pick up
+ * changes in any other flags that
+ * affect the hardware state.
+ */
+ return (*ifp->if_init)(ifp);
+ }
+ } else
+ error = (*ifp->if_init)(ifp);
+ return error;
case 0:
break;
}
@@ -1556,10 +1559,10 @@ retry:
multicnt = ec->ec_multicnt;
addrs = kmem_alloc(sizeof(*addrs) * multicnt, KM_SLEEP);
- mutex_enter(ec->ec_lock);
+ ETHER_LOCK(ec);
if (multicnt < ec->ec_multicnt) {
/* The number of multicast addresses have increased */
- mutex_exit(ec->ec_lock);
+ ETHER_UNLOCK(ec);
kmem_free(addrs, sizeof(*addrs) * multicnt);
goto retry;
}
@@ -1572,7 +1575,7 @@ retry:
memcpy(addr->enm_addrhi, enm->enm_addrhi, ETHER_ADDR_LEN);
i++;
}
- mutex_exit(ec->ec_lock);
+ ETHER_UNLOCK(ec);
error = 0;
written = 0;