Commit 11369f35 authored by Mike Travis's avatar Mike Travis Committed by Ingo Molnar

x86: change _node_to_cpumask_ptr to return const ptr

  * 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: default avatarMike Travis <travis@sgi.com>
Cc: "akpm@linux-foundation.org" <akpm@linux-foundation.org>
Cc: Yinghai Lu <yhlu.kernel@gmail.com>
Acked-by: default avatarVegard Nossum <vegard.nossum@gmail.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent ce8b06b9
...@@ -343,23 +343,23 @@ static const cpumask_t cpu_mask_none; ...@@ -343,23 +343,23 @@ static const cpumask_t cpu_mask_none;
/* /*
* Returns a pointer to the bitmask of CPUs on Node 'node'. * 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) { if (node_to_cpumask_map == NULL) {
printk(KERN_WARNING printk(KERN_WARNING
"_node_to_cpumask_ptr(%d): no node_to_cpumask_map!\n", "_node_to_cpumask_ptr(%d): no node_to_cpumask_map!\n",
node); node);
dump_stack(); dump_stack();
return &cpu_online_map; return (const cpumask_t *)&cpu_online_map;
} }
if (node >= nr_node_ids) { if (node >= nr_node_ids) {
printk(KERN_WARNING printk(KERN_WARNING
"_node_to_cpumask_ptr(%d): node > nr_node_ids(%d)\n", "_node_to_cpumask_ptr(%d): node > nr_node_ids(%d)\n",
node, nr_node_ids); node, nr_node_ids);
dump_stack(); 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); EXPORT_SYMBOL(_node_to_cpumask_ptr);
......
...@@ -60,7 +60,8 @@ ...@@ -60,7 +60,8 @@
#ifndef node_to_cpumask_ptr #ifndef node_to_cpumask_ptr
#define node_to_cpumask_ptr(v, node) \ #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) \ #define node_to_cpumask_ptr_next(v, node) \
_##v = node_to_cpumask(node) _##v = node_to_cpumask(node)
......
...@@ -82,7 +82,7 @@ DECLARE_EARLY_PER_CPU(int, x86_cpu_to_node_map); ...@@ -82,7 +82,7 @@ DECLARE_EARLY_PER_CPU(int, x86_cpu_to_node_map);
#ifdef CONFIG_DEBUG_PER_CPU_MAPS #ifdef CONFIG_DEBUG_PER_CPU_MAPS
extern int cpu_to_node(int cpu); extern int cpu_to_node(int cpu);
extern int early_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); extern cpumask_t node_to_cpumask(int node);
#else /* !CONFIG_DEBUG_PER_CPU_MAPS */ #else /* !CONFIG_DEBUG_PER_CPU_MAPS */
...@@ -103,7 +103,7 @@ static inline int early_cpu_to_node(int cpu) ...@@ -103,7 +103,7 @@ static inline int early_cpu_to_node(int cpu)
} }
/* Returns a pointer to the cpumask of CPUs on Node 'node'. */ /* 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]; return &node_to_cpumask_map[node];
} }
...@@ -118,7 +118,7 @@ static inline cpumask_t node_to_cpumask(int node) ...@@ -118,7 +118,7 @@ static inline cpumask_t node_to_cpumask(int node)
/* Replace default node_to_cpumask_ptr with optimized version */ /* Replace default node_to_cpumask_ptr with optimized version */
#define node_to_cpumask_ptr(v, node) \ #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) \ #define node_to_cpumask_ptr_next(v, node) \
v = _node_to_cpumask_ptr(node) v = _node_to_cpumask_ptr(node)
...@@ -186,7 +186,7 @@ extern int __node_distance(int, int); ...@@ -186,7 +186,7 @@ extern int __node_distance(int, int);
#define cpu_to_node(cpu) 0 #define cpu_to_node(cpu) 0
#define early_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; return &cpu_online_map;
} }
...@@ -201,7 +201,7 @@ static inline int node_to_first_cpu(int node) ...@@ -201,7 +201,7 @@ static inline int node_to_first_cpu(int node)
/* Replace default node_to_cpumask_ptr with optimized version */ /* Replace default node_to_cpumask_ptr with optimized version */
#define node_to_cpumask_ptr(v, node) \ #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) \ #define node_to_cpumask_ptr_next(v, node) \
v = _node_to_cpumask_ptr(node) v = _node_to_cpumask_ptr(node)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment