lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Fri, 13 May 2011 09:18:47 +0200
From:	Jiri Slaby <jslaby@...e.cz>
To:	Matthew Garrett <mjg59@...f.ucam.org>
CC:	Jesse Barnes <jbarnes@...tuousgeek.org>,
	Jiri Slaby <jirislaby@...il.com>,
	Robert Hancock <hancockrwd@...il.com>, lenb@...nel.org,
	linux-pci@...r.kernel.org, linux-acpi@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [RFC 1/1] ACPI: pci_irq, add PRT_ quirk for IBM Bartolo

On 04/12/2011 05:59 PM, Matthew Garrett wrote:
> On Tue, Apr 12, 2011 at 08:56:22AM -0700, Jesse Barnes wrote:
>> I'll defer to the ACPI experts, Len or Matthew have you checked this
>> one out?
> 
> Windows appears to work without this, so it seems likely that we're 
> doing something wrong in some other sense, but I don't think we have a 
> good idea as to what we're doing wrong...

I changed the irq assignment like (to take the lowest
available/non-conflicting IRQ):
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -557,7 +557,7 @@ static int acpi_pci_link_allocate(struct
          * the use of IRQs 9, 10, 11, and >15.
          */
         for (i = (link->irq.possible_count - 1); i >= 0; i--) {
-            if (acpi_irq_penalty[irq] >
+            if (acpi_irq_penalty[irq] >=
                 acpi_irq_penalty[link->irq.possible[i]])
                 irq = link->irq.possible[i];
         }


And with this change it works _without_ acpi=noirq.

Does it help somehow?

dmesg then shows a difference like:
 serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
 00:07: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
 00:08: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
-ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11
-PCI: setting IRQ 11 as level-triggered
-serial 0000:00:09.0: PCI INT A -> Link[LNKB] -> GSI 11 (level, low) ->
IRQ 11
-0000:00:09.0: ttyS4 at I/O 0x1898 (irq = 11) is a 16550A
-0000:00:09.0: ttyS5 at I/O 0x1890 (irq = 11) is a 16550A
+ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10
+PCI: setting IRQ 10 as level-triggered
+serial 0000:00:09.0: PCI INT A -> Link[LNKB] -> GSI 10 (level, low) ->
IRQ 10
+0000:00:09.0: ttyS4 at I/O 0x1898 (irq = 10) is a 16550A
+0000:00:09.0: ttyS5 at I/O 0x1890 (irq = 10) is a 16550A
 ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11
+PCI: setting IRQ 11 as level-triggered
 serial 0000:00:0b.0: PCI INT A -> Link[LNKA] -> GSI 11 (level, low) ->
IRQ 11
 0000:00:0b.0: ttyS6 at I/O 0x18c0 (irq = 11) is a 16550A
 0000:00:0b.0: ttyS7 at I/O 0x18b8 (irq = 11) is a 16550A

thanks,
-- 
js
suse labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