All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] net: ocelot: Extend MRP
@ 2021-03-18 12:07 Dan Carpenter
  2021-03-18 12:11 ` Dan Carpenter
  0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2021-03-18 12:07 UTC (permalink / raw)
  To: horatiu.vultur; +Cc: kernel-janitors

Hello Horatiu Vultur,

This is a semi-automatic email about new static checker warnings.

The patch 7c588c3e96e9: "net: ocelot: Extend MRP" from Mar 16, 2021,
leads to the following Smatch complaint:

    drivers/net/ethernet/mscc/ocelot_mrp.c:180 ocelot_mrp_del()
    error: we previously assumed 'ocelot_port' could be null (see line 173)

drivers/net/ethernet/mscc/ocelot_mrp.c
   153  int ocelot_mrp_del(struct ocelot *ocelot, int port,
   154                     const struct switchdev_obj_mrp *mrp)
   155  {
   156          struct ocelot_port *ocelot_port = ocelot->ports[port];
   157          int i;
   158  
   159          if (!ocelot_port)
   160                  return -EOPNOTSUPP;
   161  
   162          if (ocelot_port->mrp_ring_id != mrp->ring_id)
   163                  return 0;
   164  
   165          ocelot_mrp_del_vcap(ocelot, port);
   166          ocelot_mrp_del_vcap(ocelot, port + ocelot->num_phys_ports);
   167  
   168          ocelot_port->mrp_ring_id = 0;
   169  
   170          for (i = 0; i < ocelot->num_phys_ports; ++i) {

This loop tries to verify that all the ports have ring_id == 0 otherwise
we return.  It's slightly confusing why this matters.

   171                  ocelot_port = ocelot->ports[i];
   172	
   173			if (!ocelot_port)
                             ^^^^^^^^^^^
Assume the last element of the array is NULL

   174				continue;
   175	
   176			if (ocelot_port->mrp_ring_id != 0)
   177				goto out;

This would be more clear if instead of a "goto out;" it just did a
direct "return 0;"

   178		}
   179	
   180		ocelot_mrp_del_mac(ocelot, ocelot_port);

We delete the last mac address of all the ring_ids are zero but if the
last port is zero it will crash.

   181	out:
   182		return 0;

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-03-18 18:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-18 12:07 [bug report] net: ocelot: Extend MRP Dan Carpenter
2021-03-18 12:11 ` Dan Carpenter
2021-03-18 18:57   ` Horatiu Vultur

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.