Re: [PATCH] x86: Add workaround for bug in ASUS A7V600 BIOS (rev 1005)

Previous thread: [PATCH] acpi: fix sparse const errors by Harvey Harrison on Thursday, May 29, 2008 - 8:51 pm. (2 messages)

Next thread: [PATCH] gfs2: trivial sparse lock annotations by Harvey Harrison on Thursday, May 29, 2008 - 9:27 pm. (2 messages)
To: <linux-kernel@...>
Date: Thursday, May 29, 2008 - 9:20 pm

This BIOS claims the VIA 8237 south bridge to be compatible with VIA 586,
which it is not.

Signed-off-by: Bertram Felgenhauer <int-e@gmx.de>
---
Without this patch, I get the following warning while booting,
among others,

| PCI: Using IRQ router VIA [1106/3227] at 0000:00:11.0
| ------------[ cut here ]------------
| WARNING: at arch/x86/pci/irq.c:265 pirq_via586_get+0x4a/0x60()
| Modules linked in:
| Pid: 1, comm: swapper Not tainted 2.6.26-rc4-00015-g1ec7d99 #1
| [<c0119fd4>] warn_on_slowpath+0x54/0x70
| [<c02246e0>] ? vt_console_print+0x210/0x2b0
| [<c02244d0>] ? vt_console_print+0x0/0x2b0
| [<c011a413>] ? __call_console_drivers+0x43/0x60
| [<c011a482>] ? _call_console_drivers+0x52/0x80
| [<c011aa89>] ? release_console_sem+0x1c9/0x200
| [<c0291d21>] ? raw_pci_read+0x41/0x70
| [<c0291e8f>] ? pci_read+0x2f/0x40
| [<c029151a>] pirq_via586_get+0x4a/0x60
| [<c02914d0>] ? pirq_via586_get+0x0/0x60
| [<c029178d>] pcibios_lookup_irq+0x15d/0x430
| [<c03b895a>] pcibios_irq_init+0x17a/0x3e0
| [<c03a66f0>] ? kernel_init+0x0/0x250
| [<c03a6763>] kernel_init+0x73/0x250
| [<c03b87e0>] ? pcibios_irq_init+0x0/0x3e0
| [<c0114d00>] ? schedule_tail+0x10/0x40
| [<c0102dee>] ? ret_from_fork+0x6/0x1c
| [<c03a66f0>] ? kernel_init+0x0/0x250
| [<c03a66f0>] ? kernel_init+0x0/0x250
| [<c010324b>] kernel_thread_helper+0x7/0x1c
| =======================
| ---[ end trace 4eaa2a86a8e2da22 ]---

and IRQ trouble later,

| irq 10: nobody cared (try booting with the "irqpoll" option)

Now that's an VIA 8237 chip, so pirq_via586_get shouldn't be called
at all; adding this workaround to via_router_probe() fixes the
problem for me.

Amazingly I have a 2.6.23.8 kernel that somehow works fine ... I'll
never understand why.

The patch is against Linus' tree.

Please CC me in replies.

Thanks,

Bertram

arch/x86/pci/irq.c | 7 +++++++
1 files chang...

To: Bertram Felgenhauer <int-e@...>
Cc: <linux-kernel@...>, Jesse Barnes <jbarnes@...>, Andrew Morton <akpm@...>
Date: Saturday, May 31, 2008 - 11:58 am

Cc:s added.

Ingo
--

To: Ingo Molnar <mingo@...>
Cc: Bertram Felgenhauer <int-e@...>, <linux-kernel@...>, Andrew Morton <akpm@...>
Date: Monday, June 2, 2008 - 12:34 pm

I didn't see the original report, pulling down the for-jesse stuff to look
through it now though.

Jesse
--

To: Bertram Felgenhauer <int-e@...>
Cc: <linux-kernel@...>
Date: Friday, May 30, 2008 - 5:36 am

On Fri, 30 May 2008 03:20:05 +0200

Looks fine to me

Probably because it has ACPI enabled and is picking ACPI IRQ routing in
preference ?

Alan
--

To: Alan Cox <alan@...>
Cc: Bertram Felgenhauer <int-e@...>, <linux-kernel@...>, the arch/x86 maintainers <x86@...>
Date: Monday, June 2, 2008 - 5:30 am

applied to tip/pci-for-jesse - thanks.

Ingo
--

To: Alan Cox <alan@...>
Cc: Bertram Felgenhauer <int-e@...>, <linux-kernel@...>
Date: Friday, May 30, 2008 - 7:18 pm

No.

The "only" difference between the working 2.6.23.8 kernel and the
non-working one is a switch from gcc 3.4.6 to 4.1.2. I've collected
some information about this issue, comparing the 'working' 2.6.23.8
kernel with a newly compiled, patched one. (The unpatched one compiled
with 4.1.2 fails to boot.) So if anybody is interested, have a look at

http://int-e.home.tlink.de/linux/irq/

But it's probably not worthwhile to spend a lot of time on this.

Bertram
--

Previous thread: [PATCH] acpi: fix sparse const errors by Harvey Harrison on Thursday, May 29, 2008 - 8:51 pm. (2 messages)

Next thread: [PATCH] gfs2: trivial sparse lock annotations by Harvey Harrison on Thursday, May 29, 2008 - 9:27 pm. (2 messages)