Mailing List Archive

Fix IDE CD-drive PIO mode.
# HG changeset patch
# User cl349@firebug.cl.cam.ac.uk
# Node ID ad33b3882867f6ab4466383129aa3827c64508d3
# Parent 2436cc71de508f409b957e9eb24c1f34b1ab615d
Fix IDE CD-drive PIO mode.
CD drives in PIO mode don't work under Xen because of a change in Linux
between 2.6.12 and 2.6.16, as a result of the following thread:
http://lists.parisc-linux.org/pipermail/parisc-linux/2005-August/027197.html

The change breaks systems which have highmem and a swiotlb because the
ide-cd driver doesn't use the swiotlb, resulting in read/writes to/from
highmem pages in PIO mode not working any longer. Xen kernels usually have
both highmem and a swiotlb.

Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
---
patches/linux-2.6.16.13/fix-ide-cd-pio-mode.patch | 13 +++++++++++++
1 files changed, 13 insertions(+)

diff -r 2436cc71de50 -r ad33b3882867 patches/linux-2.6.16.13/fix-ide-cd-pio-mode.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/linux-2.6.16.13/fix-ide-cd-pio-mode.patch Wed May 24 19:41:47 2006 +0100
@@ -0,0 +1,18 @@
+diff -ru ../pristine-linux-2.6.16.13/drivers/ide/ide-lib.c ./drivers/ide/ide-lib.c
+--- ../pristine-linux-2.6.16.13/drivers/ide/ide-lib.c 2006-05-02 22:38:44.000000000 +0100
++++ ./drivers/ide/ide-lib.c 2006-05-24 18:37:05.000000000 +0100
+@@ -410,10 +410,10 @@
+ {
+ u64 addr = BLK_BOUNCE_HIGH; /* dma64_addr_t */
+
+- if (!PCI_DMA_BUS_IS_PHYS) {
+- addr = BLK_BOUNCE_ANY;
+- } else if (on && drive->media == ide_disk) {
+- if (HWIF(drive)->pci_dev)
++ if (on && drive->media == ide_disk) {
++ if (!PCI_DMA_BUS_IS_PHYS)
++ addr = BLK_BOUNCE_ANY;
++ else if (HWIF(drive)->pci_dev)
+ addr = HWIF(drive)->pci_dev->dma_mask;
+ }
+

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog
Fix IDE CD-drive PIO mode. [ In reply to ]
# HG changeset patch
# User cl349@firebug.cl.cam.ac.uk
# Node ID cd2b25ec71076e9e7e20265864b6477b61bd0017
# Parent 5f2d82cdbb894ad3c334a844b2d9b6c308189c0b
Fix IDE CD-drive PIO mode.
CD drives in PIO mode don't work under Xen because of a change in Linux
between 2.6.12 and 2.6.16, as a result of the following thread:
http://lists.parisc-linux.org/pipermail/parisc-linux/2005-August/027197.html

The change breaks systems which have highmem and a swiotlb because the
ide-cd driver doesn't use the swiotlb, resulting in read/writes to/from
highmem pages in PIO mode not working any longer. Xen kernels usually have
both highmem and a swiotlb.

Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
xen-unstable changeset: 10151:ad33b3882867f6ab4466383129aa3827c64508d3
xen-unstable date: Wed May 24 19:41:47 2006 +0100
---
patches/linux-2.6.16.13/fix-ide-cd-pio-mode.patch | 13 +++++++++++++
1 files changed, 13 insertions(+)

diff -r 5f2d82cdbb89 -r cd2b25ec7107 patches/linux-2.6.16.13/fix-ide-cd-pio-mode.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/linux-2.6.16.13/fix-ide-cd-pio-mode.patch Wed May 24 19:46:22 2006 +0100
@@ -0,0 +1,18 @@
+diff -ru ../pristine-linux-2.6.16.13/drivers/ide/ide-lib.c ./drivers/ide/ide-lib.c
+--- ../pristine-linux-2.6.16.13/drivers/ide/ide-lib.c 2006-05-02 22:38:44.000000000 +0100
++++ ./drivers/ide/ide-lib.c 2006-05-24 18:37:05.000000000 +0100
+@@ -410,10 +410,10 @@
+ {
+ u64 addr = BLK_BOUNCE_HIGH; /* dma64_addr_t */
+
+- if (!PCI_DMA_BUS_IS_PHYS) {
+- addr = BLK_BOUNCE_ANY;
+- } else if (on && drive->media == ide_disk) {
+- if (HWIF(drive)->pci_dev)
++ if (on && drive->media == ide_disk) {
++ if (!PCI_DMA_BUS_IS_PHYS)
++ addr = BLK_BOUNCE_ANY;
++ else if (HWIF(drive)->pci_dev)
+ addr = HWIF(drive)->pci_dev->dma_mask;
+ }
+

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog