From patchwork Sun Jan 28 12:04:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 13534449 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD801C47258 for ; Sun, 28 Jan 2024 12:04:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B4DD46B006E; Sun, 28 Jan 2024 07:04:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AFEB76B0071; Sun, 28 Jan 2024 07:04:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9C5606B0072; Sun, 28 Jan 2024 07:04:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 8A09B6B006E for ; Sun, 28 Jan 2024 07:04:11 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 363F980658 for ; Sun, 28 Jan 2024 12:04:11 +0000 (UTC) X-FDA: 81728586702.20.AD4DB8D Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by imf06.hostedemail.com (Postfix) with ESMTP id 6943018000A for ; Sun, 28 Jan 2024 12:04:09 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=gtBRsZyk; dmarc=none; spf=pass (imf06.hostedemail.com: domain of alexghiti@rivosinc.com designates 209.85.128.45 as permitted sender) smtp.mailfrom=alexghiti@rivosinc.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706443449; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=HxcAjPK0N066N6P8kFzyYPkzX8zdfJo2IeOhtls9JxI=; b=yUOY6bP8agIabNajoLakYQ/rCuSemOlDa3FKMQsKP/2BaZVQtswCG94NzyCqSV9SyQR1uv t+8NY2CtEzlygLRd9GdRU8mi8E/mipOnTtYOMXG82gb+2jqnLbLXu0Je70AkZM/Q6LZVIq A8Dtd7X3eKdQiFQiHLi8cuGIlgv7Xyg= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=gtBRsZyk; dmarc=none; spf=pass (imf06.hostedemail.com: domain of alexghiti@rivosinc.com designates 209.85.128.45 as permitted sender) smtp.mailfrom=alexghiti@rivosinc.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706443449; a=rsa-sha256; cv=none; b=Fzznb1dK6q0dlGA8J8cHX+5sRr0HgiPx7mGuiqc8yfPXxjNtmUXHDCzWyRuJcLVueqiW7i 7XgfAIVxcvKRq7mdhElytTqwvcVuZXYwUTPlL9nr7U/UU7FYWdu67KvswoP4ICW8i4s3Hw yiHgL4EoHGx52qQ3W2JAOHIjB+5SFlE= Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-40e8d3b29f2so31191355e9.1 for ; Sun, 28 Jan 2024 04:04:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1706443448; x=1707048248; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=HxcAjPK0N066N6P8kFzyYPkzX8zdfJo2IeOhtls9JxI=; b=gtBRsZyktJHefzJUSF4FmqM3JUca0/pbPZSGIMSQTWUqpa1xC93GT7UBjEfkqkUO4A s85VBx7GDUR4PFBVhnh64ofF0WrDTPzPw3ztQAo562qrIX8jYizOncAUadVZ/Q6v/o4e aARUJgrU4Yu/Do2TBxB5ZUboPHMdVI3upxX4Lq2MetEdxngeeLRSYjZ/aLbz1Gkxt9yl 9O18tDIvCwaLfuMzX3QMGNCDkaljBWZxrNyZo31V+HinZrK6YpFL+UE0zcsDdiWVuJ0a jtVcc/NWbM5GDqLf1gAoL1MNra8yvaplSjGzodUuQLNHLV1IR0YWCLChZjFeoO5fczIf JWqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706443448; x=1707048248; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HxcAjPK0N066N6P8kFzyYPkzX8zdfJo2IeOhtls9JxI=; b=Nm3TV4nuuKKDdajOjpWHknbuW5VGqNalI1OU/ll1/earBXJnPYw3iM85uFcmPz9LK0 ZZ4Mnak9P/t5d109/Re0Wz/guWuo61ZfNd7nihfVZZXqNow4JJxKo1n6ivJomujUae4/ i0cHBZF+4uM67zCUhjzTHLOVh8QrPKMWaudHtDiJw8Oh9s4rDFnqMxlj+xYxAG8spD+4 x5mafanjHAaZhAHqlqgA8F2i4gZg7Yaph1RUmkcOLI6mi59ngO0Y8XebFHyW1ZVvPHy5 7vGAr3Jsg3+amE9OzNSugMgvuEYA9eWudLsdaaRJMImlrw0ljf9SYMxmPc9BSQLr9jLH m+RA== X-Gm-Message-State: AOJu0YzauwJ+4X3IynYVJPXgYg6FNBvaDB55iOWx296Zjvv9bc1sAIq0 UQb7jRB2ftdNZhBPNYNWGBVc5RI5jlzDzWib41J9QoroX3p9mZHK22d9P6m7vrQ= X-Google-Smtp-Source: AGHT+IGp9QOplulvd/Y9t4bqyDTHP2SEbLG4SLRuZKPDPzRKkEqnxw5vDg9O8Y6f+J4FCQikbsMYxA== X-Received: by 2002:a05:600c:34c4:b0:40e:ee82:18 with SMTP id d4-20020a05600c34c400b0040eee820018mr1937031wmq.14.1706443447739; Sun, 28 Jan 2024 04:04:07 -0800 (PST) Received: from alex-rivos.ba.rivosinc.com (amontpellier-656-1-456-62.w92-145.abo.wanadoo.fr. [92.145.124.62]) by smtp.gmail.com with ESMTPSA id m16-20020a05600c4f5000b0040eee561e4dsm3859911wmq.41.2024.01.28.04.04.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jan 2024 04:04:07 -0800 (PST) From: Alexandre Ghiti To: Will Deacon , "Aneesh Kumar K . V" , Andrew Morton , Nick Piggin , Peter Zijlstra , Paul Walmsley , Palmer Dabbelt , Albert Ou , Samuel Holland , Andrew Jones , Alexandre Ghiti , linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH -fixes] riscv: Flush the tlb when a page directory is freed Date: Sun, 28 Jan 2024 13:04:05 +0100 Message-Id: <20240128120405.25876-1-alexghiti@rivosinc.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: sqi97rc3ai5pbn3wtgcsaznnmfsegggp X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 6943018000A X-HE-Tag: 1706443449-50228 X-HE-Meta: U2FsdGVkX18zjDCkeuYXwaM0KMDZK+gQNRL4L5DMOHHY9v2RJVK3CUXOSldK8eImGCxZ4TRyXZZdw+znd50+ONCYWlUgosZkUv+MXL/85mo8YYqAuU4oDKi1EhC76DZAguuqF5bQqVbDGQKnxwHHTji6Nl2ox8LHyLLSw4R3EnV0v48d0aTVxA/CJfiU8tI6nse9TY3YiPNjG4tghOOdrCLrT/SPu/2GNc4k5ecIltxYPuHB+zmz6yJLKWwH3eM05aB/sgLp9f+dHJuswS2GR1pYbFXF8E6kXT5ZCl4nv5eGDCObAyrRJAA3DU8kL5jAiE0QTkkTZJnhHpaNj5jXqKmWBntL9qVcasEYOy8A16pwrn1h4jXzMj7QLfg1y8mx3b7HYLS/NrYB3gNGiQQRdnXCQYVHtiYBi7bPc5mO0vg5ZFVqgXBHeno1uNDrCT7RFy2QqqdxrhIwbBYyJ2Vtc71hhJ+GNvx4U5wL8KyeIjENZOitX/veknvSds1H2L9hwgS/ckErCL96QFpm/MCl9D0+zbjYNs/F63jKNceVm8Pp7A2Szn/LqUfekk/fFFaew8i4y8UntWwo2rgD7svq7y+iuo29glEtaktVsH9//SVAPtJXoZI86C1NagLwnrnodtzBorOEbZgJErQKIQ5XJyXghtr4hAbSQtULS1rX3jAxaSfawJd/MA8yAhvIb1z+UaQSOiA5eub8UzgphR8MG3qKbLyQ2JLSCf9qKhrOyck9jGGwv2wP0mXsRPKpc2CUP2iwmQHVaZR0fkaZ43JDDspIJZKFEoK0/NeJB0XkqSu3F42xVTYneRaNFkHfPEiO3A1KG5R00uUKRYFCY1+YQDv5wrO0YdUzoM9Ujsqm8bynLnHrYjf17noRuatNi9xFrEJKkvRj6sW80jd4cRRNKkOa+PXbpDneMtf3wItwYWeZimFBNmiyaFZsm3VikPStweiYWCERQYL9JkSBsBj vNvfuLRE 70Ai9fDQmRtQYTf+PYPz8cXohLhYvbikFZ2Ce3hdzNR1yCYXcxCajXobX/ueqUHoNJKm1La//mjqFsMuCapMAQCF6su/VBgz9OJrrMWK/sYZezUWqQcUHN4/YV/to7GAK43RDzbqr1v2AL86CBirZpeyVowrzXtxgX0+IEYdt0ko8e9i6PE8bDCZrCUXrmagej0VGLwC3a93Lw5yB14lBwwwhjGg4sfRfdQZD7z9uMUiDvvGNPLZVqhgwYj/sy9tNjb2ZyfulZbBGLnudGFlMBnEs3RwiB1BfO+hYwNlVgQ1gRzZRWecaIQDh2b4ebVPy0iXRg7kd3MvTOouzqKnyjGbkNg0+k+ifX8wxybkJd3ZCt8+Y1T+cEP7Z7b3KT2/h+0IVdiVZmLdG6U28R+akC4BOqctgnPq95DxWXJeDpfLmwr/P6kWbVzWZ7eZoHtHBMsNs X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: The riscv privileged specification mandates to flush the TLB whenever a page directory is modified, so add that to tlb_flush(). Fixes: c5e9b2c2ae82 ("riscv: Improve tlb_flush()") Signed-off-by: Alexandre Ghiti Reviewed-by: Charlie Jenkins Reviewed-by: Samuel Holland Tested-by: Samuel Holland --- arch/riscv/include/asm/tlb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/riscv/include/asm/tlb.h b/arch/riscv/include/asm/tlb.h index 1eb5682b2af6..50b63b5c15bd 100644 --- a/arch/riscv/include/asm/tlb.h +++ b/arch/riscv/include/asm/tlb.h @@ -16,7 +16,7 @@ static void tlb_flush(struct mmu_gather *tlb); static inline void tlb_flush(struct mmu_gather *tlb) { #ifdef CONFIG_MMU - if (tlb->fullmm || tlb->need_flush_all) + if (tlb->fullmm || tlb->need_flush_all || tlb->freed_tables) flush_tlb_mm(tlb->mm); else flush_tlb_mm_range(tlb->mm, tlb->start, tlb->end,