From nobody Sun May 5 07:12:35 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 15541512589161021.6516716489368; Mon, 1 Apr 2019 13:40:58 -0700 (PDT) Received: from localhost ([127.0.0.1]:59394 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hB3jZ-000104-Ds for importer@patchew.org; Mon, 01 Apr 2019 16:40:45 -0400 Received: from eggs.gnu.org ([209.51.188.92]:49005) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hB2MJ-0003aa-Nf for qemu-devel@nongnu.org; Mon, 01 Apr 2019 15:12:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hB2MI-0003aB-Pu for qemu-devel@nongnu.org; Mon, 01 Apr 2019 15:12:39 -0400 Received: from mail-lj1-x243.google.com ([2a00:1450:4864:20::243]:39208) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hB2MI-0003Ux-DK; Mon, 01 Apr 2019 15:12:38 -0400 Received: by mail-lj1-x243.google.com with SMTP id l7so9244875ljg.6; Mon, 01 Apr 2019 12:12:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=CYyoKxP2tVMzsXeTaLE3iilx/FfVPxgXR34Y/usgyyY=; b=ZVlnEXq8X+x7VozNTRR1rYcaqE4OZLVqYd4vMwgUjdXrztY4yvPoZrCYxBW/Ck3Q2+ i29LuYRSUjjfuD2S/pbLPPDf0uKPWmz7qGrBAKEVSE55q0CqonGScHlzxLA+dwuNPP1q J4QH+vnxhyJfT4r17FxO0SYTD2spaXxz0MIAFVn3Pfpj34gB45965O8wDF5HRPEb0aqh 6aTii0kKU6+6Nt9cbgkKEorV4XTisvdj0kySrWLSHi3oeL+sDBmc+8s9EJ+DEz6RO4Eo zRhKyNh4RVjdJ33nj8C03Nl1fUOHJ/P06Yqwh9aYnMn/lu4RdUAr705xOkYNjlb9pdYU KhNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=CYyoKxP2tVMzsXeTaLE3iilx/FfVPxgXR34Y/usgyyY=; b=ao9apI0gUOeziRP6db3IkI8HJh6X/Mc1ImeYD7xqHAcYv/1yqb+TtS60OpaMOjyYmT R5TjJT6zAncw1uL8eI8hQcXzOMj23avCxTkAV/6IkH9+f2tPbhlPcghtqLpDK7g1mwie Xiss9J9cEukdAboKZ7obvdKKPsVBUM11NP4XekhqMM2Nu/1uDKh8Oux5ov6NjvmXTW+K ApxlnPX31cN/vTDQUamq+dTFNRJ64pmseCjIGGRsC83tPJAIooWWYh8E49m1jT82zyS9 s16nHBX1fhZyYkqyEAbtRlcAUn9FvU0+cpVn+xzbz2cQ/lgQofUVYEXDj63KfAipd9+z i7gQ== X-Gm-Message-State: APjAAAXRe0KQfaQTGjifgvWXncCCBGgkVq6HPliCbqfhnTd5rI1MW3yz N2a4B0+vzDOF9pY7o71B1PoZJIXVI0BBX7SZu8ffGurA X-Google-Smtp-Source: APXvYqyHTp+nZ+HPgu1UjzVXAIPKpRz19oAdJ7DoBX9IuKUpzj3PpvE8JuVDqv8DaZ8WRA5noI6JuMlWT9EcS/4Y+Rk= X-Received: by 2002:a2e:8693:: with SMTP id l19mr24634312lji.47.1554145953751; Mon, 01 Apr 2019 12:12:33 -0700 (PDT) MIME-Version: 1.0 From: Jonathan Behrens Date: Mon, 1 Apr 2019 15:12:07 -0400 Message-ID: To: qemu-devel@nongnu.org X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::243 X-Mailman-Approved-At: Mon, 01 Apr 2019 16:39:24 -0400 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 Subject: [Qemu-devel] [PATCH] target/riscv: Do not allow sfence.vma from user mode 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 , Palmer Dabbelt , Alistair Francis , qemu-riscv@nongnu.org, Sagar Karandikar Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The 'sfence.vma' instruction is privileged, and should only ever be allowed when executing in supervisor mode or higher. Jonathan Signed-off-by: Jonathan Behrens Reviewed-by: Alistair Francis Reviewed-by: Richard Henderson --- target/riscv/op_helper.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index b7dc18a41e..644d0fb35f 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -145,9 +145,10 @@ void helper_tlb_flush(CPURISCVState *env) { RISCVCPU *cpu =3D riscv_env_get_cpu(env); CPUState *cs =3D CPU(cpu); - if (env->priv =3D=3D PRV_S && - env->priv_ver >=3D PRIV_VERSION_1_10_0 && - get_field(env->mstatus, MSTATUS_TVM)) { + if (!(env->priv >=3D PRV_S) || + (env->priv =3D=3D PRV_S && + env->priv_ver >=3D PRIV_VERSION_1_10_0 && + get_field(env->mstatus, MSTATUS_TVM))) { riscv_raise_exception(env, RISCV_EXCP_ILLEGAL_INST, GETPC()); } else { tlb_flush(cs); --=20 2.20.1