[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250620131944.408020331@linutronix.de>
Date: Fri, 20 Jun 2025 15:24:46 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: LKML <linux-kernel@...r.kernel.org>
Cc: Richard Cochran <richardcochran@...il.com>,
netdev@...r.kernel.org
Subject: [patch 11/13] 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@...utronix.de>
---
drivers/ptp/ptp_chardev.c | 35 +++++++++++++++--------------------
1 file changed, 15 insertions(+), 20 deletions(-)
--- a/drivers/ptp/ptp_chardev.c
+++ b/drivers/ptp/ptp_chardev.c
@@ -448,22 +448,28 @@ static long ptp_mask_clear_all(struct ti
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:
@@ -513,22 +519,11 @@ long ptp_ioctl(struct posix_clock_contex
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,
Powered by blists - more mailing lists