【严重程度】 一般
【特性】 arm64架构/mpam
【重现类型】 有条件必然重现
【定位分析】
该问题由<a class="ql-normal-link" href="
通过在当时复现的代码版本(可以选用de11d3a28cbdc (tag: 5.10.0-29.0.0) arm64: mm: support setting page attributes for debugging作为基线)增加以下代码可以构造必先用例:
diff --git a/arch/arm64/kernel/mpam/mpam_device.c b/arch/arm64/kernel/mpam/mpam_device.c
index f8840274b902f..794dee83337f3 100644
--- a/arch/arm64/kernel/mpam/mpam_device.c
+++ b/arch/arm64/kernel/mpam/mpam_device.c
@@ -529,6 +529,7 @@ static void mpam_disable_irqs(void)
}
}
+#include <linux/delay.h>
/*
* Enable mpam once all devices have been probed.
* Scheduled by mpam_discovery_complete() once all devices have been created.
@@ -596,6 +597,7 @@ static void __init mpam_enable(struct work_struct *work)
mpam_cpuhp_state = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN,
"mpam:online", mpam_cpu_online,
mpam_cpu_offline);
+ msleep(10000);
if (mpam_cpuhp_state <= 0)
pr_err("Failed to re-register 'dyn' cpuhp callbacks");
mutex_unlock(&mpam_cpuhp_lock);
复现现场:
因为当前mpam_enable已经被改成非init类型,因此只需要将原来的补丁回退即可。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论