Em Sat, 14 Apr 2018 01:31:34 +0200 "Jasmin J." <jasmin@xxxxxx> escreveu: > From: Jasmin Jessich <jasmin@xxxxxx> > > This reverts 8b0e195314fa, because this will not compile for Kernels > older than 4.10. This patch looks fine, but not for the above-mentioned. The thing is that it is not consistent to have some places with things like: timeout = ktime_set(1, ir->polling * 1000000); and others with: timeout = ir->polling * 1000000; We should either use ktime_set() everywhere or remove it as a whole. My preference is to keep using it, as it makes it better documented. In any case, gcc should be smart enough to discard multiply by a zero constant when evaluating ktime_set() macro (if not, it is a gcc issue). The fact that it makes maintainership of the media_build backport tree easier is just a plus, but it makes no sense upstream. > > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Signed-off-by: Jasmin Jessich <jasmin@xxxxxx> > --- > drivers/media/dvb-core/dmxdev.c | 2 +- > drivers/media/pci/cx88/cx88-input.c | 6 ++++-- > drivers/media/pci/pt3/pt3.c | 2 +- > 3 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c > index 61a750f..cb078d6 100644 > --- a/drivers/media/dvb-core/dmxdev.c > +++ b/drivers/media/dvb-core/dmxdev.c > @@ -622,7 +622,7 @@ static int dvb_dmxdev_start_feed(struct dmxdev *dmxdev, > struct dmxdev_filter *filter, > struct dmxdev_feed *feed) > { > - ktime_t timeout = 0; > + ktime_t timeout = ktime_set(0, 0); > struct dmx_pes_filter_params *para = &filter->params.pes; > enum dmx_output otype; > int ret; > diff --git a/drivers/media/pci/cx88/cx88-input.c b/drivers/media/pci/cx88/cx88-input.c > index 6f4e692..b13243d 100644 > --- a/drivers/media/pci/cx88/cx88-input.c > +++ b/drivers/media/pci/cx88/cx88-input.c > @@ -180,7 +180,8 @@ static enum hrtimer_restart cx88_ir_work(struct hrtimer *timer) > struct cx88_IR *ir = container_of(timer, struct cx88_IR, timer); > > cx88_ir_handle_key(ir); > - missed = hrtimer_forward_now(&ir->timer, ir->polling * 1000000LL); > + missed = hrtimer_forward_now(&ir->timer, > + ktime_set(0, ir->polling * 1000000)); > if (missed > 1) > ir_dprintk("Missed ticks %ld\n", missed - 1); > > @@ -200,7 +201,8 @@ static int __cx88_ir_start(void *priv) > if (ir->polling) { > hrtimer_init(&ir->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); > ir->timer.function = cx88_ir_work; > - hrtimer_start(&ir->timer, ir->polling * 1000000LL, > + hrtimer_start(&ir->timer, > + ktime_set(0, ir->polling * 1000000), > HRTIMER_MODE_REL); > } > if (ir->sampling) { > diff --git a/drivers/media/pci/pt3/pt3.c b/drivers/media/pci/pt3/pt3.c > index da74828..8ced807 100644 > --- a/drivers/media/pci/pt3/pt3.c > +++ b/drivers/media/pci/pt3/pt3.c > @@ -464,7 +464,7 @@ static int pt3_fetch_thread(void *data) > > pt3_proc_dma(adap); > > - delay = PT3_FETCH_DELAY * NSEC_PER_MSEC; > + delay = ktime_set(0, PT3_FETCH_DELAY * NSEC_PER_MSEC); > set_current_state(TASK_UNINTERRUPTIBLE); > freezable_schedule_hrtimeout_range(&delay, > PT3_FETCH_DELAY_DELTA * NSEC_PER_MSEC, Thanks, Mauro