Don't propagate SIOCSIFCAPS from a vlan(4) to its parent. This leads to
quite unexpected result of toggling capabilities on the neighbour vlan(4) interfaces. Reviewed by: melifaro, np Differential Revision: https://reviews.freebsd.org/D2310 Sponsored by: Nginx, Inc.
This commit is contained in:
parent
446734c25e
commit
9f7d0f4830
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=281885
@ -1705,27 +1705,6 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
|
||||
}
|
||||
break;
|
||||
|
||||
case SIOCSIFCAP:
|
||||
VLAN_LOCK();
|
||||
if (TRUNK(ifv) != NULL) {
|
||||
p = PARENT(ifv);
|
||||
VLAN_UNLOCK();
|
||||
if ((p->if_type != IFT_ETHER) &&
|
||||
(ifr->ifr_reqcap & IFCAP_VLAN_HWTAGGING) == 0) {
|
||||
error = EINVAL;
|
||||
break;
|
||||
}
|
||||
error = (*p->if_ioctl)(p, cmd, data);
|
||||
if (error)
|
||||
break;
|
||||
/* Propogate vlan interface capabilities */
|
||||
vlan_trunk_capabilities(p);
|
||||
} else {
|
||||
VLAN_UNLOCK();
|
||||
error = EINVAL;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
error = EINVAL;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user