[PATCH v2] drm/xe: Fix NPD in ggtt_node_remove()
Rodrigo Vivi
rodrigo.vivi at intel.com
Wed Aug 28 17:16:24 UTC 2024
On Wed, Aug 28, 2024 at 02:52:29PM +0530, Himal Prasad Ghimiray wrote:
> Make sure that ggtt_node_remove() is invoked only if both node and ggtt
> are not null. Move the null checks to the caller function
> xe_ggtt_node_remove().
>
> v2: Move null check below declarations (Tejas)
>
> Fixes: 919bb54e989c ("drm/xe: Fix missing runtime outer protection for ggtt_remove_node")
> Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> Cc: Tejas Upadhyay <tejas.upadhyay at intel.com>
> Reviewed-by: Tejas Upadhyay <tejas.upadhyay at intel.com>
> Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray at intel.com>
thank you both for the patch and review. pushed to drm-xe-next
> ---
> drivers/gpu/drm/xe/xe_ggtt.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 86fc6afa43bd..f3fca5565d32 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -286,9 +286,6 @@ static void ggtt_node_remove(struct xe_ggtt_node *node)
> bool bound;
> int idx;
>
> - if (!node || !node->ggtt)
> - return;
> -
> bound = drm_dev_enter(&xe->drm, &idx);
>
> mutex_lock(&ggtt->lock);
> @@ -328,8 +325,14 @@ static void ggtt_node_remove_work_func(struct work_struct *work)
> */
> void xe_ggtt_node_remove(struct xe_ggtt_node *node, bool invalidate)
> {
> - struct xe_ggtt *ggtt = node->ggtt;
> - struct xe_device *xe = tile_to_xe(ggtt->tile);
> + struct xe_ggtt *ggtt;
> + struct xe_device *xe;
> +
> + if (!node || !node->ggtt)
> + return;
> +
> + ggtt = node->ggtt;
> + xe = tile_to_xe(ggtt->tile);
>
> node->invalidate_on_remove = invalidate;
>
> --
> 2.34.1
>
More information about the Intel-xe
mailing list