Re: sata_nv does not function in kernel > 2.6.20.21

From: Jeff Garzik
Date: Thu Jan 10 2008 - 00:46:00 EST


Matthew Hall wrote:
On Wed, Jan 09, 2008 at 11:40:47PM -0500, Jeff Garzik wrote:
Error -16 is EBUSY, which causes the driver load to fail due to the "Unable to reserve mem region" message.

This means that the sata_nv driver needed to use PCI BAR 6, but was unable to for some reason. Given that sata_nv uses devres like other libata drivers, IMO the likely cause is outside the ATA subsystem (PCI? ACPI?).

I will follow up on this with the appropriate subsystem lists ASAP. Thanks for getting me redirected appropriately.

One workaround to try is setting sata_nv module option 'adma' to zero (0), in the hopes that it ignores that final region and work anyway.

I am not quite sure what to do about this part... my boot device for the system is on one of the sata_nv channels which remains functional and does not get disabled by the resource conflict.

How shall I best attempt the suggested workaround without having to delete the sata_nv driver from the kernel thus rendering the kernel unbootable on this machine? Is there some way to pass the appropriate option at boot instead of at module load time or some file I could modify to enable the specified option in the code?

If you build the driver into the kernel, then pass "sata_nv.adma=0" on the kernel command line.

Otherwise, look into how your distro sets module options... probably editing /etc/modprobe.conf. You may need to regenerate critical boot files such as initramfs (aka initrd) afterwards, again distro specific (try mkinitrd). Set module option "adma=0" for the sata_nv module.

Jeff



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/