From nobody Mon May 25 09:56:49 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6DD4C3C5540 for ; Mon, 18 May 2026 06:56:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779087386; cv=none; b=o6GsAnkk34BgaIywwU1kTLJ0HDTtwbG+S93K7Ky0onMmLMTDNjXc4LAxsPUFCZj6ryDWioCiXHiRgdwuCmmTjoI12qP19SuQEeQeD3S2f01pVlBc8fUvDC0CPlG9tShMwuF9Dby6uC7BXU7OZKIfDpeJ6TMtoAW+t6fQBR5NtAc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779087386; c=relaxed/simple; bh=3qsTfRnurdw0Mic0pYKzByZ7eXQrCCGUuQ/97vtN6jU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GigffrKqRjBVNPMoxu2xSxneIYT2nRI64evL7ZKBTSnZ4HslBlugq6s2saJC/Wzw8HojMDrbbsUj8cDPUi0lJDUAN1kfeq4Gyw8oa0kKkjsNvRyCu2Vh2bToJqm4blxTHcMCyiVYdxp4hUfMiXWEm8Z7JponNVi49KK5+g8DqHQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=o1qtntj/; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="o1qtntj/" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64HKFtJZ1950620; Mon, 18 May 2026 06:56:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=qooOZb/B2Ompg/B1D lGA3rpHr2gG72y6Bq3BkqGDnjs=; b=o1qtntj/fb+q/YfuX2CEvyYSg6Gjn1dj5 qNSKnEZpwnqNYQq5+Px+3OufULgaQdvKusAYfssH7x0GpzEg6BbcjLf1dvF9XzxW qIzhiSujr4Ar5kS/oLhbmVxQtWbODdlqGgwMzM0xEquQx5oNyScr3+1hbIgxiG+p JCpqA7jjVMeRWMS7Hf9w/stXOfVJbegtuj5JUY6Gf2Ffn8CzU8fXLDwglYjMgDgR pffepwM2W1Eyc6CspmpI1kGVaQO62yXZZ367MKYmXOZ7LIYjPsmvT0Mm1zW/R91/ w5RaujFuz7jEwM29i0WRkivxhUHwaJzZsoUHM81B+Pc6o7/oC1d5A== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4e6h8867sk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 18 May 2026 06:56:19 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 64I6s56v009726; Mon, 18 May 2026 06:56:19 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4e74dhcj0k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 18 May 2026 06:56:19 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 64I6uFx445875630 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 18 May 2026 06:56:15 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5D2C120043; Mon, 18 May 2026 06:56:15 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3E04B2004B; Mon, 18 May 2026 06:56:14 +0000 (GMT) Received: from li-3f69264c-2ce6-11b2-a85c-c3f414d24014.bl1-in.ibm.com (unknown [9.123.3.209]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 18 May 2026 06:56:14 +0000 (GMT) From: Sayali Patil To: linuxppc-dev@lists.ozlabs.org, maddy@linux.ibm.com Cc: linux-kernel@vger.kernel.org, Ritesh Harjani , Mahesh Salgaonkar Subject: [PATCH v2 1/2] lkdtm/powerpc: add isync after slbmte to enforce SLB update ordering Date: Mon, 18 May 2026 12:26:04 +0530 Message-ID: <2f8d430962a96a7498903b994f081deee4a4d97a.1778975974.git.sayalip@linux.ibm.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: H8J7X_ZVH6Gp9LAIx6TjpwYOzmQoiQxz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE4MDA2MiBTYWx0ZWRfX0nfDLIW52eML KcgTLIG0en8xoB6xgFHAb7WogPqCCZhH/V5W65/25/YpAKEGKWuszKi6sHXTPiWyVH9zWtFCIlM gcwqdjDxZRIXDmJcC8npG8f5+ndUA6ju7qjqwyWDv1C7umsFsxRzLiMAMhXBVFNG0ByC1ePId0+ 8Dawk/vRer9x08Bx42h6JfRh+U9cmXhBnXRexAvuY5qVTLOoGzk8U9SFpwqp7NFfh12cCeol6r6 Hi5gBTjj/TXQtZKVcoFnDz6Eusxl1VmozPajOKpinjBoMNUY7acZNm5lVMFdIdp966+nSo1pKn+ w63i6LFIzzc9zt/CANHjsfx7EsOgSzSdhGoZuF69LZQHabH7Sg9N8Ch46JL3fX3PEcbx5tmNOYj 8JALNTjcM1wvgytWye5AC7PbtlupnJ1Un4SfTCdk8f2ax28lGyW9k9VKbUyrqCQTdKJ2UisEU+p fpMtmCY73F/HREkHsPQ== X-Proofpoint-GUID: PxX5zw0ZgsbU6qgcFHnjbsbGaXO2jYhq X-Authority-Analysis: v=2.4 cv=apyCzyZV c=1 sm=1 tr=0 ts=6a0ab814 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=pGLkceISAAAA:8 a=VnNF1IyMAAAA:8 a=kezLWu8HVOdeeWrntvsA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-18_01,2026-05-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 suspectscore=0 adultscore=0 spamscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605180062 Content-Type: text/plain; charset="utf-8" The slbmte instruction modifies the Segment Lookaside Buffer, but without a context synchronizing operation the CPU is not guaranteed to observe the updated SLB state for subsequent instructions. This can result in use of stale translation state when memory is accessed immediately after SLB modifications. Add isync after each slbmte in the PPC_SLB_MULTIHIT test to ensure proper ordering of SLB updates before subsequent memory accesses. This aligns with Power ISA context synchronization requirements for changes in address translation state and improves the reliability of SLB multihit injection tests in hash MMU mode. Suggested-by: Ritesh Harjani (IBM) Signed-off-by: Sayali Patil Reviewed-by: Michael Ellerman Reviewed-by: Ritesh Harjani (IBM) --- drivers/misc/lkdtm/powerpc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/misc/lkdtm/powerpc.c b/drivers/misc/lkdtm/powerpc.c index be385449911a..ef07e5201edf 100644 --- a/drivers/misc/lkdtm/powerpc.c +++ b/drivers/misc/lkdtm/powerpc.c @@ -17,11 +17,14 @@ static void insert_slb_entry(unsigned long p, int ssize= , int page_size) : "r" (mk_vsid_data(p, ssize, flags)), "r" (mk_esid_data(p, ssize, SLB_NUM_BOLTED)) : "memory"); + isync(); =20 asm volatile("slbmte %0,%1" : : "r" (mk_vsid_data(p, ssize, flags)), "r" (mk_esid_data(p, ssize, SLB_NUM_BOLTED + 1)) : "memory"); + isync(); + preempt_enable(); } =20 @@ -84,6 +87,7 @@ static void insert_dup_slb_entry_0(void) : "r" (vsid), "r" (esid | SLB_NUM_BOLTED) : "memory"); + isync(); =20 asm volatile("slbmfee %0,%1" : "=3Dr" (esid) : "r" (i)); asm volatile("slbmfev %0,%1" : "=3Dr" (vsid) : "r" (i)); @@ -93,6 +97,7 @@ static void insert_dup_slb_entry_0(void) : "r" (vsid), "r" (esid | (SLB_NUM_BOLTED + 1)) : "memory"); + isync(); =20 pr_info("%s accessing test address 0x%lx: 0x%lx\n", __func__, test_address, *test_ptr); --=20 2.52.0 From nobody Mon May 25 09:56:49 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F8953D564D for ; Mon, 18 May 2026 06:56:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779087387; cv=none; b=UqtRrKIW0gqj9jr9dzGns6iT076n+Gy4GNw5ENKZtw5gFK2fUfn7H06sTVq/QbAJIenVNnq6yZlBRT2iDWu3Zq2xxw6T2Udr6JlvAMpIUe4BlE1kNtKeWStJHkV2t+4IzJXJ/EJ419BaRu7KP9Za0TK6lOviLwXjb5N+OXIEag0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779087387; c=relaxed/simple; bh=rOy5oC+cNVvIxP7QN0+xMd10sHkHUERcSA9ivfpXh6c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZwmCJffO65bm1fwZ3SjIlTEwVp7DRcpwKMuy+wjcaFt3VMTZLTO2ZC10qhZzz9fVxGBUzlrEXiHj44XCOuKfZAoxJHLeGeaUJXqkG7dCzmoWmfFeWi+AH31FU4yNzfE2MR5Oo0D5TxFXvQ37DRdyCEItH0ptrYkhtaN66brFeV4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=gGwZD7yx; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="gGwZD7yx" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64I4LODA3644508; Mon, 18 May 2026 06:56:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=z+1oz7zi+NlABdprC G4BMxUuC4Hdpj6OLnQAy8OpVgY=; b=gGwZD7yxA3ikpCRCpFD0fkky1CBJgn84U 6TOmojz+ahmpHY1SWRVkNlM7KXn+13KhlIkuvF2HI+EncvXT7ZwECYIiPhOlvYlT tJWWJb0Wx0rD/uKX/K1JXerP19ztCrtL7JN/bC1fi2nmA9iFQq24AFBMd7Z83nHU Sq3cP9H0mfKBzeLhIRGf7Xchghh92BeqHz11YbIAnG5VYWYWbHSJg7GfisT9x8nC gHF/jBe4CDCybo9GNcO3mDr11t68IsvngcGG/41+rZH1bU5Il+uAjLmxQjahfoCb /P0wxAhHHtJc/fONSKtPNAPx0fhlFB0caT7TfptuJgrJ+zlNM99Wg== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4e6h9xpnsk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 18 May 2026 06:56:21 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 64I6s813012626; Mon, 18 May 2026 06:56:20 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4e75kxvbw7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 18 May 2026 06:56:20 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 64I6uHQG45875460 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 18 May 2026 06:56:17 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 398212004E; Mon, 18 May 2026 06:56:17 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C0DFC2004B; Mon, 18 May 2026 06:56:15 +0000 (GMT) Received: from li-3f69264c-2ce6-11b2-a85c-c3f414d24014.bl1-in.ibm.com (unknown [9.123.3.209]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 18 May 2026 06:56:15 +0000 (GMT) From: Sayali Patil To: linuxppc-dev@lists.ozlabs.org, maddy@linux.ibm.com Cc: linux-kernel@vger.kernel.org, Ritesh Harjani , Mahesh Salgaonkar Subject: [PATCH v2 2/2] lkdtm/powerpc: add PPC_RADIX_TLBIEL test for radix MCE validation Date: Mon, 18 May 2026 12:26:05 +0530 Message-ID: <85c9b59217bcecb3c7af52e9d5b175266771d7de.1778975974.git.sayalip@linux.ibm.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE4MDA2MiBTYWx0ZWRfX0G2DIAuct+nT INMJoP/u98GHcRjjd9Bzv3cmlVfT5l7C5ORTn3B0vlhjeLVlhhDhNfcO4pFuKzXf+hciJUHRb/V FK4pzQD394fjeUoqoMHbH0saAB5ymB2XzxBPfuTcyekMPnUIJmA1VIJSdFMml6ZONTVE6lqXIyM 2bHPCB0MpLkzQuKWcm+Re/i+sBV7KJ8vIHR8ouJIzy0PBcwvrUDrk5vm8N1fzehwkRbyeFSg89+ UB3+KjM9+IFinc8WFCXLVFvV0iAxRbdy6x+cUAdTFR94Uouj7x4VAJY0XDJn6o633qEffqJsK2p RKPyBk/bBzK7Xw62VQJJSYpz6z1pegxYoS+Z9YcVEYFhnz/NjbQ3yPPpI5fHkKFD8C+7qL0Rhyq dJOxu8hOpjo+GQLNsZkytP+U5Ux8mkY/3Ax8v6jmXyNCoX2D7avfRydASDaWNgFt0b38cMFS+cv MdEf1AAGDr4mJ5ETQcA== X-Authority-Analysis: v=2.4 cv=BNuDalQG c=1 sm=1 tr=0 ts=6a0ab815 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=pGLkceISAAAA:8 a=VnNF1IyMAAAA:8 a=n7fScqo8HIbXo42xH70A:9 X-Proofpoint-ORIG-GUID: S6WLtmbGkJy1donmR_qqp_r6IHuLkjll X-Proofpoint-GUID: 66AbxRP30H7i-kTnbhmuivLHd1GQy0_7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-18_01,2026-05-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 malwarescore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605180062 Content-Type: text/plain; charset="utf-8" Add a new LKDTM trigger (PPC_RADIX_TLBIEL) that executes a process-scoped radix TLBIEL instruction to exercise the radix MMU behaviour and associated machine check exception (MCE) handling paths. This provides a way to validate MCE handling in radix mode. Currently, there is no dedicated LKDTM test that exercises this path or allows triggering radix-specific machine check behaviour for validation. The test is only enabled on ppc64 systems with radix MMU support and If radix is not active, the trigger is skipped and reported as XFAIL. Co-developed-by: Ritesh Harjani (IBM) Signed-off-by: Ritesh Harjani (IBM) Signed-off-by: Sayali Patil Reviewed-by: Michael Ellerman Reviewed-by: Ritesh Harjani (IBM) --- drivers/misc/lkdtm/Makefile | 2 +- drivers/misc/lkdtm/core.c | 2 +- drivers/misc/lkdtm/powerpc.c | 44 +++++++++++++++++++++++++ tools/testing/selftests/lkdtm/tests.txt | 1 + 4 files changed, 47 insertions(+), 2 deletions(-) diff --git a/drivers/misc/lkdtm/Makefile b/drivers/misc/lkdtm/Makefile index 03ebe33185f9..4e58d16fc01e 100644 --- a/drivers/misc/lkdtm/Makefile +++ b/drivers/misc/lkdtm/Makefile @@ -11,7 +11,7 @@ lkdtm-$(CONFIG_LKDTM) +=3D usercopy.o lkdtm-$(CONFIG_LKDTM) +=3D kstack_erase.o lkdtm-$(CONFIG_LKDTM) +=3D cfi.o lkdtm-$(CONFIG_LKDTM) +=3D fortify.o -lkdtm-$(CONFIG_PPC_64S_HASH_MMU) +=3D powerpc.o +lkdtm-$(CONFIG_PPC_BOOK3S_64) +=3D powerpc.o =20 KASAN_SANITIZE_stackleak.o :=3D n =20 diff --git a/drivers/misc/lkdtm/core.c b/drivers/misc/lkdtm/core.c index 5732fd59a227..ededa32d6744 100644 --- a/drivers/misc/lkdtm/core.c +++ b/drivers/misc/lkdtm/core.c @@ -96,7 +96,7 @@ static const struct crashtype_category *crashtype_categor= ies[] =3D { &stackleak_crashtypes, &cfi_crashtypes, &fortify_crashtypes, -#ifdef CONFIG_PPC_64S_HASH_MMU +#ifdef CONFIG_PPC_BOOK3S_64 &powerpc_crashtypes, #endif }; diff --git a/drivers/misc/lkdtm/powerpc.c b/drivers/misc/lkdtm/powerpc.c index ef07e5201edf..6eaac79ea26b 100644 --- a/drivers/misc/lkdtm/powerpc.c +++ b/drivers/misc/lkdtm/powerpc.c @@ -5,6 +5,7 @@ #include #include =20 +#ifdef CONFIG_PPC_64S_HASH_MMU /* Inserts new slb entries */ static void insert_slb_entry(unsigned long p, int ssize, int page_size) { @@ -104,9 +105,35 @@ static void insert_dup_slb_entry_0(void) =20 preempt_enable(); } +#endif /* CONFIG_PPC_64S_HASH_MMU */ + +static __always_inline void tlbiel_va(unsigned long va, + unsigned long pid, + unsigned long ap, + unsigned long ric) +{ + unsigned long rb, rs, prs, r; + + rb =3D va & ~(PPC_BITMASK(52, 63)); + rb |=3D ap << PPC_BITLSHIFT(58); + rs =3D pid << PPC_BITLSHIFT(31); + + prs =3D 1; /* process scoped */ + r =3D 1; /* radix format */ + + /* + * Trigger an MCE by issuing radix tlbiel with an invalid operand combina= tion. + * The combination of RIC =3D 2 with IS =3D 0 (Invalidation selector spec= ified + * in the RB register) is invalid. + * This invalid combination causes hardware to raise a machine check. + */ + asm volatile(PPC_TLBIEL(%0, %4, %3, %2, %1) + : : "r"(rb), "i"(r), "i"(prs), "i"(ric), "r"(rs) : "memory"); +} =20 static void lkdtm_PPC_SLB_MULTIHIT(void) { +#ifdef CONFIG_PPC_64S_HASH_MMU if (!radix_enabled()) { pr_info("Injecting SLB multihit errors\n"); /* @@ -122,10 +149,27 @@ static void lkdtm_PPC_SLB_MULTIHIT(void) } else { pr_err("XFAIL: This test is for ppc64 and with hash mode MMU only\n"); } +#else + pr_err("XFAIL: This test requires CONFIG_PPC_64S_HASH_MMU\n"); +#endif +} + +static void lkdtm_PPC_RADIX_TLBIEL(void) +{ + unsigned long addr =3D PAGE_OFFSET; + + if (radix_enabled()) { + pr_info("Injecting Radix TLB invalidation MCE\n"); + tlbiel_va(addr, 0, 0, RIC_FLUSH_ALL); + pr_info("Recovered from radix tlbiel attempt\n"); + } else { + pr_err("XFAIL: This test is for ppc64 and with radix mode MMU only\n"); + } } =20 static struct crashtype crashtypes[] =3D { CRASHTYPE(PPC_SLB_MULTIHIT), + CRASHTYPE(PPC_RADIX_TLBIEL), }; =20 struct crashtype_category powerpc_crashtypes =3D { diff --git a/tools/testing/selftests/lkdtm/tests.txt b/tools/testing/selfte= sts/lkdtm/tests.txt index 3245032db34d..d8180bbe31e8 100644 --- a/tools/testing/selftests/lkdtm/tests.txt +++ b/tools/testing/selftests/lkdtm/tests.txt @@ -86,3 +86,4 @@ FORTIFY_STR_MEMBER detected buffer overflow FORTIFY_MEM_OBJECT detected buffer overflow FORTIFY_MEM_MEMBER detected field-spanning write PPC_SLB_MULTIHIT Recovered +#PPC_RADIX_TLBIEL Triggers unrecoverable MCE --=20 2.52.0