(If you reply from the mailing list, please Cc me, I am not subscribed)
Dear kernel maintainers and developers,
With a kernel configuration resulting in ISA_BUS_API being unset (as in
Debian amd64 kernels), loading the advansys module fails:
# modprobe advansys
modprobe: ERROR: could not insert 'advansys': No such device
advansys_init() calls isa_register_driver() which returns -ENODEV when
CONFIG_ISA_BUS_API is not defined.
Commit 9b4c8eaa68d0ce85be4ae06cbbd158c53f66fe4f "advansys: remove ISA
support" in Linux 5.13 did not remove the call to isa_register_driver()
for the VLB driver, so the issue remains.
What is the proper way to fix this ?
a) In drivers/scsi/Kconfig
add "select ISA_BUS_API" to SCSI_ADVANSYS dependencies.
b) In include/linux/isa.h
make isa_register_driver() return 0 instead of -ENODEV if ISA_BUS_API is
unset.
Rationale: eisa_register_driver() and pci_register_driver() return 0 if
EISA or PCI respectively is unset.
c) In drivers/scsi/advansys.c
make advansys_init() return failure only if all
{isa,eisa,pci}_register_driver() calls return failure.
d) In drivers/scsi/advansys.c
remove VLB support in kernel >= 5.13.
Rationale: VLB is an extension of the ISA bus, can it work without ISA
support ?
Besides, I believe that VLB disappeared before ISA, it was specific to
i486 motherboards while ISA lasted at least up to Pentium III motherboards.
e) In drivers/scsi/advansys.c
conditionally build ISA/VLB support only if ISA_BUS_API is set.
f) other ?