• Anirudh Venkataramanan's avatar
    cassini: Use page_address() instead of kmap_atomic() · c1914458
    Anirudh Venkataramanan authored
    Pages for Rx buffers are allocated in cas_page_alloc() using either
    GFP_ATOMIC or GFP_KERNEL. Memory allocated with GFP_KERNEL/GFP_ATOMIC can't
    come from highmem and so there's no need to kmap() them. Just use
    page_address() instead. This makes the variable 'addr' unnecessary, so
    remove it too.
    
    Note that kmap_atomic() disables preemption and page-fault processing,
    but page_address() doesn't. When removing uses of kmap_atomic(), one has to
    check if the code being executed between the map/unmap implicitly depends
    on page-faults and/or preemption being disabled. If yes, then code to
    disable page-faults and/or preemption should also be added for functional
    correctness. That however doesn't appear to be the case here, so just
    page_address() is used.
    
    I don't have hardware, so this change has only been compile tested.
    
    Cc: Ira Weiny <ira.weiny@intel.com>
    Cc: Fabio M. De Francesco <fmdefrancesco@gmail.com>
    Signed-off-by: default avatarAnirudh Venkataramanan <anirudh.venkataramanan@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c1914458
cassini.c 137 KB