Revision 2cff98b99c469880ce830cbcde015b53b67e0a7b authored by Dean Nelson on 29 April 2015, 15:09:18 UTC, committed by Will Deacon on 29 April 2015, 16:39:39 UTC
__dma_alloc() does a PAGE_ALIGN() on the passed in size argument before
doing anything else. __dma_free() does not. And because it doesn't, it is
possible to leak memory should size not be an integer multiple of PAGE_SIZE.

The solution is to add a PAGE_ALIGN() to __dma_free() like is done in
__dma_alloc().

Additionally, this patch removes a redundant PAGE_ALIGN() from
__dma_alloc_coherent(), since __dma_alloc_coherent() can only be called
from __dma_alloc(), which already does a PAGE_ALIGN() before the call.

Cc: stable@vger.kernel.org
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Dean Nelson <dnelson@redhat.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
1 parent 6829e27
Raw File
LICENSE.SRC
Code in this directory written at the IDA Supercomputing Research Center
carries the following copyright and license.

    Copyright 1993 United States Government as represented by the
    Director, National Security Agency.  This software may be used
    and distributed according to the terms of the GNU General Public License,
    incorporated herein by reference.

    In addition to the disclaimers in the GPL, SRC expressly disclaims any
    and all warranties, expressed or implied, concerning the enclosed software.
    This software was developed at SRC for use in internal research, and the
    intent in sharing this software is to promote the productive interchange
    of ideas throughout the research community.   All software is furnished
    on an "as-is" basis.  No further updates to this software should be
    expected.  Although updates may occur, no commitment exists.
back to top