diff --git a/drivers/base/cacheinfo.c b/drivers/base/cacheinfo.c index 4bcfb06a781e8b09086d436b5decbe5e55a7d8d3..8737ad3b412af186554035e77f03399a207bcea1 100644 --- a/drivers/base/cacheinfo.c +++ b/drivers/base/cacheinfo.c @@ -228,6 +228,8 @@ struct cacheinfo *cacheinfo_shared_cpu_map_search(void *fw_token) for_each_online_cpu(cpu) { cpu_ci = get_cpu_cacheinfo(cpu); + if (!cpu_ci->info_list) + continue; for (index = 0; index < cache_leaves(cpu); index++) { iter = cpu_ci->info_list + index; diff --git a/include/linux/cacheinfo.h b/include/linux/cacheinfo.h index 78d7300607e3c00506933015a1c14375efed0a54..b4135db68a388af2b5a95c4cfc8c06cfd5122df1 100644 --- a/include/linux/cacheinfo.h +++ b/include/linux/cacheinfo.h @@ -131,6 +131,8 @@ static inline int get_cpu_cacheinfo_id(int cpu, int level) int i; for (i = 0; i < ci->num_leaves; i++) { + if (!ci->info_list) + continue; if (ci->info_list[i].level == level) { if (ci->info_list[i].attributes & CACHE_ID) return ci->info_list[i].id;