[MMC] mmci: kunmap_atomic() unmaps virtual address, not page
authorEvgeniy Polyakov <johnpol@2ka.mipt.ru>
Thu, 5 Jan 2006 10:31:23 +0000 (10:31 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 5 Jan 2006 10:31:23 +0000 (10:31 +0000)
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/mmc/mmci.c
drivers/mmc/mmci.h

index 6d161c7..2b10a2d 100644 (file)
@@ -300,7 +300,7 @@ static irqreturn_t mmci_pio_irq(int irq, void *dev_id, struct pt_regs *regs)
                /*
                 * Unmap the buffer.
                 */
-               mmci_kunmap_atomic(host, &flags);
+               mmci_kunmap_atomic(host, buffer, &flags);
 
                host->sg_off += len;
                host->size -= len;
index 4589bbd..6d7eadc 100644 (file)
@@ -172,8 +172,8 @@ static inline char *mmci_kmap_atomic(struct mmci_host *host, unsigned long *flag
        return kmap_atomic(sg->page, KM_BIO_SRC_IRQ) + sg->offset;
 }
 
-static inline void mmci_kunmap_atomic(struct mmci_host *host, unsigned long *flags)
+static inline void mmci_kunmap_atomic(struct mmci_host *host, void *buffer, unsigned long *flags)
 {
-       kunmap_atomic(host->sg_ptr->page, KM_BIO_SRC_IRQ);
+       kunmap_atomic(buffer, KM_BIO_SRC_IRQ);
        local_irq_restore(*flags);
 }