Re: [PATCHv7 16/16] pps: add parallel port PPS signal generator

Andrew Morton
2010-12-24T00:37:02Z

On Mon, 20 Dec 2010 14:54:56 +0300
Alexander Gordeev <lasaine@lvk.cs.msu.su> wrote:

> + expire_time = ktime_to_timespec(timer->_expires);

It's bad to play around with internal fields, especially when an
accessor API was provided to access those fields.

And lo, hrtimers got changed in linux-next:

drivers/pps/generators/pps_gen_parport.c: In function 'hrtimer_event':
drivers/pps/generators/pps_gen_parport.c:92: error: 'struct hrtimer' has no member named '_expires'

The documentation in hrtimer.h is of course complete crap and
Documentation/timers/hrtimers.txt appears to be bitrot, but with a little
sleuthing and guesswork, it seems that what you want here is

--- a/drivers/pps/generators/pps_gen_parport.c~pps-add-parallel-port-pps-signal-generator-fix
+++ a/drivers/pps/generators/pps_gen_parport.c
@@ -82,7 +82,7 @@ static enum hrtimer_restart hrtimer_even

/* first of all we get the time stamp... */
getnstimeofday(&ts1);
- expire_time = ktime_to_timespec(timer->_expires);
+ expire_time = ktime_to_timespec(hrtimer_get_softexpires(timer));
dev = container_of(timer, struct pps_generator_pp, timer);
lim = NSEC_PER_SEC - send_delay - dev->port_write_time;

_