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-next>] [day] [month] [year] [list]
Message-ID: <46171C50.3020104@faust.net.ua>
Date:	Sat, 07 Apr 2007 07:21:36 +0300
From:	Mikhail Zolotaryov <lebon@...st.net.ua>
To:	mporter@...nel.crashing.org
CC:	linux-serial@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH] PPC4xx UART0 (8250) problem

On PPC4xx embedded we often have UART0 on IRQ0 but 8250 UART driver
uses IRQ0 as "no irq" hack. It's suggested that platforms with UART
on IRQ0 will redefine is_real_interrupt(irq) macro but 8250 code
anyway overrides that. As the result, serial line on UART0 works
on polling-way and we have character loss on high baud rates.

In patch I added check if UART0 is on IRQ0, if so we define
is_real_interrupt macro to be 1 (true). Also, check if
is_real_interrupt macro is already defined added to 8250 UART
driver.

-------------------------------------------------------------------

--- linux.orig/include/asm-ppc/ibm4xx.h        2007-03-23 21:52:51.000000000 +0200
+++ linux/include/asm-ppc/ibm4xx.h     2007-04-06 17:37:22.000000000 +0300
@@ -54,6 +54,12 @@
 #include <platforms/4xx/xilinx_ml403.h>
 #endif

+#ifdef UART0_INT
+#if (UART0_INT == 0)
+#define is_real_interrupt(irq)  (1)
+#endif
+#endif
+
 #ifndef __ASSEMBLY__

 #ifdef CONFIG_40x
--- linux.orig/drivers/serial/8250.c   2007-03-23 21:52:51.000000000 +0200
+++ linux/drivers/serial/8250.c        2007-04-06 16:44:32.000000000 +0300
@@ -77,7 +77,9 @@
  * machine types want others as well - they're free
  * to redefine this in their header file.
  */
+#ifndef is_real_interrupt(irq)
 #define is_real_interrupt(irq)	((irq) != 0)
+#endif
 
 #ifdef CONFIG_SERIAL_8250_DETECT_IRQ
 #define CONFIG_SERIAL_DETECT_IRQ 1
-
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