linux/drivers/net
Ming Lei f8e1d0803d ath9k-htc: fix lockdep warning and kernel warning after unplugging ar9271 usb device
This patch fixes two warnings below after unplugging ar9271 usb device:
	-one is a kernel warning[1]
	-another is a lockdep warning[2]

The root reason is that __skb_queue_purge can't be executed in hardirq
context, so the patch forks ath9k_skb_queue_purge(ath9k version of _skb_queue_purge),
which frees skb with dev_kfree_skb_any which can be run in hardirq
context safely, then prevent the lockdep warning and kernel warning after
unplugging ar9271 usb device.

[1] kernel warning
[  602.894005] ------------[ cut here ]------------
[  602.894005] WARNING: at net/core/skbuff.c:398 skb_release_head_state+0x71/0x87()
[  602.894005] Hardware name: 6475EK2
[  602.894005] Modules linked in: ath9k_htc ath9k ath9k_common ath9k_hw ath bridge stp llc sunrpc ipv6 cpufreq_ondemand acpi_cpufreq freq_table kvm_intel kvm arc4 ecb mac80211 snd_hda_codec_conexant snd_hda_intel snd_hda_codec snd_hwdep thinkpad_acpi snd_pcm snd_timer hwmon iTCO_wdt snd e1000e pcspkr i2c_i801 usbhid iTCO_vendor_support wmi cfg80211 yenta_socket rsrc_nonstatic pata_acpi snd_page_alloc soundcore uhci_hcd ohci_hcd ehci_hcd usbcore i915 drm_kms_helper drm i2c_algo_bit i2c_core video output [last unloaded: ath]
[  602.894005] Pid: 2506, comm: ping Tainted: G        W  2.6.34-rc3-wl #20
[  602.894005] Call Trace:
[  602.894005]  <IRQ>  [<ffffffff8104a41c>] warn_slowpath_common+0x7c/0x94
[  602.894005]  [<ffffffffa022f398>] ? __skb_queue_purge+0x43/0x4a [ath9k_htc]
[  602.894005]  [<ffffffff8104a448>] warn_slowpath_null+0x14/0x16
[  602.894005]  [<ffffffff813269c1>] skb_release_head_state+0x71/0x87
[  602.894005]  [<ffffffff8132829a>] __kfree_skb+0x16/0x81
[  602.894005]  [<ffffffff813283b2>] kfree_skb+0x7e/0x86
[  602.894005]  [<ffffffffa022f398>] __skb_queue_purge+0x43/0x4a [ath9k_htc]
[  602.894005]  [<ffffffffa022f560>] __hif_usb_tx+0x1c1/0x21b [ath9k_htc]
[  602.894005]  [<ffffffffa022f73c>] hif_usb_tx_cb+0x12f/0x154 [ath9k_htc]
[  602.894005]  [<ffffffffa00d2fbe>] usb_hcd_giveback_urb+0x91/0xc5 [usbcore]
[  602.894005]  [<ffffffffa00f6c34>] ehci_urb_done+0x7a/0x8b [ehci_hcd]
[  602.894005]  [<ffffffffa00f6f33>] qh_completions+0x2ee/0x376 [ehci_hcd]
[  602.894005]  [<ffffffffa00f8ba5>] ehci_work+0x95/0x76e [ehci_hcd]
[  602.894005]  [<ffffffffa00fa5ae>] ? ehci_irq+0x2f/0x1d4 [ehci_hcd]
[  602.894005]  [<ffffffffa00fa725>] ehci_irq+0x1a6/0x1d4 [ehci_hcd]
[  602.894005]  [<ffffffff810a6d18>] ? __rcu_process_callbacks+0x7a/0x2df
[  602.894005]  [<ffffffff810a47a4>] ? handle_fasteoi_irq+0x22/0xd2
[  602.894005]  [<ffffffffa00d268d>] usb_hcd_irq+0x4a/0xa7 [usbcore]
[  602.894005]  [<ffffffff810a2853>] handle_IRQ_event+0x77/0x14f
[  602.894005]  [<ffffffff813285ce>] ? skb_release_data+0xc9/0xce
[  602.894005]  [<ffffffff810a4814>] handle_fasteoi_irq+0x92/0xd2
[  602.894005]  [<ffffffff8100c4fb>] handle_irq+0x88/0x91
[  602.894005]  [<ffffffff8100baed>] do_IRQ+0x63/0xc9
[  602.894005]  [<ffffffff81354245>] ? ip_flush_pending_frames+0x4d/0x5c
[  602.894005]  [<ffffffff813ba993>] ret_from_intr+0x0/0x16
[  602.894005]  <EOI>  [<ffffffff811095fe>] ? __delete_object+0x5a/0xb1
[  602.894005]  [<ffffffff813ba5f5>] ? _raw_write_unlock_irqrestore+0x47/0x7e
[  602.894005]  [<ffffffff813ba5fa>] ? _raw_write_unlock_irqrestore+0x4c/0x7e
[  602.894005]  [<ffffffff811095fe>] __delete_object+0x5a/0xb1
[  602.894005]  [<ffffffff81109814>] delete_object_full+0x25/0x31
[  602.894005]  [<ffffffff813a60c0>] kmemleak_free+0x26/0x45
[  602.894005]  [<ffffffff810ff517>] kfree+0xaa/0x149
[  602.894005]  [<ffffffff81323fb7>] ? sock_def_write_space+0x84/0x89
[  602.894005]  [<ffffffff81354245>] ? ip_flush_pending_frames+0x4d/0x5c
[  602.894005]  [<ffffffff813285ce>] skb_release_data+0xc9/0xce
[  602.894005]  [<ffffffff813282a2>] __kfree_skb+0x1e/0x81
[  602.894005]  [<ffffffff813283b2>] kfree_skb+0x7e/0x86
[  602.894005]  [<ffffffff81354245>] ip_flush_pending_frames+0x4d/0x5c
[  602.894005]  [<ffffffff81370c1f>] raw_sendmsg+0x653/0x709
[  602.894005]  [<ffffffff81379e31>] inet_sendmsg+0x54/0x5d
[  602.894005]  [<ffffffff813207a2>] ? sock_recvmsg+0xc6/0xdf
[  602.894005]  [<ffffffff813208c1>] sock_sendmsg+0xc0/0xd9
[  602.894005]  [<ffffffff810e13b4>] ? might_fault+0x68/0xb8
[  602.894005]  [<ffffffff810e13fd>] ? might_fault+0xb1/0xb8
[  602.894005]  [<ffffffff8132a1c3>] ? copy_from_user+0x2f/0x31
[  602.894005]  [<ffffffff8132a5b3>] ? verify_iovec+0x54/0x91
[  602.894005]  [<ffffffff81320d41>] sys_sendmsg+0x1da/0x241
[  602.894005]  [<ffffffff8103d327>] ? finish_task_switch+0x0/0xc9
[  602.894005]  [<ffffffff8103d327>] ? finish_task_switch+0x0/0xc9
[  602.894005]  [<ffffffff8107642e>] ? trace_hardirqs_on_caller+0x16/0x150
[  602.894005]  [<ffffffff813ba27d>] ? _raw_spin_unlock_irq+0x56/0x63
[  602.894005]  [<ffffffff8103d3cb>] ? finish_task_switch+0xa4/0xc9
[  602.894005]  [<ffffffff8103d327>] ? finish_task_switch+0x0/0xc9
[  602.894005]  [<ffffffff810357fe>] ? need_resched+0x23/0x2d
[  602.894005]  [<ffffffff8107642e>] ? trace_hardirqs_on_caller+0x16/0x150
[  602.894005]  [<ffffffff813b9750>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[  602.894005]  [<ffffffff81009c02>] system_call_fastpath+0x16/0x1b
[  602.894005] ---[ end trace 91ba2d8dc7826839 ]---

[2] lockdep warning
[  169.363215] ======================================================
[  169.365390] [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ]
[  169.366334] 2.6.34-rc3-wl #20
[  169.366872] ------------------------------------------------------
[  169.366872] khubd/78 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
[  169.366872]  (clock-AF_INET){++.?..}, at: [<ffffffff81323f51>] sock_def_write_space+0x1e/0x89
[  169.366872]
[  169.366872] and this task is already holding:
[  169.366872]  (&(&hif_dev->tx.tx_lock)->rlock){-.-...}, at: [<ffffffffa03715b0>] hif_usb_stop+0x24/0x53 [ath9k_htc]
[  169.366872] which would create a new lock dependency:
[  169.366872]  (&(&hif_dev->tx.tx_lock)->rlock){-.-...} -> (clock-AF_INET){++.?..}
[  169.366872]
[  169.366872] but this new dependency connects a HARDIRQ-irq-safe lock:
[  169.366872]  (&(&hif_dev->tx.tx_lock)->rlock){-.-...}
[  169.366872] ... which became HARDIRQ-irq-safe at:
[  169.366872]   [<ffffffff810772d5>] __lock_acquire+0x2c6/0xd2b
[  169.366872]   [<ffffffff8107866d>] lock_acquire+0xec/0x119
[  169.366872]   [<ffffffff813b99bb>] _raw_spin_lock+0x40/0x73
[  169.366872]   [<ffffffffa037163d>] hif_usb_tx_cb+0x5e/0x154 [ath9k_htc]
[  169.366872]   [<ffffffffa00d2fbe>] usb_hcd_giveback_urb+0x91/0xc5 [usbcore]
[  169.366872]   [<ffffffffa00f6c34>] ehci_urb_done+0x7a/0x8b [ehci_hcd]
[  169.366872]   [<ffffffffa00f6f33>] qh_completions+0x2ee/0x376 [ehci_hcd]
[  169.366872]   [<ffffffffa00f8ba5>] ehci_work+0x95/0x76e [ehci_hcd]
[  169.366872]   [<ffffffffa00fa725>] ehci_irq+0x1a6/0x1d4 [ehci_hcd]
[  169.366872]   [<ffffffffa00d268d>] usb_hcd_irq+0x4a/0xa7 [usbcore]
[  169.366872]   [<ffffffff810a2853>] handle_IRQ_event+0x77/0x14f
[  169.366872]   [<ffffffff810a4814>] handle_fasteoi_irq+0x92/0xd2
[  169.366872]   [<ffffffff8100c4fb>] handle_irq+0x88/0x91
[  169.366872]   [<ffffffff8100baed>] do_IRQ+0x63/0xc9
[  169.366872]   [<ffffffff813ba993>] ret_from_intr+0x0/0x16
[  169.366872]   [<ffffffff8130f6ee>] cpuidle_idle_call+0xa7/0x115
[  169.366872]   [<ffffffff81008c4f>] cpu_idle+0x68/0xc4
[  169.366872]   [<ffffffff813a41e0>] rest_init+0x104/0x10b
[  169.366872]   [<ffffffff81899db3>] start_kernel+0x3f1/0x3fc
[  169.366872]   [<ffffffff818992c8>] x86_64_start_reservations+0xb3/0xb7
[  169.366872]   [<ffffffff818993c4>] x86_64_start_kernel+0xf8/0x107
[  169.366872]
[  169.366872] to a HARDIRQ-irq-unsafe lock:
[  169.366872]  (clock-AF_INET){++.?..}
[  169.366872] ... which became HARDIRQ-irq-unsafe at:
[  169.366872] ...  [<ffffffff81077349>] __lock_acquire+0x33a/0xd2b
[  169.366872]   [<ffffffff8107866d>] lock_acquire+0xec/0x119
[  169.366872]   [<ffffffff813b9d07>] _raw_write_lock_bh+0x45/0x7a
[  169.366872]   [<ffffffff8135cf14>] tcp_close+0x165/0x34d
[  169.366872]   [<ffffffff8137aced>] inet_release+0x55/0x5c
[  169.366872]   [<ffffffff81321350>] sock_release+0x1f/0x6e
[  169.366872]   [<ffffffff813213c6>] sock_close+0x27/0x2b
[  169.366872]   [<ffffffff8110dd45>] __fput+0x125/0x1ca
[  169.366872]   [<ffffffff8110de04>] fput+0x1a/0x1c
[  169.366872]   [<ffffffff8110adc9>] filp_close+0x68/0x72
[  169.366872]   [<ffffffff8110ae80>] sys_close+0xad/0xe7
[  169.366872]   [<ffffffff81009c02>] system_call_fastpath+0x16/0x1b

(Trimmed at the "other info that might help us debug this" line in
the interest of brevity... -- JWL)

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Acked-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-04-14 14:58:37 -04:00
..
appletalk net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
arcnet drivers/net/: use DEFINE_PCI_DEVICE_TABLE() 2010-01-07 23:54:26 -08:00
arm fix a race in ks8695_poll 2010-03-07 15:25:49 -08:00
atl1c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
atl1e net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
atlx net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
benet be2net: remove unused code in be_load_fw 2010-03-08 10:45:28 -08:00
bonding bonding: fix device leak on error in bond_create() 2010-02-27 02:52:05 -08:00
can can: fix bfin_can build error after alloc_candev() change 2010-03-08 12:13:57 -08:00
chelsio drivers/net/chelsio: Use pr_<level>, netif_msg_<type> 2010-02-26 01:38:34 -08:00
cris net: convert multiple drivers to use netdev_for_each_mc_addr 2010-02-17 13:27:12 -08:00
cxgb3 cxgb3: fix hot plug removal crash 2010-03-04 00:53:54 -08:00
e1000 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-02-25 23:22:42 -08:00
e1000e e1000e: fix packet corruption and tx hang during NFSv2 2010-03-05 14:00:18 -08:00
ehea net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
enic net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
fs_enet fs_enet: add FEC TX buffer alignment workaround for MPC5121 2010-02-27 02:34:36 -08:00
hamradio hamradio: avoid null deref v3 2010-01-03 21:42:50 -08:00
ibm_newemac net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
igb net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
igbvf net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
irda irda-usb: add error handling and fix leak 2010-03-07 15:25:51 -08:00
ixgb net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
ixgbe ixgbe: move TC_PRIO_CONTROL check into ixgbe_select_queue() 2010-02-27 03:28:24 -08:00
ixgbevf net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
ixp2000 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-13 12:55:20 -07:00
mlx4 mlx4: replace the dma_sync_single_range_for_cpu/device API 2010-02-19 13:19:51 -08:00
myri10ge myri10ge: optimize 4k-boundary check when stocking rx pages 2010-02-26 04:18:34 -08:00
netxen net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
octeon octeon: convert to use netdev_for_each_mc_addr 2010-02-26 02:08:33 -08:00
pcmcia Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-02-28 19:23:06 -08:00
phy tg3: Push phylib definitions to phylib 2010-02-17 17:27:40 -08:00
qlcnic qlcnic: remove extra space from board names 2010-03-08 10:45:30 -08:00
qlge net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
sfc Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-02-25 23:22:42 -08:00
skfp net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
stmmac net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
tokenring tokenring: convert to use netdev_for_each_mc_addr 2010-02-18 14:47:51 -08:00
tulip tulip: convert to use netdev_for_each_mc_addr 2010-02-18 14:47:50 -08:00
usb another pegasus usb net device 2010-03-07 15:25:51 -08:00
vmxnet3 net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
vxge net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
wan drivers/net/: use DEFINE_PCI_DEVICE_TABLE() 2010-01-07 23:54:26 -08:00
wimax Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-01-28 06:12:38 -08:00
wireless ath9k-htc: fix lockdep warning and kernel warning after unplugging ar9271 usb device 2010-04-14 14:58:37 -04:00
3c59x.c 3c5xx: use netdev_mc_* helpers 2010-02-18 14:47:48 -08:00
3c501.c 3c5xx: use netdev_mc_* helpers 2010-02-18 14:47:48 -08:00
3c501.h 3com: convert drivers to netdev_tx_t 2009-09-01 01:13:50 -07:00
3c503.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
3c503.h
3c505.c 3c5xx: use netdev_mc_* helpers 2010-02-18 14:47:48 -08:00
3c505.h
3c507.c Fix MAC address access in 3c507, ibmlana, pcnet32 and libertas 2009-12-26 20:24:45 -08:00
3c509.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
3c515.c 3c5xx: use netdev_mc_* helpers 2010-02-18 14:47:48 -08:00
3c523.c 3c5xx: use netdev_mc_* helpers 2010-02-18 14:47:48 -08:00
3c523.h
3c527.c 3c5xx: use netdev_mc_* helpers 2010-02-18 14:47:48 -08:00
3c527.h
7990.c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
7990.h
8139cp.c drivers/net/8139cp.c: Use (pr|netdev|netif)_<level> macro helpers 2010-02-17 17:45:18 -08:00
8139too.c drivers/net/8139too.c: Use (pr|netdev|netif)_<level> macro helpers 2010-02-17 17:45:18 -08:00
8390.c netdev: convert bulk of drivers to netdev_tx_t 2009-09-01 01:14:07 -07:00
8390.h netdev: convert bulk of drivers to netdev_tx_t 2009-09-01 01:14:07 -07:00
8390p.c netdev: convert bulk of drivers to netdev_tx_t 2009-09-01 01:14:07 -07:00
82596.c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
a2065.c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
a2065.h
ac3200.c
acenic.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
acenic.h netdev: convert bulk of drivers to netdev_tx_t 2009-09-01 01:14:07 -07:00
amd8111e.c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
amd8111e.h net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
apne.c
ariadne.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
ariadne.h tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
at1700.c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
atarilance.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
atp.c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
atp.h
au1000_eth.c Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-02-28 19:23:06 -08:00
au1000_eth.h NET: au1000-eth: Convert to platform_driver model 2010-02-27 12:53:02 +01:00
ax88796.c drivers/net: Correct NULL test 2010-02-08 22:44:18 -08:00
b44.c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
b44.h
bcm63xx_enet.c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
bcm63xx_enet.h MIPS: BCM63xx: Add integrated ethernet mac support. 2009-09-17 20:07:53 +02:00
bfin_mac.c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
bfin_mac.h
bmac.c net: convert multiple drivers to use netdev_for_each_mc_addr, part3 2010-02-22 15:45:51 -08:00
bmac.h
bnx2_fw.h
bnx2.c bnx2: Remove now useless VPD code 2010-02-28 00:43:33 -08:00
bnx2.h bnx2: Adjust flow control water marks. 2010-02-16 15:19:03 -08:00
bnx2x_dump.h bnx2x: Beautify bnx2x_dump.h 2009-08-12 23:03:00 -07:00
bnx2x_fw_defs.h bnx2x: Use firmware 5.2.13 2010-02-17 13:35:44 -08:00
bnx2x_fw_file_hdr.h
bnx2x_hsi.h bnx2x: Use firmware 5.2.13 2010-02-17 13:35:44 -08:00
bnx2x_init_ops.h bnx2x: Use firmware 5.2.13 2010-02-17 13:35:44 -08:00
bnx2x_init.h bnx2x: Re-factor the initialization code 2009-08-12 23:02:59 -07:00
bnx2x_link.c drivers/net/bnx2x: Use (pr|netdev|netif)_<level> macro helpers 2010-02-17 17:45:20 -08:00
bnx2x_link.h bnx2x: Fix CL73 autoneg issues 2009-11-05 20:00:29 -08:00
bnx2x_main.c bnx2x: Tx barriers and locks 2010-02-28 18:37:12 -08:00
bnx2x_reg.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
bnx2x.h drivers/net/bnx2x: Use (pr|netdev|netif)_<level> macro helpers 2010-02-17 17:45:20 -08:00
bsd_comp.c
cassini.c cassini: fix off by one 2010-03-03 01:04:39 -08:00
cassini.h
cnic_defs.h cnic: Update version to 2.1.1. 2010-02-26 02:10:14 -08:00
cnic_if.h cnic: Update version to 2.1.1. 2010-02-26 02:10:14 -08:00
cnic.c cnic: Update version to 2.1.1. 2010-02-26 02:10:14 -08:00
cnic.h cnic: Update version to 2.1.1. 2010-02-26 02:10:14 -08:00
cpmac.c cpmac: bump version to 0.5.2 2010-03-07 15:25:53 -08:00
cs89x0.c net: convert multiple drivers to use netdev_for_each_mc_addr 2010-02-17 13:27:12 -08:00
cs89x0.h
davinci_emac.c davinci_emac: off by one 2010-03-03 01:04:39 -08:00
de600.c net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functions 2009-07-05 19:16:04 -07:00
de600.h
de620.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
de620.h
declance.c net: convert multiple drivers to use netdev_for_each_mc_addr 2010-02-17 13:27:12 -08:00
defxx.c net: convert multiple drivers to use netdev_for_each_mc_addr 2010-02-17 13:27:12 -08:00
defxx.h
depca.c depca: remove forgotten needless inicialization 2010-02-18 14:47:47 -08:00
depca.h
dl2k.c net: convert multiple drivers to use netdev_for_each_mc_addr 2010-02-17 13:27:12 -08:00
dl2k.h drivers/net/: use DEFINE_PCI_DEVICE_TABLE() 2010-01-07 23:54:26 -08:00
dm9000.c net: convert multiple drivers to use netdev_for_each_mc_addr 2010-02-17 13:27:12 -08:00
dm9000.h DM9000: Wake on LAN support 2009-11-11 19:22:21 -08:00
dnet.c netdev: convert bulk of drivers to netdev_tx_t 2009-09-01 01:14:07 -07:00
dnet.h
dummy.c netdev: convert pseudo drivers to netdev_tx_t 2009-09-01 01:13:40 -07:00
e100.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
e2100.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
eepro.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
eexpress.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
eexpress.h
enc28j60_hw.h
enc28j60.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
epic100.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
eql.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
es3210.c
eth16i.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
ethoc.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
ewrk3.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
ewrk3.h
fealnx.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
fec_mpc52xx_phy.c net: Fix OF platform drivers coldplug/hotplug when compiled as modules 2009-10-14 14:54:52 -07:00
fec_mpc52xx.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
fec_mpc52xx.h
fec.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
fec.h fec: fix definition of 5272 version of FEC_X_DES_ACTIVE register 2009-07-06 18:56:11 -07:00
forcedeth.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
fsl_pq_mdio.c fsl_pq_mdio: Fix iomem unmapping for non-eTSEC2.0 controllers 2009-12-30 22:03:43 -08:00
fsl_pq_mdio.h fsl_pq_mdio: Add Suport for etsec2.0 devices. 2009-11-02 23:40:57 -08:00
gianfar_ethtool.c gianfar: Basic Support for programming hash rules 2009-11-02 23:40:59 -08:00
gianfar_sysfs.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
gianfar.c gianfar: Fix TX ring processing on SMP machines 2010-03-04 00:53:53 -08:00
gianfar.h gianfar: Fix bit definitions of IMASK_GRSC and IMASK_GTSC 2009-12-18 20:38:37 -08:00
greth.c greth: fall through to common return statement on error 2010-02-26 04:18:43 -08:00
greth.h net: Add Aeroflex Gaisler 10/100/1G Ethernet MAC driver 2010-02-17 15:59:40 -08:00
hamachi.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
hp100.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
hp100.h
hp-plus.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
hp.c
hplance.c
hplance.h
hydra.c net: fix hydra printk format warning 2009-09-07 01:56:52 -07:00
ibmlana.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
ibmlana.h
ibmveth.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
ibmveth.h
ifb.c net: rename skb->iif to skb->skb_iif 2009-11-20 15:35:04 -08:00
ioc3-eth.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
ipg.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
ipg.h
iseries_veth.c net: convert multiple drivers to use netdev_for_each_mc_addr, part4 2010-02-22 15:45:52 -08:00
jazzsonic.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
jme.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
jme.h drivers/net/jme: Use netif_printk helpers 2010-02-12 13:27:46 -08:00
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-03-02 07:55:08 -08:00
korina.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
ks8842.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
ks8851_mll.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
ks8851.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
ks8851.h KS8851: Fix MAC address write order 2009-10-20 19:11:06 -07:00
ksz884x.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
lance.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
lasi_82596.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
lib8390.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
lib82596.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
LICENSE.SRC
ll_temac_main.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
ll_temac_mdio.c
ll_temac.h
lne390.c
loopback.c percpu: add __percpu sparse annotations to net drivers 2010-02-16 23:05:38 -08:00
lp486e.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
mac89x0.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
mac8390.c mac8390: Fix build breakage 2010-01-09 23:00:32 -08:00
macb.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
macb.h
mace.c Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-02-28 19:23:06 -08:00
mace.h
macmace.c Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-02-28 19:23:06 -08:00
macsonic.c mac68k: move macsonic and macmace platform devices 2010-02-27 18:31:11 +01:00
macvlan.c macvlan: allow multiple driver backends 2010-02-03 20:20:33 -08:00
macvtap.c macvtap: add GSO/csum offload support 2010-02-18 14:08:38 -08:00
Makefile net: Add Aeroflex Gaisler 10/100/1G Ethernet MAC driver 2010-02-17 15:59:40 -08:00
mdio.c mdio: Expose pause frame advertising flags to ethtool 2009-10-12 23:59:08 -07:00
meth.c netdev: remove HAVE_ leftovers 2010-01-28 06:01:35 -08:00
meth.h
mii.c netdev: Remove redundant checks for CAP_NET_ADMIN in MDIO implementations 2009-09-03 20:02:11 -07:00
mipsnet.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
mv643xx_eth.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
mvme147.c
myri_sbus.c llc: use dev_hard_header 2009-12-26 20:38:23 -08:00
myri_sbus.h
natsemi.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
ne2.c
ne2k-pci.c drivers/net/: use DEFINE_PCI_DEVICE_TABLE() 2010-01-07 23:54:26 -08:00
ne3210.c
ne-h8300.c
ne.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
netconsole.c
netx-eth.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
ni52.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
ni52.h
ni65.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
ni65.h
ni5010.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
ni5010.h
niu.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
niu.h
ns83820.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
pasemi_mac_ethtool.c pasemi_mac: ethtool set settings support 2009-10-12 13:26:39 -07:00
pasemi_mac.c drivers/net/: use DEFINE_PCI_DEVICE_TABLE() 2010-01-07 23:54:26 -08:00
pasemi_mac.h
pci-skeleton.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
pcnet32.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
plip.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ppp_async.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ppp_deflate.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ppp_generic.c ppp_generic.c severly whitespace damanged by 9c705260fe 2010-01-19 02:12:34 -08:00
ppp_mppe.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
ppp_mppe.h
ppp_synctty.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
pppoe.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
pppol2tp.c net: Simplify pppol2tp pernet operations. 2009-12-01 16:15:57 -08:00
pppox.c net: pass kern to net_proto_family create function 2009-11-05 22:18:14 -08:00
ps3_gelic_net.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
ps3_gelic_net.h net/ps3: Add support for gelic link negotiation 2009-12-02 00:52:31 -08:00
ps3_gelic_wireless.c drivers/net: Remove local #define IW_IOCTL, use IW_HANDLER 2010-03-23 16:50:28 -04:00
ps3_gelic_wireless.h tree-wide: fix typos "aquire" -> "acquire", "cumsumed" -> "consumed" 2009-11-09 09:40:57 +01:00
qla3xxx.c drivers/net: Eliminate useless code 2010-01-18 00:29:19 -08:00
qla3xxx.h
r6040.c net: convert multiple drivers to use netdev_for_each_mc_addr, part5 V2 2010-02-26 02:07:30 -08:00
r8169.c r8169: use correct barrier between cacheable and non-cacheable memory 2010-03-04 00:53:53 -08:00
rionet.c trivial: fix typo "for for" in multiple files 2009-09-21 15:14:54 +02:00
rrunner.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-01-10 22:55:03 -08:00
rrunner.h netdev: convert bulk of drivers to netdev_tx_t 2009-09-01 01:14:07 -07:00
s2io-regs.h
s2io.c s2io: Fixing debug message 2010-03-05 14:00:19 -08:00
s2io.h s2io: Generate complete messages using single line DBG_PRINTs 2009-08-30 22:35:11 -07:00
s6gmac.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
sb1000.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
sb1250-mac.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sc92031.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
seeq8005.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
seeq8005.h
sgiseeq.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
sgiseeq.h
sh_eth.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-01-10 22:55:03 -08:00
sh_eth.h net: add Runtime PM to the sh_eth driver 2009-10-13 03:44:05 -07:00
sis190.c sis190: fix cable detect via link status poll 2010-03-02 03:44:41 -08:00
sis900.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sis900.h
skge.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
skge.h skge: use unique IRQ name 2009-10-01 15:14:54 -07:00
sky2.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sky2.h sky2: jumbo packet changes 2010-02-12 16:21:01 -08:00
slhc.c
slip.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
slip.h
smc91x.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
smc91x.h net: smc91x: Support Qualcomm MSM development boards. 2010-03-05 13:56:40 -08:00
smc911x.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
smc911x.h omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3 2010-02-15 09:27:02 -08:00
smc9194.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
smc9194.h
smc-mca.c drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
smc-ultra32.c
smc-ultra.c
smsc911x.c smsc911x: convert to use netdev_for_each_mc_addr 2010-02-18 14:47:48 -08:00
smsc911x.h tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
smsc9420.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
smsc9420.h
sni_82596.c
sonic.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
spider_net.h
starfire.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
stnic.c
sun3_82586.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sun3_82586.h
sun3lance.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
sunbmac.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sunbmac.h
sundance.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sungem_phy.c
sungem_phy.h
sungem.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sungem.h drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00
sunhme.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sunhme.h
sunlance.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sunqe.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sunqe.h
sunvnet.c net: convert multiple drivers to use netdev_for_each_mc_addr, part2 2010-02-18 14:47:49 -08:00
sunvnet.h
tc35815.c tc35815: Fix double locking on NAPI 2010-02-26 02:08:42 -08:00
tehuti.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
tehuti.h drivers/net/tehuti.c: Use (pr|netdev|netif)_<levels> macro helpers 2010-02-16 15:45:43 -08:00
tg3.c tg3: Remove now useless VPD code 2010-02-28 00:43:34 -08:00
tg3.h tg3: Push phylib definitions to phylib 2010-02-17 17:27:40 -08:00
tlan.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
tlan.h drivers/net/tlan: Remove TRUE/FALSE defines, use bool 2010-01-13 20:37:01 -08:00
tsi108_eth.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
tsi108_eth.h
tun.c tun: socket filter support 2010-02-17 16:35:17 -08:00
typhoon.c typhoon: fix incorrect use of smp_wmb() 2010-03-05 14:00:18 -08:00
typhoon.h
ucc_geth_ethtool.c ucc_geth: Implement suspend/resume and Wake-On-LAN support 2009-08-30 21:51:47 -07:00
ucc_geth.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
ucc_geth.h ucc_geth: Fix the wrong the Rx/Tx FIFO size 2010-01-06 20:32:38 -08:00
veth.c rtnetlink: support specifying device flags on device creation 2010-02-27 02:43:40 -08:00
via-rhine.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
via-velocity.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
via-velocity.h via-velocity: Bump version 2009-11-26 15:51:29 -08:00
virtio_net.c virtio_net: remove forgotten assignment 2010-03-02 03:57:33 -08:00
wd.c
xen-netfront.c xen: move Xen-testing predicates to common header 2009-11-04 08:47:24 -08:00
xilinx_emaclite.c net: emaclite: adding MDIO and phy lib support 2010-02-15 21:51:00 -08:00
xtsonic.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
yellowfin.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
znet.c net: convert multiple drivers to use netdev_for_each_mc_addr, part6 2010-02-26 02:07:31 -08:00
zorro8390.c zorro8390: Fix read buffer overflow in zorro8390_init_one() 2009-08-09 21:46:53 -07:00