From patchwork Thu Dec 7 21:34:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Corey Minyard X-Patchwork-Id: 121084 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp8890633qgn; Thu, 7 Dec 2017 13:36:39 -0800 (PST) X-Google-Smtp-Source: AGs4zMZwg2zQ8EMdW5UQfpHEiPDCAEJq60jVeIFYejdbHUFuheewy9cyLs2oTz7jhd7ahelE3avu X-Received: by 10.129.77.195 with SMTP id a186mr19619974ywb.363.1512682599000; Thu, 07 Dec 2017 13:36:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512682598; cv=none; d=google.com; s=arc-20160816; b=fd8s+zH+A+exPPyrz53NkedsRYzR0coEYv/FYiObTDqD+JaXaa7I0leRuS/my2TziZ G87rhlgIoD1G4A3n0OEUuvVd4ofHtLvTG/6LuwuUGbtDKkQPI4OJKbtGDsMqP0DaPCOz 5xlldPuLwZubIJG0itqOqvgVSnc9kFTxgnla7Wvlw3w+I0NhLKyXW/DqLBulkNbzmB/n xlt2f/hlvuJ+7EL5UsHonA9ZKl4rWDW4jndR3XfaxcqB8xWPGw0tGzYDlgv64ZrtogyY Jzrrv2WTAeQd36klQ+7UE6Hc7LjkAluRAnh+uYlGjO7tc7/M5b0geVPqpmtY94KtW8LY WhHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from:dkim-signature:arc-authentication-results; bh=4RoVAwc71qYqgGS7jwFyZQoajATDmjeCv/3UnmOYBk4=; b=NJTRfjAJQdXO+QGBoovEexoK8iKAMO9rxonoW6Kp7CPWoynpSTO6rvZezjatzqX+p4 //c+OJbRPSxSUQKSRzP1yqIDUu/vCdEPlY6mRKEcrk2p+ZAsz7xpE4UZiR2itEuYDlnd y1Qrh/IetIM7YLzZCLGs1k6ojTb6CGRcPEWQ3Q5IoZNjqj0mUtvE4OE7yGbREZEs2Sl0 DThfZofxPdN4JHbtgfhVRpQiuMaWUpWziCQf60RkJiSI8We6H/3Hb2BUjn8YH89/SsAq huA7QcjXmMd1KzNkeVm4Re1uBYXTkZCRWA+iiQ0V2cXrBlcyz1hGj86qorQXCZRcSHDa cmzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=D6cj/azy; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id x3si33366ybf.287.2017.12.07.13.36.38 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 07 Dec 2017 13:36:38 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=D6cj/azy; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org Received: from localhost ([::1]:34438 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eN3qQ-0002xf-Gl for patch@linaro.org; Thu, 07 Dec 2017 16:36:38 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46631) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eN3on-0001q7-Sw for qemu-devel@nongnu.org; Thu, 07 Dec 2017 16:34:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eN3om-00051S-U0 for qemu-devel@nongnu.org; Thu, 07 Dec 2017 16:34:57 -0500 Received: from mail-pg0-x244.google.com ([2607:f8b0:400e:c05::244]:41056) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eN3om-00051F-NO for qemu-devel@nongnu.org; Thu, 07 Dec 2017 16:34:56 -0500 Received: by mail-pg0-x244.google.com with SMTP id o2so5362295pgc.8 for ; Thu, 07 Dec 2017 13:34:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=4RoVAwc71qYqgGS7jwFyZQoajATDmjeCv/3UnmOYBk4=; b=D6cj/azyW3gA2xa+UoA3zeJogfnN4pA5VIYsBjv88Sg+0/I+KXNih3bHc+nGkV9bqI e+/tRNmuIPmH1gyRWDAJVWN0MtLC5lt3lhzwXVrEW+HxixuGO5gGIME9y/Ar5Ve7whm0 /fkrcwG2w2B8wgDYjM3AOhK9TJDkXPmqHP7eJBmXjx1wrE7B2v69jUUPmmUNOTJ8B5Yp Le/jEdjO7v45OOQcggBEjqxtY98dqBY6hOuX6aBi+crcykjliIsCSbYwblbfUHpVUgsw LXe7wdiP0Eb4R2ToTXKcemuMq08mS56L7y6gsjE1ix2KEujsDefPEob4DWd6Hf4LflCT ot6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=4RoVAwc71qYqgGS7jwFyZQoajATDmjeCv/3UnmOYBk4=; b=Sows9hTIwLM2d3xpXLAltFGOTUhPZ0P7J03w1e2ty7GNHCuKA9+F2dFROkBSQpF46l AJCSZv/loDXrAtKv8YjQm12vGClw9lGR6QbyZpDr+3KqKv8jCpLJvxOJvX/j9u3s6a1p KPAUdfKFAM3Kpwz9xNDkwYIELL2I+AnGDyz0POfgJyUS+NkZiUd2XoBXHNfdUgsLD1YN MqRsd3gCW62fsn/i2bMC391VoRerAzUOdBx7/3nftS8YuB0PSny2t15KnP9So05/ENlq xaiH5JsiW8bYXx99gI8KYhpPEAMH6FvN1uJ5n2jqLYBz9eE/SA3eNuyDZON8RUEjGoKw A0PA== X-Gm-Message-State: AJaThX5EIQcjeuYyMZuxZ6X1atG1FdDbScPGccsSYBqE0chmkp/IiZt4 3H3gcN5S1CmMmgy91Ysx+Q== X-Received: by 10.101.100.24 with SMTP id a24mr27291298pgv.239.1512682495513; Thu, 07 Dec 2017 13:34:55 -0800 (PST) Received: from serve.minyard.net ([47.184.168.85]) by smtp.gmail.com with ESMTPSA id i20sm10993250pfj.58.2017.12.07.13.34.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Dec 2017 13:34:54 -0800 (PST) Received: from t430.minyard.net (t430m.minyard.net [192.168.27.3]) by serve.minyard.net (Postfix) with ESMTPA id 965D88F4; Thu, 7 Dec 2017 15:34:52 -0600 (CST) Received: by t430.minyard.net (Postfix, from userid 1000) id E35F230000E; Thu, 7 Dec 2017 15:34:51 -0600 (CST) From: minyard@acm.org To: qemu-devel@nongnu.org Date: Thu, 7 Dec 2017 15:34:44 -0600 Message-Id: <1512682489-4474-3-git-send-email-minyard@acm.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1512682489-4474-1-git-send-email-minyard@acm.org> References: <1512682489-4474-1-git-send-email-minyard@acm.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c05::244 Subject: [Qemu-devel] [PATCH 2/7] ipmi: Use proper struct reference for BT vmstate X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Corey Minyard Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Corey Minyard The vmstate for isa_ipmi_bt was referencing into the bt structure, instead create a bt structure separate and use that. The version 1 of the BT transfer was fairly broken, if a migration occured during an IPMI operation, it is likely the migration would be corrupted because I misunderstood the VMSTATE_VBUFFER_UINT32() handling, I thought it handled transferring the length field, too. So I just remove support for that. I doubt anyone is using it at this point. This also removes the transfer of use_irq, since that should come from configuration. Signed-off-by: Corey Minyard --- hw/ipmi/isa_ipmi_bt.c | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) -- 2.7.4 diff --git a/hw/ipmi/isa_ipmi_bt.c b/hw/ipmi/isa_ipmi_bt.c index 13a8c09..c78ec6d 100644 --- a/hw/ipmi/isa_ipmi_bt.c +++ b/hw/ipmi/isa_ipmi_bt.c @@ -451,22 +451,39 @@ static void isa_ipmi_bt_realize(DeviceState *dev, Error **errp) isa_register_ioport(isadev, &iib->bt.io, iib->bt.io_base); } -static const VMStateDescription vmstate_ISAIPMIBTDevice = { - .name = TYPE_IPMI_INTERFACE, + +const VMStateDescription vmstate_IPMIBT = { + .name = TYPE_IPMI_INTERFACE_PREFIX "bt", .version_id = 1, .minimum_version_id = 1, .fields = (VMStateField[]) { - VMSTATE_BOOL(bt.obf_irq_set, ISAIPMIBTDevice), - VMSTATE_BOOL(bt.atn_irq_set, ISAIPMIBTDevice), - VMSTATE_BOOL(bt.use_irq, ISAIPMIBTDevice), - VMSTATE_BOOL(bt.irqs_enabled, ISAIPMIBTDevice), - VMSTATE_UINT32(bt.outpos, ISAIPMIBTDevice), - VMSTATE_VBUFFER_UINT32(bt.outmsg, ISAIPMIBTDevice, 1, NULL, bt.outlen), - VMSTATE_VBUFFER_UINT32(bt.inmsg, ISAIPMIBTDevice, 1, NULL, bt.inlen), - VMSTATE_UINT8(bt.control_reg, ISAIPMIBTDevice), - VMSTATE_UINT8(bt.mask_reg, ISAIPMIBTDevice), - VMSTATE_UINT8(bt.waiting_rsp, ISAIPMIBTDevice), - VMSTATE_UINT8(bt.waiting_seq, ISAIPMIBTDevice), + VMSTATE_BOOL(obf_irq_set, IPMIBT), + VMSTATE_BOOL(atn_irq_set, IPMIBT), + VMSTATE_BOOL(irqs_enabled, IPMIBT), + VMSTATE_UINT32(outpos, IPMIBT), + VMSTATE_UINT32(outlen, IPMIBT), + VMSTATE_UINT8_ARRAY(outmsg, IPMIBT, MAX_IPMI_MSG_SIZE), + VMSTATE_UINT32(inlen, IPMIBT), + VMSTATE_UINT8_ARRAY(inmsg, IPMIBT, MAX_IPMI_MSG_SIZE), + VMSTATE_UINT8(control_reg, IPMIBT), + VMSTATE_UINT8(mask_reg, IPMIBT), + VMSTATE_UINT8(waiting_rsp, IPMIBT), + VMSTATE_UINT8(waiting_seq, IPMIBT), + VMSTATE_END_OF_LIST() + } +}; + +static const VMStateDescription vmstate_ISAIPMIBTDevice = { + .name = TYPE_IPMI_INTERFACE_PREFIX "isa-bt", + .version_id = 2, + .minimum_version_id = 2, + /* + * Version 1 had messed up the array transfer, it's not even usable + * because it used VMSTATE_VBUFFER_UINT32, but it did not transfer + * the buffer length, so random things would happen. + */ + .fields = (VMStateField[]) { + VMSTATE_STRUCT(bt, ISAIPMIBTDevice, 1, vmstate_IPMIBT, IPMIBT), VMSTATE_END_OF_LIST() } };