Setting bridge flag BR_FLOOD_OFFLOAD only makes sense if underlying port hardware advertises support for it. Make sure kernel checks that condition before allowing to update the flag value.
Signed-off-by: Igor Mitsyanko <igor.mitsyanko...@quantenna.com> --- net/bridge/br_private.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index a6d2f2b..6d2f8b1 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -50,6 +50,9 @@ enum { /* Path to usermode spanning tree program */ #define BR_STP_PROG "/sbin/bridge-stp" +/* Flags that can only be set if HW supports it */ +#define BR_PORT_FLAGS_HW_ONLY BR_FLOOD_OFFLOAD + typedef struct bridge_id bridge_id; typedef struct mac_addr mac_addr; typedef __u16 port_id; @@ -1150,7 +1153,7 @@ static inline int br_switchdev_set_port_flag(struct net_bridge_port *p, unsigned long flags, unsigned long mask) { - return 0; + return mask & BR_PORT_FLAGS_HW_ONLY ? -EOPNOTSUPP : 0; } static inline void -- 2.9.5