Re: [PATCH] ide-floppy fix
From: Borislav Petkov <hidden>
Date: 2008-07-20 12:06:31
Also in:
lkml
Hi Bart, On Wed, Jul 16, 2008 at 07:56:46PM +0200, Bartlomiej Zolnierkiewicz wrote:
On Wednesday 16 July 2008, Borislav Petkov wrote:quoted
On Tue, Jul 15, 2008 at 10:58:48PM +0200, Bartlomiej Zolnierkiewicz wrote:quoted
On Tuesday 15 July 2008, Borislav Petkov wrote:quoted
On Wed, Jul 16, 2008 at 05:59:16PM +0200, Bartlomiej Zolnierkiewicz wrote:quoted
Hi, On Tuesday 15 July 2008, Borislav Petkov wrote: [...]quoted
On a different note, the current pata tree on top of v2.6.25-2125-g50515af blows up here with the following error: [ 4.296729] Uniform Multi-Platform E-IDE driver [ 4.297905] ICH4: IDE controller (0x8086:0x24cb rev 0x02) at PCI slot 0000:00:1f.1 [ 4.297986] ACPI: PCI Interrupt 0000:00:1f.1[A] -> GSI 18 (level, low) -> IRQ 18 [ 4.298153] ICH4: not 100% native mode: will probe irqs later [ 4.298213] ide0: BM-DMA at 0xfc00-0xfc07 [ 4.298282] ide1: BM-DMA at 0xfc08-0xfc0f [ 4.561768] hda: QUANTUM FIREBALLlct10 20, ATA DISK drive [ 4.816724] hdb: SAMSUNG SP2014N, ATA DISK drive [ 4.867959] hda: drive side 80-wire cable detection failed, limiting max speed to UDMA33 [ 4.868027] hda: UDMA/33 mode selected [ 4.868441] hdb: UDMA/100 mode selected [ 5.540683] hdc: IOMEGA ZIP 100 ATAPI, ATAPI FLOPPY drive [ 5.795564] hdd: IC35L120AVV207-0, ATA DISK drive [ 5.847295] hdd: host side 80-wire cable detection failed, limiting max speed to UDMA33 [ 5.847362] hdd: UDMA/33 mode selected [ 5.847715] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 [ 5.855487] ide1 at 0x170-0x177,0x376 on irq 15 [ 5.875927] ide_generic: please use "probe_mask=0x3f" module parameter for probing all legacy ISA IDE ports [ 5.876012] ide_generic: I/O resource 0x1F0-0x1F7 not free. [ 5.876074] ide_generic: I/O resource 0x170-0x177 not free. [ 11.342504] hde: no response (status = 0xa1), resetting drive [ 17.206535] hdf: no response (status = 0xa1), resetting drivehde? hdf? [...]yep, looks strange to me too. Isn't that the MAX_HWIFS upper bound of a loop.. ?Close, it is related to MAX_HWIFS being upper bound on hws[] in ide_generic.c but now we loop for ARRAY_SIZE(legacy_bases). IOW there is a memset(hws, 0, MAX_HWIFS) missing at the top of ide_generic_init() (please re-test after adding it). This may also explain the later problems with ide_host_register().I fixed this in pata tree now with: "ide-generic: remove ide_default_{io_base,irq}() inlines (take 2)" patch
here's the root cause for the problem: I had both Intel ICH chipset (BLK_DEV_PIIX) und generic ide (BLK_DEV_GENERIC) selected in Kconfig and since ICH4 uses the generic driver detection routine, the second(!) generic detection after the ICH4 one failed and died. This is why request_region()-resources are shown as not being free above:
quoted
quoted
quoted
quoted
quoted
[ 5.875927] ide_generic: please use "probe_mask=0x3f" module parameter for probing all legacy ISA IDE ports [ 5.876012] ide_generic: I/O resource 0x1F0-0x1F7 not free. [ 5.876074] ide_generic: I/O resource 0x170-0x177 not free.
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...
quoted
quoted
quoted
quoted
quoted
From: Borislav Petkov <redacted> Check the correct flags-location for set features. Signed-off-by: Borislav Petkov <redacted>Thanks, I folded the fix into original patch (->dev_flags is not yet upstream so -stable fix shouldn't be necessary). While on it: I later noticed that there will be also need for common ATA/ATAPI ->dev_flags in the future so I wonder whether current ->dev_flags should be renamed to ->atapi_flags (& s/*DFLAG*/*AFLAG*/). If there is agreement on this I'll fix it in pata tree.... or if there's room, use a single ->dev_flags for all possible flag settings?Unfortunately there isn't enough room left (27 bits are occupied ATM) and having u64 ->dev_flags sucks...I'm pretty sure some of the 27 will be removed later but yeah, u64 flags is kinda bad since it has to be always atomically updated and this has to be explicitly staged on 32bit cpus due to the wordsize. I guess two flags members->dev_flags -> ->atapi_flags & co. are also in pata tree nowquoted
are the easiest thing to do for now, you might add some comments to both so we know which is which.Sure, I will remember about this when it comes time for ->dev_flags. Thanks, Bart
--
Regards/Gruß,
Boris.