r1904 - in trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian: . patches patches/series

Andres Salomon dilinger-guest@haydn.debian.org
Wed, 24 Nov 2004 22:58:30 -0700


Author: dilinger-guest
Date: 2004-11-24 22:58:22 -0700 (Wed, 24 Nov 2004)
New Revision: 1904

Added:
   trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/drivers-serial-8250-ioremap-fix.dpatch
Modified:
   trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/changelog
   trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/series/2.6.9-3
Log:
grab dannf's drivers-serial-8250-ioremap-fix.dpatch


Modified: trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/changelog	2004-11-25 05:50:17 UTC (rev 1903)
+++ trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/changelog	2004-11-25 05:58:22 UTC (rev 1904)
@@ -14,6 +14,11 @@
   * Add missing check for tty == NULL in uart_tasklet_action to fix an init
     oops on serial console. (Joshua Kwan)
 
+  * Adding drivers-serial-8250-ioremap-fix.dpatch: a patch from Alex
+    Williamson that prevents setserial from crashing the kernel. See:
+    http://marc.theaimsgroup.com/?l=linux-kernel&m=109913237604338&w=2
+    (Dann Frazier)
+
  -- Andres Salomon <dilinger@voxel.net>  Thu, 25 Nov 2004 00:20:47 -0500
 
 kernel-source-2.6.9 (2.6.9-2) unstable; urgency=low

Added: trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/drivers-serial-8250-ioremap-fix.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/drivers-serial-8250-ioremap-fix.dpatch	2004-11-25 05:50:17 UTC (rev 1903)
+++ trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/drivers-serial-8250-ioremap-fix.dpatch	2004-11-25 05:58:22 UTC (rev 1904)
@@ -0,0 +1,50 @@
+#! /bin/sh -e
+## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: Don't ioremap if MMIO uart has a mapbase, but no membase
+## DP: Patch author: Alex Williamson <alex.williamson@hp.com>
+## DP: Upstream status: submitted; but not accepted as code is being rewritten
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+
+  The iounmap/ioremap path in serial8250_release/request_port is
+terribly unbalanced.  The UPF_IOREMAP flag is used to determine if a
+port gets ioremap'd, but plays no part in whether it gets iounmap'd.
+It's easy to see how an MMIO serial port can be passed through
+uart_set_info and end up with an unmapped membase.  The results is a
+non-functional UART or worse.  I've tried to generate some discussion on
+the proper fix for this, but I haven't succeeded.  I propose the patch
+below as a safe compromise.  An MMIO uart w/ a mapbase, but no membase
+doesn't seem viable to me.  Thanks,
+
+	Alex
+
+-- 
+Signed-off-by: Alex Williamson <alex.williamson@hp.com>
+
+===== drivers/serial/8250.c 1.77 vs edited =====
+--- 1.77/drivers/serial/8250.c	2004-10-25 06:05:26 -06:00
++++ edited/drivers/serial/8250.c	2004-10-28 13:18:01 -06:00
+@@ -1858,7 +1858,11 @@
+ 	/*
+ 	 * If we have a mapbase, then request that as well.
+ 	 */
+-	if (ret == 0 && up->port.flags & UPF_IOREMAP) {
++	if (ret == 0 && ((up->port.flags & UPF_IOREMAP) ||
++	                 (up->port.iotype == UPIO_MEM &&
++	                  up->port.mapbase &&
++	                  !up->port.membase))) {
++
+ 		int size = res->end - res->start + 1;
+ 
+ 		up->port.membase = ioremap(up->port.mapbase, size);
+
+
+
+To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at  http://vger.kernel.org/majordomo-info.html
+Please read the FAQ at  http://www.tux.org/lkml/

Modified: trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/series/2.6.9-3
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/series/2.6.9-3	2004-11-25 05:50:17 UTC (rev 1903)
+++ trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/series/2.6.9-3	2004-11-25 05:58:22 UTC (rev 1904)
@@ -5,3 +5,4 @@
 - smbfs-overrun.dpatch
 + smbfs-overflow-fixes.dpatch
 + tty-locking-fixes9.dpatch
++ drivers-serial-8250-ioremap-fix.dpatch