Re: [PATCH ?] ACPI: pr->id is unsigned

From: Valdis . Kletnieks
Date: Mon Sep 15 2008 - 16:27:06 EST


On Mon, 15 Sep 2008 21:32:20 EDT, roel kluin said:
> since pr->id is unsigned, shouldn't something like
> the patch below be applied?

> + BUG_ON((pr->id >= nr_cpu_ids) || ((unsigned long)pr->id < 0));

Under what conditions will the clause "(unsigned long)pr->id < 0)" be true,
and when will it be false? What will any sane optimizing compiler do?

And *sometimes*, the *real* bug is that pr->id should be a signed quantity,
not an unsigned one, and the cast is just papering over the issue.

In other words, the original line is almost certainly buggy. However, this
isn't the right fix. Somebody who actually understands the code will have to
decide what *should* be happening here (that's beyond my understanding of that
code)...

Attachment: pgp00000.pgp
Description: PGP signature