From 2a32996c017cfbbe4260463710f68d1ff91465aa Mon Sep 17 00:00:00 2001 From: Liang Zhen Date: Tue, 30 Dec 2014 23:44:11 +0800 Subject: [PATCH] LU-5751 libcfs: check mask returned by cpumask_of_node cpumask_of_node can return NULL if NUMA node is unavailable, in this case cfs_node_to_cpumask will try to copy from NULL and cause kernel panic. Signed-off-by: Liang Zhen Change-Id: Ia866c80a5cf5eaba76e392daa77a572fd427d18c Reviewed-on: http://review.whamcloud.com/13207 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Li Wei Reviewed-by: Bobi Jam Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- libcfs/libcfs/linux/linux-cpu.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libcfs/libcfs/linux/linux-cpu.c b/libcfs/libcfs/linux/linux-cpu.c index 2da255e..ea0b087 100644 --- a/libcfs/libcfs/linux/linux-cpu.c +++ b/libcfs/libcfs/linux/linux-cpu.c @@ -130,7 +130,12 @@ EXPORT_SYMBOL(cfs_cpu_ht_nsiblings); void cfs_node_to_cpumask(int node, cpumask_t *mask) { - cpumask_copy(mask, cpumask_of_node(node)); + const cpumask_t *tmp = cpumask_of_node(node); + + if (tmp != NULL) + cpumask_copy(mask, tmp); + else + cpumask_clear(mask); } EXPORT_SYMBOL(cfs_node_to_cpumask); -- 1.8.3.1