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

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

 



On Wed, 12 Sep 2007 16:54:08 +0100 (BST), "Maciej W. Rozycki" <macro@xxxxxxxxxxxxxx> 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


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux