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

Commit 3cfc8e5f authored by Ricky Liang's avatar Ricky Liang Committed by Sasha Levin
Browse files

Input: uinput - handle compat ioctl for UI_SET_PHYS



[ Upstream commit affa80bd97f7ca282d1faa91667b3ee9e4c590e6 ]

When running a 32-bit userspace on a 64-bit kernel, the UI_SET_PHYS
ioctl needs to be treated with special care, as it has the pointer
size encoded in the command.

Signed-off-by: default avatarRicky Liang <jcliang@chromium.org>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
parent 4ccd5ccb
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -895,9 +895,15 @@ static long uinput_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
}

#ifdef CONFIG_COMPAT

#define UI_SET_PHYS_COMPAT	_IOW(UINPUT_IOCTL_BASE, 108, compat_uptr_t)

static long uinput_compat_ioctl(struct file *file,
				unsigned int cmd, unsigned long arg)
{
	if (cmd == UI_SET_PHYS_COMPAT)
		cmd = UI_SET_PHYS;

	return uinput_ioctl_handler(file, cmd, arg, compat_ptr(arg));
}
#endif