summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>2024-08-28 14:52:29 +0530
committerRodrigo Vivi <rodrigo.vivi@intel.com>2024-08-28 13:15:40 -0400
commitc72084163cd22ebf59d936669ec25b1fc2b7494c (patch)
tree38419674d6ad72fe318230e67da9d356de3cf97a
parent379cad69bdfe522e840ed5f5c01ac8769006d53e (diff)
drm/xe: Fix NPD in ggtt_node_remove()
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@intel.com> Cc: Lucas De Marchi <lucas.demarchi@intel.com> Cc: Tejas Upadhyay <tejas.upadhyay@intel.com> Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240828092229.3606503-1-himal.prasad.ghimiray@intel.com Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
-rw-r--r--drivers/gpu/drm/xe/xe_ggtt.c13
1 files 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;