x86: change _node_to_cpumask_ptr to return const ptr
authorMike Travis <travis@sgi.com>
Tue, 8 Jul 2008 21:35:21 +0000 (14:35 -0700)
committerIngo Molnar <mingo@elte.hu>
Sun, 13 Jul 2008 17:11:58 +0000 (19:11 +0200)
  * Strengthen the return type for the _node_to_cpumask_ptr to be
    a const pointer.  This adds compiler checking to insure that
    node_to_cpumask_map[] is not changed inadvertently.

Signed-off-by: Mike Travis <travis@sgi.com>
Cc: "akpm@linux-foundation.org" <akpm@linux-foundation.org>
Cc: Yinghai Lu <yhlu.kernel@gmail.com>
Acked-by: Vegard Nossum <vegard.nossum@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/setup_percpu.c
include/asm-generic/topology.h
include/asm-x86/topology.h

index 5fc310f746fcdc9ca9b6aa7672ee5c5e0ce9d5ca..cac68430d31f3bd3f4ddbfec4073d20ea509030f 100644 (file)
@@ -343,23 +343,23 @@ static const cpumask_t cpu_mask_none;
 /*
  * Returns a pointer to the bitmask of CPUs on Node 'node'.
  */
-cpumask_t *_node_to_cpumask_ptr(int node)
+const cpumask_t *_node_to_cpumask_ptr(int node)
 {
        if (node_to_cpumask_map == NULL) {
                printk(KERN_WARNING
                        "_node_to_cpumask_ptr(%d): no node_to_cpumask_map!\n",
                        node);
                dump_stack();
-               return &cpu_online_map;
+               return (const cpumask_t *)&cpu_online_map;
        }
        if (node >= nr_node_ids) {
                printk(KERN_WARNING
                        "_node_to_cpumask_ptr(%d): node > nr_node_ids(%d)\n",
                        node, nr_node_ids);
                dump_stack();
-               return (cpumask_t *)&cpu_mask_none;
+               return &cpu_mask_none;
        }
-       return (cpumask_t *)&node_to_cpumask_map[node];
+       return &node_to_cpumask_map[node];
 }
 EXPORT_SYMBOL(_node_to_cpumask_ptr);
 
index a6aea79bca4f369b51f0e384e15bfabcdd7e13c5..54bbf6e04ee8f3bbd652c30254ef6553e38866c4 100644 (file)
@@ -60,7 +60,8 @@
 #ifndef node_to_cpumask_ptr
 
 #define        node_to_cpumask_ptr(v, node)                                    \
-               cpumask_t _##v = node_to_cpumask(node), *v = &_##v
+               cpumask_t _##v = node_to_cpumask(node);                 \
+               const cpumask_t *v = &_##v
 
 #define node_to_cpumask_ptr_next(v, node)                              \
                          _##v = node_to_cpumask(node)
index 98e5f17ea85634003407dc0c363faf25147c4225..90ac7718469a5b416bfd90350b24ade716698925 100644 (file)
@@ -82,7 +82,7 @@ DECLARE_EARLY_PER_CPU(int, x86_cpu_to_node_map);
 #ifdef CONFIG_DEBUG_PER_CPU_MAPS
 extern int cpu_to_node(int cpu);
 extern int early_cpu_to_node(int cpu);
-extern cpumask_t *_node_to_cpumask_ptr(int node);
+extern const cpumask_t *_node_to_cpumask_ptr(int node);
 extern cpumask_t node_to_cpumask(int node);
 
 #else  /* !CONFIG_DEBUG_PER_CPU_MAPS */
@@ -103,7 +103,7 @@ static inline int early_cpu_to_node(int cpu)
 }
 
 /* Returns a pointer to the cpumask of CPUs on Node 'node'. */
-static inline cpumask_t *_node_to_cpumask_ptr(int node)
+static inline const cpumask_t *_node_to_cpumask_ptr(int node)
 {
        return &node_to_cpumask_map[node];
 }
@@ -118,7 +118,7 @@ static inline cpumask_t node_to_cpumask(int node)
 
 /* Replace default node_to_cpumask_ptr with optimized version */
 #define node_to_cpumask_ptr(v, node)           \
-               cpumask_t *v = _node_to_cpumask_ptr(node)
+               const cpumask_t *v = _node_to_cpumask_ptr(node)
 
 #define node_to_cpumask_ptr_next(v, node)      \
                           v = _node_to_cpumask_ptr(node)
@@ -186,7 +186,7 @@ extern int __node_distance(int, int);
 #define        cpu_to_node(cpu)        0
 #define        early_cpu_to_node(cpu)  0
 
-static inline cpumask_t *_node_to_cpumask_ptr(int node)
+static inline const cpumask_t *_node_to_cpumask_ptr(int node)
 {
        return &cpu_online_map;
 }
@@ -201,7 +201,7 @@ static inline int node_to_first_cpu(int node)
 
 /* Replace default node_to_cpumask_ptr with optimized version */
 #define node_to_cpumask_ptr(v, node)           \
-               cpumask_t *v = _node_to_cpumask_ptr(node)
+               const cpumask_t *v = _node_to_cpumask_ptr(node)
 
 #define node_to_cpumask_ptr_next(v, node)      \
                           v = _node_to_cpumask_ptr(node)