mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-19 06:07:22 +07:00
[PATCH] preempt_count is int - remove cast and don't assign to unsigned type
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>
This commit is contained in:
parent
dcd497f99a
commit
be5b4fbd01
@ -2576,7 +2576,7 @@ void fastcall add_preempt_count(int val)
|
|||||||
/*
|
/*
|
||||||
* Underflow?
|
* Underflow?
|
||||||
*/
|
*/
|
||||||
BUG_ON(((int)preempt_count() < 0));
|
BUG_ON((preempt_count() < 0));
|
||||||
preempt_count() += val;
|
preempt_count() += val;
|
||||||
/*
|
/*
|
||||||
* Spinlock count overflowing soon?
|
* Spinlock count overflowing soon?
|
||||||
|
@ -489,10 +489,14 @@ static inline void __run_timers(tvec_base_t *base)
|
|||||||
detach_timer(timer, 1);
|
detach_timer(timer, 1);
|
||||||
spin_unlock_irq(&base->t_base.lock);
|
spin_unlock_irq(&base->t_base.lock);
|
||||||
{
|
{
|
||||||
u32 preempt_count = preempt_count();
|
int preempt_count = preempt_count();
|
||||||
fn(data);
|
fn(data);
|
||||||
if (preempt_count != preempt_count()) {
|
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();
|
BUG();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user