Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Aug 2006 11:15:08 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-mobile@freebsd.org, yraffah@savola.com
Subject:   Re: Interrupt Storms on irq:11 with Tecra A4
Message-ID:  <200608041115.09320.jhb@freebsd.org>
In-Reply-To: <44D24E6C.9050502@savola.com>
References:  <1152019643.704.42.camel@redevil.savola.com> <200608031114.51389.jhb@freebsd.org> <44D24E6C.9050502@savola.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200608041115.09320.jhb>