From patchwork Fri Aug 3 16:36:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 143420 Delivered-To: patches@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp363157ljj; Fri, 3 Aug 2018 09:36:52 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfaLzlLlG+tacmE6xIMC2MoP5Rov2kgYTvt+UfoIHAxc08osy7IYhYQmUG8lh0oA0exH4zt X-Received: by 2002:a2e:7815:: with SMTP id t21-v6mr6190962ljc.61.1533314212267; Fri, 03 Aug 2018 09:36:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533314212; cv=none; d=google.com; s=arc-20160816; b=qXQdMn5fnvEukFffq3UEA1Qncj90YDQMGQMkjwhdPK2kePorHdN/RXO7npWhkY/TZz 6FGpNnfJ8VB1zthkEa8yN8BPk4xQFpFhasNfiO7ql6bzHNGcKbBY9TO7rBdpPNMhbtK3 StPLOktcHWfR2lGffQAwrI9PnMk+RS2nZWUnaWjeTifNJ8Gj9udNSMMhaoOexaHp3Azo 0WDd/92wJWuABAnF5r5t9kaq7B8T922nYRhOw5UXm0UJ+uhFcZ5C4Cqu6138bChIgn3m WdZnDNILpmae6/TZIowze+ZV1jxLDfpcymkblAIPcAMcNk5wgMHdyEpEfhQvaLBJOdI9 nmrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:arc-authentication-results; bh=xWN6t1Qz/roGnGQsBzcp/aNOuoIpfmQ2/3WbWdHZOHs=; b=BBHGev3lEJA6j58c8wh1lFvKkf6w453GHsG4YhixEV99kjQ3r4PAT9PUI3lA4qeMX/ wzrisRZtaOE93YgyOvgidBjCcZNqjOwoUJ/rluIygn8xzmBpuIpZsoUMEOUc51Nad09+ UEQqzzmXcWePTUw115v2d2AW9AgQfxBBe64UbAH+uricsAkNtUJn09FtMg9W7cEctbzE vtWVfDM0075y4bHb6v0mYqR94X1l6ElsA6Eipo4THLNUSHSuRB1+rt5afJlENz8uQKNE j0Dk5RGcNC1LRgofHbJYAeNCEVc1l7cLgXrq0O2s8ZzruahdWwh0R4Z56YB3zQNKbQir CZ+g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 2001:8b0:1d0::2 as permitted sender) smtp.mailfrom=pm215@archaic.org.uk; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by mx.google.com with ESMTPS id d25-v6si1544795lfh.65.2018.08.03.09.36.51 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 03 Aug 2018 09:36:51 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 2001:8b0:1d0::2 as permitted sender) client-ip=2001:8b0:1d0::2; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 2001:8b0:1d0::2 as permitted sender) smtp.mailfrom=pm215@archaic.org.uk; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1fld4L-00075h-OX; Fri, 03 Aug 2018 17:36:49 +0100 From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Cc: patches@linaro.org, Juan Quintela , "Dr . David Alan Gilbert" Subject: [PATCH 0/3] Arm migration fixes for 3.0 Date: Fri, 3 Aug 2018 17:36:43 +0100 Message-Id: <20180803163646.31068-1-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.1 This patchset primarily fixes problems with Arm migration induced by a bug in the core vmstate handling of subsections: currently the migration code incorrectly treats a subsection with no .needed function pointer as if it was the subsection list terminator -- it is ignored and so is everything after it. I did an audit of all uses of subsections in QEMU, and found that we had four which didn't define a .needed function (assuming that this meant "always needed", same as the semantics for not providing a .needed function for a toplevel vmsd). This patchset fixes them all up by providing a dummy needed function. It also fixes an error in vmstate_gicv3_cpu which was accidentally initializing .subsections twice and so ignoring one of the subsections. Strictly speaking only the first patch is a true regression from 2.12. Disclaimer: compile tested only as I have to rush out the door in a moment, but I wanted to get these on-list for review given that rc4 isn't too far away... I'll test them properly on Monday. thanks -- PMM Peter Maydell (3): hw/intc/arm_gicv3_common: Give no-migration-shift-bug subsection a needed function hw/intc/arm_gicv3_common: Combine duplicate .subsections in vmstate_gicv3_cpu target/arm: Add dummy needed functions to M profile vmstate subsections hw/intc/arm_gicv3_common.c | 9 ++++++--- target/arm/machine.c | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) -- 2.17.1