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

Reply via email to