• Mike Rapoport's avatar
    mm: memblock: do not enforce current limit for memblock_phys* family · f3057ad7
    Mike Rapoport authored
    Until commit 92d12f95 ("memblock: refactor internal allocation
    functions") the maximal address for memblock allocations was forced to
    memblock.current_limit only for the allocation functions returning
    virtual address.  The changes introduced by that commit moved the limit
    enforcement into the allocation core and as a result the allocation
    functions returning physical address also started to limit allocations
    to memblock.current_limit.
    
    This caused breakage of etnaviv GPU driver:
    
      etnaviv etnaviv: bound 130000.gpu (ops gpu_ops)
      etnaviv etnaviv: bound 134000.gpu (ops gpu_ops)
      etnaviv etnaviv: bound 2204000.gpu (ops gpu_ops)
      etnaviv-gpu 130000.gpu: model: GC2000, revision: 5108
      etnaviv-gpu 130000.gpu: command buffer outside valid memory window
      etnaviv-gpu 134000.gpu: model: GC320, revision: 5007
      etnaviv-gpu 134000.gpu: command buffer outside valid memory window
      etnaviv-gpu 2204000.gpu: model: GC355, revision: 1215
      etnaviv-gpu 2204000.gpu: Ignoring GPU with VG and FE2.0
    
    Restore the behaviour of memblock_phys* family so that these functions
    will not enforce memblock.current_limit.
    
    Link: http://lkml.kernel.org/r/1570915861-17633-1-git-send-email-rppt@kernel.org
    Fixes: 92d12f95 ("memblock: refactor internal allocation functions")
    Signed-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
    Reported-by: default avatarAdam Ford <aford173@gmail.com>
    Tested-by: Adam Ford <aford173@gmail.com>	[imx6q-logicpd]
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Fabio Estevam <festevam@gmail.com>
    Cc: Lucas Stach <l.stach@pengutronix.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f3057ad7
memblock.c 56.6 KB