Use if_flags_set() and if_addr_init() instead of ifp->if_ioctl().
This commit is contained in:
parent
96ddefeaea
commit
82f65cfc5a
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: if_agr.c,v 1.29 2010/08/11 11:47:29 pgoyette Exp $ */
|
/* $NetBSD: if_agr.c,v 1.30 2011/10/19 01:49:50 dyoung Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c)2005 YAMAMOTO Takashi,
|
* Copyright (c)2005 YAMAMOTO Takashi,
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: if_agr.c,v 1.29 2010/08/11 11:47:29 pgoyette Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: if_agr.c,v 1.30 2011/10/19 01:49:50 dyoung Exp $");
|
||||||
|
|
||||||
#include "opt_inet.h"
|
#include "opt_inet.h"
|
||||||
|
|
||||||
|
@ -235,7 +235,6 @@ agr_vlan_add(struct agr_port *port, void *arg)
|
||||||
{
|
{
|
||||||
struct ifnet *ifp = port->port_ifp;
|
struct ifnet *ifp = port->port_ifp;
|
||||||
struct ethercom *ec_port = (void *)ifp;
|
struct ethercom *ec_port = (void *)ifp;
|
||||||
struct ifreq ifr;
|
|
||||||
int error=0;
|
int error=0;
|
||||||
|
|
||||||
if (ec_port->ec_nvlans++ == 0 &&
|
if (ec_port->ec_nvlans++ == 0 &&
|
||||||
|
@ -246,9 +245,7 @@ agr_vlan_add(struct agr_port *port, void *arg)
|
||||||
*/
|
*/
|
||||||
ec_port->ec_capenable |= ETHERCAP_VLAN_MTU;
|
ec_port->ec_capenable |= ETHERCAP_VLAN_MTU;
|
||||||
if (p->if_flags & IFF_UP) {
|
if (p->if_flags & IFF_UP) {
|
||||||
ifr.ifr_flags = p->if_flags;
|
error = if_flags_set(p, p->if_flags);
|
||||||
error = (*p->if_ioctl)(p, SIOCSIFFLAGS,
|
|
||||||
(void *) &ifr);
|
|
||||||
if (error) {
|
if (error) {
|
||||||
if (ec_port->ec_nvlans-- == 1)
|
if (ec_port->ec_nvlans-- == 1)
|
||||||
ec_port->ec_capenable &=
|
ec_port->ec_capenable &=
|
||||||
|
@ -268,7 +265,6 @@ static int
|
||||||
agr_vlan_del(struct agr_port *port, void *arg)
|
agr_vlan_del(struct agr_port *port, void *arg)
|
||||||
{
|
{
|
||||||
struct ethercom *ec_port = (void *)port->port_ifp;
|
struct ethercom *ec_port = (void *)port->port_ifp;
|
||||||
struct ifreq ifr;
|
|
||||||
|
|
||||||
/* Disable vlan support */
|
/* Disable vlan support */
|
||||||
if (ec_port->ec_nvlans-- == 1) {
|
if (ec_port->ec_nvlans-- == 1) {
|
||||||
|
@ -277,9 +273,8 @@ agr_vlan_del(struct agr_port *port, void *arg)
|
||||||
*/
|
*/
|
||||||
ec_port->ec_capenable &= ~ETHERCAP_VLAN_MTU;
|
ec_port->ec_capenable &= ~ETHERCAP_VLAN_MTU;
|
||||||
if (port->port_ifp->if_flags & IFF_UP) {
|
if (port->port_ifp->if_flags & IFF_UP) {
|
||||||
ifr.ifr_flags = port->port_ifp->if_flags;
|
(void)if_flags_set(port->port_ifp,
|
||||||
(void) (*port->port_ifp->if_ioctl)(port->port_ifp,
|
port->port_ifp->if_flags);
|
||||||
SIOCSIFFLAGS, (void *) &ifr);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -641,10 +636,10 @@ agr_addport(struct ifnet *ifp, struct ifnet *ifp_port)
|
||||||
* of each port to that of the first port. No need for arps
|
* of each port to that of the first port. No need for arps
|
||||||
* since there are no inet addresses assigned to the ports.
|
* since there are no inet addresses assigned to the ports.
|
||||||
*/
|
*/
|
||||||
error = (*ifp_port->if_ioctl)(ifp_port, SIOCINITIFADDR, ifp->if_dl);
|
error = if_addr_init(ifp_port, ifp->if_dl, true);
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
printf("%s: SIOCINITIFADDR error %d\n", __func__, error);
|
printf("%s: if_addr_init error %d\n", __func__, error);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
port->port_flags |= AGRPORT_LADDRCHANGED;
|
port->port_flags |= AGRPORT_LADDRCHANGED;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: if_agrether.c,v 1.8 2009/06/09 22:26:49 yamt Exp $ */
|
/* $NetBSD: if_agrether.c,v 1.9 2011/10/19 01:49:50 dyoung Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c)2005 YAMAMOTO Takashi,
|
* Copyright (c)2005 YAMAMOTO Takashi,
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: if_agrether.c,v 1.8 2009/06/09 22:26:49 yamt Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: if_agrether.c,v 1.9 2011/10/19 01:49:50 dyoung Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/callout.h>
|
#include <sys/callout.h>
|
||||||
|
@ -175,9 +175,7 @@ agrether_portinit(struct agr_softc *sc, struct agr_port *port)
|
||||||
*/
|
*/
|
||||||
ec_port->ec_capenable |= ETHERCAP_VLAN_MTU;
|
ec_port->ec_capenable |= ETHERCAP_VLAN_MTU;
|
||||||
if (p->if_flags & IFF_UP) {
|
if (p->if_flags & IFF_UP) {
|
||||||
ifr.ifr_flags = p->if_flags;
|
error = if_flags_set(p, p->if_flags);
|
||||||
error = (*p->if_ioctl)(p, SIOCSIFFLAGS,
|
|
||||||
(void *) &ifr);
|
|
||||||
if (error) {
|
if (error) {
|
||||||
if (ec_port->ec_nvlans-- == 1)
|
if (ec_port->ec_nvlans-- == 1)
|
||||||
ec_port->ec_capenable &=
|
ec_port->ec_capenable &=
|
||||||
|
@ -234,9 +232,8 @@ agrether_portfini(struct agr_softc *sc, struct agr_port *port)
|
||||||
*/
|
*/
|
||||||
ec_port->ec_capenable &= ~ETHERCAP_VLAN_MTU;
|
ec_port->ec_capenable &= ~ETHERCAP_VLAN_MTU;
|
||||||
if (port->port_ifp->if_flags & IFF_UP) {
|
if (port->port_ifp->if_flags & IFF_UP) {
|
||||||
ifr.ifr_flags = port->port_ifp->if_flags;
|
(void)if_flags_set(port->port_ifp,
|
||||||
(void) (*port->port_ifp->if_ioctl)(port->port_ifp,
|
port->port_ifp->if_flags);
|
||||||
SIOCSIFFLAGS, (void *) &ifr);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue