From f54035fbff7a416cd4ab45a22e351694d3c001ed Mon Sep 17 00:00:00 2001 From: Thomas Tai Date: Fri, 6 Jan 2017 06:18:38 -0800 Subject: [PATCH] sparc: Fix kernel BUG at arch/sparc/kernel/mdesc.c When running ldoms reboot test for long hours, ldom guest panic with kernel BUG at arch/sparc/kernel/mdesc.c:176! It is because the mdesc size has changed, mdesc_update should retry the operation by decrement refcnt before mdesc_free. orabug 25359044 Signed-off-by: Thomas Tai Reviewed-By: Liam Merwick Signed-off-by: Allen Pais --- arch/sparc/kernel/mdesc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/sparc/kernel/mdesc.c b/arch/sparc/kernel/mdesc.c index 603e30f2e6f6..453eca3afdb9 100644 --- a/arch/sparc/kernel/mdesc.c +++ b/arch/sparc/kernel/mdesc.c @@ -1420,6 +1420,7 @@ void __init sun4v_mdesc_init(void) status = sun4v_mach_desc(__pa(&hp->mdesc), len, &real_len); if (status != HV_EOK || real_len > len) { + atomic_dec(&hp->refcnt); mdesc_free(hp); hp = NULL; continue; -- 2.50.1