Re: fyi: scheduling while atomic dmesg output 3.12-rc1
From: Rafał Miłecki <zajec5@gmail.com>
Date: 2013-09-27 06:25:43
2013/9/18 Arend van Spriel [off-list ref]:
On 09/18/2013 03:57 PM, Hauke Mehrtens wrote:quoted
On 09/18/2013 11:19 AM, Arend van Spriel wrote:quoted
On 09/17/2013 07:45 PM, Joe Perches wrote:quoted
<3>[ 11.206312] BUG: scheduling while atomic: NetworkManager/866/0x00000200Thanks, Joe I got a report on this few days ago. It was introduced by bcma API change and I already sent email to the committer of that change, ie. Hauke Mehrtens. Hope it will be settled soon how to fix this. Gr. AvSHi, I see four solutions for the problem: 1. convert the usleep_range(1000, 2000) into udelay(1000) in drivers/bcma/driver_pci.c 2. remove the call of bcma_core_pci_power_save() from bcma_core_pci_up() so that it does not get called by brcmsmac. 3. remove the call of bcma_core_pci_power_save() from bcma_core_pci_up() and move the call to somewhere out of the big spin lock. 4. convert the big brmcsmac spin lock into a mutex lock and use an additional spin lock for the parts where it is actually needed. For 3.12 I am for solution 1 or 2 and for the long term 3.13? I am for solution 4, but that needs bigger changes.Agree. When looking into this I considered option 4 would be a bigger work, but I agree we should aim for that in the long term. For the short term I would say option 2 makes sense although I guess the power_save call is there for a reason. So I will also look if option 3 is doable.
I'm OK with that (sorry, was on holidays for the last week). -- Rafał