diff options
Diffstat (limited to 'net/core/devlink.c')
| -rw-r--r-- | net/core/devlink.c | 25 | 
1 files changed, 19 insertions, 6 deletions
diff --git a/net/core/devlink.c b/net/core/devlink.c index 2cafbc808b09..47f14a2f25fb 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -1065,7 +1065,9 @@ static int devlink_nl_cmd_sb_pool_get_dumpit(struct sk_buff *msg,  						   devlink_sb,  						   NETLINK_CB(cb->skb).portid,  						   cb->nlh->nlmsg_seq); -			if (err && err != -EOPNOTSUPP) { +			if (err == -EOPNOTSUPP) { +				err = 0; +			} else if (err) {  				mutex_unlock(&devlink->lock);  				goto out;  			} @@ -1266,7 +1268,9 @@ static int devlink_nl_cmd_sb_port_pool_get_dumpit(struct sk_buff *msg,  							devlink, devlink_sb,  							NETLINK_CB(cb->skb).portid,  							cb->nlh->nlmsg_seq); -			if (err && err != -EOPNOTSUPP) { +			if (err == -EOPNOTSUPP) { +				err = 0; +			} else if (err) {  				mutex_unlock(&devlink->lock);  				goto out;  			} @@ -1498,7 +1502,9 @@ devlink_nl_cmd_sb_tc_pool_bind_get_dumpit(struct sk_buff *msg,  							   devlink_sb,  							   NETLINK_CB(cb->skb).portid,  							   cb->nlh->nlmsg_seq); -			if (err && err != -EOPNOTSUPP) { +			if (err == -EOPNOTSUPP) { +				err = 0; +			} else if (err) {  				mutex_unlock(&devlink->lock);  				goto out;  			} @@ -3299,7 +3305,9 @@ static int devlink_nl_cmd_param_get_dumpit(struct sk_buff *msg,  						    NETLINK_CB(cb->skb).portid,  						    cb->nlh->nlmsg_seq,  						    NLM_F_MULTI); -			if (err && err != -EOPNOTSUPP) { +			if (err == -EOPNOTSUPP) { +				err = 0; +			} else if (err) {  				mutex_unlock(&devlink->lock);  				goto out;  			} @@ -3569,7 +3577,9 @@ static int devlink_nl_cmd_port_param_get_dumpit(struct sk_buff *msg,  						NETLINK_CB(cb->skb).portid,  						cb->nlh->nlmsg_seq,  						NLM_F_MULTI); -				if (err && err != -EOPNOTSUPP) { +				if (err == -EOPNOTSUPP) { +					err = 0; +				} else if (err) {  					mutex_unlock(&devlink->lock);  					goto out;  				} @@ -4518,7 +4528,9 @@ static int devlink_nl_cmd_info_get_dumpit(struct sk_buff *msg,  					   cb->nlh->nlmsg_seq, NLM_F_MULTI,  					   cb->extack);  		mutex_unlock(&devlink->lock); -		if (err && err != -EOPNOTSUPP) +		if (err == -EOPNOTSUPP) +			err = 0; +		else if (err)  			break;  		idx++;  	} @@ -8567,6 +8579,7 @@ static const struct devlink_trap_group devlink_trap_group_generic[] = {  	DEVLINK_TRAP_GROUP(PIM),  	DEVLINK_TRAP_GROUP(UC_LB),  	DEVLINK_TRAP_GROUP(LOCAL_DELIVERY), +	DEVLINK_TRAP_GROUP(EXTERNAL_DELIVERY),  	DEVLINK_TRAP_GROUP(IPV6),  	DEVLINK_TRAP_GROUP(PTP_EVENT),  	DEVLINK_TRAP_GROUP(PTP_GENERAL),  | 
