2006-11-26 23:23:39

by Lu, Yinghai

[permalink] [raw]

2006-11-27 00:22:24

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH 2/3] x86: remove duplicated parser for "pci=noacpi"

On Sun, Nov 26, 2006 at 03:23:36PM -0800, Yinghai Lu wrote:
>

Are you sure it's correct? The drivers/pci pci= parsing
isn't early and there tend to be nasty ordering issues.
I can't see where it would go wrong here, but it probably
needs very careful double checking.

-Andi

2006-11-27 03:35:38

by Lu, Yinghai

[permalink] [raw]
Subject: Re: [PATCH 2/3] x86: remove duplicated parser for "pci=noacpi"

On 27 Nov 2006 01:22:21 +0100, Andi Kleen <[email protected]> wrote:
> On Sun, Nov 26, 2006 at 03:23:36PM -0800, Yinghai Lu wrote:
> >
>
> Are you sure it's correct? The drivers/pci pci= parsing
> isn't early and there tend to be nasty ordering issues.
> I can't see where it would go wrong here, but it probably
> needs very careful double checking.

I will double check that

YH

2006-11-27 21:47:07

by Lu, Yinghai

[permalink] [raw]
Subject: RE: [PATCH 2/3] x86: remove duplicated parser for "pci=noacpi"


-----Original Message-----
From: Andi Kleen [mailto:[email protected]]
Sent: Sunday, November 26, 2006 4:22 PM

>Are you sure it's correct? The drivers/pci pci= parsing
>isn't early and there tend to be nasty ordering issues.
>I can't see where it would go wrong here, but it probably
>needs very careful double checking.

I double check that, we don't need the parser in
arch/i386/kernel/acpi/boot.c for
pci=noapci.

Actually, pcibios_setup in arch/i386/kernel/pci/common.c that process
pci=noacpi will be
called by pci_setup in drivers/pci/pci.c, and
early_param("pci", pci_setup);

YH


2006-12-07 05:24:05

by Sergio Monteiro Basto

[permalink] [raw]
Subject: Re: [PATCH 2/3] x86: remove duplicated parser for "pci=noacpi"

On Sun, 2006-11-26 at 15:23 -0800, Yinghai Lu wrote:
[PATCH 2/3] x86: remove duplicated parser for "pci=noacpi"

Remove "pci=noacpi" parse in acpi/boot.c, because it is duplicated
with that in pci/common.c.

Signed-off-by: Yinghai Lu <[email protected]>

diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index d12fb97..6d62dd1 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -1285,15 +1293,6 @@ static int __init parse_acpi(char *arg)
}
early_param("acpi", parse_acpi);

-/* FIXME: Using pci= for an ACPI parameter is a travesty. */
-static int __init parse_pci(char *arg)
-{
- if (arg && strcmp(arg, "noacpi") == 0)
- acpi_disable_pci();
- return 0;
-}
-early_param("pci", parse_pci);
-
#ifdef CONFIG_X86_IO_APIC
static int __init parse_acpi_skip_timer_override(char *arg)
{
diff --git a/arch/i386/pci/common.c b/arch/i386/pci/common.c
index cdfcf97..6d5b70a 100644
--- a/arch/i386/pci/common.c
+++ b/arch/i386/pci/common.c
@@ -294,7 +294,7 @@ char * __devinit pcibios_setup(char *str)
}
#endif
else if (!strcmp(str, "noacpi")) {
- acpi_noirq_set();
+ acpi_disable_pci();
return NULL;
}
else if (!strcmp(str, "noearly")) {


/include/asm-x86_64/acpi.h (and asm-i386)
acpi_disable_pci :

#ifdef CONFIG_ACPI
static inline void acpi_noirq_set(void) { acpi_noirq = 1; }
static inline void acpi_disable_pci(void)
{
acpi_pci_disabled = 1;
acpi_noirq_set();
}
#else /* !CONFIG_ACPI */
#define acpi_ioapic 0
static inline void acpi_noirq_set(void) { }
static inline void acpi_disable_pci(void) { }

so first hunk of the patch doesn't have nothing in common with second ,
and it is different disable acpi_irqs than disable all acpi,
callacpi_disable_pci () is acpi=off.

My main goal when I read this mail was delete acpi=noirq or pci=noacpi
because is a redundant boot option which just make confusions.

I have to go (sleep)

Thanks,

--
S?rgio M.B.


Attachments:
smime.p7s (2.12 kB)

2006-12-07 06:12:57

by Lu, Yinghai

[permalink] [raw]
Subject: Re: [PATCH 2/3] x86: remove duplicated parser for "pci=noacpi"

> so first hunk of the patch doesn't have nothing in common with second ,
> and it is different disable acpi_irqs than disable all acpi,
> callacpi_disable_pci () is acpi=off.
>
pci=noacpi mean it will not use acpi for pci bus scan and irq routing setting.
acpi=noirq mean it will only not use irq routing setting.

the problem is that old code in acpi is processing pci=.... for pci subsystem.

YH