Re: [PATCH] scsi: cxlflash: Select SCSI_SCAN_ASYNC

From: Michael Ellerman
Date: Tue Feb 20 2018 - 03:56:42 EST


Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx> writes:

> The cxlflash driver uses "Asynchronous SCSI scanning" enabled by
> CONFIG_SCSI_SCAN_ASYNC. Without this enabled the modprobe of cxlflash
> module gets hung with following backtrace:
>
> Call Trace:
> __switch_to+0x2cc/0x470
> __schedule+0x288/0xab0
> schedule+0x40/0xc0
> schedule_timeout+0x254/0x4f0
> wait_for_common+0xdc/0x260
> flush_work+0x140/0x2a0
> work_on_cpu+0x88/0xb0
> pci_device_probe+0x1d0/0x220
> driver_probe_device+0x408/0x5b0
> __driver_attach+0x16c/0x1a0
> bus_for_each_dev+0xb8/0x110
> driver_attach+0x3c/0x60
> bus_add_driver+0x1d8/0x370
> driver_register+0x9c/0x180
> __pci_register_driver+0x74/0xa0
> init_cxlflash+0x158/0x1cc
> do_one_initcall+0x68/0x1e0
> do_init_module+0x90/0x254
> load_module+0x2f8c/0x3720
> SyS_finit_module+0xcc/0x140
> system_call+0x58/0x6c

Why does it "hang"? That's kind of bizarre, I would expect either a
build or runtime failure if a feature the driver requires is missing.

> diff --git a/drivers/scsi/cxlflash/Kconfig b/drivers/scsi/cxlflash/Kconfig
> index a011c5dbf214..f054c1b0fff3 100644
> --- a/drivers/scsi/cxlflash/Kconfig
> +++ b/drivers/scsi/cxlflash/Kconfig
> @@ -6,6 +6,7 @@ config CXLFLASH
> tristate "Support for IBM CAPI Flash"
> depends on PCI && SCSI && CXL && EEH
> select IRQ_POLL
> + select SCSI_SCAN_ASYNC

It's user configurable, so it's rude to select it. It can also be
disabled on the kernel command line, so this seems like a fragile
solution.

cheers