]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sparc: Fix kernel BUG at arch/sparc/kernel/mdesc.c
authorThomas Tai <thomas.tai@oracle.com>
Fri, 6 Jan 2017 14:18:38 +0000 (06:18 -0800)
committerAllen Pais <allen.pais@oracle.com>
Tue, 6 Jun 2017 10:50:21 +0000 (16:20 +0530)
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 <thomas.tai@oracle.com>
Reviewed-By: Liam Merwick <Liam.Merwick@oracle.com>
Signed-off-by: Allen Pais <allen.pais@oracle.com>
arch/sparc/kernel/mdesc.c

index 603e30f2e6f65395a96724e6ae97060935603340..453eca3afdb9c9b30115dea9b52614d4a3378e82 100644 (file)
@@ -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;