mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 15:03:52 +08:00
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:
committed by
Jakub Kicinski
parent
6a0f480478
commit
745e3c751c
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user