From nobody Wed Nov 5 18:39:27 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1536185698132673.2847191038745; Wed, 5 Sep 2018 15:14:58 -0700 (PDT) Received: from localhost ([::1]:58271 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxg4e-0005Rc-Vu for importer@patchew.org; Wed, 05 Sep 2018 18:14:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57535) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxg0F-00015E-2h for qemu-devel@nongnu.org; Wed, 05 Sep 2018 18:10:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fxg00-0003Zl-K5 for qemu-devel@nongnu.org; Wed, 05 Sep 2018 18:10:15 -0400 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:54205) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fxfzz-0003Wh-KV for qemu-devel@nongnu.org; Wed, 05 Sep 2018 18:10:07 -0400 Received: from mail-by2nam01lp0176.outbound.protection.outlook.com (HELO NAM01-BY2-obe.outbound.protection.outlook.com) ([216.32.181.176]) by ob1.hgst.iphmx.com with ESMTP; 06 Sep 2018 06:10:15 +0800 Received: from risc6-mainframe.int.fusionio.com (199.255.44.171) by BN6PR04MB0386.namprd04.prod.outlook.com (2603:10b6:404:91::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1101.18; Wed, 5 Sep 2018 22:09:57 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1536185418; x=1567721418; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=+1EPoLbQqT9ZINHYGqU/aNOk52IqMR5O5P8892Kmc68=; b=Gu6Q6MGJKzBLMIil5OmlfcRr/Uuj5oeEY0NcKThuR3Jm6hNEqYYJFbRV VAsrHZ6h0AQVll2Qk6E+S7YRL7zqkKhLyu8nJotKC+85yF0LS0pGaS8Et 8jqiW8Sbyp/WdfuuwBBCF+byH5hfABQusZ88iBEAgvdj1k2uXK05Oshc1 SekglA/S0E36Q8RNFS09vDKepSHPjWMxOakIdJ3C55i3hjVXVw9xoWY1V YAnge6umvqNU5NkqoFG13gezvqLGWllWTEomZcYrruvwP24+0cUCzWH+O 7e/1I0notk93KQNUcjOg2pt21+7tJ3PApa2YwqTo1gMY1I2rWEXgz4sHv Q==; X-IronPort-AV: E=Sophos;i="5.53,334,1531756800"; d="scan'208";a="186638768" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-wdc-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9dMqjRdnBXE9cTbujCH1RGXpvOyI+eFX+KLI3Lcy3Ms=; b=GXj8xTm8UE6aRKAq4okpWhXt7ZI/5IPrk6XjoL57rJquy25IvrZwcqK6U+2x6Nq48M+yrCyxirdBFJe0sF4Ehw+SCCUxYgsz1rtPqGNH66QXfr3vD48Kczzswx91zNq4K8B1ZCsuK/289tb8VSOoweDsuow353YNFuct6fMGoVM= From: Alistair Francis To: qemu-devel@nongnu.org Date: Wed, 5 Sep 2018 15:09:26 -0700 Message-Id: <20180905220932.6152-4-alistair.francis@wdc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180905220932.6152-1-alistair.francis@wdc.com> References: <20180905220932.6152-1-alistair.francis@wdc.com> MIME-Version: 1.0 X-Originating-IP: [199.255.44.171] X-ClientProxiedBy: CO2PR06CA0060.namprd06.prod.outlook.com (2603:10b6:104:3::18) To BN6PR04MB0386.namprd04.prod.outlook.com (2603:10b6:404:91::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 013132b7-1bdc-43c0-0d63-08d6137c547c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:BN6PR04MB0386; X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0386; 3:Ai57Bd+mnZNERsj05WISLn67roeOBDUAHlbafUGvxKr+NFPXR3MlPDyVlLA7WoOd/WoTEIwZZYIhSRtq2iyEEfQ/ToxPJ/kr03jVKBID/v0wFlip4VYSu/Ga348j7ylSxudJHIPHdnjm2MzWnJvxg7+74h4l5fBQp6m60ZhylwPOs2HJwop86IHRIO9rHNOCa5A0dUiD1Xi3J8lGAUKq5ZvQWlxDGbBbC7UCzA4zsDqeqhy3Yv3t1ZjI+w0OuBU5; 25:u+XiBxwa7MqPxJY0MsD2NXiVudLg5PnGQ+MCTnO2trAakJ7aZy1UE3wMCC7Dpu1qWZKM0frtV7B5ja5DBR1vDICjgAh+iL1Y/TMk7pMCTXkQMOoZ0vjQDAuDQN5dAHvv9DIOjaDnsG9RVxMueGz+KFZrnFw4pgsNx4KhF8VFkUsX/gYB6K011Fdu/Az1yk8Eszr90wvpEQiz9QYcIEdkEzaL9flIZ/4pdmp3zasGrK+E1IX+ysYb3g+WmSTlayVjJnDn0NPTycTfeDM3bdGV+h2Bx4p4UD1bH6DPJ09UTu/d16iSxaZWYLDyJEIU1c23JgZ/ibAbHMLGqHYdgeVZNA==; 31:+mUVIbmXQUKYsQ7DVzUHJub9vphjAJQrbpzpjR1Z+ivOEYY3n0rfC+VCstfimLgN/KgzbYbNhzS4NH7JZklsai5WCWq7eqeXqgDKk2VQ3XiSZR/hBl4gMLQZ7a4bP01ns7udsVnv4ZNObvOWn0wfCS1uer26MIdARnY9duoJYOGAeuFk97JzEzkGeYMWXbE2FQ06wjSQcnJY12SSCzuMPMqwTbFDytelFbUDodxTgKQ= X-MS-TrafficTypeDiagnostic: BN6PR04MB0386: WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0386; 20:lHqZJlPfSwK21xDdMHVWHjfMlFoVGzk6RX7R1CVlUiwR85skaOsp6Ij4264AQFSOddw5Z1xspD7G/wd4YtcnzADpjQ2oPkh5rW7i4md3VuscsvMEyb6AGPdz/sK7VgQ2LiDYELQ0/dHhy1Q15Q3Y4xEN1V12Zho/jrpRXse0E22QcM0dGsmzMVW8lybmPvrG1EGazJx0GxV7Dfdjj4TWJQswRFiIw/cxW3pXjLQeKjSYNEdMlNALqhZVHiUrlgRB+KDiFsAc24JFFLOfneT1z0hvNEd6bqPi3PQmGty+B9RygPXlHKhuIvkZbrrBE0evehVIqKKB7xj8AbZQ2VQBcxkpb1WC18qLo8Tjiod0O0unjH0o8MhjwyijHxA8SpjiSNsWuTfYP6jS5QG9k1lHi6B5O2WQVZk+v24KlLSYsJCO+1BzZLPxR3KxaaTanTSiHc5blnGoDw9637gyJ/clEP591oa6oKgPYYLUyVBZPw5i9vFYsfliWVLc3aLll1BR; 4:H5KT/h8wChzIkoTaHuxSc6eqXZGEWFEGRYiIfHNrjT6Qvm6VWlYsOW88O3RRvoioWLcX2ujalwN0KfB0h0SAUA/Tbc1j/KHF/OGvJ0pYKidRnIFF88fWi6awkivw91BQ6cVJ0Bsx4Zqdsppb6nbYlUfY1TPavsdbtnGgeAicLR+tE2IgDOEnV+halrAxhL7YwNY1oKXnikOim+etfKXXx2Qp4IIKcUDODfOtm6NLVUtq7VYzunr+6fy4h/if9fR+Mk4rm+uS3EY50+2DQ6zbzQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(823301075)(10201501046)(3231344)(944501410)(52105095)(3002001)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201708071742011)(7699016); SRVR:BN6PR04MB0386; BCL:0; PCL:0; RULEID:; SRVR:BN6PR04MB0386; X-Forefront-PRVS: 078693968A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(366004)(39860400002)(346002)(396003)(376002)(136003)(199004)(189003)(44832011)(53936002)(6512007)(86362001)(5660300001)(97736004)(6346003)(48376002)(6666003)(2906002)(6916009)(50466002)(386003)(6506007)(15650500001)(72206003)(186003)(26005)(1076002)(478600001)(36756003)(47776003)(66066001)(8676002)(16526019)(486006)(3846002)(68736007)(6486002)(6116002)(11346002)(956004)(2616005)(106356001)(105586002)(7736002)(2361001)(4326008)(16586007)(476003)(76176011)(81156014)(81166006)(316002)(54906003)(8936002)(50226002)(2351001)(52116002)(51416003)(25786009)(305945005)(14444005)(446003); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR04MB0386; H:risc6-mainframe.int.fusionio.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alistair.Francis@wdc.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR04MB0386; 23:vgKPsWS90Y2g7DbPMS9tTyAVma+cTPJtu6Uk32r/n?= =?us-ascii?Q?KSAd/6mhuGCuXfSSA0SoRPo1uzUojHGTx5aFceotWPB9DkuC8gFaXrh2nicG?= =?us-ascii?Q?vFmhFBwQajVVlp/eg8ejiB8ndscK8MhjKrA4eO9qhIW2bB1VWpBonmAMty5o?= =?us-ascii?Q?/csL4GJs4MPXsQ0ZhXmgabuAWlGbrCdBsWzCfvEdfnQxVV/pWkN1CB27+XHl?= =?us-ascii?Q?n7Q6987JmLbwgAWjG+aGsSOxdBza462mnMBrkbA3JEvxGwKHl/qf8Yj1ZtHg?= =?us-ascii?Q?jE+Jau8UcjtAuitMqcGQjtwYjkkDl0Il8cY0eQKB5wjSdTlJJ5kf9rpSoEPh?= =?us-ascii?Q?/xODszGTf3Oy4BDh9TN3k++Ngm8fn51GWMHJLZiaChbvv05pA3OElt9ATJ5o?= =?us-ascii?Q?InBA3NvvOMJh4zjUY2szXRL9cPQMiOxCM0DhmJlFMggYUS8jSdgQRBUggp2d?= =?us-ascii?Q?NNIs6Ve1Ps2IwBTYlehY3wbJOqBREVKPN9ckrkU89nuhlSEJjGyH2TBY2neo?= =?us-ascii?Q?JHjRsRBrBC4Mo9VswxxCWajFGxTpbwWlqlZzzf4rxHr4YlnCOtOQmlkv4hiF?= =?us-ascii?Q?EmOTZ8NZ2rWhVpZWZF6AZlv1hCki7g519OgN20uXWnMdUVVOdwiP8PZYfa5x?= =?us-ascii?Q?H8on3k5OzFGEHsHggXizCWBnSh1HAzW4/Hb9LaBNIvYSiuWpQ/+StZczCApY?= =?us-ascii?Q?jClFLQfK4XN07JP/pWzxFZ5SfElDrpkSbsWph5xuZn3R7vyydN9dCVPpmiXz?= =?us-ascii?Q?j5RpkY2r+OleHL7Vi6sEda2jfILjzeiXZuVR4OCWxDmLvXKB7rR3YUGIJTKO?= =?us-ascii?Q?RNcmRwFzmDK6By2NU9CWOLLacgmrx9IFX6YJXwbsL1AnBI94tDsPr4tNAG9q?= =?us-ascii?Q?OF+Cu8XV0u6TnY6fp7wk11TCA8ZfLDARXp6vHa1sKS8SRtZtNVaaPDitiXUl?= =?us-ascii?Q?oN6sX3svdDHe7FAg9a+pWf1TbVc1DAguvkLL9HPqmwbNLdUuNHSdjKftwG5b?= =?us-ascii?Q?mvMWTXxgJT/FolzTWcgwBibGbiiJZA57KEH2PEIXLouxHAN1/HCA4eoJOqOQ?= =?us-ascii?Q?yvt6qHrH0VgiS6k7r7dMSF6HawuF2qP5cf+YC1rtBwoXcOWZnL3rmx5QQ0iC?= =?us-ascii?Q?Btc2R64iG/4HfUSHR/uSm6lWoKA+AtIvBCZI6sLiwMrF9iFm/2RaFDx4b/DL?= =?us-ascii?Q?iHfljCQYS6/DOBkAE7H6286vmajaGfamIjwnlruV+qljfMIecKsfzIKsSxwg?= =?us-ascii?Q?ZykSFd+o9A3Qvl//9GSpM/W3CYONU50qSmiP58YOLO4upjxi4UerXSWTHIxa?= =?us-ascii?Q?lWBKLEjLkI7JQ2J/Tw1I8zZgZaIz/GQ4LJHPyUXFoLBXovKwieEOi1z7E9HH?= =?us-ascii?Q?h0UyQ=3D=3D?= X-Microsoft-Antispam-Message-Info: Iagoe7lIi0hejaLAfaV8NcfWBvdd2O8F7/g4ez/xaw4YAnJdQfrhaPOFsY3SNj4eJ2ZOzoYYpld1+3DHYYSFnxjnv0PcphXfTqelvavE9GY+rdrsbkeQYGzCHCxd6JsFWQhTLQu/0ng4N8Q8PTVu1s8uUIlcwKaQFViqTr90ALNZ4fNXPV1R2TrLZmt2IumNtRv3CGeU/VCP2J09wego2pX2uHdgwzDMC5WIYLnG6KcLQrlaKQWnaKZ65LLjj4GcAKHMBQHb2y/mnA8yNpbWCSMw89420NhatAHFSFEZ6XFYA34dyJ7fqRYX0XAUzRallXGZkN+bLYmEuOVgT5Vs588O9BqaVy7IcW1OiGTrmZ4= X-Microsoft-Exchange-Diagnostics: 1; BN6PR04MB0386; 6:45KBpktQJKO+hweaYGmJjFmihUjlcumthFg/2R8lBqfN14KbienQrW/swaZb+BtGLrVn1ysASXEdZHQQNscHHrkrpLjfoFv+CbrlF2MOt7tB4GvImVbUdGvuZSNyLSd6Ngo60KWBMmwoBYDF2czLLq9k9CWpZzcpklvqkoD0KALJO/YsszRza1+p/LO68n5JRTt3MNsmyhUjPszMn8Pqgqcu2c7QjbyQlk7JL+NsD1DremLfAe4DCRX0Zx5TshMUjyHYVcfVkrkeQfXFQhhQsdqXPndzigNLhRX9cVvRIuvXduStbhDqKbJD8YRzJGGZhspmpA5MZlgUpSU1u/+3a3uqs9uY5lPxDWRfhrQBBJND5R6GngpW3AIVsQ7O2yul+I7fAIB6+iWf4YjGFPfCix1hA94NnKfBTXtgRtkq/72Mo1ioPmuHjGI6MZLKLH9Tvc/kCu/bowai/Fh71haZmA==; 5:Yfvb3yEqFv3/tyowXppxHxqDaoI5Iomo25ERr0M5ytH0MHi6Rf4FGAE1FlByCIbqjij9rj1nK+xj5DnFVUPKVdVurv4fId2sdl+x8f9zpymaiXV96+AxR/8PP0AThrtpLR9WQzmG6j4yYCLhq3S7fgcyuCMiJcjYCidQr2xZzvk=; 7:NXdVZjXsfpQkmia9nkglBkOwnksn76Hwl+zq0Pw1A+Wo3ULJNqbFjoDWiNI5YeTPCQ1QqLyvFgHzB55OXsLfUPpTndlc/d0Sp7s8s9USwTilJRNuF339CTERzw0DCnrFMfRcCoFQUIQHMkppPDdGxp2mLXsVRdaKdM3Y+A81wFmMKWtqnYGTxMqwrOYMdBkYC3zjapfymLdFOhYF4i/yRgn+47mmnULhbd81mergY3lVJYeKyjMHgOLuc4VwYGOe SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Sep 2018 22:09:57.4571 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 013132b7-1bdc-43c0-0d63-08d6137c547c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR04MB0386 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 68.232.143.124 Subject: [Qemu-devel] [PULL v2 03/10] RISC-V: Use atomic_cmpxchg to update PLIC bitmaps 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: Bastian Koppelmann , Alistair Francis , Michael Clark , Palmer Dabbelt , Sagar Karandikar Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (found 2 invalid signatures) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Michael Clark The PLIC previously used a mutex to protect against concurrent access to the claimed and pending bitfields. Instead of using a mutex, we update the bitfields using atomic_cmpxchg. Rename sifive_plic_num_irqs_pending to sifive_plic_irqs_pending and add an early out if any interrupts are pending as the count of pending interrupts is not used. Cc: Sagar Karandikar Cc: Bastian Koppelmann Cc: Palmer Dabbelt Cc: Alistair Francis Signed-off-by: Michael Clark Reviewed-by: Richard Henderson Signed-off-by: Alistair Francis --- hw/riscv/sifive_plic.c | 49 +++++++++++++++------------------- include/hw/riscv/sifive_plic.h | 1 - 2 files changed, 22 insertions(+), 28 deletions(-) diff --git a/hw/riscv/sifive_plic.c b/hw/riscv/sifive_plic.c index a91aeb97ab..f635e6ff67 100644 --- a/hw/riscv/sifive_plic.c +++ b/hw/riscv/sifive_plic.c @@ -81,36 +81,32 @@ static void sifive_plic_print_state(SiFivePLICState *pl= ic) } } =20 -static -void sifive_plic_set_pending(SiFivePLICState *plic, int irq, bool pending) +static uint32_t atomic_set_masked(uint32_t *a, uint32_t mask, uint32_t val= ue) { - qemu_mutex_lock(&plic->lock); - uint32_t word =3D irq >> 5; - if (pending) { - plic->pending[word] |=3D (1 << (irq & 31)); - } else { - plic->pending[word] &=3D ~(1 << (irq & 31)); - } - qemu_mutex_unlock(&plic->lock); + uint32_t old, new, cmp =3D atomic_read(a); + + do { + old =3D cmp; + new =3D (old & ~mask) | (value & mask); + cmp =3D atomic_cmpxchg(a, old, new); + } while (old !=3D cmp); + + return old; } =20 -static -void sifive_plic_set_claimed(SiFivePLICState *plic, int irq, bool claimed) +static void sifive_plic_set_pending(SiFivePLICState *plic, int irq, bool l= evel) { - qemu_mutex_lock(&plic->lock); - uint32_t word =3D irq >> 5; - if (claimed) { - plic->claimed[word] |=3D (1 << (irq & 31)); - } else { - plic->claimed[word] &=3D ~(1 << (irq & 31)); - } - qemu_mutex_unlock(&plic->lock); + atomic_set_masked(&plic->pending[irq >> 5], 1 << (irq & 31), -!!level); } =20 -static -int sifive_plic_num_irqs_pending(SiFivePLICState *plic, uint32_t addrid) +static void sifive_plic_set_claimed(SiFivePLICState *plic, int irq, bool l= evel) { - int i, j, count =3D 0; + atomic_set_masked(&plic->claimed[irq >> 5], 1 << (irq & 31), -!!level); +} + +static int sifive_plic_irqs_pending(SiFivePLICState *plic, uint32_t addrid) +{ + int i, j; for (i =3D 0; i < plic->bitfield_words; i++) { uint32_t pending_enabled_not_claimed =3D (plic->pending[i] & ~plic->claimed[i]) & @@ -123,11 +119,11 @@ int sifive_plic_num_irqs_pending(SiFivePLICState *pli= c, uint32_t addrid) uint32_t prio =3D plic->source_priority[irq]; int enabled =3D pending_enabled_not_claimed & (1 << j); if (enabled && prio > plic->target_priority[addrid]) { - count++; + return 1; } } } - return count; + return 0; } =20 static void sifive_plic_update(SiFivePLICState *plic) @@ -143,7 +139,7 @@ static void sifive_plic_update(SiFivePLICState *plic) if (!env) { continue; } - int level =3D sifive_plic_num_irqs_pending(plic, addrid) > 0; + int level =3D sifive_plic_irqs_pending(plic, addrid); switch (mode) { case PLICMode_M: riscv_set_local_interrupt(RISCV_CPU(cpu), MIP_MEIP, level); @@ -439,7 +435,6 @@ static void sifive_plic_realize(DeviceState *dev, Error= **errp) memory_region_init_io(&plic->mmio, OBJECT(dev), &sifive_plic_ops, plic, TYPE_SIFIVE_PLIC, plic->aperture_size); parse_hart_config(plic); - qemu_mutex_init(&plic->lock); plic->bitfield_words =3D (plic->num_sources + 31) >> 5; plic->source_priority =3D g_new0(uint32_t, plic->num_sources); plic->target_priority =3D g_new(uint32_t, plic->num_addrs); diff --git a/include/hw/riscv/sifive_plic.h b/include/hw/riscv/sifive_plic.h index 2f2af7e686..688cd97f82 100644 --- a/include/hw/riscv/sifive_plic.h +++ b/include/hw/riscv/sifive_plic.h @@ -55,7 +55,6 @@ typedef struct SiFivePLICState { uint32_t *pending; uint32_t *claimed; uint32_t *enable; - QemuMutex lock; =20 /* config */ char *hart_config; --=20 2.17.1