| From ee95885be44739d60b8ebc0c49a6192d8272328c Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 29 Apr 2021 22:57:58 -0700 |
| Subject: mm/sparse: add the missing sparse_buffer_fini() in error branch |
| |
| From: Wang Wensheng <wangwensheng4@huawei.com> |
| |
| [ Upstream commit 2284f47fe9fe2ed2ef619e5474e155cfeeebd569 ] |
| |
| sparse_buffer_init() and sparse_buffer_fini() should appear in pair, or a |
| WARN issue would be through the next time sparse_buffer_init() runs. |
| |
| Add the missing sparse_buffer_fini() in error branch. |
| |
| Link: https://lkml.kernel.org/r/20210325113155.118574-1-wangwensheng4@huawei.com |
| Fixes: 85c77f791390 ("mm/sparse: add new sparse_init_nid() and sparse_init()") |
| Signed-off-by: Wang Wensheng <wangwensheng4@huawei.com> |
| Reviewed-by: David Hildenbrand <david@redhat.com> |
| Reviewed-by: Oscar Salvador <osalvador@suse.de> |
| Cc: Pavel Tatashin <pasha.tatashin@oracle.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| mm/sparse.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/mm/sparse.c b/mm/sparse.c |
| index 7bd23f9d6cef..33406ea2ecc4 100644 |
| --- a/mm/sparse.c |
| +++ b/mm/sparse.c |
| @@ -547,6 +547,7 @@ static void __init sparse_init_nid(int nid, unsigned long pnum_begin, |
| pr_err("%s: node[%d] memory map backing failed. Some memory will not be available.", |
| __func__, nid); |
| pnum_begin = pnum; |
| + sparse_buffer_fini(); |
| goto failed; |
| } |
| check_usemap_section_nr(nid, usage); |
| -- |
| 2.30.2 |
| |