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

Reply via email to