On Thu, Dec 14, 2006 at 12:48:15PM -0800, Stephen Hemminger wrote: > Move the dev_kfree_skb_irq function from netdevice.h to dev.c > for a couple of reasons. Primarily, I want to make softnet_data > local to dev.c; also this function is called 300+ places already. > > Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]> > > --- linux-2.6.20-rc1.orig/include/linux/netdevice.h > +++ linux-2.6.20-rc1/include/linux/netdevice.h > @@ -676,20 +676,7 @@ static inline int netif_running(const st > /* Use this variant when it is known for sure that it > * is executing from interrupt context. > */ > -static inline void dev_kfree_skb_irq(struct sk_buff *skb) > -{ > - if (atomic_dec_and_test(&skb->users)) { > - struct softnet_data *sd; > - unsigned long flags; > - > - local_irq_save(flags); > - sd = &__get_cpu_var(softnet_data); > - skb->next = sd->completion_queue; > - sd->completion_queue = skb; > - raise_softirq_irqoff(NET_TX_SOFTIRQ); > - local_irq_restore(flags); > - } > -} > +extern void dev_kfree_skb_irq(struct sk_buff *skb);
Maybe you should only move the slowpath out of line ala: static inline void dev_kfree_skb_irq(struct sk_buff *skb) { if (atomic_dec_and_test(&skb->users)) __dev_kfree_skb_irq(skb); } - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html