| From 382a6cf799175784270570d560d7c1e1c4cf61ee Mon Sep 17 00:00:00 2001 |
| From: John Pittman <jpittman@redhat.com> |
| Date: Fri, 5 Apr 2019 17:42:45 -0400 |
| Subject: null_blk: prevent crash from bad home_node value |
| |
| [ Upstream commit 7ff684a683d777c4956fce93e60accbab2bd7696 ] |
| |
| At module load, if the selected home_node value is greater than |
| the available numa nodes, the system will crash in |
| __alloc_pages_nodemask() due to a bad paging request. Prevent this |
| user error crash by detecting the bad value, logging an error, and |
| setting g_home_node back to the default of NUMA_NO_NODE. |
| |
| Signed-off-by: John Pittman <jpittman@redhat.com> |
| Signed-off-by: Jens Axboe <axboe@kernel.dk> |
| Signed-off-by: Sasha Levin (Microsoft) <sashal@kernel.org> |
| --- |
| drivers/block/null_blk_main.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| diff --git a/drivers/block/null_blk_main.c b/drivers/block/null_blk_main.c |
| index 62c9654b9ce8..fd7a9be54595 100644 |
| --- a/drivers/block/null_blk_main.c |
| +++ b/drivers/block/null_blk_main.c |
| @@ -1749,6 +1749,11 @@ static int __init null_init(void) |
| return -EINVAL; |
| } |
| |
| + if (g_home_node != NUMA_NO_NODE && g_home_node >= nr_online_nodes) { |
| + pr_err("null_blk: invalid home_node value\n"); |
| + g_home_node = NUMA_NO_NODE; |
| + } |
| + |
| if (g_queue_mode == NULL_Q_RQ) { |
| pr_err("null_blk: legacy IO path no longer available\n"); |
| return -EINVAL; |
| -- |
| 2.20.1 |
| |