Files
ubports_kernel_google_msm/include/linux
Patrick McHardy 9b22ea5609 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 <ramon.casellas@cttc.es>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-11-04 14:49:57 -08:00
..
2008-10-22 01:19:37 +02:00
2008-10-20 09:03:12 -07:00
2008-10-13 21:51:51 +01:00
2008-10-30 11:38:47 -07:00
2008-10-15 15:54:56 -04:00
2008-09-12 16:30:20 -07:00
2008-10-20 11:01:52 -07:00
2008-08-12 10:13:38 +10:00
2008-10-16 11:21:51 -07:00
2008-07-24 10:47:24 -07:00
2008-10-20 08:52:42 -07:00
2008-10-20 08:52:32 -07:00
2008-10-30 11:38:45 -07:00
2008-10-16 11:21:32 -07:00
2008-07-25 10:53:33 -07:00
2008-10-14 10:35:08 +02:00
2008-07-20 17:12:38 -07:00
2008-07-22 17:30:57 -07:00
2008-08-28 11:49:15 -05:00
2008-07-21 12:00:37 +01:00
2008-10-18 14:29:15 +01:00
2008-10-16 16:53:13 +02:00
2008-10-12 12:05:55 +02:00
2008-07-24 10:47:29 -07:00
2008-08-20 13:19:51 -07:00
2008-10-08 19:44:18 -04:00
2008-08-12 16:07:31 -07:00
2008-07-26 20:53:20 -04:00
2008-10-30 11:38:45 -07:00
2008-10-23 16:00:24 +02:00
2008-10-16 16:08:57 +02:00
2008-07-20 17:12:36 -07:00
2008-09-22 07:29:31 +01:00
2008-10-16 11:21:40 -07:00
2008-07-20 17:12:36 -07:00
2008-10-14 23:51:02 +02:00
2008-07-31 18:45:41 +02:00
2008-08-08 15:13:27 +01:00
2008-10-22 20:21:33 +02:00
2008-10-16 11:21:38 -07:00
2008-07-25 10:53:42 -07:00
2008-07-18 18:05:19 -07:00
2008-10-09 11:59:55 -07:00
2008-09-22 21:28:11 -07:00
2008-08-02 18:36:10 +01:00
2008-10-07 15:34:37 -07:00
2008-10-29 22:02:09 +01:00
2008-10-18 14:29:15 +01:00
2008-10-15 14:24:08 +02:00
2008-10-18 14:05:18 +02:00
2008-07-20 17:12:37 -07:00
2008-10-30 11:38:47 -07:00
2008-10-12 11:44:37 -07:00
2008-07-24 10:47:17 -07:00
2008-10-28 14:22:15 +02:00
2008-07-23 09:49:56 +01:00
2008-10-20 22:34:12 +01:00
2008-10-14 10:35:08 +02:00
2008-09-01 09:47:16 +02:00
2008-08-11 15:25:07 +02:00
2008-10-13 09:47:43 +11:00
2008-10-09 08:56:06 +02:00
2008-07-27 01:56:38 +02:00
2008-07-27 01:54:58 +02:00
2008-08-02 16:28:50 +02:00
2008-10-20 08:52:31 -07:00
2008-10-20 08:52:30 -07:00
2008-07-28 16:30:21 -07:00
2008-10-22 10:00:23 +11:00
2008-07-25 10:53:34 -07:00
2008-08-26 10:37:20 -07:00
2008-10-01 07:03:24 -07:00
2008-10-17 13:06:45 -04:00
2008-10-20 08:52:32 -07:00
2008-10-20 08:50:26 -07:00
2008-10-16 11:21:49 -07:00
2008-10-22 16:42:43 -07:00
2008-10-08 16:38:41 -07:00
2008-08-05 14:33:50 -07:00
2008-10-23 00:11:07 -04:00
2008-10-23 18:54:05 +04:00
2008-10-20 08:52:39 -07:00
2008-10-16 11:21:46 -07:00
2008-10-16 11:21:46 -07:00
2008-10-02 15:53:13 -07:00
2008-07-25 10:53:29 -07:00
2008-08-15 17:03:06 +02:00
2008-08-22 16:29:57 -04:00
2008-10-20 08:52:40 -07:00
2008-09-22 19:51:15 -07:00
2008-10-30 11:38:47 -07:00
2008-07-25 10:53:42 -07:00
2008-07-24 08:31:21 -04:00
2008-10-07 14:22:33 -07:00
2008-08-05 09:28:47 +03:00
2008-07-25 10:53:30 -07:00
2008-09-09 17:41:42 +02:00
2008-08-11 09:30:24 +02:00
2008-07-20 17:12:37 -07:00
2008-10-20 08:52:31 -07:00
2008-10-16 11:21:47 -07:00
2008-10-07 14:43:06 -07:00
2008-10-16 11:21:45 -07:00
2008-10-13 09:51:40 -07:00
2008-09-05 14:39:38 -07:00
2008-07-20 17:12:34 -07:00
2008-10-17 14:41:02 -07:00
2008-07-21 15:15:55 -07:00
2008-10-16 11:21:31 -07:00
2008-09-17 16:54:23 +01:00