[PATCH 1/3] Revert "drm/xe: Add mutex locking to devcoredump"
Himal Prasad Ghimiray
himal.prasad.ghimiray at intel.com
Wed Nov 27 08:30:40 UTC 2024
This reverts commit b9428d0ac54fcece5ad8fc86c5d3e7aacc6e2c76. The commit
was accidentally and unintentionally pushed.
Cc: John Harrison <John.C.Harrison at Intel.com>
Cc: Matthew Brost <matthew.brost at intel.com>
Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray at intel.com>
---
drivers/gpu/drm/xe/xe_devcoredump.c | 33 ++---------------------
drivers/gpu/drm/xe/xe_devcoredump_types.h | 4 +--
2 files changed, 3 insertions(+), 34 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_devcoredump.c b/drivers/gpu/drm/xe/xe_devcoredump.c
index dd6a4f591ee0..5d19a4e3d5af 100644
--- a/drivers/gpu/drm/xe/xe_devcoredump.c
+++ b/drivers/gpu/drm/xe/xe_devcoredump.c
@@ -182,24 +182,16 @@ static ssize_t xe_devcoredump_read(char *buffer, loff_t offset,
/* Ensure delayed work is captured before continuing */
flush_work(&ss->work);
- mutex_lock(&coredump->lock);
-
- if (!ss->read.buffer) {
- mutex_unlock(&coredump->lock);
+ if (!ss->read.buffer)
return -ENODEV;
- }
- if (offset >= ss->read.size) {
- mutex_unlock(&coredump->lock);
+ if (offset >= ss->read.size)
return 0;
- }
byte_copied = count < ss->read.size - offset ? count :
ss->read.size - offset;
memcpy(buffer, ss->read.buffer + offset, byte_copied);
- mutex_unlock(&coredump->lock);
-
return byte_copied;
}
@@ -213,8 +205,6 @@ static void xe_devcoredump_free(void *data)
cancel_work_sync(&coredump->snapshot.work);
- mutex_lock(&coredump->lock);
-
xe_devcoredump_snapshot_free(&coredump->snapshot);
kvfree(coredump->snapshot.read.buffer);
@@ -223,8 +213,6 @@ static void xe_devcoredump_free(void *data)
coredump->captured = false;
drm_info(&coredump_to_xe(coredump)->drm,
"Xe device coredump has been deleted.\n");
-
- mutex_unlock(&coredump->lock);
}
static void xe_devcoredump_deferred_snap_work(struct work_struct *work)
@@ -333,11 +321,8 @@ void xe_devcoredump(struct xe_exec_queue *q, struct xe_sched_job *job, const cha
struct xe_devcoredump *coredump = &xe->devcoredump;
va_list varg;
- mutex_lock(&coredump->lock);
-
if (coredump->captured) {
drm_dbg(&xe->drm, "Multiple hangs are occurring, but only the first snapshot was taken\n");
- mutex_unlock(&coredump->lock);
return;
}
@@ -352,8 +337,6 @@ void xe_devcoredump(struct xe_exec_queue *q, struct xe_sched_job *job, const cha
drm_info(&xe->drm, "Xe device coredump has been created\n");
drm_info(&xe->drm, "Check your /sys/class/drm/card%d/device/devcoredump/data\n",
xe->drm.primary->index);
-
- mutex_unlock(&coredump->lock);
}
static void xe_driver_devcoredump_fini(void *arg)
@@ -365,18 +348,6 @@ static void xe_driver_devcoredump_fini(void *arg)
int xe_devcoredump_init(struct xe_device *xe)
{
- int err;
-
- err = drmm_mutex_init(&xe->drm, &xe->devcoredump.lock);
- if (err)
- return err;
-
- if (IS_ENABLED(CONFIG_LOCKDEP)) {
- fs_reclaim_acquire(GFP_KERNEL);
- might_lock(&xe->devcoredump.lock);
- fs_reclaim_release(GFP_KERNEL);
- }
-
return devm_add_action_or_reset(xe->drm.dev, xe_driver_devcoredump_fini, &xe->drm);
}
diff --git a/drivers/gpu/drm/xe/xe_devcoredump_types.h b/drivers/gpu/drm/xe/xe_devcoredump_types.h
index 1a1d16a96b2d..e6234e887102 100644
--- a/drivers/gpu/drm/xe/xe_devcoredump_types.h
+++ b/drivers/gpu/drm/xe/xe_devcoredump_types.h
@@ -80,9 +80,7 @@ struct xe_devcoredump_snapshot {
* for reading the information.
*/
struct xe_devcoredump {
- /** @lock: protects access to entire structure */
- struct mutex lock;
- /** @captured: The snapshot of the first hang has already been taken */
+ /** @captured: The snapshot of the first hang has already been taken. */
bool captured;
/** @snapshot: Snapshot is captured at time of the first crash */
struct xe_devcoredump_snapshot snapshot;
--
2.34.1
More information about the Intel-xe
mailing list