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.
prev parent 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®