On Tue, Jun 15, 2021 at 05:45:09PM +0800, Yangbo Lu wrote: > diff --git a/drivers/ptp/ptp_private.h b/drivers/ptp/ptp_private.h > index 3f388d63904c..6949afc9d733 100644 > --- a/drivers/ptp/ptp_private.h > +++ b/drivers/ptp/ptp_private.h > @@ -46,6 +46,9 @@ struct ptp_clock { > const struct attribute_group *pin_attr_groups[2]; > struct kthread_worker *kworker; > struct kthread_delayed_work aux_work; > + u8 n_vclocks; Hm, type is u8, but ... > + struct mutex n_vclocks_mux; /* protect concurrent n_vclocks access */ > + bool vclock_flag; > }; > > #define info_to_vclock(d) container_of((d), struct ptp_vclock, info) > diff --git a/include/uapi/linux/ptp_clock.h b/include/uapi/linux/ptp_clock.h > index 1d108d597f66..4b933dc1b81b 100644 > --- a/include/uapi/linux/ptp_clock.h > +++ b/include/uapi/linux/ptp_clock.h > @@ -69,6 +69,11 @@ > */ > #define PTP_PEROUT_V1_VALID_FLAGS (0) > > +/* > + * Max number of PTP virtual clocks per PTP physical clock > + */ > +#define PTP_MAX_VCLOCKS 20 Only 20 clocks are allowed? Why? Thanks, Richard