Commit 7dccb064 authored by Tomer Tayar's avatar Tomer Tayar Committed by Oded Gabbay
Browse files

accel/habanalabs: print task name and request code upon ioctl failure



When an ioctl fails, it is useful to know what is the task command name
and the full ioctl request code, in addition to the task pid and the
ioctl number.
Add the additional information to the relevant debug error prints.

Signed-off-by: default avatarTomer Tayar <ttayar@habana.ai>
Reviewed-by: default avatarOded Gabbay <ogabbay@kernel.org>
Signed-off-by: default avatarOded Gabbay <ogabbay@kernel.org>
parent c6a4f256
Loading
Loading
Loading
Loading
+17 −7
Original line number Diff line number Diff line
@@ -1194,9 +1194,13 @@ static long _hl_ioctl(struct file *filep, unsigned int cmd, unsigned long arg,
		retcode = -EFAULT;

out_err:
	if (retcode)
		dev_dbg_ratelimited(dev, "error in ioctl: pid=%d, cmd=0x%02x, nr=0x%02x\n",
			  task_pid_nr(current), cmd, nr);
	if (retcode) {
		char task_comm[TASK_COMM_LEN];

		dev_dbg_ratelimited(dev,
				"error in ioctl: pid=%d, comm=\"%s\", cmd=%#010x, nr=%#04x\n",
				task_pid_nr(current), get_task_comm(task_comm, current), cmd, nr);
	}

	if (kdata != stack_kdata)
		kfree(kdata);
@@ -1219,8 +1223,11 @@ long hl_ioctl(struct file *filep, unsigned int cmd, unsigned long arg)
	if ((nr >= HL_COMMAND_START) && (nr < HL_COMMAND_END)) {
		ioctl = &hl_ioctls[nr];
	} else {
		dev_dbg_ratelimited(hdev->dev, "invalid ioctl: pid=%d, nr=0x%02x\n",
			task_pid_nr(current), nr);
		char task_comm[TASK_COMM_LEN];

		dev_dbg_ratelimited(hdev->dev,
				"invalid ioctl: pid=%d, comm=\"%s\", cmd=%#010x, nr=%#04x\n",
				task_pid_nr(current), get_task_comm(task_comm, current), cmd, nr);
		return -ENOTTY;
	}

@@ -1242,8 +1249,11 @@ long hl_ioctl_control(struct file *filep, unsigned int cmd, unsigned long arg)
	if (nr == _IOC_NR(HL_IOCTL_INFO)) {
		ioctl = &hl_ioctls_control[nr];
	} else {
		dev_dbg_ratelimited(hdev->dev_ctrl, "invalid ioctl: pid=%d, nr=0x%02x\n",
			task_pid_nr(current), nr);
		char task_comm[TASK_COMM_LEN];

		dev_dbg_ratelimited(hdev->dev_ctrl,
				"invalid ioctl: pid=%d, comm=\"%s\", cmd=%#010x, nr=%#04x\n",
				task_pid_nr(current), get_task_comm(task_comm, current), cmd, nr);
		return -ENOTTY;
	}