Commit dfc4f94d2ff95fc92127d3e512c1df7cab274fb8

Authored by Andrew Morton
Committed by Linus Torvalds
1 parent 89ada67917

[PATCH] remove timer debug field

Remove timer_list.magic and associated debugging code.

I originally added this when a spinlock was added to timer_list - this meant
that an all-zeroes timer became illegal and init_timer() was required.

That spinlock isn't even there any more, although timer.base must now be
initialised.

I'll keep this debugging code in -mm.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Showing 3 changed files with 2 additions and 56 deletions Side-by-side Diff

arch/s390/kernel/vtime.c
... ... @@ -24,7 +24,6 @@
24 24 #include <asm/s390_ext.h>
25 25 #include <asm/timer.h>
26 26  
27   -#define VTIMER_MAGIC (TIMER_MAGIC + 1)
28 27 static ext_int_info_t ext_int_info_timer;
29 28 DEFINE_PER_CPU(struct vtimer_queue, virt_cpu_timer);
30 29  
31 30  
... ... @@ -277,20 +276,12 @@
277 276  
278 277 void init_virt_timer(struct vtimer_list *timer)
279 278 {
280   - timer->magic = VTIMER_MAGIC;
281 279 timer->function = NULL;
282 280 INIT_LIST_HEAD(&timer->entry);
283 281 spin_lock_init(&timer->lock);
284 282 }
285 283 EXPORT_SYMBOL(init_virt_timer);
286 284  
287   -static inline int check_vtimer(struct vtimer_list *timer)
288   -{
289   - if (timer->magic != VTIMER_MAGIC)
290   - return -EINVAL;
291   - return 0;
292   -}
293   -
294 285 static inline int vtimer_pending(struct vtimer_list *timer)
295 286 {
296 287 return (!list_empty(&timer->entry));
... ... @@ -346,7 +337,7 @@
346 337  
347 338 static inline int prepare_vtimer(struct vtimer_list *timer)
348 339 {
349   - if (check_vtimer(timer) || !timer->function) {
  340 + if (!timer->function) {
350 341 printk("add_virt_timer: uninitialized timer\n");
351 342 return -EINVAL;
352 343 }
... ... @@ -414,7 +405,7 @@
414 405 unsigned long flags;
415 406 int cpu;
416 407  
417   - if (check_vtimer(timer) || !timer->function) {
  408 + if (!timer->function) {
418 409 printk("mod_virt_timer: uninitialized timer\n");
419 410 return -EINVAL;
420 411 }
... ... @@ -480,11 +471,6 @@
480 471 {
481 472 unsigned long flags;
482 473 struct vtimer_queue *vt_list;
483   -
484   - if (check_vtimer(timer)) {
485   - printk("del_virt_timer: timer not initialized\n");
486   - return -EINVAL;
487   - }
488 474  
489 475 /* check if timer is pending */
490 476 if (!vtimer_pending(timer))
include/linux/timer.h
... ... @@ -12,16 +12,12 @@
12 12 struct list_head entry;
13 13 unsigned long expires;
14 14  
15   - unsigned long magic;
16   -
17 15 void (*function)(unsigned long);
18 16 unsigned long data;
19 17  
20 18 struct timer_base_s *base;
21 19 };
22 20  
23   -#define TIMER_MAGIC 0x4b87ad6e
24   -
25 21 extern struct timer_base_s __init_timer_base;
26 22  
27 23 #define TIMER_INITIALIZER(_function, _expires, _data) { \
... ... @@ -29,7 +25,6 @@
29 25 .expires = (_expires), \
30 26 .data = (_data), \
31 27 .base = &__init_timer_base, \
32   - .magic = TIMER_MAGIC, \
33 28 }
34 29  
35 30 #define DEFINE_TIMER(_name, _function, _expires, _data) \
... ... @@ -91,30 +91,6 @@
91 91 #endif
92 92 }
93 93  
94   -static void check_timer_failed(struct timer_list *timer)
95   -{
96   - static int whine_count;
97   - if (whine_count < 16) {
98   - whine_count++;
99   - printk("Uninitialised timer!\n");
100   - printk("This is just a warning. Your computer is OK\n");
101   - printk("function=0x%p, data=0x%lx\n",
102   - timer->function, timer->data);
103   - dump_stack();
104   - }
105   - /*
106   - * Now fix it up
107   - */
108   - timer->magic = TIMER_MAGIC;
109   -}
110   -
111   -static inline void check_timer(struct timer_list *timer)
112   -{
113   - if (timer->magic != TIMER_MAGIC)
114   - check_timer_failed(timer);
115   -}
116   -
117   -
118 94 static void internal_add_timer(tvec_base_t *base, struct timer_list *timer)
119 95 {
120 96 unsigned long expires = timer->expires;
... ... @@ -177,7 +153,6 @@
177 153 {
178 154 timer->entry.next = NULL;
179 155 timer->base = &per_cpu(tvec_bases, raw_smp_processor_id()).t_base;
180   - timer->magic = TIMER_MAGIC;
181 156 }
182 157 EXPORT_SYMBOL(init_timer);
183 158  
... ... @@ -230,7 +205,6 @@
230 205 int ret = 0;
231 206  
232 207 BUG_ON(!timer->function);
233   - check_timer(timer);
234 208  
235 209 base = lock_timer_base(timer, &flags);
236 210  
... ... @@ -283,9 +257,6 @@
283 257 unsigned long flags;
284 258  
285 259 BUG_ON(timer_pending(timer) || !timer->function);
286   -
287   - check_timer(timer);
288   -
289 260 spin_lock_irqsave(&base->t_base.lock, flags);
290 261 timer->base = &base->t_base;
291 262 internal_add_timer(base, timer);
... ... @@ -316,8 +287,6 @@
316 287 {
317 288 BUG_ON(!timer->function);
318 289  
319   - check_timer(timer);
320   -
321 290 /*
322 291 * This is a common optimization triggered by the
323 292 * networking code - if the timer is re-modified
... ... @@ -348,8 +317,6 @@
348 317 unsigned long flags;
349 318 int ret = 0;
350 319  
351   - check_timer(timer);
352   -
353 320 if (timer_pending(timer)) {
354 321 base = lock_timer_base(timer, &flags);
355 322 if (timer_pending(timer)) {
... ... @@ -412,8 +379,6 @@
412 379 */
413 380 int del_timer_sync(struct timer_list *timer)
414 381 {
415   - check_timer(timer);
416   -
417 382 for (;;) {
418 383 int ret = try_to_del_timer_sync(timer);
419 384 if (ret >= 0)