Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f52f225 authored by Felix Kuehling's avatar Felix Kuehling Committed by Oded Gabbay
Browse files

drm/amdkfd: Remove BUG_ONs for NULL pointer arguments



Remove BUG_ONs that check for NULL pointer arguments that are
dereferenced in the same function. Dereferencing the NULL pointer
will generate a BUG anyway, so the explicit check is redundant and
unnecessary overhead.

Signed-off-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
parent dbf56ab1
Loading
Loading
Loading
Loading
+1 −25
Original line number Original line Diff line number Diff line
@@ -42,8 +42,6 @@


static void dbgdev_address_watch_disable_nodiq(struct kfd_dev *dev)
static void dbgdev_address_watch_disable_nodiq(struct kfd_dev *dev)
{
{
	BUG_ON(!dev || !dev->kfd2kgd);

	dev->kfd2kgd->address_watch_disable(dev->kgd);
	dev->kfd2kgd->address_watch_disable(dev->kgd);
}
}


@@ -62,7 +60,7 @@ static int dbgdev_diq_submit_ib(struct kfd_dbgdev *dbgdev,
	unsigned int *ib_packet_buff;
	unsigned int *ib_packet_buff;
	int status;
	int status;


	BUG_ON(!dbgdev || !dbgdev->kq || !packet_buff || !size_in_bytes);
	BUG_ON(!size_in_bytes);


	kq = dbgdev->kq;
	kq = dbgdev->kq;


@@ -168,8 +166,6 @@ static int dbgdev_diq_submit_ib(struct kfd_dbgdev *dbgdev,


static int dbgdev_register_nodiq(struct kfd_dbgdev *dbgdev)
static int dbgdev_register_nodiq(struct kfd_dbgdev *dbgdev)
{
{
	BUG_ON(!dbgdev);

	/*
	/*
	 * no action is needed in this case,
	 * no action is needed in this case,
	 * just make sure diq will not be used
	 * just make sure diq will not be used
@@ -187,8 +183,6 @@ static int dbgdev_register_diq(struct kfd_dbgdev *dbgdev)
	struct kernel_queue *kq = NULL;
	struct kernel_queue *kq = NULL;
	int status;
	int status;


	BUG_ON(!dbgdev || !dbgdev->pqm || !dbgdev->dev);

	status = pqm_create_queue(dbgdev->pqm, dbgdev->dev, NULL,
	status = pqm_create_queue(dbgdev->pqm, dbgdev->dev, NULL,
				&properties, 0, KFD_QUEUE_TYPE_DIQ,
				&properties, 0, KFD_QUEUE_TYPE_DIQ,
				&qid);
				&qid);
@@ -215,8 +209,6 @@ static int dbgdev_register_diq(struct kfd_dbgdev *dbgdev)


static int dbgdev_unregister_nodiq(struct kfd_dbgdev *dbgdev)
static int dbgdev_unregister_nodiq(struct kfd_dbgdev *dbgdev)
{
{
	BUG_ON(!dbgdev || !dbgdev->dev);

	/* disable watch address */
	/* disable watch address */
	dbgdev_address_watch_disable_nodiq(dbgdev->dev);
	dbgdev_address_watch_disable_nodiq(dbgdev->dev);
	return 0;
	return 0;
@@ -227,8 +219,6 @@ static int dbgdev_unregister_diq(struct kfd_dbgdev *dbgdev)
	/* todo - disable address watch */
	/* todo - disable address watch */
	int status;
	int status;


	BUG_ON(!dbgdev || !dbgdev->pqm || !dbgdev->kq);

	status = pqm_destroy_queue(dbgdev->pqm,
	status = pqm_destroy_queue(dbgdev->pqm,
			dbgdev->kq->queue->properties.queue_id);
			dbgdev->kq->queue->properties.queue_id);
	dbgdev->kq = NULL;
	dbgdev->kq = NULL;
@@ -245,8 +235,6 @@ static void dbgdev_address_watch_set_registers(
{
{
	union ULARGE_INTEGER addr;
	union ULARGE_INTEGER addr;


	BUG_ON(!adw_info || !addrHi || !addrLo || !cntl);

	addr.quad_part = 0;
	addr.quad_part = 0;
	addrHi->u32All = 0;
	addrHi->u32All = 0;
	addrLo->u32All = 0;
	addrLo->u32All = 0;
@@ -287,8 +275,6 @@ static int dbgdev_address_watch_nodiq(struct kfd_dbgdev *dbgdev,
	struct kfd_process_device *pdd;
	struct kfd_process_device *pdd;
	unsigned int i;
	unsigned int i;


	BUG_ON(!dbgdev || !dbgdev->dev || !adw_info);

	/* taking the vmid for that process on the safe way using pdd */
	/* taking the vmid for that process on the safe way using pdd */
	pdd = kfd_get_process_device_data(dbgdev->dev,
	pdd = kfd_get_process_device_data(dbgdev->dev,
					adw_info->process);
					adw_info->process);
@@ -362,8 +348,6 @@ static int dbgdev_address_watch_diq(struct kfd_dbgdev *dbgdev,
	/* we do not control the vmid in DIQ mode, just a place holder */
	/* we do not control the vmid in DIQ mode, just a place holder */
	unsigned int vmid = 0;
	unsigned int vmid = 0;


	BUG_ON(!dbgdev || !dbgdev->dev || !adw_info);

	addrHi.u32All = 0;
	addrHi.u32All = 0;
	addrLo.u32All = 0;
	addrLo.u32All = 0;
	cntl.u32All = 0;
	cntl.u32All = 0;
@@ -508,8 +492,6 @@ static int dbgdev_wave_control_set_registers(
	union GRBM_GFX_INDEX_BITS reg_gfx_index;
	union GRBM_GFX_INDEX_BITS reg_gfx_index;
	struct HsaDbgWaveMsgAMDGen2 *pMsg;
	struct HsaDbgWaveMsgAMDGen2 *pMsg;


	BUG_ON(!wac_info || !in_reg_sq_cmd || !in_reg_gfx_index);

	reg_sq_cmd.u32All = 0;
	reg_sq_cmd.u32All = 0;
	reg_gfx_index.u32All = 0;
	reg_gfx_index.u32All = 0;
	pMsg = &wac_info->dbgWave_msg.DbgWaveMsg.WaveMsgInfoGen2;
	pMsg = &wac_info->dbgWave_msg.DbgWaveMsg.WaveMsgInfoGen2;
@@ -610,8 +592,6 @@ static int dbgdev_wave_control_diq(struct kfd_dbgdev *dbgdev,
	struct pm4__set_config_reg *packets_vec;
	struct pm4__set_config_reg *packets_vec;
	size_t ib_size = sizeof(struct pm4__set_config_reg) * 3;
	size_t ib_size = sizeof(struct pm4__set_config_reg) * 3;


	BUG_ON(!dbgdev || !wac_info);

	reg_sq_cmd.u32All = 0;
	reg_sq_cmd.u32All = 0;


	status = dbgdev_wave_control_set_registers(wac_info, &reg_sq_cmd,
	status = dbgdev_wave_control_set_registers(wac_info, &reg_sq_cmd,
@@ -725,8 +705,6 @@ static int dbgdev_wave_control_nodiq(struct kfd_dbgdev *dbgdev,
	union GRBM_GFX_INDEX_BITS reg_gfx_index;
	union GRBM_GFX_INDEX_BITS reg_gfx_index;
	struct kfd_process_device *pdd;
	struct kfd_process_device *pdd;


	BUG_ON(!dbgdev || !dbgdev->dev || !wac_info);

	reg_sq_cmd.u32All = 0;
	reg_sq_cmd.u32All = 0;


	/* taking the VMID for that process on the safe way using PDD */
	/* taking the VMID for that process on the safe way using PDD */
@@ -851,8 +829,6 @@ int dbgdev_wave_reset_wavefronts(struct kfd_dev *dev, struct kfd_process *p)
void kfd_dbgdev_init(struct kfd_dbgdev *pdbgdev, struct kfd_dev *pdev,
void kfd_dbgdev_init(struct kfd_dbgdev *pdbgdev, struct kfd_dev *pdev,
			enum DBGDEV_TYPE type)
			enum DBGDEV_TYPE type)
{
{
	BUG_ON(!pdbgdev || !pdev);

	pdbgdev->dev = pdev;
	pdbgdev->dev = pdev;
	pdbgdev->kq = NULL;
	pdbgdev->kq = NULL;
	pdbgdev->type = type;
	pdbgdev->type = type;
+0 −12
Original line number Original line Diff line number Diff line
@@ -44,8 +44,6 @@ struct mutex *kfd_get_dbgmgr_mutex(void)


static void kfd_dbgmgr_uninitialize(struct kfd_dbgmgr *pmgr)
static void kfd_dbgmgr_uninitialize(struct kfd_dbgmgr *pmgr)
{
{
	BUG_ON(!pmgr);

	kfree(pmgr->dbgdev);
	kfree(pmgr->dbgdev);


	pmgr->dbgdev = NULL;
	pmgr->dbgdev = NULL;
@@ -66,7 +64,6 @@ bool kfd_dbgmgr_create(struct kfd_dbgmgr **ppmgr, struct kfd_dev *pdev)
	enum DBGDEV_TYPE type = DBGDEV_TYPE_DIQ;
	enum DBGDEV_TYPE type = DBGDEV_TYPE_DIQ;
	struct kfd_dbgmgr *new_buff;
	struct kfd_dbgmgr *new_buff;


	BUG_ON(!pdev);
	BUG_ON(!pdev->init_complete);
	BUG_ON(!pdev->init_complete);


	new_buff = kfd_alloc_struct(new_buff);
	new_buff = kfd_alloc_struct(new_buff);
@@ -96,8 +93,6 @@ bool kfd_dbgmgr_create(struct kfd_dbgmgr **ppmgr, struct kfd_dev *pdev)


long kfd_dbgmgr_register(struct kfd_dbgmgr *pmgr, struct kfd_process *p)
long kfd_dbgmgr_register(struct kfd_dbgmgr *pmgr, struct kfd_process *p)
{
{
	BUG_ON(!p || !pmgr || !pmgr->dbgdev);

	if (pmgr->pasid != 0) {
	if (pmgr->pasid != 0) {
		pr_debug("H/W debugger is already active using pasid %d\n",
		pr_debug("H/W debugger is already active using pasid %d\n",
				pmgr->pasid);
				pmgr->pasid);
@@ -118,8 +113,6 @@ long kfd_dbgmgr_register(struct kfd_dbgmgr *pmgr, struct kfd_process *p)


long kfd_dbgmgr_unregister(struct kfd_dbgmgr *pmgr, struct kfd_process *p)
long kfd_dbgmgr_unregister(struct kfd_dbgmgr *pmgr, struct kfd_process *p)
{
{
	BUG_ON(!p || !pmgr || !pmgr->dbgdev);

	/* Is the requests coming from the already registered process? */
	/* Is the requests coming from the already registered process? */
	if (pmgr->pasid != p->pasid) {
	if (pmgr->pasid != p->pasid) {
		pr_debug("H/W debugger is not registered by calling pasid %d\n",
		pr_debug("H/W debugger is not registered by calling pasid %d\n",
@@ -137,8 +130,6 @@ long kfd_dbgmgr_unregister(struct kfd_dbgmgr *pmgr, struct kfd_process *p)
long kfd_dbgmgr_wave_control(struct kfd_dbgmgr *pmgr,
long kfd_dbgmgr_wave_control(struct kfd_dbgmgr *pmgr,
				struct dbg_wave_control_info *wac_info)
				struct dbg_wave_control_info *wac_info)
{
{
	BUG_ON(!pmgr || !pmgr->dbgdev || !wac_info);

	/* Is the requests coming from the already registered process? */
	/* Is the requests coming from the already registered process? */
	if (pmgr->pasid != wac_info->process->pasid) {
	if (pmgr->pasid != wac_info->process->pasid) {
		pr_debug("H/W debugger support was not registered for requester pasid %d\n",
		pr_debug("H/W debugger support was not registered for requester pasid %d\n",
@@ -152,9 +143,6 @@ long kfd_dbgmgr_wave_control(struct kfd_dbgmgr *pmgr,
long kfd_dbgmgr_address_watch(struct kfd_dbgmgr *pmgr,
long kfd_dbgmgr_address_watch(struct kfd_dbgmgr *pmgr,
				struct dbg_address_watch_info *adw_info)
				struct dbg_address_watch_info *adw_info)
{
{
	BUG_ON(!pmgr || !pmgr->dbgdev || !adw_info);


	/* Is the requests coming from the already registered process? */
	/* Is the requests coming from the already registered process? */
	if (pmgr->pasid != adw_info->process->pasid) {
	if (pmgr->pasid != adw_info->process->pasid) {
		pr_debug("H/W debugger support was not registered for requester pasid %d\n",
		pr_debug("H/W debugger support was not registered for requester pasid %d\n",
+0 −10
Original line number Original line Diff line number Diff line
@@ -341,8 +341,6 @@ void kgd2kfd_device_exit(struct kfd_dev *kfd)


void kgd2kfd_suspend(struct kfd_dev *kfd)
void kgd2kfd_suspend(struct kfd_dev *kfd)
{
{
	BUG_ON(!kfd);

	if (kfd->init_complete) {
	if (kfd->init_complete) {
		kfd->dqm->ops.stop(kfd->dqm);
		kfd->dqm->ops.stop(kfd->dqm);
		amd_iommu_set_invalidate_ctx_cb(kfd->pdev, NULL);
		amd_iommu_set_invalidate_ctx_cb(kfd->pdev, NULL);
@@ -356,8 +354,6 @@ int kgd2kfd_resume(struct kfd_dev *kfd)
	unsigned int pasid_limit;
	unsigned int pasid_limit;
	int err;
	int err;


	BUG_ON(kfd == NULL);

	pasid_limit = kfd_get_pasid_limit();
	pasid_limit = kfd_get_pasid_limit();


	if (kfd->init_complete) {
	if (kfd->init_complete) {
@@ -394,8 +390,6 @@ static int kfd_gtt_sa_init(struct kfd_dev *kfd, unsigned int buf_size,
{
{
	unsigned int num_of_bits;
	unsigned int num_of_bits;


	BUG_ON(!kfd);
	BUG_ON(!kfd->gtt_mem);
	BUG_ON(buf_size < chunk_size);
	BUG_ON(buf_size < chunk_size);
	BUG_ON(buf_size == 0);
	BUG_ON(buf_size == 0);
	BUG_ON(chunk_size == 0);
	BUG_ON(chunk_size == 0);
@@ -445,8 +439,6 @@ int kfd_gtt_sa_allocate(struct kfd_dev *kfd, unsigned int size,
{
{
	unsigned int found, start_search, cur_size;
	unsigned int found, start_search, cur_size;


	BUG_ON(!kfd);

	if (size == 0)
	if (size == 0)
		return -EINVAL;
		return -EINVAL;


@@ -551,8 +543,6 @@ int kfd_gtt_sa_free(struct kfd_dev *kfd, struct kfd_mem_obj *mem_obj)
{
{
	unsigned int bit;
	unsigned int bit;


	BUG_ON(!kfd);

	/* Act like kfree when trying to free a NULL object */
	/* Act like kfree when trying to free a NULL object */
	if (!mem_obj)
	if (!mem_obj)
		return 0;
		return 0;
+1 −47
Original line number Original line Diff line number Diff line
@@ -79,20 +79,17 @@ static bool is_pipe_enabled(struct device_queue_manager *dqm, int mec, int pipe)


unsigned int get_queues_num(struct device_queue_manager *dqm)
unsigned int get_queues_num(struct device_queue_manager *dqm)
{
{
	BUG_ON(!dqm || !dqm->dev);
	return bitmap_weight(dqm->dev->shared_resources.queue_bitmap,
	return bitmap_weight(dqm->dev->shared_resources.queue_bitmap,
				KGD_MAX_QUEUES);
				KGD_MAX_QUEUES);
}
}


unsigned int get_queues_per_pipe(struct device_queue_manager *dqm)
unsigned int get_queues_per_pipe(struct device_queue_manager *dqm)
{
{
	BUG_ON(!dqm || !dqm->dev);
	return dqm->dev->shared_resources.num_queue_per_pipe;
	return dqm->dev->shared_resources.num_queue_per_pipe;
}
}


unsigned int get_pipes_per_mec(struct device_queue_manager *dqm)
unsigned int get_pipes_per_mec(struct device_queue_manager *dqm)
{
{
	BUG_ON(!dqm || !dqm->dev);
	return dqm->dev->shared_resources.num_pipe_per_mec;
	return dqm->dev->shared_resources.num_pipe_per_mec;
}
}


@@ -152,8 +149,6 @@ static int create_queue_nocpsch(struct device_queue_manager *dqm,
{
{
	int retval;
	int retval;


	BUG_ON(!dqm || !q || !qpd || !allocated_vmid);

	print_queue(q);
	print_queue(q);


	mutex_lock(&dqm->lock);
	mutex_lock(&dqm->lock);
@@ -259,8 +254,6 @@ static int create_compute_queue_nocpsch(struct device_queue_manager *dqm,
	int retval;
	int retval;
	struct mqd_manager *mqd;
	struct mqd_manager *mqd;


	BUG_ON(!dqm || !q || !qpd);

	mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
	mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
	if (!mqd)
	if (!mqd)
		return -ENOMEM;
		return -ENOMEM;
@@ -299,8 +292,6 @@ static int destroy_queue_nocpsch(struct device_queue_manager *dqm,
	int retval;
	int retval;
	struct mqd_manager *mqd;
	struct mqd_manager *mqd;


	BUG_ON(!dqm || !q || !q->mqd || !qpd);

	retval = 0;
	retval = 0;


	mutex_lock(&dqm->lock);
	mutex_lock(&dqm->lock);
@@ -362,8 +353,6 @@ static int update_queue(struct device_queue_manager *dqm, struct queue *q)
	struct mqd_manager *mqd;
	struct mqd_manager *mqd;
	bool prev_active = false;
	bool prev_active = false;


	BUG_ON(!dqm || !q || !q->mqd);

	mutex_lock(&dqm->lock);
	mutex_lock(&dqm->lock);
	mqd = dqm->ops.get_mqd_manager(dqm,
	mqd = dqm->ops.get_mqd_manager(dqm,
			get_mqd_type_from_queue_type(q->properties.type));
			get_mqd_type_from_queue_type(q->properties.type));
@@ -399,7 +388,7 @@ static struct mqd_manager *get_mqd_manager_nocpsch(
{
{
	struct mqd_manager *mqd;
	struct mqd_manager *mqd;


	BUG_ON(!dqm || type >= KFD_MQD_TYPE_MAX);
	BUG_ON(type >= KFD_MQD_TYPE_MAX);


	pr_debug("mqd type %d\n", type);
	pr_debug("mqd type %d\n", type);


@@ -420,8 +409,6 @@ static int register_process_nocpsch(struct device_queue_manager *dqm,
	struct device_process_node *n;
	struct device_process_node *n;
	int retval;
	int retval;


	BUG_ON(!dqm || !qpd);

	n = kzalloc(sizeof(*n), GFP_KERNEL);
	n = kzalloc(sizeof(*n), GFP_KERNEL);
	if (!n)
	if (!n)
		return -ENOMEM;
		return -ENOMEM;
@@ -446,8 +433,6 @@ static int unregister_process_nocpsch(struct device_queue_manager *dqm,
	int retval;
	int retval;
	struct device_process_node *cur, *next;
	struct device_process_node *cur, *next;


	BUG_ON(!dqm || !qpd);

	pr_debug("qpd->queues_list is %s\n",
	pr_debug("qpd->queues_list is %s\n",
			list_empty(&qpd->queues_list) ? "empty" : "not empty");
			list_empty(&qpd->queues_list) ? "empty" : "not empty");


@@ -488,8 +473,6 @@ static void init_interrupts(struct device_queue_manager *dqm)
{
{
	unsigned int i;
	unsigned int i;


	BUG_ON(!dqm);

	for (i = 0 ; i < get_pipes_per_mec(dqm) ; i++)
	for (i = 0 ; i < get_pipes_per_mec(dqm) ; i++)
		if (is_pipe_enabled(dqm, 0, i))
		if (is_pipe_enabled(dqm, 0, i))
			dqm->dev->kfd2kgd->init_interrupts(dqm->dev->kgd, i);
			dqm->dev->kfd2kgd->init_interrupts(dqm->dev->kgd, i);
@@ -499,8 +482,6 @@ static int initialize_nocpsch(struct device_queue_manager *dqm)
{
{
	int pipe, queue;
	int pipe, queue;


	BUG_ON(!dqm);

	pr_debug("num of pipes: %d\n", get_pipes_per_mec(dqm));
	pr_debug("num of pipes: %d\n", get_pipes_per_mec(dqm));


	dqm->allocated_queues = kcalloc(get_pipes_per_mec(dqm),
	dqm->allocated_queues = kcalloc(get_pipes_per_mec(dqm),
@@ -532,8 +513,6 @@ static void uninitialize_nocpsch(struct device_queue_manager *dqm)
{
{
	int i;
	int i;


	BUG_ON(!dqm);

	BUG_ON(dqm->queue_count > 0 || dqm->processes_count > 0);
	BUG_ON(dqm->queue_count > 0 || dqm->processes_count > 0);


	kfree(dqm->allocated_queues);
	kfree(dqm->allocated_queues);
@@ -631,8 +610,6 @@ static int set_sched_resources(struct device_queue_manager *dqm)
	int i, mec;
	int i, mec;
	struct scheduling_resources res;
	struct scheduling_resources res;


	BUG_ON(!dqm);

	res.vmid_mask = (1 << VMID_PER_DEVICE) - 1;
	res.vmid_mask = (1 << VMID_PER_DEVICE) - 1;
	res.vmid_mask <<= KFD_VMID_START_OFFSET;
	res.vmid_mask <<= KFD_VMID_START_OFFSET;


@@ -674,8 +651,6 @@ static int initialize_cpsch(struct device_queue_manager *dqm)
{
{
	int retval;
	int retval;


	BUG_ON(!dqm);

	pr_debug("num of pipes: %d\n", get_pipes_per_mec(dqm));
	pr_debug("num of pipes: %d\n", get_pipes_per_mec(dqm));


	mutex_init(&dqm->lock);
	mutex_init(&dqm->lock);
@@ -695,8 +670,6 @@ static int start_cpsch(struct device_queue_manager *dqm)
	struct device_process_node *node;
	struct device_process_node *node;
	int retval;
	int retval;


	BUG_ON(!dqm);

	retval = 0;
	retval = 0;


	retval = pm_init(&dqm->packets, dqm);
	retval = pm_init(&dqm->packets, dqm);
@@ -741,8 +714,6 @@ static int stop_cpsch(struct device_queue_manager *dqm)
	struct device_process_node *node;
	struct device_process_node *node;
	struct kfd_process_device *pdd;
	struct kfd_process_device *pdd;


	BUG_ON(!dqm);

	destroy_queues_cpsch(dqm, true, true);
	destroy_queues_cpsch(dqm, true, true);


	list_for_each_entry(node, &dqm->queues, list) {
	list_for_each_entry(node, &dqm->queues, list) {
@@ -759,8 +730,6 @@ static int create_kernel_queue_cpsch(struct device_queue_manager *dqm,
					struct kernel_queue *kq,
					struct kernel_queue *kq,
					struct qcm_process_device *qpd)
					struct qcm_process_device *qpd)
{
{
	BUG_ON(!dqm || !kq || !qpd);

	mutex_lock(&dqm->lock);
	mutex_lock(&dqm->lock);
	if (dqm->total_queue_count >= max_num_of_queues_per_device) {
	if (dqm->total_queue_count >= max_num_of_queues_per_device) {
		pr_warn("Can't create new kernel queue because %d queues were already created\n",
		pr_warn("Can't create new kernel queue because %d queues were already created\n",
@@ -790,8 +759,6 @@ static void destroy_kernel_queue_cpsch(struct device_queue_manager *dqm,
					struct kernel_queue *kq,
					struct kernel_queue *kq,
					struct qcm_process_device *qpd)
					struct qcm_process_device *qpd)
{
{
	BUG_ON(!dqm || !kq);

	mutex_lock(&dqm->lock);
	mutex_lock(&dqm->lock);
	/* here we actually preempt the DIQ */
	/* here we actually preempt the DIQ */
	destroy_queues_cpsch(dqm, true, false);
	destroy_queues_cpsch(dqm, true, false);
@@ -823,8 +790,6 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
	int retval;
	int retval;
	struct mqd_manager *mqd;
	struct mqd_manager *mqd;


	BUG_ON(!dqm || !q || !qpd);

	retval = 0;
	retval = 0;


	if (allocate_vmid)
	if (allocate_vmid)
@@ -882,7 +847,6 @@ int amdkfd_fence_wait_timeout(unsigned int *fence_addr,
				unsigned int fence_value,
				unsigned int fence_value,
				unsigned long timeout)
				unsigned long timeout)
{
{
	BUG_ON(!fence_addr);
	timeout += jiffies;
	timeout += jiffies;


	while (*fence_addr != fence_value) {
	while (*fence_addr != fence_value) {
@@ -911,8 +875,6 @@ static int destroy_queues_cpsch(struct device_queue_manager *dqm,
	enum kfd_preempt_type_filter preempt_type;
	enum kfd_preempt_type_filter preempt_type;
	struct kfd_process_device *pdd;
	struct kfd_process_device *pdd;


	BUG_ON(!dqm);

	retval = 0;
	retval = 0;


	if (lock)
	if (lock)
@@ -962,8 +924,6 @@ static int execute_queues_cpsch(struct device_queue_manager *dqm, bool lock)
{
{
	int retval;
	int retval;


	BUG_ON(!dqm);

	if (lock)
	if (lock)
		mutex_lock(&dqm->lock);
		mutex_lock(&dqm->lock);


@@ -1004,8 +964,6 @@ static int destroy_queue_cpsch(struct device_queue_manager *dqm,
	struct mqd_manager *mqd;
	struct mqd_manager *mqd;
	bool preempt_all_queues;
	bool preempt_all_queues;


	BUG_ON(!dqm || !qpd || !q);

	preempt_all_queues = false;
	preempt_all_queues = false;


	retval = 0;
	retval = 0;
@@ -1131,8 +1089,6 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
{
{
	struct device_queue_manager *dqm;
	struct device_queue_manager *dqm;


	BUG_ON(!dev);

	pr_debug("Loading device queue manager\n");
	pr_debug("Loading device queue manager\n");


	dqm = kzalloc(sizeof(*dqm), GFP_KERNEL);
	dqm = kzalloc(sizeof(*dqm), GFP_KERNEL);
@@ -1197,8 +1153,6 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)


void device_queue_manager_uninit(struct device_queue_manager *dqm)
void device_queue_manager_uninit(struct device_queue_manager *dqm)
{
{
	BUG_ON(!dqm);

	dqm->ops.uninitialize(dqm);
	dqm->ops.uninitialize(dqm);
	kfree(dqm);
	kfree(dqm);
}
}
+0 −2
Original line number Original line Diff line number Diff line
@@ -104,8 +104,6 @@ static int register_process_cik(struct device_queue_manager *dqm,
	struct kfd_process_device *pdd;
	struct kfd_process_device *pdd;
	unsigned int temp;
	unsigned int temp;


	BUG_ON(!dqm || !qpd);

	pdd = qpd_to_pdd(qpd);
	pdd = qpd_to_pdd(qpd);


	/* check if sh_mem_config register already configured */
	/* check if sh_mem_config register already configured */
Loading