All of lore.kernel.org
 help / color / mirror / Atom feed
From: Len Brown <lenb@kernel.org>
To: Shaohua Li <shaohua.li@intel.com>
Cc: linux acpi <linux-acpi@vger.kernel.org>,
	Stian Jordet <stian_web@jordet.nu>, Andrew Morton <akpm@osdl.org>
Subject: Re: [RFC 2/2] don't enable link device in IOAPIC mode
Date: Wed, 3 Jan 2007 17:41:32 -0500	[thread overview]
Message-ID: <200701031741.32746.lenb@kernel.org> (raw)
In-Reply-To: <1165886792.19586.26.camel@sli10-conroe.sh.intel.com>

On Monday 11 December 2006 20:26, Shaohua Li wrote:
> In Stian's system, if link device is enabled in IOAPIC mode, pci device
> will connect to link device and link device connect to IOAPIC pin. That
> is the device's interrupt is decided by link's irq. If link device is
> disabled, pci device is connected to IOAPIC pin.
> There are two devices who share one link device in pic mode, but in
> IOAPIC mode, _PRT table reported one device connected to IOAPIC pin and
> the other connected to the link device. If the link device is enabled,
> the device connected to IOAPIC pin directly will break as _PRT reported
> interrupt for the device doesn't reflect the case link device is
> enabled. If we leave the link device disabled, the device which
> connected to the link device doesn't break. It appears the link device
> is just used to get an interrupt number instead of for real interrupt
> routing. So in this patch, if current irq model is IOAPIC, we will leave
> link device disabled and just use its active irq number.
> 
> Signed-off-by: Shaohua Li<shaohua.li@intel.com>
> 
> diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> index d53bd98..655bb49 100644
> --- a/drivers/acpi/pci_link.c
> +++ b/drivers/acpi/pci_link.c
> @@ -527,6 +527,10 @@ static int acpi_pci_link_allocate(struct
>  	int i;
>  
>  
> +	if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC && link->irq.active) {
> +		link->irq.initialized = 1;
> +		return 0;
> +	}
>  	if (link->irq.initialized) {
>  		if (link->refcnt == 0)
>  			/* This means the link is disabled but initialized */

Earlier I NAK'd this on the assertion that it would cause some devices to
not get interrupts.

I've now confirmed that assertion was correct.

Annforce2 board uses Link APC3 to connect
int-A of its PCI slot to the IOAPIC, and the link
is disabled by default:

ACPI: PCI Interrupt Link [APC3] (IRQs *18), disabled.

Before this patch, an e100 in that slot works:

ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
(and eth1 interface works properly)

And after this patch an e100 in that slot does not work:
(APC3 is not enabled, and interface does not come up)
Bringing up interface eth1:
Determining IP information for eth1...PING 192.168.0.1 (192.168.0.1) from 192.168.0.17 eth1: 56(84) bytes of data.

--- 192.168.0.1 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2010ms
, pipe 3
 failed.
[FAILED]                                                                                                                                  

thanks,
-Len

      reply	other threads:[~2007-01-03 22:42 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-12  1:26 [RFC 2/2] don't enable link device in IOAPIC mode Shaohua Li
2007-01-03 22:41 ` Len Brown [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200701031741.32746.lenb@kernel.org \
    --to=lenb@kernel.org \
    --cc=akpm@osdl.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=shaohua.li@intel.com \
    --cc=stian_web@jordet.nu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.