Skip to contentSkip to conversation

change ISA_IO_BASE to fix_to_virt(FIX_ISAMAP_BEGIN) (bug 393)

PATCH New Andrew D. Ball 1 participant 1 message Nov 15, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 change ISA_IO_BASE to fix_to_virt(FIX_ISAMAP_BEGIN) (bug 393)

Change ISA_IO_BASE to fix_to_virt(FIX_ISAMAP_BEGIN). It used to be PAGE_OFFSET, which was unaltered from vanilla Linux 2.6.12.6 kernels and caused isa_memcpy_fromio() to not read physical memory from 0xf0000 - 0xfffff correctly.

http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=393

output from diffstat:

 linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h   |    2 +-
 linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

xm-test results do not differ from an unpatched changeset 7793 of xen-unstable

linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h +1 -1
diff -r 995e94c4802e linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h
@@ -228,7 +228,7 @@
  * used as the IO-area pointer (it can be iounmapped as well, so the
  * analogy with PCI is quite large):
  */
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
 
 #define isa_readb(a) readb(__ISA_IO_base + (a))
 #define isa_readw(a) readw(__ISA_IO_base + (a))
linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h +1 -1
diff -r 995e94c4802e linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h
@@ -298,7 +298,7 @@
  * used as the IO-area pointer (it can be iounmapped as well, so the
  * analogy with PCI is quite large):
  */
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
 
 #define isa_readb(a) readb(__ISA_IO_base + (a))
 #define isa_readw(a) readw(__ISA_IO_base + (a))

Change ISA_IO_BASE to fix_to_virt(FIX_ISAMAP_BEGIN). It used to be PAGE_OFFSET, which was unaltered from vanilla Linux 2.6.12.6 kernels and caused isa_memcpy_fromio() to not read physical memory from 0xf0000 - 0xfffff correctly.

http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=393

output from diffstat:

 linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h   |    2 +-
 linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h +1 -1
diff -r 995e94c4802e linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h
@@ -228,7 +228,7 @@
  * used as the IO-area pointer (it can be iounmapped as well, so the
  * analogy with PCI is quite large):
  */
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
 
 #define isa_readb(a) readb(__ISA_IO_base + (a))
 #define isa_readw(a) readw(__ISA_IO_base + (a))
linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h +1 -1
diff -r 995e94c4802e linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h
@@ -298,7 +298,7 @@
  * used as the IO-area pointer (it can be iounmapped as well, so the
  * analogy with PCI is quite large):
  */
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
 
 #define isa_readb(a) readb(__ISA_IO_base + (a))
 #define isa_readw(a) readw(__ISA_IO_base + (a))

Change ISA_IO_BASE to fix_to_virt(FIX_ISAMAP_BEGIN). It used to be PAGE_OFFSET, which was unaltered from vanilla Linux 2.6.12.6 kernels and caused isa_memcpy_fromio() to not read physical memory from 0xf0000 - 0xfffff correctly.

http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=393

output from diffstat:

 linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h   |    2 +-
 linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

xm-test results do not differ from an unpatched changeset 7793 of xen-unstable

linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h +1 -1
diff -r 995e94c4802e linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h
@@ -228,7 +228,7 @@
  * used as the IO-area pointer (it can be iounmapped as well, so the
  * analogy with PCI is quite large):
  */
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
 
 #define isa_readb(a) readb(__ISA_IO_base + (a))
 #define isa_readw(a) readw(__ISA_IO_base + (a))
linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h +1 -1
diff -r 995e94c4802e linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h
@@ -298,7 +298,7 @@
  * used as the IO-area pointer (it can be iounmapped as well, so the
  * analogy with PCI is quite large):
  */
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
 
 #define isa_readb(a) readb(__ISA_IO_base + (a))
 #define isa_readw(a) readw(__ISA_IO_base + (a))

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel