Re: BUG: using smp_processor_id() in preemptible code: s2disk

Rafael J. Wysocki
2010-06-14T14:23:31Z

On Monday, June 14, 2010, Sergey Senozhatsky wrote:
> Hello,
> Not sure if this simple solution is the correct one.

Well, let's ask the scheduler people.

Ingo, Peter, what do you think of the patch below?

Rafael

> ---
>
> diff --git a/kernel/sched.c b/kernel/sched.c
> index f8b8996..cfb262b 100644
> --- a/kernel/sched.c
> +++ b/kernel/sched.c
> @@ -2866,7 +2866,10 @@ unsigned long nr_iowait(void)
>
> unsigned long nr_iowait_cpu(void)
> {
> - struct rq *this = this_rq();
> + int cpu = get_cpu();
> + struct rq *this = cpu_rq(cpu);
> + put_cpu();
> +
> return atomic_read(&this->nr_iowait);
> }
>