Hi, Richard Cochran writes: > Adding davem onto CC... > > On Thu, Aug 29, 2019 at 12:58:25PM +0300, Felipe Balbi wrote: >> diff --git a/drivers/ptp/ptp_chardev.c b/drivers/ptp/ptp_chardev.c >> index 98ec1395544e..a407e5f76e2d 100644 >> --- a/drivers/ptp/ptp_chardev.c >> +++ b/drivers/ptp/ptp_chardev.c >> @@ -177,9 +177,8 @@ long ptp_ioctl(struct posix_clock *pc, unsigned int cmd, unsigned long arg) >> err = -EFAULT; >> break; >> } >> - if ((req.perout.flags || req.perout.rsv[0] || req.perout.rsv[1] >> - || req.perout.rsv[2] || req.perout.rsv[3]) >> - && cmd == PTP_PEROUT_REQUEST2) { >> + if ((req.perout.rsv[0] || req.perout.rsv[1] || req.perout.rsv[2] >> + || req.perout.rsv[3]) && cmd == PTP_PEROUT_REQUEST2) { > > Please check that the reserved bits of req.perout.flags, namely > ~PTP_PEROUT_ONE_SHOT, are clear. Actually, we should check more. PEROUT_FEATURE_ENABLE is still valid here, right? So are RISING and FALLING edges, no? > >> err = -EINVAL; >> break; >> } else if (cmd == PTP_PEROUT_REQUEST) { >> diff --git a/include/uapi/linux/ptp_clock.h b/include/uapi/linux/ptp_clock.h >> index 039cd62ec706..95840e5f5c53 100644 >> --- a/include/uapi/linux/ptp_clock.h >> +++ b/include/uapi/linux/ptp_clock.h >> @@ -67,7 +67,9 @@ struct ptp_perout_request { >> struct ptp_clock_time start; /* Absolute start time. */ >> struct ptp_clock_time period; /* Desired period, zero means disable. */ >> unsigned int index; /* Which channel to configure. */ >> - unsigned int flags; /* Reserved for future use. */ >> + >> +#define PTP_PEROUT_ONE_SHOT BIT(0) >> + unsigned int flags; > > @davem Any CodingStyle policy on #define within a struct? (Some > maintainers won't allow it.) seems like this should be defined together with the other flags? If that's the case, it seems like we would EXTTS and PEROUT masks. -- balbi