Re: [PATCH] ide-floppy fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Tuesday 22 July 2008, Borislav Petkov wrote:

[...]

> [    5.879917] ide_generic: please use "probe_mask=0x3f" module parameter for probing all legacy ISA IDE ports
> [    5.879997] probe_mask=0x3, i=0x0, io_addr=0x1f0
> [    5.880057] ide_generic: I/O resource 0x1F0-0x1F7 not free.
> [    5.880115] probe_mask=0x3, i=0x1, io_addr=0x170
> [    5.880173] ide_generic: I/O resource 0x170-0x177 not free.
> [    5.880246] ide_host_register: loop0: i=0, hwif=00000000
> [    5.880299] ide_host_register: loop0: i=1, hwif=00000000
> [    5.880357] ide_host_register: loop0: i=2, hwif=00000000
> 
> and then it goes KABOOM!
> 
> 
> 
> I tested both with BLK_DEV_GENERIC on and off and the
> error happens only when it is on:
> 
> --- config.ok   2008-07-22 06:58:48.000000000 +0200
> +++ config.b0rked       2008-07-22 06:59:31.000000000 +0200
> @@ -1,7 +1,7 @@
>  #
>  # Automatically generated make config: don't edit
>  # Linux kernel version: 2.6.26
> -# Tue Jul 22 06:58:28 2008
> +# Tue Jul 22 06:59:24 2008
>  #
>  # CONFIG_64BIT is not set
>  CONFIG_X86_32=y
> @@ -600,7 +600,7 @@ CONFIG_IDE_PROC_FS=y
>  #
>  # IDE chipset support/bugfixes
>  #
> -# CONFIG_IDE_GENERIC is not set
> +CONFIG_IDE_GENERIC=y
>  # CONFIG_BLK_DEV_PLATFORM is not set
>  # CONFIG_BLK_DEV_CMD640 is not set
>  # CONFIG_BLK_DEV_IDEPNP is not set
> 
> I've also attached the .config that breaks the machine. Please take a look in
> case i'm missing something.

Thanks, with this config I can reproduce the problem.

> > [ Besides it shouldn't result in phantom hde & hdf devices
> >   and ide_generic blowing up on failure. ]
> > 
> > Have you tried the memset() fix that I proposed
> > (pata tree contains the revised patch now)?
> 
> yep, test runs ontop of your tree from Sunday which already has the fix.

*sigh*

The previous fix was garbage and contained brown-paper-bag bug:

diff -u b/drivers/ide/ide-generic.c b/drivers/ide/ide-generic.c
--- b/drivers/ide/ide-generic.c
+++ b/drivers/ide/ide-generic.c
@@ -114,7 +114,7 @@
 	printk(KERN_INFO DRV_NAME ": please use \"probe_mask=0x3f\" module "
 			 "parameter for probing all legacy ISA IDE ports\n");
 
-	memset(hws, 0, MAX_HWIFS);
+	memset(hws, 0, sizeof(hw_regs_t *) * MAX_HWIFS);
 
 	for (i = 0; i < ARRAY_SIZE(legacy_bases); i++) {
 		io_addr = legacy_bases[i];


Now it should be finally fixed.

> > > One of the possible fixes is adding
> > > 
> > > depends on !BLK_DEV_GENERIC
> > > 
> > > after each IDE chipset driver using the generic detection in drivers/ide/Kconfig
> > > but it's a not-that-elegant one. Another thing would be using a dummy one like
> > > BLK_DEV_IDEDMA_PCI, but I'm not that sure. Will look into it. I'm pretty sure
> > > you have a better idea...
> > 
> > pata_legacy.c has a proper fix which needs porting into ide-generic.c
> > (it should be pretty easy thing to do).
> 
> (is this a hint^^? :))

It has *HINT* written all over it. ;)

Thanks,
Bart
--
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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux