[PATCH 2/7] drm/ttm: remove ttm_lru_walk_ops
Christian König
ckoenig.leichtzumerken at gmail.com
Wed Jul 16 16:04:21 UTC 2025
It's just another layer of indirection.
Signed-off-by: Christian König <christian.koenig at amd.com>
---
drivers/gpu/drm/ttm/ttm_bo.c | 12 ++---------
drivers/gpu/drm/ttm/ttm_bo_util.c | 2 +-
include/drm/ttm/ttm_bo.h | 34 +++++++++++++------------------
3 files changed, 17 insertions(+), 31 deletions(-)
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index d456be1d6e1e..ea963dc43b62 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -554,10 +554,6 @@ static s64 ttm_bo_evict_cb(struct ttm_lru_walk *walk, struct ttm_buffer_object *
return lret;
}
-static const struct ttm_lru_walk_ops ttm_evict_walk_ops = {
- .process_bo = ttm_bo_evict_cb,
-};
-
static int ttm_bo_evict_alloc(struct ttm_device *bdev,
struct ttm_resource_manager *man,
const struct ttm_place *place,
@@ -569,7 +565,7 @@ static int ttm_bo_evict_alloc(struct ttm_device *bdev,
{
struct ttm_bo_evict_walk evict_walk = {
.walk = {
- .ops = &ttm_evict_walk_ops,
+ .process_bo = ttm_bo_evict_cb,
.arg = {
.ctx = ctx,
.ticket = ticket,
@@ -1197,10 +1193,6 @@ ttm_bo_swapout_cb(struct ttm_lru_walk *walk, struct ttm_buffer_object *bo)
return ret;
}
-const struct ttm_lru_walk_ops ttm_swap_ops = {
- .process_bo = ttm_bo_swapout_cb,
-};
-
/**
* ttm_bo_swapout() - Swap out buffer objects on the LRU list to shmem.
* @bdev: The ttm device.
@@ -1219,7 +1211,7 @@ s64 ttm_bo_swapout(struct ttm_device *bdev, struct ttm_operation_ctx *ctx,
{
struct ttm_bo_swapout_walk swapout_walk = {
.walk = {
- .ops = &ttm_swap_ops,
+ .process_bo = ttm_bo_swapout_cb,
.arg = {
.ctx = ctx,
.trylock_only = true,
diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
index ef1e42e005af..dec60a41185d 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
@@ -888,7 +888,7 @@ s64 ttm_lru_walk_for_evict(struct ttm_lru_walk *walk, struct ttm_device *bdev,
s64 lret;
ttm_bo_lru_for_each_reserved_guarded(&cursor, man, &walk->arg, bo) {
- lret = walk->ops->process_bo(walk, bo);
+ lret = walk->process_bo(walk, bo);
if (lret == -EBUSY || lret == -EALREADY)
lret = 0;
progress = (lret < 0) ? lret : progress + lret;
diff --git a/include/drm/ttm/ttm_bo.h b/include/drm/ttm/ttm_bo.h
index 5a16d304a849..63331a4b37f9 100644
--- a/include/drm/ttm/ttm_bo.h
+++ b/include/drm/ttm/ttm_bo.h
@@ -179,24 +179,6 @@ struct ttm_operation_ctx {
uint64_t bytes_moved;
};
-struct ttm_lru_walk;
-
-/** struct ttm_lru_walk_ops - Operations for a LRU walk. */
-struct ttm_lru_walk_ops {
- /**
- * process_bo - Process this bo.
- * @walk: struct ttm_lru_walk describing the walk.
- * @bo: A locked and referenced buffer object.
- *
- * Return: Negative error code on error, User-defined positive value
- * (typically, but not always, size of the processed bo) on success.
- * On success, the returned values are summed by the walk and the
- * walk exits when its target is met.
- * 0 also indicates success, -EBUSY means this bo was skipped.
- */
- s64 (*process_bo)(struct ttm_lru_walk *walk, struct ttm_buffer_object *bo);
-};
-
/**
* struct ttm_lru_walk_arg - Common part for the variants of BO LRU walk.
*/
@@ -213,8 +195,20 @@ struct ttm_lru_walk_arg {
* struct ttm_lru_walk - Structure describing a LRU walk.
*/
struct ttm_lru_walk {
- /** @ops: Pointer to the ops structure. */
- const struct ttm_lru_walk_ops *ops;
+ /**
+ * process_bo - Process this bo.
+ * @walk: struct ttm_lru_walk describing the walk.
+ * @bo: A locked and referenced buffer object.
+ *
+ * Return: Negative error code on error, User-defined positive value
+ * (typically, but not always, size of the processed bo) on success.
+ * On success, the returned values are summed by the walk and the
+ * walk exits when its target is met.
+ * 0 also indicates success, -EBUSY means this bo was skipped.
+ */
+ s64 (*process_bo)(struct ttm_lru_walk *walk,
+ struct ttm_buffer_object *bo);
+
/** @arg: Common bo LRU walk arguments. */
struct ttm_lru_walk_arg arg;
};
--
2.43.0
More information about the dri-devel
mailing list