From patchwork Wed Sep 5 22:09:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 10589581 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3302A920 for ; Wed, 5 Sep 2018 22:14:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 21AF32A9EC for ; Wed, 5 Sep 2018 22:14:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 13D982AA1B; Wed, 5 Sep 2018 22:14:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 73E662A9EC for ; Wed, 5 Sep 2018 22:14:24 +0000 (UTC) Received: from localhost ([::1]:58271 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxg47-0005Rc-O6 for patchwork-qemu-devel@patchwork.kernel.org; Wed, 05 Sep 2018 18:14:23 -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 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" 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 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= 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 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?= KSAd/6mhuGCuXfSSA0SoRPo1uzUojHGTx5aFceotWPB9DkuC8gFaXrh2nicGvFmhFBwQajVVlp/eg8ejiB8ndscK8MhjKrA4eO9qhIW2bB1VWpBonmAMty5o/csL4GJs4MPXsQ0ZhXmgabuAWlGbrCdBsWzCfvEdfnQxVV/pWkN1CB27+XHln7Q6987JmLbwgAWjG+aGsSOxdBza462mnMBrkbA3JEvxGwKHl/qf8Yj1ZtHgjE+Jau8UcjtAuitMqcGQjtwYjkkDl0Il8cY0eQKB5wjSdTlJJ5kf9rpSoEPh/xODszGTf3Oy4BDh9TN3k++Ngm8fn51GWMHJLZiaChbvv05pA3OElt9ATJ5oInBA3NvvOMJh4zjUY2szXRL9cPQMiOxCM0DhmJlFMggYUS8jSdgQRBUggp2dNNIs6Ve1Ps2IwBTYlehY3wbJOqBREVKPN9ckrkU89nuhlSEJjGyH2TBY2neoJHjRsRBrBC4Mo9VswxxCWajFGxTpbwWlqlZzzf4rxHr4YlnCOtOQmlkv4hiFEmOTZ8NZ2rWhVpZWZF6AZlv1hCki7g519OgN20uXWnMdUVVOdwiP8PZYfa5xH8on3k5OzFGEHsHggXizCWBnSh1HAzW4/Hb9LaBNIvYSiuWpQ/+StZczCApYjClFLQfK4XN07JP/pWzxFZ5SfElDrpkSbsWph5xuZn3R7vyydN9dCVPpmiXzj5RpkY2r+OleHL7Vi6sEda2jfILjzeiXZuVR4OCWxDmLvXKB7rR3YUGIJTKORNcmRwFzmDK6By2NU9CWOLLacgmrx9IFX6YJXwbsL1AnBI94tDsPr4tNAG9qOF+Cu8XV0u6TnY6fp7wk11TCA8ZfLDARXp6vHa1sKS8SRtZtNVaaPDitiXUloN6sX3svdDHe7FAg9a+pWf1TbVc1DAguvkLL9HPqmwbNLdUuNHSdjKftwG5bmvMWTXxgJT/FolzTWcgwBibGbiiJZA57KEH2PEIXLouxHAN1/HCA4eoJOqOQyvt6qHrH0VgiS6k7r7dMSF6HawuF2qP5cf+YC1rtBwoXcOWZnL3rmx5QQ0iCBtc2R64iG/4HfUSHR/uSm6lWoKA+AtIvBCZI6sLiwMrF9iFm/2RaFDx4b/DLiHfljCQYS6/DOBkAE7H6286vmajaGfamIjwnlruV+qljfMIecKsfzIKsSxwgZykSFd+o9A3Qvl//9GSpM/W3CYONU50qSmiP58YOLO4upjxi4UerXSWTHIxalWBKLEjLkI7JQ2J/Tw1I8zZgZaIz/GQ4LJHPyUXFoLBXovKwieEOi1z7E9HHh0UyQ== 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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 *plic) } } -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 value) { - qemu_mutex_lock(&plic->lock); - uint32_t word = irq >> 5; - if (pending) { - plic->pending[word] |= (1 << (irq & 31)); - } else { - plic->pending[word] &= ~(1 << (irq & 31)); - } - qemu_mutex_unlock(&plic->lock); + uint32_t old, new, cmp = atomic_read(a); + + do { + old = cmp; + new = (old & ~mask) | (value & mask); + cmp = atomic_cmpxchg(a, old, new); + } while (old != cmp); + + return old; } -static -void sifive_plic_set_claimed(SiFivePLICState *plic, int irq, bool claimed) +static void sifive_plic_set_pending(SiFivePLICState *plic, int irq, bool level) { - qemu_mutex_lock(&plic->lock); - uint32_t word = irq >> 5; - if (claimed) { - plic->claimed[word] |= (1 << (irq & 31)); - } else { - plic->claimed[word] &= ~(1 << (irq & 31)); - } - qemu_mutex_unlock(&plic->lock); + atomic_set_masked(&plic->pending[irq >> 5], 1 << (irq & 31), -!!level); } -static -int sifive_plic_num_irqs_pending(SiFivePLICState *plic, uint32_t addrid) +static void sifive_plic_set_claimed(SiFivePLICState *plic, int irq, bool level) { - int i, j, count = 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 = 0; i < plic->bitfield_words; i++) { uint32_t pending_enabled_not_claimed = (plic->pending[i] & ~plic->claimed[i]) & @@ -123,11 +119,11 @@ int sifive_plic_num_irqs_pending(SiFivePLICState *plic, uint32_t addrid) uint32_t prio = plic->source_priority[irq]; int enabled = pending_enabled_not_claimed & (1 << j); if (enabled && prio > plic->target_priority[addrid]) { - count++; + return 1; } } } - return count; + return 0; } static void sifive_plic_update(SiFivePLICState *plic) @@ -143,7 +139,7 @@ static void sifive_plic_update(SiFivePLICState *plic) if (!env) { continue; } - int level = sifive_plic_num_irqs_pending(plic, addrid) > 0; + int level = 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 = (plic->num_sources + 31) >> 5; plic->source_priority = g_new0(uint32_t, plic->num_sources); plic->target_priority = 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; /* config */ char *hart_config;