Re: [PATCH v3 4/4] can: kvaser_usb: Add support for the Usbcan-II family

From: Marc Kleine-Budde
Date: Fri Jan 09 2015 - 09:06:13 EST


On 01/09/2015 04:06 AM, Ahmed S. Darwish wrote:
>>>
>>> cf->can_id |= CAN_ERR_CRTL;
>>> cf->data[1] = CAN_ERR_CRTL_RX_OVERFLOW;
>>>
>>> stats->rx_over_errors++;
>>> stats->rx_errors++;
>>>
>>> netif_rx(skb);
>>>
>>> stats->rx_packets++;
>>> stats->rx_bytes += cf->can_dlc;
>>
>> Another patch would be not to touch cf after netif_rx(), please
>> move the stats handling before calling netif_rx(). Same applies to
>> the kvaser_usb_rx_can_msg() function.

> BTW, is it guaranteed from the SocketCAN stack that netif_rx()

netif_rx() is the generic networking stack already.

> will never return NET_RX_DROPPED? Because if no guarantee
> exists, I guess below fragment cannot be completely correct?

No, it's not guaranteed...

>
> stats->rx_packets++;
> stats->rx_bytes += cf->can_dlc;
> netif_rx(skb);
>
> On the other hand, I don't see evan a single CAN driver checking
> netif_rx() return value, so maybe such a check is an overkill...

A quick look shows that almost no ethernet or wireless drivers take care
about the return value. In case of a RX_DROPPED some increase a drop
counter, though.

Marc

--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |

Attachment: signature.asc
Description: OpenPGP digital signature