wl1251: add a missing spin_lock_init()

Message ID 20170831144743.GA21261@amd
State Accepted
Delegated to: David Miller
Headers show
Series
  • wl1251: add a missing spin_lock_init()
Related show

Commit Message

Pavel Machek Aug. 31, 2017, 2:47 p.m.
From: Cong Wang <xiyou.wangcong@gmail.com>

wl1251: add a missing spin_lock_init()
    
This fixes the following kernel warning:
    
 [ 5668.771453] BUG: spinlock bad magic on CPU#0, kworker/u2:3/9745
 [ 5668.771850]  lock: 0xce63ef20, .magic: 00000000, .owner: <none>/-1,
 .owner_cpu: 0
 [ 5668.772277] CPU: 0 PID: 9745 Comm: kworker/u2:3 Tainted: G        W
 4.12.0-03002-gec979a4-dirty #40
 [ 5668.772796] Hardware name: Nokia RX-51 board
 [ 5668.773071] Workqueue: phy1 wl1251_irq_work
 [ 5668.773345] [<c010c9e4>] (unwind_backtrace) from [<c010a274>]
 (show_stack+0x10/0x14)
 [ 5668.773803] [<c010a274>] (show_stack) from [<c01545a4>]
 (do_raw_spin_lock+0x6c/0xa0)
 [ 5668.774230] [<c01545a4>] (do_raw_spin_lock) from [<c06ca578>]
 (_raw_spin_lock_irqsave+0x10/0x18)
 [ 5668.774658] [<c06ca578>] (_raw_spin_lock_irqsave) from [<c048c010>]
 (wl1251_op_tx+0x38/0x5c)
 [ 5668.775115] [<c048c010>] (wl1251_op_tx) from [<c06a12e8>]
 (ieee80211_tx_frags+0x188/0x1c0)
 [ 5668.775543] [<c06a12e8>] (ieee80211_tx_frags) from [<c06a138c>]
 (__ieee80211_tx+0x6c/0x130)
 [ 5668.775970] [<c06a138c>] (__ieee80211_tx) from [<c06a3dbc>]
 (ieee80211_tx+0xdc/0x104)
 [ 5668.776367] [<c06a3dbc>] (ieee80211_tx) from [<c06a4af0>]
 (__ieee80211_subif_start_xmit+0x454/0x8c8)
 [ 5668.776824] [<c06a4af0>] (__ieee80211_subif_start_xmit) from
 [<c06a4f94>] (ieee80211_subif_start_xmit+0x30/0x2fc)
 [ 5668.777343] [<c06a4f94>] (ieee80211_subif_start_xmit) from
 [<c0578848>] (dev_hard_start_xmit+0x80/0x118)
...
    
    by adding the missing spin_lock_init().
    
Reported-by: Pavel Machek <pavel@ucw.cz>
Cc: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Cc: stable@kernel.org

---

