Re: [net-next 11/13] can: dev: extend struct can_skb_priv to hold CAN frame length

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/10/21 7:52 AM, Vincent MAILHOL wrote:
[...]

>> @@ -118,7 +123,7 @@ unsigned int can_get_echo_skb(struct net_device *dev, unsigned int idx)
>>         struct sk_buff *skb;
>>         u8 len;
>>
>> -       skb = __can_get_echo_skb(dev, idx, &len);
>> +       skb = __can_get_echo_skb(dev, idx, &len, NULL);
>>         if (!skb)
>>                 return 0;
>>
> 
> The can_skb_priv->frame_len is smart. Nice change :)

tnx :)

> I have one knit pick concerning the symmetry between
> can_put_echo_skb() and can_get_echo_skb().
> 
> My current understanding is that:
>   * In the tx branch, we need to manually set can_skb_priv->frame_len. Example:
>         can_skb_prv(skb)->frame_len = can_skb_get_frame_len(skb);
>         can_put_echo_skb(skb, netdev, skb_idx);

ack

>   * In the rx branch, it is accessed through the function can_get_echo_skb():
>         unsigned int frame_len;
>         can_get_echo_skb(skb, netdev, skb_idx, &frame_len);

ack

> Please correct me if my understanding is wrong.
> 
> I think that you did not modify can_put_echo_skb() so that the
> drivers which do not implement the BQL would not have to call
> can_skb_get_frame_len(skb) and thus saving computing resources. I
> also understand that the motivation to modify can_put_echo_skb()
> is to factorise the code.
> 
> But the absence of symmetry in the final result bothers me a
> bit. Reading manually can_skb_prv(skb)->frame_len by hand would
> look as below, which I think is short enough not to be
> factorized within can_get_echo_skb():
>         struct sk_buff *skb = priv->echo_skb[skb_idx];
>         unsigned int frame_len = can_skb_prv(skb)->frame_len;
>         can_get_echo_skb(skb, netdev, skb_idx);
> 
> So at the end, I would suggest not to modify can_get_echo_skb()
> so that it is a better "mirror" of can_put_echo_skb().

That is the logical next step, which I didn't take :)

regards,
Marc

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

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux