mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 10:04:04 +02:00
drm/xe/pf: Fix EAGAIN sign in pf_migration_consume()
PTR_ERR() returns a negative value, so comparing against the positive
EAGAIN is always true for ERR_PTR(-EAGAIN), causing pf_migration_consume()
to bail out instead of continuing to the remaining GTs. On multi-GT
platforms this can skip GTs that already have data ready.
Compare against -EAGAIN to match the intent (and the following line
that correctly uses -EAGAIN). While at it, gate PTR_ERR() with
IS_ERR().
v2: add IS_ERR() guard before PTR_ERR(). (Gustavo)
Fixes: 67df4a5cbc ("drm/xe/pf: Add data structures and handlers for migration rings")
Cc: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Link: https://patch.msgid.link/20260428201448.3999428-1-shuicheng.lin@intel.com
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
(cherry picked from commit 9d770e72e1edb54beacfce5f402edb51632811e3)
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
This commit is contained in:
parent
60a1e131a8
commit
d01012c740
|
|
@ -149,10 +149,11 @@ pf_migration_consume(struct xe_device *xe, unsigned int vfid)
|
|||
|
||||
for_each_gt(gt, xe, gt_id) {
|
||||
data = xe_gt_sriov_pf_migration_save_consume(gt, vfid);
|
||||
if (data && PTR_ERR(data) != EAGAIN)
|
||||
if (!data)
|
||||
continue;
|
||||
if (!IS_ERR(data) || PTR_ERR(data) != -EAGAIN)
|
||||
return data;
|
||||
if (PTR_ERR(data) == -EAGAIN)
|
||||
more_data = true;
|
||||
more_data = true;
|
||||
}
|
||||
|
||||
if (!more_data)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user