Re: [PATCH v6] amba: Remove deferred device addition

From: Guenter Roeck
Date: Fri Aug 12 2022 - 11:30:54 EST


On 8/11/22 22:12, Isaac Manjarres wrote:
On Thu, Aug 11, 2022 at 12:55:08PM -0700, Guenter Roeck wrote:

Ah, it must be triggered by one of the configuration options I have enabled
on top of versatile_defconfig. Sorry, I should have checked. Please try
with the configuration below.

Guenter

Thanks for sharing your config options; I was able to reproduce the
crash after copying your config options to my repository :) The
following changes fixed the problem for me. Can you please give them a
try on your end to see if they work for you too?

diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 90b31fb141a5..0315bc2853ef 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -1117,7 +1117,9 @@ static int __driver_attach(struct device *dev, void *data)
* is an error.
*/

+ device_lock(dev);
ret = driver_match_device(drv, dev);
+ device_unlock(dev);
if (ret == 0) {
/* no match */
return 0;


After more testing: the changes above result in qemu sx1 boot failures.
There is no crash, boot just hangs.

qemu command line:

qemu-system-arm -M sx1 -kernel arch/arm/boot/zImage -no-reboot \
-initrd rootfs-armv4.cpio \
--append "rdinit=/sbin/init console=ttyS0,115200 earlycon=uart8250,mmio32,0xfffb0000,115200n8" \
-nographic -monitor null -serial stdio

with configuration from
https://github.com/groeck/linux-build-test/blob/master/rootfs/arm/qemu_sx1_defconfig
and root file system from
https://github.com/groeck/linux-build-test/blob/master/rootfs/arm/rootfs-armv4.cpio.gz

This is with your other patch applied.

Guenter