lkml.org 
[lkml]   [2016]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/3] crypto: marvell/cesa - replace dma_to_phys with dma_map_single
    On Thu, Mar 17, 2016 at 07:17:24PM -0400, okaya@codeaurora.org wrote:
    > What is the correct way? I don't want to write engine->sram_dma = sram

    Well, what the driver _is_ wanting to do is to go from a CPU physical
    address to a device DMA address. phys_to_dma() looks like the correct
    thing there to me, but I guess that's just an offset and doesn't take
    account of any IOMMU that may be in the way.

    If you have an IOMMU, then the whole phys_to_dma() thing is a total
    failure as it only does a linear translation, and there are no
    interfaces in the kernel to take account of an IOMMU in the way. So,
    it needs something designed for the job, implemented and discussed by
    the normal methods of proposing a new cross-arch interface for drivers
    to use.

    What I'm certain of, though, is that the change proposed in this patch
    will break current users of this driver: virt_to_page() on an address
    returned by ioremap() is completely undefined, and will result in
    either a kernel oops, or if not poking at memory which isn't a struct
    page, ultimately resulting in something that isn't SRAM being pointed
    to by "engine->sram_dma".

    --
    RMK's Patch system: http://www.arm.linux.org.uk/developer/patches/
    FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
    according to speedtest.net.

    \
     
     \ /
      Last update: 2016-03-18 01:21    [W:4.552 / U:0.244 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site