linux-mips
[Top] [All Lists]

Re: [MIPS] SMTC: Fix crash on bootup with idebus= command line argument.

To: macro@linux-mips.org
Subject: Re: [MIPS] SMTC: Fix crash on bootup with idebus= command line argument.
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Thu, 13 Sep 2007 01:55:20 +0900 (JST)
Cc: ralf@linux-mips.org, linux-mips@linux-mips.org
In-reply-to: <Pine.LNX.4.64N.0709121621200.24030@blysk.ds.pg.gda.pl>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <Pine.LNX.4.64N.0709111509140.30365@blysk.ds.pg.gda.pl> <20070913.001809.106261283.anemo@mba.ocn.ne.jp> <Pine.LNX.4.64N.0709121621200.24030@blysk.ds.pg.gda.pl>
Sender: linux-mips-bounce@linux-mips.org
On Wed, 12 Sep 2007 16:54:08 +0100 (BST), "Maciej W. Rozycki" 
<macro@linux-mips.org> wrote:
>  I gather the problem is ide_probe_legacy() is called too early for PCI to 
> have been initialised.  With the old code ide_probe_legacy() called 
> pci_get_class(), which in turn triggered PCI initialisation, which enabled 
> interrupts prematurely and the failure scenario happened.  To rectify Ralf 
> resurrected yet older code that reserved the legacy ports unconditionally.  
> You have put the code that calls pci_get_class() back and introduced this 
> call to no_pci_devices() beforehand.  Please correct me if I have been 
> wrong anywhere here.

Right.  That's exactly what I did.

>  Now because at the point ide_probe_legacy() is called, PCI has not been 
> initialised yet, no_pci_devices() returns true and calls to 
> pci_get_class() are skipped preventing PCI initialisation from triggering 
> at this point.  But the end result is they are not going to be called, 
> because if they were, it would mean no_pci_devices() had returned false 
> and would have been unnecessary in the first place.

The pci_get_class() failure was happened only if ide_probe_legacy() was
called too early.  That can happen if you specified some IDE boot
options, such as "idebus=" option.

So if you do not add any ide boot option, there should be no problem.

If you meant "ide_probe_legacy() has been broken with ide boot options
for long years", I agree.

And my recent patch is not to solve this problem.  Just avoid adding
legacy ide0/ide1 unconditionally in normal usage.

>  I hope I have been clearer now.

Thank you!

---
Atsushi Nemoto

<Prev in Thread] Current Thread [Next in Thread>