Thread (1 message) 1 message, 1 author, 2010-01-11

Re: [PATCH net-next-2.6] can: Unify droping of invalid tx skbs and netdev stats

From: Oliver Hartkopp <hidden>
Date: 2010-01-11 15:44:37

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help