[PATCH 0/9] Ensure xe_force_wake_put is always called after xe_force_wake_get

Nirmoy Das nirmoy.das at intel.com
Tue Jun 4 11:02:16 UTC 2024


Cuurently there is inconsistency how we handle force wake get and put
calls. We have three cases: 
1 Return value of xe_force_wake_get is not checked.
2 Return value of xe_force_wake_get is checked but continue.
3 Return value of xe_force_wake_get is checked but the caller returns
  without calling xe_force_wake_put.

2nd case is perfectly valid but 1st and 3rd cases shouldn't happen. As
xe_force_wake_get() will increment the ref count regardless of success
or failure so xe_force_wake_get() should be followed by a
xe_force_wake_put().

For case 1, the last patch added __must_check attribute and rest of
patches are making sure we always call get and put in pairs even if
xe_force_wake_get() returns error.

Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray at intel.com>
Cc: Matthew Brost <matthew.brost at intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>

Nirmoy Das (9):
  drm/xe/display: Always call xe_force_wake_put/get in pairs
  drm/xe/pat: Always call xe_force_wake_put/get in pairs
  drm/xe/xe_reg_sr: Always call xe_force_wake_put/get in pairs
  drm/xe/xe_gt: Always call xe_force_wake_put/get in pairs
  drm/xe/uc: Always call xe_force_wake_put/get in pairs
  drm/xe: Add xe_force_wake_tryget to simplify forcewake handling
  drm/xe: Use xe_force_wake_tryget when possible
  drm/xe/client: Check return value of xe_force_wake_get
  drm/xe: Add __must_check for xe_force_wake_get

 drivers/gpu/drm/xe/display/xe_hdcp_gsc.c |  2 +-
 drivers/gpu/drm/xe/xe_device.c           |  4 +-
 drivers/gpu/drm/xe/xe_drm_client.c       | 10 +++--
 drivers/gpu/drm/xe/xe_force_wake.c       | 49 +++++++++++++++++++++++-
 drivers/gpu/drm/xe/xe_force_wake.h       |  6 ++-
 drivers/gpu/drm/xe/xe_gsc_proxy.c        |  3 +-
 drivers/gpu/drm/xe/xe_gt.c               | 27 ++++++-------
 drivers/gpu/drm/xe/xe_gt_debugfs.c       | 10 ++---
 drivers/gpu/drm/xe/xe_guc.c              |  2 +-
 drivers/gpu/drm/xe/xe_guc_pc.c           |  8 ++--
 drivers/gpu/drm/xe/xe_huc.c              |  2 +-
 drivers/gpu/drm/xe/xe_pat.c              | 10 ++---
 drivers/gpu/drm/xe/xe_query.c            |  2 +-
 drivers/gpu/drm/xe/xe_reg_sr.c           | 20 ++++------
 drivers/gpu/drm/xe/xe_vram.c             |  2 +-
 15 files changed, 98 insertions(+), 59 deletions(-)

-- 
2.42.0



More information about the Intel-xe mailing list