On Fri, Feb 09, 2018 at 12:33:36PM -0800, Richard Cochran wrote: > On Sat, Feb 03, 2018 at 10:40:08PM +0100, Andrew Lunn wrote: > > +static int mv88e6xxx_ptp_adjfine(struct ptp_clock_info *ptp, long > > scaled_ppm) > > +{ > > + struct mv88e6xxx_chip *chip = ptp_to_chip(ptp); > > + int neg_adj = 0; > > + u32 diff, mult; > > + u64 adj; > > + > > + if (scaled_ppm < 0) { > > + neg_adj = 1; > > + scaled_ppm = -scaled_ppm; > > + } > > + mult = CC_MULT; > > + adj = scaled_ppm * CC_MULT_NUM; > ^^^^^^^^^^^^^^^^^^^^^^^^ > This easily overflows on 32 bit platforms. My bad. Fix below...
Hi Richard Thanks, i will squash the fix in for the next version. Andrew