From mboxrd@z Thu Jan 1 00:00:00 1970 From: nm@ti.com (Nishanth Menon) Date: Mon, 6 Apr 2015 10:17:37 -0500 Subject: LDP: next-20150402: twl4030 regression? In-Reply-To: <20150406150127.GF6023@sirena.org.uk> References: <5522886D.5050409@ti.com> <20150406134541.GE6023@sirena.org.uk> <55228FE0.2040702@ti.com> <20150406135829.GH4027@n2100.arm.linux.org.uk> <20150406150127.GF6023@sirena.org.uk> Message-ID: <5522A391.6080503@ti.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 04/06/2015 10:01 AM, Mark Brown wrote: > On Mon, Apr 06, 2015 at 02:58:29PM +0100, Russell King - ARM Linux wrote: >> On Mon, Apr 06, 2015 at 08:53:36AM -0500, Nishanth Menon wrote: > >>>> at least a description of the problem you're seeing and some attempt at > >>> Test was a simple boot test. There seems to be a lockdep reported at the >>> very least in the log provided (see >>> https://github.com/nmenon/kernel-test-logs/blob/next-20150402/omap2plus_defconfig/ldp.txt#L488 >>> ). > >> I think what Mark is trying to say is to include a fuller description of >> the problem, and don't expect people to fire up their web browser to get >> a basic overview of what the problem is. > > Yes, indeed. I hadn't actually opened the links, I might've got round > to it later on. > >> My guess is that the problem _appears_ to be that someone's added a call >> to debug_check_no_locks_held() into schedule_hrtimeout_range_clock() >> without considering what this means. > >> What it means is that you can't now use usleep_range() from within any >> driver probe function - which is absolutely absurd. > > I can't think of any regulator side changes which might be relevant in > that period. It's possible that there might be something in the MFD I > guess. > Ran a few tests since my original email.. 6261b06de565baafa590e58a531a1a5522cea0b6 ("regulator: Defer lookup of supply to regulator_get") was the only patch that was introduced in the interval. there seems nothing in mfd either. I still have the following in my log.. trying to further down. > [ 1.970184] twl 0-0048: power (irq 344) chaining IRQs 347..354 > [ 2.007751] > [ 2.009338] ===================================== > [ 2.014343] [ BUG: swapper/0/1 still has locks held! ] > [ 2.019744] 4.0.0-rc6-next-20150402-00002-gff1da06adc96 #2 Not tainted > [ 2.026611] ------------------------------------- > [ 2.031524] 4 locks held by swapper/0/1: > [ 2.035675] #0: (&dev->mutex){......}, at: [] __driver_attach+0x48/0x98 > [ 2.043762] #1: (&dev->mutex){......}, at: [] __driver_attach+0x58/0x98 > [ 2.051940] #2: (&dev->mutex){......}, at: [] device_attach+0x18/0x8c > [ 2.059875] #3: (regulator_list_mutex){+.+.+.}, at: [] regulator_register+0x14c/0xf64 > [ 2.069274] > [ 2.069274] stack backtrace: > [ 2.073852] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.0.0-rc6-next-20150402-00002-gff1da06adc96 #2 > [ 2.083465] Hardware name: Generic OMAP3 (Flattened Device Tree) > [ 2.089813] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) > [ 2.097991] [] (show_stack) from [] (dump_stack+0x78/0x94) > [ 2.105621] [] (dump_stack) from [] (schedule_hrtimeout_range_clock+0x18c/0x25c) > [ 2.115234] [] (schedule_hrtimeout_range_clock) from [] (usleep_range+0x48/0x50) > [ 2.124877] [] (usleep_range) from [] (_regulator_do_enable+0xa4/0x270) > [ 2.133605] [] (_regulator_do_enable) from [] (regulator_register+0xa94/0xf64) > [ 2.143035] [] (regulator_register) from [] (devm_regulator_register+0x38/0x6c) > [ 2.152587] [] (devm_regulator_register) from [] (twlreg_probe+0x118/0x29c) > [ 2.161743] [] (twlreg_probe) from [] (platform_drv_probe+0x48/0x98) > [ 2.170257] [] (platform_drv_probe) from [] (driver_probe_device+0x1b0/0x26c) > [ 2.179626] [] (driver_probe_device) from [] (bus_for_each_drv+0x5c/0x88) > [ 2.188598] [] (bus_for_each_drv) from [] (device_attach+0x74/0x8c) > [ 2.197021] [] (device_attach) from [] (bus_probe_device+0x88/0xb0) > [ 2.205444] [] (bus_probe_device) from [] (device_add+0x324/0x520) > [ 2.213745] [] (device_add) from [] (of_platform_device_create_pdata+0x7c/0xb4) > [ 2.223266] [] (of_platform_device_create_pdata) from [] (of_platform_bus_create+0xdc/0x19 > 0) > [ 2.233978] [] (of_platform_bus_create) from [] (of_platform_populate+0x60/0xa8) > [ 2.243591] [] (of_platform_populate) from [] (twl_probe+0x380/0x5d8) > [ 2.252197] [] (twl_probe) from [] (i2c_device_probe+0x10c/0x154) > [ 2.260467] [] (i2c_device_probe) from [] (driver_probe_device+0x1b0/0x26c) > [ 2.269622] [] (driver_probe_device) from [] (__driver_attach+0x94/0x98) > [ 2.278503] [] (__driver_attach) from [] (bus_for_each_dev+0x54/0x88) > [ 2.287109] [] (bus_for_each_dev) from [] (bus_add_driver+0xdc/0x1d4) > [ 2.295715] [] (bus_add_driver) from [] (driver_register+0x78/0xf4) > [ 2.304107] [] (driver_register) from [] (i2c_register_driver+0x2c/0x78) > [ 2.312988] [] (i2c_register_driver) from [] (do_one_initcall+0x80/0x1d8) > [ 2.321990] [] (do_one_initcall) from [] (kernel_init_freeable+0x1f4/0x2cc) > [ 2.331146] [] (kernel_init_freeable) from [] (kernel_init+0x8/0xe4) > [ 2.339660] [] (kernel_init) from [] (ret_from_fork+0x14/0x24) > [ 2.373199] twl4030_gpio twl4030-gpio: gpio (irq 339) chaining IRQs 355..372 > [ 2.381103] gpiochip_find_base: found new base at 494 > [ 2.386810] gpiochip_add: registered GPIOs 494 to 511 on device: twl4030 -- Regards, Nishanth Menon