Nit: in commit title, the most common tag seems to be "posix-clocks:".
On 02/02/2023 17:50, Luca Vizzarro wrote:
The posix_clock_ioctl handler mostly takes a user pointer as an argument, and the compat implementation is not PCuABI compatible.
This commit removes the posix_clock_compat_ioctl handler and replaces it with the compat_ptr_ioctl helper function instead.
Signed-off-by: Luca Vizzarro Luca.Vizzarro@arm.com
kernel/time/posix-clock.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-)
diff --git a/kernel/time/posix-clock.c b/kernel/time/posix-clock.c index 8ecfea067832..09fd22d50bc3 100644 --- a/kernel/time/posix-clock.c +++ b/kernel/time/posix-clock.c @@ -86,25 +86,6 @@ static long posix_clock_ioctl(struct file *fp, return err; } -#ifdef CONFIG_COMPAT -static long posix_clock_compat_ioctl(struct file *fp,
unsigned int cmd, unsigned long arg)
-{
- struct posix_clock *clk = get_posix_clock(fp);
- int err = -ENOTTY;
- if (!clk)
return -ENODEV;
- if (clk->ops.ioctl)
err = clk->ops.ioctl(clk, cmd, arg);
- put_posix_clock(clk);
- return err;
-} -#endif
static int posix_clock_open(struct inode *inode, struct file *fp) { int err; @@ -155,7 +136,7 @@ static const struct file_operations posix_clock_file_operations = { .open = posix_clock_open, .release = posix_clock_release, #ifdef CONFIG_COMPAT
Good idea to replace the compat handler with compat_ptr_ioctl, not sure why they duplicated the implementation... While at it you could also remove the #ifdef, compat_ptr_ioctl is already #ifdef'd as needed.
Last minor thing, it would make more sense to have this patch just after patch 1, since they are related.
Kevin
- .compat_ioctl = posix_clock_compat_ioctl,
- .compat_ioctl = compat_ptr_ioctl,
#endif };