Wolfgang Grandegger wrote:
>>
>> + if (skb->len != sizeof(*cf) || cf->can_dlc > 8) {
>> + kfree_skb(skb);
>> + dev->stats.tx_dropped++;
>> + return NETDEV_TX_OK;
>> + }
>
> A static inline function "invalid_can_skb(skb)" (or "no_can_skb") would
> be handy here:
>
> if (invalid_can_skb(skb)) {
> kfree_skb(skb);
> dev->stats.tx_dropped++;
> return NETDEV_TX_OK;
> }
Another idea could be:
if (can_dropped_invalid_skb(skb, dev))
return NETDEV_TX_OK;
with
static inline int can_dropped_invalid_skb(struct sk_buff *skb, struct
net_device *dev)
{
const struct can_frame *cf = (struct can_frame *)skb->data;
if (unlikely(skb->len != sizeof(*cf) || cf->can_dlc > 8)) {
kfree_skb(skb);
dev->stats.tx_dropped++;
return 1;
}
return 0;
}
Any preferences?
Regards,
Oliver
_______________________________________________
Socketcan-core mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/socketcan-core