]> git.baikalelectronics.ru Git - kernel.git/commit
usb: r8a66597-hcd: Flush the D-cache for the pipe-in transfer buffers.
authorPaul Mundt <lethal@linux-sh.org>
Thu, 4 Feb 2010 06:57:58 +0000 (06:57 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Fri, 5 Feb 2010 02:53:25 +0000 (11:53 +0900)
commit9eba1b00c111365788b1ee540c8534fbe7d4b35d
treea43bc5f7d5e2444c3b038f2a697fa4046d5e0e1c
parent2313f75c347006d37f317cbdca410210f2ea19b0
usb: r8a66597-hcd: Flush the D-cache for the pipe-in transfer buffers.

This implements the same D-cache flushing logic for r8a66597-hcd as
Catalin's isp1760 (http://patchwork.kernel.org/patch/76391/) change,
with the same note applying here as well:

    When the HDC driver writes the data to the transfer buffers it
    pollutes the D-cache (unlike DMA drivers where the device writes
    the data). If the corresponding pages get mapped into user space,
    there are no additional cache flushing operations performed and
    this causes random user space faults on architectures with
    separate I and D caches (Harvard) or those with aliasing D-cache.

This fixes up crashes during USB boot on SH7724 and others:

http://marc.info/?l=linux-sh&m=126439837308912&w=2

Reported-by: Goda Yusuke <goda.yusuke@renesas.com>
Tested-by: Goda Yusuke <goda.yusuke@renesas.com>
Cc: stable@kernel.org
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Acked-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
drivers/usb/host/r8a66597-hcd.c