diff options
author | iedowse <iedowse@FreeBSD.org> | 2008-03-27 18:02:30 +0000 |
---|---|---|
committer | iedowse <iedowse@FreeBSD.org> | 2008-03-27 18:02:30 +0000 |
commit | 8b81d719e16ff5e6da5d41c553b89216e72864fe (patch) | |
tree | 835f961eb739d11c8c6aa9d518136e34953f498e | |
parent | 591c29cdac9ec42c437c6dad35d50875215962fa (diff) | |
download | FreeBSD-src-8b81d719e16ff5e6da5d41c553b89216e72864fe.zip FreeBSD-src-8b81d719e16ff5e6da5d41c553b89216e72864fe.tar.gz |
Add IFF_NEEDSGIANT to IFF_CANTCHANGE, to prevent user-level code
from clearing the IFF_NEEDSGIANT flag on Giant-locked interfaces.
In particular, wpa_supplicant was doing this on USB interfaces,
causing panics when Giant-locked code was then called without Giant.
Submitted by: Alexey Popov
Reviewed by: rwatson
MFC after: 3 days
-rw-r--r-- | sys/net/if.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/net/if.h b/sys/net/if.h index 2d1700a..95566fb 100644 --- a/sys/net/if.h +++ b/sys/net/if.h @@ -163,7 +163,8 @@ struct if_data { /* flags set internally only: */ #define IFF_CANTCHANGE \ (IFF_BROADCAST|IFF_POINTOPOINT|IFF_DRV_RUNNING|IFF_DRV_OACTIVE|\ - IFF_SIMPLEX|IFF_MULTICAST|IFF_ALLMULTI|IFF_SMART|IFF_PROMISC) + IFF_SIMPLEX|IFF_MULTICAST|IFF_ALLMULTI|IFF_SMART|IFF_PROMISC|\ + IFF_NEEDSGIANT) /* * Values for if_link_state. |