Re: [PATCH v2 1/2] PTP: introduce new versions of IOCTLs
From: Felipe Balbi <hidden>
Date: 2019-08-30 07:58:03
Also in:
lkml
Attachments
- signature.asc [application/pgp-signature] 832 bytes
From: Felipe Balbi <hidden>
Date: 2019-08-30 07:58:03
Also in:
lkml
Hi, Richard Cochran [off-list ref] writes:
quoted
@@ -139,11 +141,24 @@ long ptp_ioctl(struct posix_clock *pc, unsigned int cmd, unsigned long arg) break; case PTP_EXTTS_REQUEST: + case PTP_EXTTS_REQUEST2: + memset(&req, 0, sizeof(req)); + if (copy_from_user(&req.extts, (void __user *)arg, sizeof(req.extts))) { err = -EFAULT; break; } + if ((req.extts.flags || req.extts.rsv[0] || req.extts.rsv[1]) + && cmd == PTP_EXTTS_REQUEST2) { + err = -EINVAL; + break; + } else if (cmd == PTP_EXTTS_REQUEST) { + req.extts.flags = 0;This still isn't quite right. Sorry that was my fault. The req.extts.flags can be (PTP_ENABLE_FEATURE | PTP_RISING_EDGE | PTP_FALLING_EDGE), and ENABLE is used immediately below in this case. Please #define those bits into a valid mask, and then: - for PTP_EXTTS_REQUEST2 check that ~mask is zero, and - for PTP_EXTTS_REQUEST clear the ~mask bits for the drivers. Thanks again for cleaning this up!
good point. This will actually reduce the size of the patch 2. -- balbi