> >> Yeah, you are right there. I did actually ponder which I tree should
> >> commit it back in July but due to various reasons decided differently.
> >
> > Can we still get the fix to v4.13-final? :-).
> 
> I'm not planning to submit pull requests to 4.13 anymore. If you think
> this is so important that it needs to be applied in the last minute (I
> don't) you could always try to convince Dave to take it directly.
> 
> Or better yet, push it to the stable tree. If the merge window opens on
> Sunday I suspect that the commit will be in Linus' tree sometime next
> week. Then you can submit the request to the stable team to take it.

I don't think we should use stable tree as an excuse for not fixing
the bugs in mainline. Original patch is from Jul 6, thats 7 weeks ago.

Dave, Linus -- can you still take the patch?

Thanks,
								Pavel

Comments

David Miller Aug. 31, 2017, 5:33 p.m. | #1
From: Pavel Machek <pavel@ucw.cz>
Date: Thu, 31 Aug 2017 16:47:43 +0200

> Dave, Linus -- can you still take the patch?

Pavel, please do not bypass maintainers like this.

It's really rude, and if you do things like that instead of
trying to work properly with us, your relationship with
these maintainers will suffer in the long term.

Thank you.
Pavel Machek Aug. 31, 2017, 6:57 p.m. | #2
Hi!

> From: Pavel Machek <pavel@ucw.cz>
> Date: Thu, 31 Aug 2017 16:47:43 +0200
> 
> > Dave, Linus -- can you still take the patch?
> 
> Pavel, please do not bypass maintainers like this.
> 
> It's really rude, and if you do things like that instead of
> trying to work properly with us, your relationship with
> these maintainers will suffer in the long term.

Do you mean I'm being rude to Kalle, or rude to you?

In the part you snipped, Kalle asked me to do just that:

# I'm not planning to submit pull requests to 4.13 anymore. If you think
# this is so important that it needs to be applied in the last minute (I
# don't) you could always try to convince Dave to take it directly.

..and as I still believe patch should go in, that's what I did.

Best regards,
									Pavel
David Miller Aug. 31, 2017, 7:26 p.m. | #3
From: Pavel Machek <pavel@ucw.cz>
Date: Thu, 31 Aug 2017 20:57:19 +0200

> Hi!
> 
>> From: Pavel Machek <pavel@ucw.cz>
>> Date: Thu, 31 Aug 2017 16:47:43 +0200
>> 
>> > Dave, Linus -- can you still take the patch?
>> 
>> Pavel, please do not bypass maintainers like this.
>> 
>> It's really rude, and if you do things like that instead of
>> trying to work properly with us, your relationship with
>> these maintainers will suffer in the long term.
> 
> Do you mean I'm being rude to Kalle, or rude to you?

He said "to David", not "David and Linus".
Pavel Machek Aug. 31, 2017, 7:59 p.m. | #4
Hi!

On Thu 2017-08-31 12:26:45, David Miller wrote:
> From: Pavel Machek <pavel@ucw.cz>
> Date: Thu, 31 Aug 2017 20:57:19 +0200
> 
> > Hi!
> > 
> >> From: Pavel Machek <pavel@ucw.cz>
> >> Date: Thu, 31 Aug 2017 16:47:43 +0200
> >> 
> >> > Dave, Linus -- can you still take the patch?
> >> 
> >> Pavel, please do not bypass maintainers like this.
> >> 
> >> It's really rude, and if you do things like that instead of
> >> trying to work properly with us, your relationship with
> >> these maintainers will suffer in the long term.
> > 
> > Do you mean I'm being rude to Kalle, or rude to you?
> 
> He said "to David", not "David and Linus".

Ok. If I knew you would be replying so quickly, I'd acted
differently. I did not want to be rude.

But I'd still like to get the patch in. Do you plan to send another
pull request to Linus, and can you take the patch, please?

Thanks,
								Pavel
David Miller Aug. 31, 2017, 8:10 p.m. | #5
From: Pavel Machek <pavel@ucw.cz>
Date: Thu, 31 Aug 2017 21:59:33 +0200

> Do you plan to send another pull request to Linus, and can you take
> the patch, please?

Yes and yes.

Patch

diff --git a/drivers/net/wireless/ti/wl1251/main.c b/drivers/net/wireless/ti/wl1251/main.c
index 08f0477..9915d83 100644
--- a/drivers/net/wireless/ti/wl1251/main.c
+++ b/drivers/net/wireless/ti/wl1251/main.c
@@ -1571,6 +1571,7 @@  struct ieee80211_hw *wl1251_alloc_hw(void)
 
 	wl->state = WL1251_STATE_OFF;
 	mutex_init(&wl->mutex);
+	spin_lock_init(&wl->wl_lock);
 
 	wl->tx_mgmt_frm_rate = DEFAULT_HW_GEN_TX_RATE;
 	wl->tx_mgmt_frm_mod = DEFAULT_HW_GEN_MODULATION_TYPE;