From: Kalle Valo <kvalo@qca.qualcomm.com>
To: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Cc: <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH V2 00/31] ath6kl Add multiple vif support
Date: Wed, 26 Oct 2011 10:22:30 +0300 [thread overview]
Message-ID: <4EA7B536.70107@qca.qualcomm.com> (raw)
In-Reply-To: <1319551466-29070-1-git-send-email-vthiagar@qca.qualcomm.com>
On 10/25/2011 05:03 PM, Vasanthakumar Thiagarajan wrote:
> This patch set adds basic infrastructure for multiple
> virtual interface. As configuring the firmware with more than one
> vif causes random target assert, the number of supported vifs is
> restricted to 1 for now. I would like to thank Vivek Natarajan
> (nataraja@qca.qualcomm.com) for his inital work in this area and
> Arthi Thiruvengadam (athiruve@qca.qualcomm.com) for finding some
> critical bugs.
I saw the lockdep warning below after I loaded the module and connected
to an AP. But the driver still functioned normally.
Kalle
[ 73.439849] ath6kl: hw 2.1.1 fw 3.1.1.609
[ 75.408050]
[ 75.408081] =========================================================
[ 75.416320] [ INFO: possible irq lock inversion dependency detected ]
[ 75.423004] 3.1.0-rc9-wl+ #44
[ 75.426086] ---------------------------------------------------------
[ 75.432800] swapper/0 just changed the state of lock:
[ 75.438049] (&(&ar->lock)->rlock){+.-...}, at: [<bf011b94>]
ath6kl_indicate_tx_activity+0x38/0xb8 [ath6kl]
[ 75.448303] but this lock took another, SOFTIRQ-unsafe lock in the past:
[ 75.455261] (&(&ar->list_lock)->rlock){+.+...}
[ 75.459808]
[ 75.459808] and interrupts could create inverse lock ordering between
them.
[ 75.459808]
[ 75.470306]
[ 75.470306] other info that might help us debug this:
[ 75.477081] Possible interrupt unsafe locking scenario:
[ 75.477081]
[ 75.484130] CPU0 CPU1
[ 75.488861] ---- ----
[ 75.493560] lock(&(&ar->list_lock)->rlock);
[ 75.498107] local_irq_disable();
[ 75.504241] lock(&(&ar->lock)->rlock);
[ 75.510955]
lock(&(&ar->list_lock)->rlock);
[ 75.518096] <Interrupt>
[ 75.520812] lock(&(&ar->lock)->rlock);
[ 75.525085]
[ 75.525085] *** DEADLOCK ***
[ 75.525085]
[ 75.531249] 3 locks held by swapper/0:
[ 75.535156] #0: (&n->timer){+.-...}, at: [<c004ebe0>]
run_timer_softirq+0x244/0x564
[ 75.543334] #1: (rcu_read_lock_bh){.+....}, at: [<c03175e4>]
dev_queue_xmit+0x0/0x714
[ 75.551696] #2: (_xmit_ETHER#2){+.-...}, at: [<c032bfc4>]
sch_direct_xmit+0x38/0x2dc
[ 75.559936]
[ 75.559967] the shortest dependencies between 2nd lock and 1st lock:
[ 75.568115] -> (&(&ar->list_lock)->rlock){+.+...} ops: 60 {
[ 75.574035] HARDIRQ-ON-W at:
[ 75.577392] [<c0078004>]
__lock_acquire+0x7b0/0x1a8c
[ 75.586273] [<c00799d4>]
lock_acquire+0x158/0x1a8
[ 75.594879] [<c03e272c>]
_raw_spin_lock+0x4c/0x84
[ 75.603485] [<bf00898c>]
ath6kl_interface_add+0x184/0x1e0 [ath6kl]
[ 75.613677] [<bf00d204>]
ath6kl_core_init+0xe9c/0x1760 [ath6kl]
[ 75.623565] [<bf01859c>]
ath6kl_sdio_probe+0x324/0x3bc [ath6kl]
[ 75.633483] [<c02ed524>]
sdio_bus_probe+0x100/0x164
[ 75.642272] [<c0274de0>]
driver_probe_device+0x14c/0x290
[ 75.651519] [<c0274f8c>]
__driver_attach+0x68/0x8c
[ 75.660217] [<c0274458>]
bus_for_each_dev+0x4c/0x8c
[ 75.669006] [<c0273c9c>]
bus_add_driver+0xc4/0x250
[ 75.677703] [<c02755f0>]
driver_register+0xc0/0x150
[ 75.686462] [<bf02700c>]
0xbf02700c
[ 75.693817] [<c00086c0>]
do_one_initcall+0x94/0x160
[ 75.702606] [<c0084670>]
sys_init_module+0x1220/0x13e0
[ 75.711669] [<c00139e0>]
ret_fast_syscall+0x0/0x3c
[ 75.720367] SOFTIRQ-ON-W at:
[ 75.723724] [<c0078028>]
__lock_acquire+0x7d4/0x1a8c
[ 75.732604] [<c00799d4>]
lock_acquire+0x158/0x1a8
[ 75.741180] [<c03e272c>]
_raw_spin_lock+0x4c/0x84
[ 75.749786] [<bf00898c>]
ath6kl_interface_add+0x184/0x1e0 [ath6kl]
[ 75.759979] [<bf00d204>]
ath6kl_core_init+0xe9c/0x1760 [ath6kl]
[ 75.769897] [<bf01859c>]
ath6kl_sdio_probe+0x324/0x3bc [ath6kl]
[ 75.779785] [<c02ed524>]
sdio_bus_probe+0x100/0x164
[ 75.788574] [<c0274de0>]
driver_probe_device+0x14c/0x290
[ 75.797821] [<c0274f8c>]
__driver_attach+0x68/0x8c
[ 75.806518] [<c0274458>]
bus_for_each_dev+0x4c/0x8c
[ 75.815307] [<c0273c9c>]
bus_add_driver+0xc4/0x250
[ 75.824005] [<c02755f0>]
driver_register+0xc0/0x150
[ 75.832794] [<bf02700c>]
0xbf02700c
[ 75.840118] [<c00086c0>]
do_one_initcall+0x94/0x160
[ 75.848907] [<c0084670>]
sys_init_module+0x1220/0x13e0
[ 75.857940] [<c00139e0>]
ret_fast_syscall+0x0/0x3c
[ 75.866638] INITIAL USE at:
[ 75.869903] [<c007808c>]
__lock_acquire+0x838/0x1a8c
[ 75.878692] [<c00799d4>]
lock_acquire+0x158/0x1a8
[ 75.887207] [<c03e272c>]
_raw_spin_lock+0x4c/0x84
[ 75.895721] [<bf00898c>]
ath6kl_interface_add+0x184/0x1e0 [ath6kl]
[ 75.905792] [<bf00d204>]
ath6kl_core_init+0xe9c/0x1760 [ath6kl]
[ 75.915618] [<bf01859c>]
ath6kl_sdio_probe+0x324/0x3bc [ath6kl]
[ 75.925445] [<c02ed524>]
sdio_bus_probe+0x100/0x164
[ 75.934143] [<c0274de0>]
driver_probe_device+0x14c/0x290
[ 75.943298] [<c0274f8c>]
__driver_attach+0x68/0x8c
[ 75.951904] [<c0274458>]
bus_for_each_dev+0x4c/0x8c
[ 75.960571] [<c0273c9c>]
bus_add_driver+0xc4/0x250
[ 75.969177] [<c02755f0>]
driver_register+0xc0/0x150
[ 75.977874] [<bf02700c>]
0xbf02700c
[ 75.985107] [<c00086c0>]
do_one_initcall+0x94/0x160
[ 75.993804] [<c0084670>]
sys_init_module+0x1220/0x13e0
[ 76.002777] [<c00139e0>]
ret_fast_syscall+0x0/0x3c
[ 76.011383] }
[ 76.013183] ... key at: [<bf020544>]
__key.38763+0x0/0xffff848c [ath6kl]
[ 76.020843] ... acquired at:
[ 76.024017] [<c00799d4>] lock_acquire+0x158/0x1a8
[ 76.029174] [<c03e272c>] _raw_spin_lock+0x4c/0x84
[ 76.034362] [<bf015410>] ath6kl_get_vif_by_index+0x68/0x78 [ath6kl]
[ 76.041198] [<bf0116b0>] ath6kl_tx_complete+0x178/0x4c0 [ath6kl]
[ 76.047760] [<bf0046ec>] htc_tx_comp_handler+0x4c/0x54 [ath6kl]
[ 76.054229] [<bf0030a8>] ath6kl_hif_rw_comp_handler+0x48/0x60 [ath6kl]
[ 76.061340] [<bf0186c4>] ath6kl_sdio_write_async_work+0x90/0xbc
[ath6kl]
[ 76.068634] [<c005a8c4>] process_one_work+0x354/0x628
[ 76.074157] [<c005cb74>] worker_thread+0x1f4/0x3c0
[ 76.079437] [<c006147c>] kthread+0x80/0x88
[ 76.083953] [<c001496c>] kernel_thread_exit+0x0/0x8
[ 76.089324]
[ 76.090850] -> (&(&ar->lock)->rlock){+.-...} ops: 23 {
[ 76.096221] HARDIRQ-ON-W at:
[ 76.099487] [<c0078004>]
__lock_acquire+0x7b0/0x1a8c
[ 76.108184] [<c00799d4>]
lock_acquire+0x158/0x1a8
[ 76.116607] [<c03e2aa0>]
_raw_spin_lock_bh+0x54/0x8c
[ 76.125305] [<bf0112d8>]
ath6kl_refill_amsdu_rxbufs+0x68/0x94 [ath6kl]
[ 76.135681] [<bf00da98>]
ath6kl_core_init+0x1730/0x1760 [ath6kl]
[ 76.145477] [<bf01859c>]
ath6kl_sdio_probe+0x324/0x3bc [ath6kl]
[ 76.155212] [<c02ed524>]
sdio_bus_probe+0x100/0x164
[ 76.163818] [<c0274de0>]
driver_probe_device+0x14c/0x290
[ 76.172882] [<c0274f8c>]
__driver_attach+0x68/0x8c
[ 76.181396] [<c0274458>]
bus_for_each_dev+0x4c/0x8c
[ 76.190002] [<c0273c9c>]
bus_add_driver+0xc4/0x250
[ 76.198516] [<c02755f0>]
driver_register+0xc0/0x150
[ 76.207122] [<bf02700c>]
0xbf02700c
[ 76.214263] [<c00086c0>]
do_one_initcall+0x94/0x160
[ 76.222869] [<c0084670>]
sys_init_module+0x1220/0x13e0
[ 76.231750] [<c00139e0>]
ret_fast_syscall+0x0/0x3c
[ 76.240264] IN-SOFTIRQ-W at:
[ 76.243530] [<c0077f9c>]
__lock_acquire+0x748/0x1a8c
[ 76.252227] [<c00799d4>]
lock_acquire+0x158/0x1a8
[ 76.260650] [<c03e2aa0>]
_raw_spin_lock_bh+0x54/0x8c
[ 76.269348] [<bf011b94>]
ath6kl_indicate_tx_activity+0x38/0xb8 [ath6kl]
[ 76.279785] [<bf014460>]
ath6kl_wmi_create_pstream_cmd+0x1e0/0x224 [ath6kl]
[ 76.290618] [<bf0145a4>]
ath6kl_wmi_implicit_create_pstream+0x100/0x138 [ath6kl]
[ 76.301910] [<bf012020>]
ath6kl_data_tx+0x2d0/0x5fc [ath6kl]
[ 76.311370] [<c03172a8>]
dev_hard_start_xmit+0x504/0x840
[ 76.320404] [<c032bfe8>]
sch_direct_xmit+0x5c/0x2dc
[ 76.329010] [<c0317a08>]
dev_queue_xmit+0x424/0x714
[ 76.337615] [<c0363864>]
arp_solicit+0x214/0x254
[ 76.345977] [<c0323c30>]
neigh_timer_handler+0x22c/0x2a8
[ 76.355010] [<c004ed08>]
run_timer_softirq+0x36c/0x564
[ 76.363891] [<c0047e48>]
__do_softirq+0x138/0x314
[ 76.372314] [<c00481d4>]
irq_exit+0x54/0xb4
[ 76.380187] [<c00148f8>]
handle_IRQ+0x68/0x8c
[ 76.388244] [<c03e34b8>]
__irq_svc+0x38/0xa0
[ 76.396240] [<c007673c>]
trace_hardirqs_on_caller+0x1c/0x19c
[ 76.405639] [<c0015018>]
cpu_idle+0x7c/0xcc
[ 76.413513] [<c05687f8>]
start_kernel+0x2ac/0x30c
[ 76.421936] INITIAL USE at:
[ 76.425109] [<c007808c>]
__lock_acquire+0x838/0x1a8c
[ 76.433715] [<c00799d4>]
lock_acquire+0x158/0x1a8
[ 76.442047] [<c03e2aa0>]
_raw_spin_lock_bh+0x54/0x8c
[ 76.450653] [<bf0112d8>]
ath6kl_refill_amsdu_rxbufs+0x68/0x94 [ath6kl]
[ 76.460937] [<bf00da98>]
ath6kl_core_init+0x1730/0x1760 [ath6kl]
[ 76.470672] [<bf01859c>]
ath6kl_sdio_probe+0x324/0x3bc [ath6kl]
[ 76.480316] [<c02ed524>]
sdio_bus_probe+0x100/0x164
[ 76.488830] [<c0274de0>]
driver_probe_device+0x14c/0x290
[ 76.497802] [<c0274f8c>]
__driver_attach+0x68/0x8c
[ 76.506225] [<c0274458>]
bus_for_each_dev+0x4c/0x8c
[ 76.514739] [<c0273c9c>]
bus_add_driver+0xc4/0x250
[ 76.523162] [<c02755f0>]
driver_register+0xc0/0x150
[ 76.531677] [<bf02700c>] 0xbf02700c
[ 76.538757] [<c00086c0>]
do_one_initcall+0x94/0x160
[ 76.547241] [<c0084670>]
sys_init_module+0x1220/0x13e0
[ 76.556030] [<c00139e0>]
ret_fast_syscall+0x0/0x3c
[ 76.564453] }
[ 76.566192] ... key at: [<bf020554>] __key.38761+0x0/0xffff847c
[ath6kl]
[ 76.573730] ... acquired at:
[ 76.576812] [<c0076ea4>] check_usage_forwards+0xd8/0xfc
[ 76.582519] [<c007618c>] mark_lock+0x388/0x618
[ 76.587432] [<c0077f9c>] __lock_acquire+0x748/0x1a8c
[ 76.592864] [<c00799d4>] lock_acquire+0x158/0x1a8
[ 76.598022] [<c03e2aa0>] _raw_spin_lock_bh+0x54/0x8c
[ 76.603485] [<bf011b94>] ath6kl_indicate_tx_activity+0x38/0xb8
[ath6kl]
[ 76.610687] [<bf014460>] ath6kl_wmi_create_pstream_cmd+0x1e0/0x224
[ath6kl]
[ 76.618255] [<bf0145a4>]
ath6kl_wmi_implicit_create_pstream+0x100/0x138 [ath6kl]
[ 76.626251] [<bf012020>] ath6kl_data_tx+0x2d0/0x5fc [ath6kl]
[ 76.632476] [<c03172a8>] dev_hard_start_xmit+0x504/0x840
[ 76.638275] [<c032bfe8>] sch_direct_xmit+0x5c/0x2dc
[ 76.643615] [<c0317a08>] dev_queue_xmit+0x424/0x714
[ 76.648956] [<c0363864>] arp_solicit+0x214/0x254
[ 76.654052] [<c0323c30>] neigh_timer_handler+0x22c/0x2a8
[ 76.659851] [<c004ed08>] run_timer_softirq+0x36c/0x564
[ 76.665466] [<c0047e48>] __do_softirq+0x138/0x314
[ 76.670654] [<c00481d4>] irq_exit+0x54/0xb4
[ 76.675262] [<c00148f8>] handle_IRQ+0x68/0x8c
[ 76.680084] [<c03e34b8>] __irq_svc+0x38/0xa0
[ 76.684814] [<c007673c>] trace_hardirqs_on_caller+0x1c/0x19c
[ 76.690979] [<c0015018>] cpu_idle+0x7c/0xcc
[ 76.695587] [<c05687f8>] start_kernel+0x2ac/0x30c
[ 76.700775]
[ 76.702301]
[ 76.702301] stack backtrace:
[ 76.706878] [<c0019998>] (unwind_backtrace+0x0/0x128) from
[<c0076d88>] (print_irq_inversion_bug+0x194/0x1d8)
[ 76.717193] [<c0076d88>] (print_irq_inversion_bug+0x194/0x1d8) from
[<c0076ea4>] (check_usage_forwards+0xd8/0xfc)
[ 76.727874] [<c0076ea4>] (check_usage_forwards+0xd8/0xfc) from
[<c007618c>] (mark_lock+0x388/0x618)
[ 76.737274] [<c007618c>] (mark_lock+0x388/0x618) from [<c0077f9c>]
(__lock_acquire+0x748/0x1a8c)
[ 76.746429] [<c0077f9c>] (__lock_acquire+0x748/0x1a8c) from
[<c00799d4>] (lock_acquire+0x158/0x1a8)
[ 76.755859] [<c00799d4>] (lock_acquire+0x158/0x1a8) from [<c03e2aa0>]
(_raw_spin_lock_bh+0x54/0x8c)
[ 76.765319] [<c03e2aa0>] (_raw_spin_lock_bh+0x54/0x8c) from
[<bf011b94>] (ath6kl_indicate_tx_activity+0x38/0xb8 [ath6kl])
[ 76.776824] [<bf011b94>] (ath6kl_indicate_tx_activity+0x38/0xb8
[ath6kl]) from [<bf014460>] (ath6kl_wmi_create_pstream_cmd+0x1e0/0x224
[ath6kl])
[ 76.790405] [<bf014460>] (ath6kl_wmi_create_pstream_cmd+0x1e0/0x224
[ath6kl]) from [<bf0145a4>]
(ath6kl_wmi_implicit_create_pstream+0x100/0x138 [ath6kl])
[ 76.804809] [<bf0145a4>]
(ath6kl_wmi_implicit_create_pstream+0x100/0x138 [ath6kl]) from
[<bf012020>] (ath6kl_data_tx+0x2d0/0x5fc [ath6kl])
[ 76.817779] [<bf012020>] (ath6kl_data_tx+0x2d0/0x5fc [ath6kl]) from
[<c03172a8>] (dev_hard_start_xmit+0x504/0x840)
[ 76.828552] [<c03172a8>] (dev_hard_start_xmit+0x504/0x840) from
[<c032bfe8>] (sch_direct_xmit+0x5c/0x2dc)
[ 76.838531] [<c032bfe8>] (sch_direct_xmit+0x5c/0x2dc) from
[<c0317a08>] (dev_queue_xmit+0x424/0x714)
[ 76.848022] [<c0317a08>] (dev_queue_xmit+0x424/0x714) from
[<c0363864>] (arp_solicit+0x214/0x254)
[ 76.857269] [<c0363864>] (arp_solicit+0x214/0x254) from [<c0323c30>]
(neigh_timer_handler+0x22c/0x2a8)
[ 76.866973] [<c0323c30>] (neigh_timer_handler+0x22c/0x2a8) from
[<c004ed08>] (run_timer_softirq+0x36c/0x564)
[ 76.877197] [<c004ed08>] (run_timer_softirq+0x36c/0x564) from
[<c0047e48>] (__do_softirq+0x138/0x314)
[ 76.886779] [<c0047e48>] (__do_softirq+0x138/0x314) from [<c00481d4>]
(irq_exit+0x54/0xb4)
[ 76.895385] [<c00481d4>] (irq_exit+0x54/0xb4) from [<c00148f8>]
(handle_IRQ+0x68/0x8c)
[ 76.903625] [<c00148f8>] (handle_IRQ+0x68/0x8c) from [<c03e34b8>]
(__irq_svc+0x38/0xa0)
[ 76.911987] [<c03e34b8>] (__irq_svc+0x38/0xa0) from [<c007673c>]
(trace_hardirqs_on_caller+0x1c/0x19c)
[ 76.921661] [<c007673c>] (trace_hardirqs_on_caller+0x1c/0x19c) from
[<c0015018>] (cpu_idle+0x7c/0xcc)
[ 76.931243] [<c0015018>] (cpu_idle+0x7c/0xcc) from [<c05687f8>]
(start_kernel+0x2ac/0x30c)
next prev parent reply other threads:[~2011-10-26 7:22 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-25 14:03 [PATCH V2 00/31] ath6kl Add multiple vif support Vasanthakumar Thiagarajan
2011-10-25 14:03 ` [PATCH V2 01/31] ath6kl: Pass ath6kl structure to ath6kl_init() instead of net_device Vasanthakumar Thiagarajan
2011-10-25 14:03 ` [PATCH V2 02/31] ath6kl: Keep wiphy reference in ath6kl structure Vasanthakumar Thiagarajan
2011-10-25 14:03 ` [PATCH V2 03/31] ath6kl: Refactor wiphy dev and net dev init functions Vasanthakumar Thiagarajan
2011-10-25 14:03 ` [PATCH V2 04/31] ath6kl: Cleanup fw interface type setting Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 05/31] ath6kl: Define an initial vif structure and use it Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 06/31] ath6kl: Define interface specific states Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 07/31] ath6kl: Move ssid and crypto information to vif structure Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 08/31] ath6kl: Move nw_type " Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 09/31] ath6kl: Move bssid information " Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 10/31] ath6kl: Move channel " Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 11/31] ath6kl: Move key " Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 12/31] ath6kl: Move aggregation " Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 13/31] ath6kl: Move disconnect timer " Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 14/31] ath6kl: Move scan_req info and sme_state to vif Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 15/31] ath6kl: Move few more vif specific information to struct ath6kl_vif Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 16/31] ath6kl: Make net and target stats vif specific Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 17/31] ath6kl: Maintain firmware interface index in struct ath6kl_vif Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 18/31] ath6kl: Take vif information from wmi event Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 19/31] ath6kl: Remove net_device from ath6kl Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 20/31] ath6kl: Cleanup parameters in ath6kl_init_control_info() and ath6kl_init_profile_info() Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 21/31] ath6kl: Refactor ath6kl_destroy() Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 22/31] ath6kl: Use interface index from wmi data headr Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 23/31] ath6kl: Store hw mac address in struct ath6kl Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 24/31] ath6kl: Introduce spinlock to protect vif specific information Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 25/31] ath6kl: Maintain virtual interface in a list Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 26/31] ath6kl: Use the other variant of netdev (un)register APIs Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 27/31] ath6kl: Configure inteface information at init time Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 28/31] ath6kl: Implement add_virtual_intf() and del_virtual_intf() Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 29/31] ath6kl: Add a modparam to enable multi normal interface support Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 30/31] ath6kl: Initialize target wlan values for every vif Vasanthakumar Thiagarajan
2011-10-25 14:04 ` [PATCH V2 31/31] ath6kl: Use appropriate wdev from vif Vasanthakumar Thiagarajan
2011-10-26 7:22 ` Kalle Valo [this message]
2011-11-01 5:29 ` [PATCH V2 00/31] ath6kl Add multiple vif support Vasanthakumar Thiagarajan
2011-10-26 8:24 ` Kalle Valo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EA7B536.70107@qca.qualcomm.com \
--to=kvalo@qca.qualcomm.com \
--cc=linux-wireless@vger.kernel.org \
--cc=vthiagar@qca.qualcomm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).