[PATCH] Fix weird PCI bus numbers with pci_linkX

O. Hartmann ohartman at mail.uni-mainz.de
Mon Nov 21 13:52:43 PST 2005


John Baldwin wrote:

>On Monday 21 November 2005 04:08 pm, O. Hartmann wrote:
>  
>
>>John Baldwin wrote:
>>    
>>
>>>On Thursday 17 November 2005 05:50 pm, John Baldwin wrote:
>>>      
>>>
>>>>On Thursday 17 November 2005 05:32 pm, Nate Lawson wrote:
>>>>        
>>>>
>>>>>John Baldwin wrote:
>>>>>          
>>>>>
>>>>>>I think I figured out why some people get messages like:
>>>>>>
>>>>>>pci_linkX: BIOS IRQ 11 for -17777216.6.INTA is invalid
>>>>>>
>>>>>>I was not reading the bus number from the bridge device correctly (the
>>>>>>normal __BUS_ACCESSOR() macros assume that the passed in argument is a
>>>>>>child device, but at the time I'm reading the bus there is no child
>>>>>>device, so I was passing in the pcib device, the parent of the pcib
>>>>>>device probably returned an error, and the bus variable ended up being
>>>>>>some random stack garbage). The attached patch (also at URL) should fix
>>>>>>it I think.
>>>>>>
>>>>>>http://www.FreeBSD.org/~jhb/patches/acpi_pci_link.patch
>>>>>>            
>>>>>>
>>>>>Excellent, patch looks good to me except the printf/panic message could
>>>>>be improved.
>>>>>          
>>>>>
>>>>I wanna see if it triggers first.
>>>>        
>>>>
>>>So did anyone test this?  I can't commit it unless someone tests it.
>>>      
>>>
>>What to do?
>>
>>Attached you will find two dmesg outputs. dmesg.old is done before the
>>pacth was included, dmesg.new is the one after the patch has been
>>applied. There seems to be a difference when my eyes hit the part where
>>the negative IRQ statemets are, so that seems to be only the half of the
>>way. What next?
>>
>>Hardware: ASUS A8N-SLI Deluxe, OS FreeBSD 6.0-STABLE, most recent
>>cvsupdated this morning 10 o'clock MET.
>>    
>>
>
>There is quite a huge difference.
>
>Old:
>
>pci_link26: BIOS IRQ 11 for -2145794824.1.INTA is invalid
>pci_link21: BIOS IRQ 5 for -2145794824.2.INTA is invalid
>pci_link27: BIOS IRQ 3 for -2145794824.2.INTB is invalid
>pci_link23: BIOS IRQ 11 for -2145794824.10.INTA is invalid
>pci_link24: BIOS IRQ 3 for -2145794824.4.INTA is invalid
>pci_link29: BIOS IRQ 11 for -2145794824.7.INTA is invalid
>pci_link30: BIOS IRQ 5 for -2145794824.8.INTA is invalid
>...
>pci_link17: BIOS IRQ 21 for 0.7.INTA is invalid
>pci_link18: BIOS IRQ 22 for 0.8.INTA is invalid
>pci_link19: BIOS IRQ 23 for 0.10.INTA is invalid
>
>New:
>
>pci_link26: BIOS IRQ 11 for 0.1.INTA is invalid
>pci_link21: BIOS IRQ 5 for 0.2.INTA is invalid
>pci_link27: BIOS IRQ 3 for 0.2.INTB is invalid
>pci_link23: BIOS IRQ 11 for 0.10.INTA is invalid
>pci_link24: BIOS IRQ 3 for 0.4.INTA is invalid
>pci_link29: BIOS IRQ 11 for 0.7.INTA is invalid
>pci_link30: BIOS IRQ 5 for 0.8.INTA is invalid
>...
>pci_link16: BIOS IRQ 3 for 5.11.INTA is invalid
>
>This is much better.  The bus number look sane, and now it is no longer 
>complaining about 17, 18, and 19 having proper settings.  The complaints are 
>normal given that you have APIC enabled, so APIC is going to use different 
>IRQs than the BIOS which doesn't use APIC.
>
>  
>
All right. If there is anything else I can do, let me know.

Oliver


More information about the freebsd-acpi mailing list