From: Vladimir Oltean Date: Wed, 5 Jan 2022 13:18:11 +0000 (+0200) Subject: net: dsa: fix incorrect function pointer check for MRP ring roles X-Git-Tag: accepted/tizen/unified/20230118.172025~3405 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=21bdddc9648b9b44868e496103adfa16d55aaf69;p=platform%2Fkernel%2Flinux-rpi.git net: dsa: fix incorrect function pointer check for MRP ring roles [ Upstream commit ff91e1b68490b97c18c649b769618815eb945f11 ] The cross-chip notifier boilerplate code meant to check the presence of ds->ops->port_mrp_add_ring_role before calling it, but checked ds->ops->port_mrp_add instead, before calling ds->ops->port_mrp_add_ring_role. Therefore, a driver which implements one operation but not the other would trigger a NULL pointer dereference. There isn't any such driver in DSA yet, so there is no reason to backport the change. Issue found through code inspection. Cc: Horatiu Vultur Fixes: c595c4330da0 ("net: dsa: add MRP support") Signed-off-by: Vladimir Oltean Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- diff --git a/net/dsa/switch.c b/net/dsa/switch.c index 44558fb..fb69f2f 100644 --- a/net/dsa/switch.c +++ b/net/dsa/switch.c @@ -644,7 +644,7 @@ static int dsa_switch_mrp_add_ring_role(struct dsa_switch *ds, struct dsa_notifier_mrp_ring_role_info *info) { - if (!ds->ops->port_mrp_add) + if (!ds->ops->port_mrp_add_ring_role) return -EOPNOTSUPP; if (ds->index == info->sw_index) @@ -658,7 +658,7 @@ static int dsa_switch_mrp_del_ring_role(struct dsa_switch *ds, struct dsa_notifier_mrp_ring_role_info *info) { - if (!ds->ops->port_mrp_del) + if (!ds->ops->port_mrp_del_ring_role) return -EOPNOTSUPP; if (ds->index == info->sw_index)