mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Thomas Schlichter <schlicht@uni-mannheim.de>
To: rzei@mbnet.fi, Andrew Morton <akpm@osdl.org>
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH][2.6] fix problems with pci=noacpi
Date: Sun, 10 Aug 2003 18:42:09 +0200	[thread overview]
Message-ID: <200308101842.10889.schlicht@uni-mannheim.de> (raw)
In-Reply-To: <200308100224.28641.rzei@mbnet.fi>

[-- Attachment #1: Type: text/plain, Size: 1171 bytes --]

On Sunday 10 August 2003 01:24, Joonas Koivunen wrote:
> On Saturday 09 August 2003 19:02, Thomas Schlichter wrote:
~~ snip ~~
> > If you want to use ACPI while this BIOS bug is not fixed you may use the
> > attached patch and boot with pci=noacpi. Without the patch this doesn't
> > work for me here...
>
> Why isn't this patch in the mainstream kernel? There are many other
> chipset/bios fixes in the kernel.. This would save many
> reboot/recompilings/worries until or if ever epox does something with the
> bios.

Well, I didn't push it to Andrew or Linus yet, because it changes parts of the 
semantics of 'pci=noacpi'. But currently I do think the changed way is more 
correct, so perhaps Andrew may give it a try in the next -mm ??

If so, people who had problems with 'pci=noacpi' and use 'acpi=off' instead 
should give it a try again...

> The patch works nicely. Though I did apply it manually to -test3 :) But it
> works.

I attached the patch again, now it also changes the indentation correctly and 
simplifies the final setting of smp_found_config and the call of 
clustered_apic_check(). It applies to 2.6.0-test3-mm1.

Best regards
   Thomas Schlichter

[-- Attachment #2: fix_noacpi.diff --]
[-- Type: text/x-diff, Size: 3361 bytes --]

--- linux-2.6.0-test3-mm1/arch/i386/kernel/acpi/boot.c.orig	Sun Aug 10 14:16:32 2003
+++ linux-2.6.0-test3-mm1/arch/i386/kernel/acpi/boot.c	Sun Aug 10 17:11:13 2003
@@ -39,6 +39,7 @@
 #define PREFIX			"ACPI: "
 
 extern int acpi_disabled;
+extern int acpi_ioapic_disabled;
 
 /* --------------------------------------------------------------------------
                               Boot-time Configuration
@@ -386,46 +387,51 @@
 	 * --------
 	 */
 
+	if (!acpi_ioapic_disabled) {
+
+		result = acpi_table_parse_madt(ACPI_MADT_IOAPIC,
+						acpi_parse_ioapic);
+		if (!result) { 
+			printk(KERN_ERR PREFIX "No IOAPIC entries present\n");
+			return -ENODEV;
+		}
+		else if (result < 0) {
+			printk(KERN_ERR PREFIX "Error parsing IOAPIC entry\n");
+			return result;
+		}
-	result = acpi_table_parse_madt(ACPI_MADT_IOAPIC, acpi_parse_ioapic);
-	if (!result) { 
-		printk(KERN_ERR PREFIX "No IOAPIC entries present\n");
-		return -ENODEV;
-	}
-	else if (result < 0) {
-		printk(KERN_ERR PREFIX "Error parsing IOAPIC entry\n");
-		return result;
-	}
 
+		/* Build a default routing table for legacy (ISA) interrupts. */
+		mp_config_acpi_legacy_irqs();
-	/* Build a default routing table for legacy (ISA) interrupts. */
-	mp_config_acpi_legacy_irqs();
 
+		result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR,
+						acpi_parse_int_src_ovr);
+		if (result < 0) {
+			printk(KERN_ERR PREFIX
+			"Error parsing interrupt source overrides entry\n");
+			/* TBD: Cleanup to allow fallback to MPS */
+			return result;
+		}
-	result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR, acpi_parse_int_src_ovr);
-	if (result < 0) {
-		printk(KERN_ERR PREFIX "Error parsing interrupt source overrides entry\n");
-		/* TBD: Cleanup to allow fallback to MPS */
-		return result;
-	}
 
+		result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC,
+						acpi_parse_nmi_src);
+		if (result < 0) {
+			printk(KERN_ERR PREFIX "Error parsing NMI SRC entry\n");
+			/* TBD: Cleanup to allow fallback to MPS */
+			return result;
+		}
-	result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC, acpi_parse_nmi_src);
-	if (result < 0) {
-		printk(KERN_ERR PREFIX "Error parsing NMI SRC entry\n");
-		/* TBD: Cleanup to allow fallback to MPS */
-		return result;
-	}
 
+		acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC;
+		acpi_ioapic = 1;
-	acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC;
-
-	acpi_ioapic = 1;
-
-#endif /*!CONFIG_ACPI_HT_ONLY*/
-#endif /*CONFIG_X86_IO_APIC*/
 
 #ifdef CONFIG_X86_LOCAL_APIC
-	if (acpi_lapic && acpi_ioapic) {
 		smp_found_config = 1;
 		clustered_apic_check();
-	}
 #endif
+
+	}
+
+#endif /*!CONFIG_ACPI_HT_ONLY*/
+#endif /*CONFIG_X86_IO_APIC*/
 
 	return 0;
 }
--- linux-2.6.0-test3-mm1/arch/i386/kernel/setup.c.orig	Sun Aug 10 14:17:08 2003
+++ linux-2.6.0-test3-mm1/arch/i386/kernel/setup.c	Sun Aug 10 17:00:04 2003
@@ -69,6 +69,8 @@
 #endif
 EXPORT_SYMBOL(acpi_disabled);
 
+int acpi_ioapic_disabled = 0;
+
 int MCA_bus;
 /* for MCA, but anyone else can use it if they want */
 unsigned int machine_id;
@@ -523,6 +525,10 @@
 		/* "acpismp=force" turns on ACPI again */
 		if (c == ' ' && !memcmp(from, "acpismp=force", 13))
 			acpi_disabled = 0;
+
+		/* "pci=noacpi" disables ACPI table parsing for interrupt routing */
+		if (c == ' ' && !memcmp(from, "pci=noacpi", 10))
+			acpi_ioapic_disabled = 1;
 
 		/*
 		 * highmem=size forces highmem to be exactly 'size' bytes.

      reply	other threads:[~2003-08-10 16:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-09 12:06 [BUG?] 2.6.0-test3 USB mouse problems Joonas Koivunen
2003-08-09 15:08 ` Joonas Koivunen
2003-08-09 16:02   ` Thomas Schlichter
2003-08-09 23:24     ` Joonas Koivunen
2003-08-10 16:42       ` Thomas Schlichter [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=200308101842.10889.schlicht@uni-mannheim.de \
    --to=schlicht@uni-mannheim.de \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rzei@mbnet.fi \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®