2008-12-01 08:11:40

by Rusty Russell

[permalink] [raw]
Subject: [PATCH 1/2] cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: core


Impact: cleanup

In future, all cpumask ops will only be valid (in general) for bit
numbers < nr_cpu_ids. So use that instead of NR_CPUS in iterators
and other comparisons.

This is always safe: no cpu number can be >= nr_cpu_ids, and
nr_cpu_ids is initialized to NR_CPUS at boot.

Signed-off-by: Rusty Russell <[email protected]>
Signed-off-by: Mike Travis <[email protected]>
Acked-by: Ingo Molnar <[email protected]>
Cc: Eric Biederman <[email protected]>
Cc: James Morris <[email protected]>
---
kernel/kexec.c | 2 +-
kernel/smp.c | 2 +-
security/selinux/selinuxfs.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)

diff -r bb80787e9617 kernel/kexec.c
--- a/kernel/kexec.c Fri Oct 24 00:27:01 2008 +1100
+++ b/kernel/kexec.c Fri Oct 24 00:28:25 2008 +1100
@@ -1116,7 +1116,7 @@ void crash_save_cpu(struct pt_regs *regs
struct elf_prstatus prstatus;
u32 *buf;

- if ((cpu < 0) || (cpu >= NR_CPUS))
+ if ((cpu < 0) || (cpu >= nr_cpu_ids))
return;

/* Using ELF notes here is opportunistic.
diff -r bb80787e9617 kernel/smp.c
--- a/kernel/smp.c Fri Oct 24 00:27:01 2008 +1100
+++ b/kernel/smp.c Fri Oct 24 00:28:25 2008 +1100
@@ -222,7 +222,7 @@ int smp_call_function_single(int cpu, vo
local_irq_save(flags);
func(info);
local_irq_restore(flags);
- } else if ((unsigned)cpu < NR_CPUS && cpu_online(cpu)) {
+ } else if ((unsigned)cpu < nr_cpu_ids && cpu_online(cpu)) {
struct call_single_data *data = NULL;

if (!wait) {
diff -r bb80787e9617 security/selinux/selinuxfs.c
--- a/security/selinux/selinuxfs.c Fri Oct 24 00:27:01 2008 +1100
+++ b/security/selinux/selinuxfs.c Fri Oct 24 00:28:25 2008 +1100
@@ -1206,7 +1206,7 @@ static struct avc_cache_stats *sel_avc_g
{
int cpu;

- for (cpu = *idx; cpu < NR_CPUS; ++cpu) {
+ for (cpu = *idx; cpu < nr_cpu_ids; ++cpu) {
if (!cpu_possible(cpu))
continue;
*idx = cpu + 1;


2008-12-01 23:02:50

by James Morris

[permalink] [raw]
Subject: Re: [PATCH 1/2] cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: core

On Mon, 1 Dec 2008, Rusty Russell wrote:

>
> Impact: cleanup
>
> In future, all cpumask ops will only be valid (in general) for bit
> numbers < nr_cpu_ids. So use that instead of NR_CPUS in iterators
> and other comparisons.
>
> This is always safe: no cpu number can be >= nr_cpu_ids, and
> nr_cpu_ids is initialized to NR_CPUS at boot.
>
> Signed-off-by: Rusty Russell <[email protected]>
> Signed-off-by: Mike Travis <[email protected]>
> Acked-by: Ingo Molnar <[email protected]>
> Cc: Eric Biederman <[email protected]>
> Cc: James Morris <[email protected]>

Acked-by: James Morris <[email protected]>


--
James Morris
<[email protected]>