Re: 2.6.17-rc[56]-mm*: pcmcia "I/O resource not free"

From: Andrew Morton
Date: Wed Jun 21 2006 - 03:45:12 EST


On Tue, 20 Jun 2006 23:50:36 -0700
Andy Isaacson <adi@xxxxxxxxxxxxx> wrote:

> On Tue, Jun 20, 2006 at 03:03:17PM -0700, Andrew Morton wrote:
> > It's strange (to me) that IDE is requesting a single-byte memory region.
> > Possibly we've broken the resource.c code such that it has some off-by-one
> > and is now rejecting single-byte requests.
> [snip]
> > +++ a/kernel/resource.c
> > + printk("conflict: %s[%Lx->%Lx]\n",
> [snip]
> > Then again, perhaps IDE is broken (as well?), because you don't have any
> > single-byte iomem regions in your 2.6.17-rc6 /proc/iomem. It would be
> > interesting to run this patch in both 2.6.17-rc6 and in 2.6.17-rc6-mm2, see
> > what it says:
> [snip]
> > +++ 25-akpm/drivers/ide/ide.c Tue Jun 20 15:02:15 2006
> > + printk("%s: single-byte request\n", __FUNCTION__);
> > + dump_stack();
>
> With both patches, rc6-mm2 dumps the following.
>
> [ 2034.052000] pccard: PCMCIA card inserted into slot 0
> [ 2034.052000] cs: memory probe 0xf0000000-0xf7ffffff: excluding 0xf0000000-0xf7ffffff
> [ 2034.052000] cs: memory probe 0xd0200000-0xdfffffff: excluding 0xd0200000-0xd11fffff 0xd1a00000-0xd41fffff 0xd4a00000-0xd51fffff 0xd5a00000-0xd61fffff 0xd6a00000-0xd71fffff 0xd7a00000-0xd81fffff 0xd8a00000-0xd91fffff 0xd9a00000-0xda1fffff 0xdaa00000-0xdb1fffff 0xdba00000-0xdc1fffff 0xdca00000-0xdd1fffff 0xdda00000-0xde1fffff 0xdea00000-0xdf1fffff 0xdfa00000-0xe01fffff
> [ 2034.060000] pcmcia: registering new device pcmcia0.0
> [ 2034.060000] PM: Adding info for pcmcia:0.0
> [ 2035.976000] conflict: PCI IO[0->ffff]
> [ 2035.976000] hwif_request_region: single-byte request for ide2
> [ 2035.976000] [<c0257386>] hwif_request_region+0xa6/0xb0
> [ 2035.976000] [<c02574bf>] ide_hwif_request_regions+0x12f/0x150
> [ 2035.976000] [<c0257177>] init_hwif_default+0x37/0x120
> [ 2035.976000] [<f8b070b0>] idecs_mmio_fixup+0x0/0x30 [ide_cs]
> [ 2035.976000] [<c025e8a9>] probe_hwif+0x29/0x4f0
> [ 2035.976000] [<f8b070b0>] idecs_mmio_fixup+0x0/0x30 [ide_cs]
> [ 2035.976000] [<c025ed85>] probe_hwif_init_with_fixup+0x15/0xa0
> [ 2035.976000] [<c0257ea5>] ide_register_hw_with_fixup+0x165/0x1b0
> [ 2035.976000] [<f8b070b0>] idecs_mmio_fixup+0x0/0x30 [ide_cs]
> [ 2035.976000] [<f8b070b0>] idecs_mmio_fixup+0x0/0x30 [ide_cs]
> [ 2035.976000] [<f8b07163>] idecs_register+0x83/0xd0 [ide_cs]
> [ 2035.976000] [<f8b070b0>] idecs_mmio_fixup+0x0/0x30 [ide_cs]
> [ 2035.976000] [<f8b071c0>] outb_mem+0x0/0x10 [ide_cs]
> [ 2035.976000] [<f8b075e4>] ide_config+0x414/0x790 [ide_cs]
> [ 2035.976000] [<f8b071c0>] outb_mem+0x0/0x10 [ide_cs]
> [ 2035.976000] [<f8b0f4c8>] pcmcia_device_probe+0xa8/0x160 [pcmcia]
> [ 2035.976000] [<c025104c>] driver_probe_device+0xbc/0xe0
> [ 2035.976000] [<c02510f0>] __driver_attach+0x0/0x80
> [ 2035.976000] [<c0251160>] __driver_attach+0x70/0x80
> [ 2035.976000] [<c0250369>] bus_for_each_dev+0x69/0x80
> [ 2035.976000] [<c0251195>] driver_attach+0x25/0x30
> [ 2035.976000] [<c02510f0>] __driver_attach+0x0/0x80
> [ 2035.976000] [<c0250968>] bus_add_driver+0x88/0xd0
> [ 2035.976000] [<f8b0b00f>] init_ide_cs+0xf/0x11 [ide_cs]
> [ 2035.976000] [<c0139f32>] sys_init_module+0xf2/0x190
> [ 2035.976000] [<c02e3105>] sysenter_past_esp+0x56/0x79
> [ 2035.976000] [<c02e007b>] inet6_lookup_listener+0x2b/0x100
> [ 2035.976000] ide2: I/O resource 0xF8B0200E-0xF8B0200E not free.
> [ 2035.976000] ide2: ports already in use, skipping probe

hm. It appears to have decided that 0 < 0xF8B0200E < 0xffff, which is
clever of it.

Does it help if you set CONFIG_RESOURCES_32BIT?
-
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/