Re: current git crashes on bootup with pci_iounmap()

From: Tejun Heo
Date: Wed Feb 21 2007 - 06:35:06 EST


Kay Sievers wrote:
> On 2/13/07, Kay Sievers <kay.sievers@xxxxxxxx> wrote:
>> On Tue, 2007-02-13 at 17:04 +0100, Marcel Holtmann wrote:
>> > > kernel BUG at lib/iomap.c:254!
>> > > invalid opcode: 0000 [#1]
>> > > ...
>> > >
>> > > The screen picture is here:
>> > > http://vrfy.org/pci_iounmap.jpg
>> > >
>> > > It's a Thinkpad T43p.
>> > >
>> > > 2.6.20 was working fine.
>> > >
>> > > Commenting out:
>> > > IO_COND(addr, /* nothing */, iounmap(addr));
>> > > in:
>> > > lib/iomap.c:254
>> > > makes at least booting up possible.
>> >
>> > I saw a similar one on my X41. Disabling the AHCI driver made the
>> > machine booting again.
>>
>> Hey Marcel,
>> yeah, that works fine here too.
>
> Tejun, Jeff, any ideas what's going wrong with the iomap change and
> the AHCI driver?

The following commit should have fixed the problem, at least the oops.
Care to give the current git head a shot?

commit fb4d64e78ceab77cf20f7796f74aa10ebe862032
Author: Frederik Deweerdt <deweerdt@xxxxxxx>
Date: Fri Feb 16 01:27:15 2007 -0800

[PATCH] pci_iomap_regions() error handling fix

It appears that the pcim_iomap_regions() function doesn't get the error
handling right. It BUGs early at boot with a backtrace along the
lines of:

ahci_init
pci_register_driver
driver_register
[...]
ahci_init_one
pcim_iomap_region
pcim_iounmap

The following patch allows me to boot. Only the if(mask..) continue;
part fixes the problem actually, the gotos where changed so that we
don't try to unmap something we couldn't map anyway.

Signed-off-by: Frederik Deweerdt <frederik.deweerdt@xxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Tejun Heo <htejun@xxxxxxxxx>
Cc: Jeff Garzik <jeff@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

--
tejun
-
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/