History

[PATCH] introduce setup_timer() helper

Every user of init_timer() also needs to initialize ->function and ->data fields. This patch adds a simple setup_timer() helper for that. The schedule_timeout() is patched as an example of usage.

Oleg Nesterov committed 21 years ago

Commit a8db2db1 parent 9e4e23b3 files · +15 −10Browse files

Unified · Split

3 files
  1. arch/x86_64/kernel/i8259.c +4 −4
  2. include/linux/timer.h +9 −0
  3. kernel/timer.c +2 −6
arch/x86_64/kernel/i8259.c+4−4
@@ -494,7 +494,7 @@ void invalidate_interrupt7(void); · 493 unmodified lines
494494 void thermal_interrupt(void);
495495 void i8254_timer_resume(void);
496496
497−static void setup_timer(void)
497+static void setup_timer_hardware(void)
498498 {
499499 outb_p(0x34,0x43); /* binary, mode 2, LSB/MSB, ch 0 */
500500 udelay(10);
@@ -505,13 +505,13 @@ static void setup_timer(void) · 4 unmodified lines
505505
506506 static int timer_resume(struct sys_device *dev)
507507 {
508− setup_timer();
508+ setup_timer_hardware();
509509 return 0;
510510 }
511511
512512 void i8254_timer_resume(void)
513513 {
514− setup_timer();
514+ setup_timer_hardware();
515515 }
516516
517517 static struct sysdev_class timer_sysclass = {
@@ -594,7 +594,7 @@ void __init init_IRQ(void) · 76 unmodified lines
594594 * Set the clock to HZ Hz, we already have a valid
595595 * vector now:
596596 */
597− setup_timer();
597+ setup_timer_hardware();
598598
599599 if (!acpi_ioapic)
600600 setup_irq(2, &irq2);
include/linux/timer.h+9−0
@@ -38,6 +38,15 @@ extern struct timer_base_s __init_timer_base; · 37 unmodified lines
3838
3939 void fastcall init_timer(struct timer_list * timer);
4040
41+static inline void setup_timer(struct timer_list * timer,
42+ void (*function)(unsigned long),
43+ unsigned long data)
44+{
45+ timer->function = function;
46+ timer->data = data;
47+ init_timer(timer);
48+}
49+
4150 /***
4251 * timer_pending - is a timer pending?
4352 * @timer: the timer in question
kernel/timer.c+2−6
@@ -1146,12 +1146,8 @@ fastcall signed long __sched schedule_timeout(signed long timeout) · 1145 unmodified lines
11461146
11471147 expire = timeout + jiffies;
11481148
1149− init_timer(&timer);
1150− timer.expires = expire;
1151− timer.data = (unsigned long) current;
1152− timer.function = process_timeout;
1153−
1154− add_timer(&timer);
1149+ setup_timer(&timer, process_timeout, (unsigned long)current);
1150+ __mod_timer(&timer, expire);
11551151 schedule();
11561152 del_singleshot_timer_sync(&timer);
11571153

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t