• Christoph Hellwig's avatar
    dma-mapping: provide a generic DMA_MAPPING_ERROR · 42ee3cae
    Christoph Hellwig authored
    Error handling of the dma_map_single and dma_map_page APIs is a little
    problematic at the moment, in that we use different encodings in the
    returned dma_addr_t to indicate an error.  That means we require an
    additional indirect call to figure out if a dma mapping call returned
    an error, and a lot of boilerplate code to implement these semantics.
    
    Instead return the maximum addressable value as the error.  As long
    as we don't allow mapping single-byte ranges with single-byte alignment
    this value can never be a valid return.  Additionaly if drivers do
    not check the return value from the dma_map* routines this values means
    they will generally not be pointed to actual memory.
    
    Once the default value is added here we can start removing the
    various mapping_error methods and just rely on this generic check.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
    Acked-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    42ee3cae
dma-mapping.h 25.7 KB