[PATCH 1/3] drm/panfrost: Clear MMU irqs before handling the fault
Steven Price
steven.price at arm.com
Mon Feb 1 12:13:36 UTC 2021
On 01/02/2021 08:21, Boris Brezillon wrote:
> When a fault is handled it will unblock the GPU which will continue
> executing its shader and might fault almost immediately on a different
> page. If we clear interrupts after handling the fault we might miss new
> faults, so clear them before.
>
> Cc: <stable at vger.kernel.org>
> Fixes: 187d2929206e ("drm/panfrost: Add support for GPU heap allocations")
> Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
Good catch (although this oddly rings a bell - so perhaps it was me you
discussed it with before)
Reviewed-by: Steven Price <steven.price at arm.com>
> ---
> drivers/gpu/drm/panfrost/panfrost_mmu.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/panfrost/panfrost_mmu.c b/drivers/gpu/drm/panfrost/panfrost_mmu.c
> index 7c1b3481b785..904d63450862 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_mmu.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_mmu.c
> @@ -593,6 +593,8 @@ static irqreturn_t panfrost_mmu_irq_handler_thread(int irq, void *data)
> access_type = (fault_status >> 8) & 0x3;
> source_id = (fault_status >> 16);
>
> + mmu_write(pfdev, MMU_INT_CLEAR, mask);
> +
> /* Page fault only */
> ret = -1;
> if ((status & mask) == BIT(i) && (exception_type & 0xF8) == 0xC0)
> @@ -616,8 +618,6 @@ static irqreturn_t panfrost_mmu_irq_handler_thread(int irq, void *data)
> access_type, access_type_name(pfdev, fault_status),
> source_id);
>
> - mmu_write(pfdev, MMU_INT_CLEAR, mask);
> -
> status &= ~mask;
> }
>
>
More information about the dri-devel
mailing list