s390/qeth: Consider dependency on SWITCHDEV module
Without the SWITCHDEV module, the bridgeport attribute LEARNING_SYNC of the physical device (self) does not provide any functionality. Instead of calling the no-op stub version of the switchdev functions, fail the setting of the attribute with an appropriate message. While at it, also add an error message for the 'not supported by HW' case. Signed-off-by: Alexandra Winter <wintera@linux.ibm.com> Reviewed-by: Julian Wiedmann <jwi@linux.ibm.com> Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bb7032ddc9
commit
953fb4dc4f
|
@ -805,8 +805,6 @@ static int qeth_l2_bridge_setlink(struct net_device *dev, struct nlmsghdr *nlh,
|
|||
|
||||
if (!netif_device_present(dev))
|
||||
return -ENODEV;
|
||||
if (!(priv->brport_hw_features))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
nlmsg_for_each_attr(attr, nlh, sizeof(struct ifinfomsg), rem1) {
|
||||
if (nla_type(attr) == IFLA_PROTINFO) {
|
||||
|
@ -832,6 +830,16 @@ static int qeth_l2_bridge_setlink(struct net_device *dev, struct nlmsghdr *nlh,
|
|||
return 0;
|
||||
if (!bp_tb[IFLA_BRPORT_LEARNING_SYNC])
|
||||
return -EINVAL;
|
||||
if (!(priv->brport_hw_features & BR_LEARNING_SYNC)) {
|
||||
NL_SET_ERR_MSG_ATTR(extack, bp_tb[IFLA_BRPORT_LEARNING_SYNC],
|
||||
"Operation not supported by HW");
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
if (!IS_ENABLED(CONFIG_NET_SWITCHDEV)) {
|
||||
NL_SET_ERR_MSG_ATTR(extack, bp_tb[IFLA_BRPORT_LEARNING_SYNC],
|
||||
"Requires NET_SWITCHDEV");
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
enable = !!nla_get_u8(bp_tb[IFLA_BRPORT_LEARNING_SYNC]);
|
||||
|
||||
if (enable == !!(priv->brport_features & BR_LEARNING_SYNC))
|
||||
|
|
Loading…
Reference in New Issue