On Sun, 30 Apr 2023 at 23:26, Richard Cochran <richardcoch...@gmail.com> wrote:
> On Thu, Mar 30, 2023 at 11:16:44AM +0800, Hangbin Liu wrote: > > Richard, what do you think? > > This code in hwts_init is wrong: > > cfg.flags = HWTSTAMP_FLAG_BONDED_PHC_INDEX; > /* Fall back without flag if user run new build on old kernel */ > if (ioctl(fd, SIOCGHWTSTAMP, &ifreq) == -EINVAL) > init_ifreq(&ifreq, &cfg, device); > > As `man ioctl` says: > > RETURN VALUE > Usually, on success zero is returned. A few ioctl() requests use > the > return value as an output parameter and return a nonnegative > value on > success. On error, -1 is returned, and errno is set appropriately. > > So I think what you meant to write is this: > > cfg.flags = HWTSTAMP_FLAG_BONDED_PHC_INDEX; > err = ioctl(fd, SIOCGHWTSTAMP, &ifreq); > if (err < 0) { > /* Fall back without flag if user run new build on old > kernel */ > if (errno == EINVAL) { > init_ifreq(&ifreq, &cfg, device); > } else { > pr_err("ioctl SIOCGHWTSTAMP failed: %m"); > return err; > } > } > > @Martin would that also fix your issue? > I support. Erez > > Thanks, > Richard >
_______________________________________________ Linuxptp-devel mailing list Linuxptp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-devel