From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:39375) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNPx-0002sy-Mc for qemu-devel@nongnu.org; Sun, 05 May 2019 16:07:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNNPu-0006Pa-L0 for qemu-devel@nongnu.org; Sun, 05 May 2019 16:07:24 -0400 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Sun, 5 May 2019 22:06:02 +0200 Message-Id: <20190505200602.12412-6-philmd@redhat.com> In-Reply-To: <20190505200602.12412-1-philmd@redhat.com> References: <20190505200602.12412-1-philmd@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 5/5] hw/block/pflash_cfi02: Add the DeviceReset() handler List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, qemu-stable@nongnu.org Cc: Peter Maydell , Stephen Checkoway , Kevin Wolf , Paolo Bonzini , Laszlo Ersek , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Max Reitz , "Michael S . Tsirkin" , qemu-block@nongnu.org, Wei Yang , Gerd Hoffmann , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= The pflash device is a child of TYPE_DEVICE, so it can implement the DeviceReset handler. Actually it has to implement it, else on machine reset it might stay in an incoherent state, as it has been reported in the buglink listed below. Add the DeviceReset handler and remove its call from the realize() function. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=3D1678713 Reported-by: Laszlo Ersek Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/block/pflash_cfi02.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index f321b74433c..5af367d1563 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -674,6 +674,11 @@ static void pflash_cfi02_realize(DeviceState *dev, E= rror **errp) pfl->cfi_table[0x3c] =3D 0x00; } =20 +static void pflash_cfi02_reset(DeviceState *dev) +{ + pflash_reset(PFLASH_CFI02(dev)); +} + static Property pflash_cfi02_properties[] =3D { DEFINE_PROP_DRIVE("drive", PFlashCFI02, blk), DEFINE_PROP_UINT32("num-blocks", PFlashCFI02, nb_blocs, 0), @@ -701,6 +706,7 @@ static void pflash_cfi02_class_init(ObjectClass *klas= s, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); =20 + dc->reset =3D pflash_cfi02_reset; dc->realize =3D pflash_cfi02_realize; dc->unrealize =3D pflash_cfi02_unrealize; dc->props =3D pflash_cfi02_properties; --=20 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 73E8EC004C9 for ; Sun, 5 May 2019 20:12:40 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D2919204EC for ; Sun, 5 May 2019 20:12:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D2919204EC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([127.0.0.1]:45394 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNUz-00074q-Pn for qemu-devel@archiver.kernel.org; Sun, 05 May 2019 16:12:37 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39375) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNPx-0002sy-Mc for qemu-devel@nongnu.org; Sun, 05 May 2019 16:07:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNNPu-0006Pa-L0 for qemu-devel@nongnu.org; Sun, 05 May 2019 16:07:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60770) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hNNPm-0005M5-7l; Sun, 05 May 2019 16:07:15 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 67BD9C01EE87; Sun, 5 May 2019 20:07:06 +0000 (UTC) Received: from x1w.redhat.com (ovpn-204-58.brq.redhat.com [10.40.204.58]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C5B3A60851; Sun, 5 May 2019 20:06:58 +0000 (UTC) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, qemu-stable@nongnu.org Date: Sun, 5 May 2019 22:06:02 +0200 Message-Id: <20190505200602.12412-6-philmd@redhat.com> In-Reply-To: <20190505200602.12412-1-philmd@redhat.com> References: <20190505200602.12412-1-philmd@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Sun, 05 May 2019 20:07:06 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 5/5] hw/block/pflash_cfi02: Add the DeviceReset() handler 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: Kevin Wolf , Peter Maydell , Stephen Checkoway , qemu-block@nongnu.org, "Michael S . Tsirkin" , Laszlo Ersek , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Max Reitz , Wei Yang , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Gerd Hoffmann Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Message-ID: <20190505200602.mjNOlxGdPOFQEw-HF5dfruHhL-BjhsvYHBNXNzx3U3E@z> The pflash device is a child of TYPE_DEVICE, so it can implement the DeviceReset handler. Actually it has to implement it, else on machine reset it might stay in an incoherent state, as it has been reported in the buglink listed below. Add the DeviceReset handler and remove its call from the realize() function. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=3D1678713 Reported-by: Laszlo Ersek Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/block/pflash_cfi02.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index f321b74433c..5af367d1563 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -674,6 +674,11 @@ static void pflash_cfi02_realize(DeviceState *dev, E= rror **errp) pfl->cfi_table[0x3c] =3D 0x00; } =20 +static void pflash_cfi02_reset(DeviceState *dev) +{ + pflash_reset(PFLASH_CFI02(dev)); +} + static Property pflash_cfi02_properties[] =3D { DEFINE_PROP_DRIVE("drive", PFlashCFI02, blk), DEFINE_PROP_UINT32("num-blocks", PFlashCFI02, nb_blocs, 0), @@ -701,6 +706,7 @@ static void pflash_cfi02_class_init(ObjectClass *klas= s, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); =20 + dc->reset =3D pflash_cfi02_reset; dc->realize =3D pflash_cfi02_realize; dc->unrealize =3D pflash_cfi02_unrealize; dc->props =3D pflash_cfi02_properties; --=20 2.20.1