Wolfgang Grandegger wrote:
quoted
+ 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