include/linux/if_vlan.h |    7 +++++++
 net/8021q/vlan_core.c   |   46 +++++++++++++++++++++++++++++++++-------------
 net/core/dev.c          |    3 +++
 3 files changed, 43 insertions(+), 13 deletions(-)

New commits:
commit ee5c789d1a59f44f64fa068d6f05bef4c1eedd80
Author: Patrick McHardy <[email protected]>
Date:   Tue Nov 4 14:49:57 2008 -0800

    net: fix packet socket delivery in rx irq handler
    
    The changes to deliver hardware accelerated VLAN packets to packet
    sockets (commit bc1d0411) caused a warning for non-NAPI drivers.
    The __vlan_hwaccel_rx() function is called directly from the drivers
    RX function, for non-NAPI drivers that means its still in RX IRQ
    context:
    
    [   27.779463] ------------[ cut here ]------------
    [   27.779509] WARNING: at kernel/softirq.c:136 local_bh_enable+0x37/0x81()
    ...
    [   27.782520]  [<c0264755>] netif_nit_deliver+0x5b/0x75
    [   27.782590]  [<c02bba83>] __vlan_hwaccel_rx+0x79/0x162
    [   27.782664]  [<f8851c1d>] atl1_intr+0x9a9/0xa7c [atl1]
    [   27.782738]  [<c0155b17>] handle_IRQ_event+0x23/0x51
    [   27.782808]  [<c015692e>] handle_edge_irq+0xc2/0x102
    [   27.782878]  [<c0105fd5>] do_IRQ+0x4d/0x64
    
    Split hardware accelerated VLAN reception into two parts to fix this:
    
    - __vlan_hwaccel_rx just stores the VLAN TCI and performs the VLAN
      device lookup, then calls netif_receive_skb()/netif_rx()
    
    - vlan_hwaccel_do_receive(), which is invoked by netif_receive_skb()
      in softirq context, performs the real reception and delivery to
      packet sockets.
    
    Reported-and-tested-by: Ramon Casellas <[email protected]>
    Signed-off-by: Patrick McHardy <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>

http://suva.vyatta.com/git/?p=linux-vyatta.git;a=commitdiff;h=ee5c789d1a59f44f64fa068d6f05bef4c1eedd80
_______________________________________________
svn mailing list
[email protected]
http://mailman.vyatta.com/mailman/listinfo/svn

Reply via email to