Re: Interrupt Storms on irq:11 with Tecra A4

John Baldwin <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
On Thursday 03 August 2006 15:28, Yousef Raffah wrote:
> John Baldwin wrote:
> > On Thursday 03 August 2006 03:47, Yousef Raffah wrote:
> >   
> >> John Baldwin wrote:
> >>     
> >>> On Wednesday 02 August 2006 01:56, Yousef Raffah wrote:
> >>>   
> >>> Well, these two appear to be your problem due to your BIOS having
> >>> buggy ASL.  You can work around it, but you'll need to figure out
> >>> the names of your link devices first.  'devinfo -v' with ACPI
> >>> enabled can help with that.  For example, on my laptop:
> >>>
> >>> % devinfo -v | grep 'pci_link[67]'
> >>>     pci_link6 pnpinfo _HID=PNP0C0F _UID=106 at handle=\_SB_.C002.C0F2
> >>>     pci_link7 pnpinfo _HID=PNP0C0F _UID=107 at handle=\_SB_.C002.C0F3
> >>>
> >>>   
> >>>       
> >> Here is my devinfo
> >>  devinfo -v | grep 'pci_link[67]'
> >>     pci_link6 pnpinfo _HID=PNP0C0F _UID=7 at handle=\_SB_.PCI0.LPCB.LNKG
> >>     pci_link7 pnpinfo _HID=PNP0C0F _UID=8 at handle=\_SB_.PCI0.LPCB.LNKH
> >>
> >> So I can see that pci_link6 is named LNKG and pci_link7 is LNKH
> >>     
> >
> > Yep.
> >
> >   
> >>> pci_link6 is called C0F2, and pci_link7 is called C0F3.  You'll use
> >>> these names to override the IRQ for the link device by setting the
> >>> following variables in the loader:
> >>>
> >>> hw.pci.link.C0F2.irq=11
> >>> hw.pci.link.C0F3.irq=11
> >>>
> >>> (You'll have to replace C0F2 and C0F3 with the names for your link
> >>> devices.  Probably LNKF and LNKG.)
> >>>       
> >> Based on that, I should have the following in my /boot/loader.conf?
> >> hw.pci.link.LNKG.irq=11
> >> hw.pci.link.LNKH.irq=11
> >>     
> >
> > Yep.
> >
> >   
> >> Let us try the loader file first and see if we need the patch after that.
> >>     
> >
> > Ok.  I'm betting you will need the patch, but just want to make sure 
first.
> >
> >   
> Looks like I do need the patch as the interrupt storm is still there.
> Now how do I do that?
> What should I do with this code? I mean where to put it? is there a
> special way of
> patch file < your_patch ?

Just:

cd /usr/src/sys
patch < /path/to/patch_file

and then build a new kernel.

> Index: dev/acpica/acpi_pci_link.c
> ===================================================================
> RCS file: /usr/cvs/src/sys/dev/acpica/acpi_pci_link.c,v
> retrieving revision 1.53
> diff -u -r1.53 acpi_pci_link.c
> --- dev/acpica/acpi_pci_link.c	6 Jan 2006 16:14:32 -0000	1.53
> +++ dev/acpica/acpi_pci_link.c	2 Aug 2006 14:27:09 -0000
> @@ -941,18 +941,16 @@
>  	KASSERT(!PCI_INTERRUPT_VALID(link->l_irq),
>  	    ("%s: link already has an IRQ", __func__));
>  
> -	/* Check for a tunable override and use it if it is valid. */
> +	/* Check for a tunable override. */
>  	if (ACPI_SUCCESS(acpi_short_name(acpi_get_handle(dev), link_name,
>  	    sizeof(link_name)))) {
>  		snprintf(tunable_buffer, sizeof(tunable_buffer),
>  		    "hw.pci.link.%s.%d.irq", link_name, link->l_res_index);
> -		if (getenv_int(tunable_buffer, &i) &&
> -		    PCI_INTERRUPT_VALID(i) && link_valid_irq(link, i))
> +		if (getenv_int(tunable_buffer, &i) && PCI_INTERRUPT_VALID(i))
>  			return (i);
>  		snprintf(tunable_buffer, sizeof(tunable_buffer),
>  		    "hw.pci.link.%s.irq", link_name);
> -		if (getenv_int(tunable_buffer, &i) &&
> -		    PCI_INTERRUPT_VALID(i) && link_valid_irq(link, i))
> +		if (getenv_int(tunable_buffer, &i) && PCI_INTERRUPT_VALID(i))
>  			return (i);
>  	}
> 
>  
> 
> 
> 
> 
> -- 
> 
> Sincerely,
> 
> Yousef Adnan Raffah
> Security Officer
> The Savola Group
> 
> -------------------
> Aren't you using Firefox? Get it at http://www.getfirefox.com
> 
> 
> 

-- 
John Baldwin
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.