
From: Xia Fukun <xiafukun@huawei.com> hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I6YJJQ CVE: NA ---------------------------------------- The function sd_llc_free_all() will be called to release allocated resources when space allocation for the scheduling domain structure fails. However, this function did not check if sd is a null pointer when releasing sdd resources, resulting in an error: "Unable to handle kernel paging request at virtual address". Fix this issue by adding null pointer discrimination. Fixes: 79bec4c643fb ("sched/topology: Provide hooks to allocate data shared per LLC") Signed-off-by: Xia Fukun <xiafukun@huawei.com> Reviewed-by: songping yu <yusongping@huawei.com> Signed-off-by: Jialin Zhang <zhangjialin11@huawei.com> --- kernel/sched/topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index abdb60ca1c80..0d0f55181961 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -2140,7 +2140,7 @@ static void sd_llc_free_all(const struct cpumask *cpu_map) for_each_sd_topology(tl) { sdd = &tl->data; - if (!sdd) + if (!sdd || !sdd->sd) continue; for_each_cpu(j, cpu_map) { sd = *per_cpu_ptr(sdd->sd, j); -- 2.25.1