2016-05-19 22:56:16

by Bob Copeland

[permalink] [raw]
Subject: Re: "kernel: BUG: scheduling while atomic:" errors with linux kernel 4.6

+linux-wireless

On Thu, May 19, 2016 at 03:11:16PM -0600, James Feeney wrote:
> Arch linux 4.6-1
> wpa_supplicant 1:2.5-3
> Toshiba Satellite, circa 2011, with a Pentium Dual-Core Mobile
> Error is not seen on other machines.
>
> kernel: BUG: scheduling while atomic: wpa_supplicant/375/0x00000002

This is a kernel bug, not a wpa_supplicant bug. The linux-wireless mailing
list would be a more appropriate venue for this bug report.


> May 19 10:26:07 lapis kernel: BUG: scheduling while atomic: wpa_supplicant/627/0x00000002
[...]
> May 19 10:26:07 lapis kernel: [<ffffffff815c2b39>] __schedule+0x899/0xad0
> May 19 10:26:07 lapis kernel: [<ffffffff815c2dac>] schedule+0x3c/0x90
> May 19 10:26:07 lapis kernel: [<ffffffff815c5bb2>] schedule_hrtimeout_range_clock+0xa2/0x120
> May 19 10:26:07 lapis kernel: [<ffffffff810e8b80>] ? hrtimer_init+0x120/0x120
> May 19 10:26:07 lapis kernel: [<ffffffff815c5ba6>] ? schedule_hrtimeout_range_clock+0x96/0x120
> May 19 10:26:07 lapis kernel: [<ffffffff815c5c43>] schedule_hrtimeout_range+0x13/0x20
> May 19 10:26:07 lapis kernel: [<ffffffff815c568f>] usleep_range+0x4f/0x70
> May 19 10:26:07 lapis kernel: [<ffffffffa0667218>] rtl_rfreg_delay+0x38/0x50 [rtlwifi]
> May 19 10:26:07 lapis kernel: [<ffffffffa06dd0e7>] rtl92c_phy_config_rf_with_headerfile+0xc7/0xe0 [rtl8192ce]

[Probably due to this kernel change:

commit 49f86ec21c01b654f6ec47f2f4567f4f9ebaa26b
Author: Larry Finger <[email protected]>
Date: Mon Feb 15 16:12:07 2016 -0600

rtlwifi: Change long delays to sleeps


...apparently this function isn't in sleepable context after all.]

--
Bob Copeland %% http://bobcopeland.com/


2016-05-23 17:37:57

by James Feeney

[permalink] [raw]
Subject: Re: "kernel: BUG: scheduling while atomic:" errors with linux kernel 4.6

On 05/20/2016 09:39 AM, Larry Finger wrote:
> @James: Please run the command "dmesg | grep rtl_rfreg_delay". Do any of the
> resulting lines show a value other than "+0x38" for the offset? If that is the
> only one, the attached patch should fix the problem.

Sorry about the delayed response.

$ dmesg | grep rtl_rfreg_delay
[ 15.936262] [<ffffffffa06b1218>] rtl_rfreg_delay+0x38/0x50 [rtlwifi]
[ 348.735402] [<ffffffffa06b1218>] rtl_rfreg_delay+0x38/0x50 [rtlwifi]

So that looks like a no, just the "+0x38" for the offset.

Thanks
James

2016-05-20 15:39:39

by Larry Finger

[permalink] [raw]
Subject: Re: "kernel: BUG: scheduling while atomic:" errors with linux kernel 4.6

On 05/19/2016 05:56 PM, Bob Copeland wrote:
> +linux-wireless
>
> On Thu, May 19, 2016 at 03:11:16PM -0600, James Feeney wrote:
>> Arch linux 4.6-1
>> wpa_supplicant 1:2.5-3
>> Toshiba Satellite, circa 2011, with a Pentium Dual-Core Mobile
>> Error is not seen on other machines.
>>
>> kernel: BUG: scheduling while atomic: wpa_supplicant/375/0x00000002
>
> This is a kernel bug, not a wpa_supplicant bug. The linux-wireless mailing
> list would be a more appropriate venue for this bug report.
>
>
>> May 19 10:26:07 lapis kernel: BUG: scheduling while atomic: wpa_supplicant/627/0x00000002
> [...]
>> May 19 10:26:07 lapis kernel: [<ffffffff815c2b39>] __schedule+0x899/0xad0
>> May 19 10:26:07 lapis kernel: [<ffffffff815c2dac>] schedule+0x3c/0x90
>> May 19 10:26:07 lapis kernel: [<ffffffff815c5bb2>] schedule_hrtimeout_range_clock+0xa2/0x120
>> May 19 10:26:07 lapis kernel: [<ffffffff810e8b80>] ? hrtimer_init+0x120/0x120
>> May 19 10:26:07 lapis kernel: [<ffffffff815c5ba6>] ? schedule_hrtimeout_range_clock+0x96/0x120
>> May 19 10:26:07 lapis kernel: [<ffffffff815c5c43>] schedule_hrtimeout_range+0x13/0x20
>> May 19 10:26:07 lapis kernel: [<ffffffff815c568f>] usleep_range+0x4f/0x70
>> May 19 10:26:07 lapis kernel: [<ffffffffa0667218>] rtl_rfreg_delay+0x38/0x50 [rtlwifi]
>> May 19 10:26:07 lapis kernel: [<ffffffffa06dd0e7>] rtl92c_phy_config_rf_with_headerfile+0xc7/0xe0 [rtl8192ce]
>
> [Probably due to this kernel change:
>
> commit 49f86ec21c01b654f6ec47f2f4567f4f9ebaa26b
> Author: Larry Finger <[email protected]>
> Date: Mon Feb 15 16:12:07 2016 -0600
>
> rtlwifi: Change long delays to sleeps
>
>
> ...apparently this function isn't in sleepable context after all.]
>

@James: Please run the command "dmesg | grep rtl_rfreg_delay". Do any of the
resulting lines show a value other than "+0x38" for the offset? If that is the
only one, the attached patch should fix the problem.

Thanks,

Larry


Attachments:
patch_schedule_while_atomic.patch (740.00 B)

2016-05-23 17:48:16

by Larry Finger

[permalink] [raw]
Subject: Re: "kernel: BUG: scheduling while atomic:" errors with linux kernel 4.6

On 05/23/2016 12:29 PM, James Feeney wrote:
> On 05/20/2016 09:39 AM, Larry Finger wrote:
>> @James: Please run the command "dmesg | grep rtl_rfreg_delay". Do any of the
>> resulting lines show a value other than "+0x38" for the offset? If that is the
>> only one, the attached patch should fix the problem.
>
> Sorry about the delayed response.
>
> $ dmesg | grep rtl_rfreg_delay
> [ 15.936262] [<ffffffffa06b1218>] rtl_rfreg_delay+0x38/0x50 [rtlwifi]
> [ 348.735402] [<ffffffffa06b1218>] rtl_rfreg_delay+0x38/0x50 [rtlwifi]
>
> So that looks like a no, just the "+0x38" for the offset.

I was able to duplicate the BUG and have submitted a patch. I think you were in
the Cc list. The patch will appear sometime in the 4.7-rcX series, and will be
ported to kernel 4.6 once it appears in the mainline repo.

Larry