• Dan Williams's avatar
    dma-debug: introduce debug_dma_assert_idle() · 0abdd7a8
    Dan Williams authored
    Record actively mapped pages and provide an api for asserting a given
    page is dma inactive before execution proceeds.  Placing
    debug_dma_assert_idle() in cow_user_page() flagged the violation of the
    dma-api in the NET_DMA implementation (see commit 77873803 "net_dma:
    mark broken").
    
    The implementation includes the capability to count, in a limited way,
    repeat mappings of the same page that occur without an intervening
    unmap.  This 'overlap' counter is limited to the few bits of tag space
    in a radix tree.  This mechanism is added to mitigate false negative
    cases where, for example, a page is dma mapped twice and
    debug_dma_assert_idle() is called after the page is un-mapped once.
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Vinod Koul <vinod.koul@intel.com>
    Cc: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    0abdd7a8
memory.c 116 KB