[PATCH] drm/panfrost: Don't dereference bogus MMU pointers

Rob Herring robh at kernel.org
Tue Oct 29 18:27:17 UTC 2019


On Mon, Oct 28, 2019 at 3:08 PM Robin Murphy <robin.murphy at arm.com> wrote:
>
> It seems that killing an application while faults are occurring
> (particularly with a GPU in FPGA at a whopping 40MHz) can lead to
> handling a lingering page fault after all the address space contexts
> have already been freed. In this situation, the LRU list is empty so
> addr_to_drm_mm_node() ends up dereferencing the list head as if it were
> a struct panfrost_mmu entry; this leaves "mmu->as" actually pointing at
> the pfdev->alloc_mask bitmap, which is also empty, and given that the
> fault has a high likelihood of being in AS0, hilarity ensues.
>
> Sadly, the cleanest solution seems to involve another goto. Oh well, at
> least it's robust...
>
> Signed-off-by: Robin Murphy <robin.murphy at arm.com>
> ---
>  drivers/gpu/drm/panfrost/panfrost_mmu.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)

Applied to drm-misc-fixes

Rob


More information about the dri-devel mailing list