[PATCH] preempt_count is int - remove cast and don't assign to unsigned type
authorJesper Juhl <juhl-lkml@dif.dk>
Thu, 23 Jun 2005 07:09:09 +0000 (00:09 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Thu, 23 Jun 2005 16:45:19 +0000 (09:45 -0700)
In kernel/sched.c the return value from preempt_count() is cast to an int.
That made sense when preempt_count was defined as different types on is not
needed and should go away.  The patch removes the cast.

In kernel/timer.c the return value from preempt_count() is assigned to a
variable of type u32 and then that unsigned value is later compared to
preempt_count().  Since preempt_count() returns an int, an int is what
should be used to store its return value.  Storing the result in an
unsigned 32bit integer made a tiny bit of sense back when preempt_count was
different types on different archs, but no more - let's not play signed vs
unsigned comparison games when we don't have to.  The patch modifies the
code to use an int to hold the value.  While I was around that bit of code
I also made two changes to a nearby (related) printk() - I modified it to
specify the loglevel explicitly and also broke the line into a few pieces
to avoid it being longer than 80 chars and clarified the text a bit.

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/sched.c
kernel/timer.c

index deca041fc3645670055502888171811404d249f9..6ee4515d5a2045df146710c4e00b7b625cbe0304 100644 (file)
@@ -2576,7 +2576,7 @@ void fastcall add_preempt_count(int val)
        /*
         * Underflow?
         */
-       BUG_ON(((int)preempt_count() < 0));
+       BUG_ON((preempt_count() < 0));
        preempt_count() += val;
        /*
         * Spinlock count overflowing soon?
index 1f986c16d89f22ecac011dd98de7edf932f55b00..51ff917c959029d8b51e13696c34df5a62ee1def 100644 (file)
@@ -489,10 +489,14 @@ static inline void __run_timers(tvec_base_t *base)
                        detach_timer(timer, 1);
                        spin_unlock_irq(&base->t_base.lock);
                        {
-                               u32 preempt_count = preempt_count();
+                               int preempt_count = preempt_count();
                                fn(data);
                                if (preempt_count != preempt_count()) {
-                                       printk("huh, entered %p with %08x, exited with %08x?\n", fn, preempt_count, preempt_count());
+                                       printk(KERN_WARNING "huh, entered %p "
+                                              "with preempt_count %08x, exited"
+                                              " with %08x?\n",
+                                              fn, preempt_count,
+                                              preempt_count());
                                        BUG();
                                }
                        }