Bartlomiej Zolnierkiewicz writes: > From: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> > Subject: [PATCH] ide-generic: don't probe all legacy ISA IDE ports by default > > We can't probe all legacy ISA IDE ports by default as the resources may be > occupied by other ISA devices. Add "probe_mask" module parameter and probe > only first two ISA IDE ports by default leaving the decision about probing > the rest to the user (systems with ISA ide2-6 should be very, very rare). > > This fixes a regression caused by: > > commit 343a3451e20314d5959b59b992e33fbaadfe52bf > Author: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> > Date: Tue Jun 10 20:56:36 2008 +0200 > > ide-generic: add missing hwif->chipset setup > ... > > Reported-by: Mikael Pettersson <mikpe@xxxxxxxx> > Bisected-by: Mikael Pettersson <mikpe@xxxxxxxx> > Cc: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> This fixes the regression on my old box. Thanks. Tested-by: Mikael Pettersson <mikpe@xxxxxxxx> > --- > drivers/ide/ide-generic.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > Index: b/drivers/ide/ide-generic.c > =================================================================== > --- a/drivers/ide/ide-generic.c > +++ b/drivers/ide/ide-generic.c > @@ -22,6 +22,10 @@ > > #define DRV_NAME "ide_generic" > > +static int probe_mask = 0x03; > +module_param(probe_mask, int, 0); > +MODULE_PARM_DESC(probe_mask, "probe mask for legacy ISA IDE ports"); > + > static ssize_t store_add(struct class *cls, const char *buf, size_t n) > { > ide_hwif_t *hwif; > @@ -89,6 +93,9 @@ static int __init ide_generic_init(void) > u8 idx[MAX_HWIFS]; > int i; > > + printk(KERN_INFO DRV_NAME ": please use \"probe_mask=0x3f\" module " > + "parameter for probing all legacy ISA IDE ports\n"); > + > for (i = 0; i < MAX_HWIFS; i++) { > ide_hwif_t *hwif; > unsigned long io_addr = ide_default_io_base(i); > @@ -96,7 +103,7 @@ static int __init ide_generic_init(void) > > idx[i] = 0xff; > > - if (io_addr) { > + if ((probe_mask & (1 << i)) && io_addr) { > if (!request_region(io_addr, 8, DRV_NAME)) { > printk(KERN_ERR "%s: I/O resource 0x%lX-0x%lX " > "not free.\n", > -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html