Skip to content

Commit 4eb8d9e

Browse files
authored
Merge pull request torvalds#562 from ddiss/host_timer_drop_cb_arg
lkl: host: drop unused timer callback parameter
2 parents 1848ab8 + ff8f512 commit 4eb8d9e

File tree

4 files changed

+22
-36
lines changed

4 files changed

+22
-36
lines changed

arch/lkl/include/uapi/asm/host_ops.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ enum lkl_prot {
9999
* @page_alloc - allocate page aligned memory
100100
* @page_free - free memory allocated by page_alloc
101101
*
102-
* @timer_create - allocate a host timer that runs fn(arg) when the timer
102+
* @timer_create - allocate a host timer that runs fn() when the timer
103103
* fires.
104104
* @timer_free - disarms and free the timer
105105
* @timer_set_oneshot - arm the timer to fire once, after delta ns.
@@ -169,7 +169,7 @@ struct lkl_host_operations {
169169

170170
unsigned long long (*time)(void);
171171

172-
void* (*timer_alloc)(void (*fn)(void *), void *arg);
172+
void* (*timer_alloc)(void (*fn)(void));
173173
int (*timer_set_oneshot)(void *timer, unsigned long delta);
174174
void (*timer_free)(void *timer);
175175

arch/lkl/kernel/time.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ static void *timer;
6565

6666
static int timer_irq;
6767

68-
static void timer_fn(void *arg)
68+
static void timer_fn(void)
6969
{
7070
lkl_trigger_irq(timer_irq);
7171
}
@@ -82,7 +82,7 @@ static int clockevent_set_state_shutdown(struct clock_event_device *evt)
8282

8383
static int clockevent_set_state_oneshot(struct clock_event_device *evt)
8484
{
85-
timer = lkl_ops->timer_alloc(timer_fn, NULL);
85+
timer = lkl_ops->timer_alloc(timer_fn);
8686
if (!timer)
8787
return -ENOMEM;
8888

tools/lkl/lib/nt-host.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,11 +178,10 @@ static unsigned long long time_ns(void)
178178

179179
struct timer {
180180
HANDLE queue;
181-
void (*callback)(void *);
182-
void *arg;
181+
void (*callback)(void);
183182
};
184183

185-
static void *timer_alloc(void (*fn)(void *), void *arg)
184+
static void *timer_alloc(void (*fn)(void))
186185
{
187186
struct timer *t;
188187

@@ -197,7 +196,6 @@ static void *timer_alloc(void (*fn)(void *), void *arg)
197196
}
198197

199198
t->callback = fn;
200-
t->arg = arg;
201199

202200
return t;
203201
}
@@ -207,7 +205,7 @@ static void CALLBACK timer_callback(void *arg, BOOLEAN TimerOrWaitFired)
207205
struct timer *t = (struct timer *)arg;
208206

209207
if (TimerOrWaitFired)
210-
t->callback(t->arg);
208+
t->callback();
211209
}
212210

213211
static int timer_set_oneshot(void *timer, unsigned long ns)

tools/lkl/lib/posix-host.c

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -396,62 +396,50 @@ static unsigned long long time_ns(void)
396396
return 1e9*ts.tv_sec + ts.tv_nsec;
397397
}
398398

399-
struct lkl_timer {
400-
timer_t timer;
401-
void (*fn)(void *arg);
402-
void *arg;
403-
};
404-
405399
static void lkl_timer_callback(union sigval sv)
406400
{
407-
struct lkl_timer *lt = (struct lkl_timer *)sv.sival_ptr;
401+
void (*fn)(void) = sv.sival_ptr;
408402

409-
lt->fn(lt->arg);
403+
fn();
410404
}
411405

412-
static void *timer_alloc(void (*fn)(void *), void *arg)
406+
static void *timer_alloc(void (*fn)(void))
413407
{
414408
int err;
409+
timer_t timer;
415410
struct sigevent se = {
416411
.sigev_notify = SIGEV_THREAD,
412+
.sigev_value = {
413+
.sival_ptr = fn,
414+
},
417415
.sigev_notify_function = lkl_timer_callback,
418416
};
419-
struct lkl_timer *pt;
420-
421417

422-
pt = malloc(sizeof(*pt));
423-
if (!pt)
424-
return NULL;
425-
426-
pt->fn = fn;
427-
pt->arg = arg;
428-
se.sigev_value.sival_ptr = pt;
429-
err = timer_create(CLOCK_REALTIME, &se, &pt->timer);
418+
err = timer_create(CLOCK_REALTIME, &se, &timer);
430419
if (err)
431420
return NULL;
432421

433-
return pt;
422+
return (void *)(long)timer;
434423
}
435424

436-
static int timer_set_oneshot(void *timer, unsigned long ns)
425+
static int timer_set_oneshot(void *_timer, unsigned long ns)
437426
{
438-
struct lkl_timer *lt = timer;
427+
timer_t timer = (timer_t)(long)_timer;
439428
struct itimerspec ts = {
440429
.it_value = {
441430
.tv_sec = ns / 1000000000,
442431
.tv_nsec = ns % 1000000000,
443432
},
444433
};
445434

446-
return timer_settime(lt->timer, 0, &ts, NULL);
435+
return timer_settime(timer, 0, &ts, NULL);
447436
}
448437

449-
static void timer_free(void *timer)
438+
static void timer_free(void *_timer)
450439
{
451-
struct lkl_timer *lt = timer;
440+
timer_t timer = (timer_t)(long)_timer;
452441

453-
timer_delete(lt->timer);
454-
free(lt);
442+
timer_delete(timer);
455443
}
456444

457445
static void panic(void)

0 commit comments

Comments
 (0)