summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/2.6.22/20006_fix-ide-cd-pio-mode.patch1')
-rw-r--r--trunk/2.6.22/20006_fix-ide-cd-pio-mode.patch136
1 files changed, 36 insertions, 0 deletions
diff --git a/trunk/2.6.22/20006_fix-ide-cd-pio-mode.patch1 b/trunk/2.6.22/20006_fix-ide-cd-pio-mode.patch1
new file mode 100644
index 0000000..1ca415c
--- /dev/null
+++ b/trunk/2.6.22/20006_fix-ide-cd-pio-mode.patch1
@@ -0,0 +1,36 @@
+Subject: Fix IDE CD-drive PIO mode.
+From: http://xenbits.xensource.com/xen-3.1-testing.hg (tip 15042)
+Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
+
+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.
+
+Acked-by: Jan Beulich <jbeulich@novell.com>
+
+---
+ drivers/ide/ide-lib.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/drivers/ide/ide-lib.c 2007-08-27 12:09:26.000000000 -0400
++++ b/drivers/ide/ide-lib.c 2007-08-27 14:02:05.000000000 -0400
+@@ -341,10 +341,10 @@ void ide_toggle_bounce(ide_drive_t *driv
+ {
+ 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;
+ }
+