ptp: Split out PTP_MASK_EN_SINGLE ioctl code

Finish the ptp_ioctl() cleanup by splitting out the PTP_MASK_EN_SINGLE
ioctl code and removing the remaining local variables and return
statements.

No functional change intended.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Link: https://patch.msgid.link/20250625115133.364422719@linutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Thomas Gleixner
2025-06-25 13:52:36 +02:00
committed by Jakub Kicinski
parent 6a0f480478
commit 745e3c751c

View File

@@ -441,22 +441,28 @@ static long ptp_mask_clear_all(struct timestamp_event_queue *tsevq)
return 0;
}
static long ptp_mask_en_single(struct timestamp_event_queue *tsevq, void __user *arg)
{
unsigned int channel;
if (copy_from_user(&channel, arg, sizeof(channel)))
return -EFAULT;
if (channel >= PTP_MAX_CHANNELS)
return -EFAULT;
set_bit(channel, tsevq->mask);
return 0;
}
long ptp_ioctl(struct posix_clock_context *pccontext, unsigned int cmd,
unsigned long arg)
{
struct ptp_clock *ptp =
container_of(pccontext->clk, struct ptp_clock, clock);
struct timestamp_event_queue *tsevq;
struct ptp_clock *ptp = container_of(pccontext->clk, struct ptp_clock, clock);
void __user *argptr;
unsigned int i;
int err = 0;
if (in_compat_syscall() && cmd != PTP_ENABLE_PPS && cmd != PTP_ENABLE_PPS2)
arg = (unsigned long)compat_ptr(arg);
argptr = (void __force __user *)arg;
tsevq = pccontext->private_clkdata;
switch (cmd) {
case PTP_CLOCK_GETCAPS:
case PTP_CLOCK_GETCAPS2:
@@ -506,22 +512,11 @@ long ptp_ioctl(struct posix_clock_context *pccontext, unsigned int cmd,
return ptp_mask_clear_all(pccontext->private_clkdata);
case PTP_MASK_EN_SINGLE:
if (copy_from_user(&i, (void __user *)arg, sizeof(i))) {
err = -EFAULT;
break;
}
if (i >= PTP_MAX_CHANNELS) {
err = -EFAULT;
break;
}
set_bit(i, tsevq->mask);
break;
return ptp_mask_en_single(pccontext->private_clkdata, argptr);
default:
err = -ENOTTY;
break;
return -ENOTTY;
}
return err;
}
__poll_t ptp_poll(struct posix_clock_context *pccontext, struct file *fp,