diff options
author | yar <yar@FreeBSD.org> | 2004-05-23 21:05:08 +0000 |
---|---|---|
committer | yar <yar@FreeBSD.org> | 2004-05-23 21:05:08 +0000 |
commit | 170d03a0c9fddf1f1a42da03139f4e14bf1449e4 (patch) | |
tree | 375592891cd6bfe9116c605a163f03aadcba537f /sys/pci/if_rl.c | |
parent | 747b4b5ae0b8a831f8be8364825620f94dcb9ad1 (diff) | |
download | FreeBSD-src-170d03a0c9fddf1f1a42da03139f4e14bf1449e4.zip FreeBSD-src-170d03a0c9fddf1f1a42da03139f4e14bf1449e4.tar.gz |
A handler for ioctl(SIOCSIFCAP) should not alter a bit in
if_capenable unless the interface driver is actually able
to toggle the respective capability on and off.
Reviewed by: ru
Diffstat (limited to 'sys/pci/if_rl.c')
-rw-r--r-- | sys/pci/if_rl.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/pci/if_rl.c b/sys/pci/if_rl.c index eee7976..5f0d0d2 100644 --- a/sys/pci/if_rl.c +++ b/sys/pci/if_rl.c @@ -1830,7 +1830,8 @@ rl_ioctl(ifp, command, data) error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command); break; case SIOCSIFCAP: - ifp->if_capenable = ifr->ifr_reqcap; + ifp->if_capenable &= ~IFCAP_POLLING; + ifp->if_capenable |= ifr->ifr_reqcap & IFCAP_POLLING; break; default: error = ether_ioctl(ifp, command, data); |