Messages in this thread Patch in this message | | | Date | Sun, 4 Dec 2005 19:09:19 +0100 | From | Willy Tarreau <> | Subject | Re: [PATCH] 2.4.x SATA with highmem |
| |
Hi Again,
sorry for the noise. I applied this patch on an already patched kernel. KM_BIO_IRQ does not exist on vanilla 2.4.32. However, KM_SOFTIRQ0 is not used, so here is the patch reworked to use that instead.
Regards, Willy
diff -urN linux-2.4.32-libata1/drivers/scsi/libata-core.c linux-2.4.32-libata1-highmem/drivers/scsi/libata-core.c --- linux-2.4.32-libata1/drivers/scsi/libata-core.c 2005-12-04 16:32:33.000000000 +0100 +++ linux-2.4.32-libata1-highmem/drivers/scsi/libata-core.c 2005-12-04 18:37:28.000000000 +0100 @@ -2424,9 +2424,9 @@ sg[qc->orig_n_elem - 1].length += qc->pad_len; if (pad_buf) { struct scatterlist *psg = &qc->pad_sgent; - void *addr = kmap_atomic(psg->page, KM_IRQ0); + void *addr = kmap_atomic(psg->page, KM_SOFTIRQ0); memcpy(addr + psg->offset, pad_buf, qc->pad_len); - kunmap_atomic(psg->page, KM_IRQ0); + kunmap_atomic(psg->page, KM_SOFTIRQ0); } } else { if (sg_dma_len(&sg[0]) > 0) @@ -2698,9 +2698,9 @@ psg->offset = offset_in_page(offset); if (qc->tf.flags & ATA_TFLAG_WRITE) { - void *addr = kmap_atomic(psg->page, KM_IRQ0); + void *addr = kmap_atomic(psg->page, KM_SOFTIRQ0); memcpy(pad_buf, addr + psg->offset, qc->pad_len); - kunmap_atomic(psg->page, KM_IRQ0); + kunmap_atomic(psg->page, KM_SOFTIRQ0); } sg_dma_address(psg) = ap->pad_dma + (qc->tag * ATA_DMA_PAD_SZ); - 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/
| |