Re: [PATCH 1/3] High-res-timers part 1 (core) take 13

From: george anzinger (george@mvista.com)
Date: Wed Nov 06 2002 - 13:29:14 EST


Skip Ford wrote:
>
> george anzinger wrote:
> >
> > - tvec_base_t *old_base, *new_base;
> > + tvec_base_t *new_base;
> > + IF_SMP( tvec_base_t *old_base;)
>
> Your code doesn't compile. old_base only exists ifdef CONFIG_SMP but
> it's referneced for UP compiles @ timer.c:line 332
>
> if (old_base) {
> list_del(&timer->entry);
> ret = 1;
> }
>
> ifdeffing it out works but I don't know if it's correct. That's one
> ugly function with your patch applied so one more ifdef won't hurt
> (unless it's wrong.)

Yes, it is wrong. This leaves a lot of useless code in the
UP case, but this is what I will use:

--- /usr/src/linux-2.5.46-bk1-core/kernel/timer.c~ Wed Nov
6 10:25:23 2002
+++ /usr/src/linux-2.5.46-bk1-core/kernel/timer.c Wed Nov 6
10:22:02 2002
@@ -279,7 +279,7 @@
 #endif
 {
         tvec_base_t *new_base;
- IF_SMP( tvec_base_t *old_base;)
+ tvec_base_t *old_base;
         unsigned long flags;
         int ret = 0;
 
@@ -297,7 +297,6 @@
 
         spin_lock_irqsave(&timer->lock, flags);
         new_base = &per_cpu(tvec_bases, smp_processor_id());
-#ifdef CONFIG_SMP
 repeat:
         old_base = timer->base;
 
@@ -322,7 +321,6 @@
                         goto repeat;
                 }
         } else
-#endif
                 spin_lock(&new_base->lock);
         /*
          * Delete the previous timeout (if there was any), and
install

>
> --- linux-sk/kernel/timer.c~fix-high-res Wed Nov 6 03:14:30 2002
> +++ linux-sk-jr/kernel/timer.c Wed Nov 6 03:14:30 2002
> @@ -329,10 +329,12 @@ repeat:
> * Delete the previous timeout (if there was any), and install
> * the new one:
> */
> +#ifdef CONFIG_SMP
> if (old_base) {
> list_del(&timer->entry);
> ret = 1;
> }
> +#endif
> timer->expires = expires;
> IF_HIGH_RES(timer->sub_expires = sub_expires);
> internal_add_timer(new_base, timer);
>
> --
> Skip
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

-- 
George Anzinger   george@mvista.com
High-res-timers: 
http://sourceforge.net/projects/high-res-timers/
Preemption patch:
http://www.kernel.org/pub/linux/kernel/people/rml
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Nov 07 2002 - 22:00:44 EST