From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Mitsyanko Subject: [RFC PATCH net-next 5/5] bridge: verify "HW only" flags can't be set without HW support Date: Fri, 9 Mar 2018 19:03:08 -0800 Message-ID: <20180310030308.12947-6-igor.mitsyanko.os@quantenna.com> References: <20180310030308.12947-1-igor.mitsyanko.os@quantenna.com> Cc: ivecera@redhat.com, igor.mitsyanko.os@quantenna.com, jiri@resnulli.us, sergey.matyukevich.os@quantenna.com, ashevchenko@quantenna.com, smaksimenko@quantenna.com, dlebed@quantenna.com To: bridge@lists.linux-foundation.org, netdev@vger.kernel.org Return-path: In-Reply-To: <20180310030308.12947-1-igor.mitsyanko.os@quantenna.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: bridge-bounces@lists.linux-foundation.org Errors-To: bridge-bounces@lists.linux-foundation.org List-Id: netdev.vger.kernel.org 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 --- 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