Commit 931e09d8 authored by Maaz Mombasawala's avatar Maaz Mombasawala Committed by Zack Rusin
Browse files

drm/vmwgfx: Remove ttm object hashtable



The object_hash hashtable for ttm objects is not being used.
Remove it and perform refactoring in ttm_object init function.

Signed-off-by: default avatarMaaz Mombasawala <mombasawalam@vmware.com>
Reviewed-by: default avatarZack Rusin <zackr@vmware.com>
Reviewed-by: default avatarMartin Krastev <krastevm@vmware.com>
Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221022040236.616490-5-zack@kde.org
parent 43531dc6
Loading
Loading
Loading
Loading
+6 −18
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 OR MIT */
/**************************************************************************
 *
 * Copyright (c) 2009-2013 VMware, Inc., Palo Alto, CA., USA
 * Copyright (c) 2009-2022 VMware, Inc., Palo Alto, CA., USA
 * All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
@@ -44,13 +44,14 @@

#define pr_fmt(fmt) "[TTM] " fmt

#include "ttm_object.h"
#include "vmwgfx_drv.h"

#include <linux/list.h>
#include <linux/spinlock.h>
#include <linux/slab.h>
#include <linux/atomic.h>
#include <linux/module.h>
#include "ttm_object.h"
#include "vmwgfx_drv.h"

MODULE_IMPORT_NS(DMA_BUF);

@@ -81,9 +82,7 @@ struct ttm_object_file {
/*
 * struct ttm_object_device
 *
 * @object_lock: lock that protects the object_hash hash table.
 *
 * @object_hash: hash table for fast lookup of object global names.
 * @object_lock: lock that protects idr.
 *
 * @object_count: Per device object count.
 *
@@ -92,7 +91,6 @@ struct ttm_object_file {

struct ttm_object_device {
	spinlock_t object_lock;
	struct vmwgfx_open_hash object_hash;
	atomic_t object_count;
	struct dma_buf_ops ops;
	void (*dmabuf_release)(struct dma_buf *dma_buf);
@@ -449,20 +447,15 @@ struct ttm_object_file *ttm_object_file_init(struct ttm_object_device *tdev,
}

struct ttm_object_device *
ttm_object_device_init(unsigned int hash_order,
		       const struct dma_buf_ops *ops)
ttm_object_device_init(const struct dma_buf_ops *ops)
{
	struct ttm_object_device *tdev = kmalloc(sizeof(*tdev), GFP_KERNEL);
	int ret;

	if (unlikely(tdev == NULL))
		return NULL;

	spin_lock_init(&tdev->object_lock);
	atomic_set(&tdev->object_count, 0);
	ret = vmwgfx_ht_create(&tdev->object_hash, hash_order);
	if (ret != 0)
		goto out_no_object_hash;

	/*
	 * Our base is at VMWGFX_NUM_MOB + 1 because we want to create
@@ -477,10 +470,6 @@ ttm_object_device_init(unsigned int hash_order,
	tdev->dmabuf_release = tdev->ops.release;
	tdev->ops.release = ttm_prime_dmabuf_release;
	return tdev;

out_no_object_hash:
	kfree(tdev);
	return NULL;
}

void ttm_object_device_release(struct ttm_object_device **p_tdev)
@@ -491,7 +480,6 @@ void ttm_object_device_release(struct ttm_object_device **p_tdev)

	WARN_ON_ONCE(!idr_is_empty(&tdev->idr));
	idr_destroy(&tdev->idr);
	vmwgfx_ht_remove(&tdev->object_hash);

	kfree(tdev);
}
+2 −4
Original line number Diff line number Diff line
/**************************************************************************
 *
 * Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA
 * Copyright (c) 2006-2022 VMware, Inc., Palo Alto, CA., USA
 * All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
@@ -262,7 +262,6 @@ extern void ttm_object_file_release(struct ttm_object_file **p_tfile);
/**
 * ttm_object device init - initialize a struct ttm_object_device
 *
 * @hash_order: Order of hash table used to hash the base objects.
 * @ops: DMA buf ops for prime objects of this device.
 *
 * This function is typically called on device initialization to prepare
@@ -270,8 +269,7 @@ extern void ttm_object_file_release(struct ttm_object_file **p_tfile);
 */

extern struct ttm_object_device *
ttm_object_device_init(unsigned int hash_order,
		       const struct dma_buf_ops *ops);
ttm_object_device_init(const struct dma_buf_ops *ops);

/**
 * ttm_object_device_release - release data held by a ttm_object_device
+1 −1
Original line number Diff line number Diff line
@@ -994,7 +994,7 @@ static int vmw_driver_load(struct vmw_private *dev_priv, u32 pci_id)
		goto out_err0;
	}

	dev_priv->tdev = ttm_object_device_init(12, &vmw_prime_dmabuf_ops);
	dev_priv->tdev = ttm_object_device_init(&vmw_prime_dmabuf_ops);

	if (unlikely(dev_priv->tdev == NULL)) {
		drm_err(&dev_priv->drm,