From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Cyrus-Session-Id: sloti22d1t05-1211789-1520118447-2-6029747516202250596 X-Sieve: CMU Sieve 3.0 X-Spam-known-sender: no X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, HEADER_FROM_DIFFERENT_DOMAINS 0.249, RCVD_IN_DNSWL_HI -5, T_RP_MATCHES_RCVD -0.01, URIBL_BLACK 1.7, LANGUAGES en, BAYES_USED global, SA_VERSION 3.4.0 X-Spam-source: IP='209.132.180.67', Host='vger.kernel.org', Country='CN', FromHeader='com', MailFrom='org', XOriginatingCountry='US' X-Spam-charsets: plain='iso-8859-1' X-Resolved-to: greg@kroah.com X-Delivered-to: greg@kroah.com X-Mail-from: stable-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=arctest; t=1520118447; b=hyM9vnkzxmHX2l+QXRnb+fj6a5NCEq9t4MG610u2Eyko2cX Ap5LrUh75N8mabVwy3gCtPrTZpuyyttCxtfbD8GHMiYZT/ZyFSUwXuuBbY7lUnQl KQC21I+UGyk9QYgO36Yk5ZeiBdWtXHYXctJtbbqZeBefP+yewycDqzjn0vHLL8oH qR5bli8srBvh3qUBwsvDmYPXJSJYqAHgrM72PBaWz9o7CCjemHK3Uyjyp7r5d0r3 fX9fgFpHlqoGs9C0EZA/MJkTfYVX8TEPBlf+1RktFCCIsDsYAAIwOGseomLt1NhT A73cMFblXL0ZGhdjVl/T+NRBGJheobVVHvIL97w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=from:to:cc:subject:date:message-id :references:in-reply-to:content-type:content-transfer-encoding :mime-version:sender:list-id; s=arctest; t=1520118447; bh=F08O3W 1yPvu+eYRKT3O0potiBXY1wa170r3eK1ej41k=; b=vALfPEBHYiZkICH9ye5eQb 972YtNeYEwWwf7Vt/Q8fhxwG7TVd4mTc6IKZdWLwKD6//UHkIU+2UF0gkpK7RNoC mIHZTz/T66fsQpRqtmevLfO4trAGJ0fQd6Qqvipl1dskByigzcaviDVXAK1/CECJ IpSIuWFTh3xfD9pcCbXLDyoIfp31ZPzNWvmjQjaZaTCbGZ68nzMKH0Lc8EdFpl4e fCcjSdUaiHPGnZhA4GCmm/tyiXJwvEpAWQ8z7am87Y9YtJq9XEliVt61eT5Ls66K 1QyMJ1mBsrRZDidy/YVupULbzBtxrAQYniuhef+xG5CNNevG/OyiV+rYfM6/l/gg == ARC-Authentication-Results: i=1; mx4.messagingengine.com; arc=none (no signatures found); dkim=pass (1024-bit rsa key sha256) header.d=microsoft.com header.i=@microsoft.com header.b=Pr0dasXV x-bits=1024 x-keytype=rsa x-algorithm=sha256 x-selector=selector1; dmarc=pass (p=reject,has-list-id=yes,d=none) header.from=microsoft.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=stable-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=microsoft.com header.result=pass header_is_org_domain=yes Authentication-Results: mx4.messagingengine.com; arc=none (no signatures found); dkim=pass (1024-bit rsa key sha256) header.d=microsoft.com header.i=@microsoft.com header.b=Pr0dasXV x-bits=1024 x-keytype=rsa x-algorithm=sha256 x-selector=selector1; dmarc=pass (p=reject,has-list-id=yes,d=none) header.from=microsoft.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=stable-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=microsoft.com header.result=pass header_is_org_domain=yes Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935175AbeCCWkJ (ORCPT ); Sat, 3 Mar 2018 17:40:09 -0500 Received: from mail-bl2nam02on0124.outbound.protection.outlook.com ([104.47.38.124]:62688 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S935152AbeCCWkD (ORCPT ); Sat, 3 Mar 2018 17:40:03 -0500 From: Sasha Levin To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" CC: Leonid Yegoshin , Leonid Yegoshin , Miodrag Dinic , Aleksandar Markovic , "james.hogan@imgtec.com" , "petar.jovanovic@imgtec.com" , "goran.ferenc@imgtec.com" , "linux-mips@linux-mips.org" , Ralf Baechle , Sasha Levin Subject: [PATCH AUTOSEL for 4.4 069/115] MIPS: r2-on-r6-emu: Fix BLEZL and BGTZL identification Thread-Topic: [PATCH AUTOSEL for 4.4 069/115] MIPS: r2-on-r6-emu: Fix BLEZL and BGTZL identification Thread-Index: AQHTsz9fPWzPxdBlNkeUvMb+lbfvvQ== Date: Sat, 3 Mar 2018 22:31:29 +0000 Message-ID: <20180303223010.27106-69-alexander.levin@microsoft.com> References: <20180303223010.27106-1-alexander.levin@microsoft.com> In-Reply-To: <20180303223010.27106-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MW2PR2101MB1033;7:6ldzmRu8Vv2sg7ZJVB8yHKDalhqc/pxaeI9lnoPkH9BgjkMQNdhk6WFtxSv+gSQhLJkTTpAwTw/0Dei02ph2/WGt4fcXurgFnRRDSSQbnK55AyvyR+0XHva1XRiEJ5YnuaGzOP8b6EcjVBgFtys1/N7t7G6ilyJAPUgWtWIeSR7u90RJYrrDfKUFW6X2HCWPxhPGUA8DXwW47/G7Tf6I5nFLE1IzVl/xCPnwW1PZMSLNJxXx5db7IeJwS/Zinj3a x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: aac47568-a6d9-4672-f0b1-08d58157b044 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7193020);SRVR:MW2PR2101MB1033; x-ms-traffictypediagnostic: MW2PR2101MB1033: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(61425038)(6040501)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(3231220)(944501244)(52105095)(6055026)(61426038)(61427038)(6041288)(20161123558120)(20161123564045)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:MW2PR2101MB1033;BCL:0;PCL:0;RULEID:;SRVR:MW2PR2101MB1033; x-forefront-prvs: 0600F93FE1 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(39860400002)(39380400002)(376002)(366004)(346002)(396003)(189003)(199004)(3280700002)(3846002)(316002)(6666003)(99286004)(110136005)(2900100001)(54906003)(2501003)(10090500001)(53936002)(5250100002)(106356001)(76176011)(36756003)(107886003)(2950100002)(6486002)(22452003)(6306002)(6512007)(6436002)(86362001)(6116002)(1076002)(6506007)(2906002)(68736007)(102836004)(4326008)(59450400001)(97736004)(186003)(478600001)(72206003)(26005)(3660700001)(8676002)(25786009)(966005)(7416002)(66066001)(14454004)(5660300001)(305945005)(86612001)(81166006)(8936002)(10290500003)(105586002)(7736002)(81156014)(22906009)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:MW2PR2101MB1033;H:MW2PR2101MB1034.namprd21.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; x-microsoft-antispam-message-info: mY99uln4AhcfXCjSCkqnKXJ4pTVaWlgVCXJU3UsdxmS0xms7DiYbGc7zaRjLlM6gjkkTqFW5ezDvt4GrwRGsJP5rOfMehir2NVKwC4Eivj06G2gGfXjH8FP93TRqenLszmTNe8tk8Gl3XzbRWZAMWZuxGEPnUC6HxjnWPvVyJzQ= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: aac47568-a6d9-4672-f0b1-08d58157b044 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2018 22:31:29.3853 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR2101MB1033 Sender: stable-owner@vger.kernel.org X-Mailing-List: stable@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-Mailing-List: linux-kernel@vger.kernel.org List-ID: From: Leonid Yegoshin [ Upstream commit 5bba7aa4958e271c3ffceb70d47d3206524cf489 ] Fix the problem of inaccurate identification of instructions BLEZL and BGTZL in R2 emulation code by making sure all necessary encoding specifications are met. Previously, certain R6 instructions could be identified as BLEZL or BGTZL. R2 emulation routine didn't take into account that both BLEZL and BGTZL instructions require their rt field (bits 20 to 16 of instruction encoding) to be 0, and that, at same time, if the value in that field is not 0, the encoding may represent a legitimate MIPS R6 instruction. This means that a problem could occur after emulation optimization, when emulation routine tried to pipeline emulation, picked up a next candidate, and subsequently misrecognized an R6 instruction as BLEZL or BGTZL. It should be said that for single pass strategy, the problem does not happen because CPU doesn't trap on branch-compacts which share opcode space with BLEZL/BGTZL (but have rt field !=3D 0, of course). Signed-off-by: Leonid Yegoshin Signed-off-by: Miodrag Dinic Signed-off-by: Aleksandar Markovic Reported-by: Douglas Leung Reviewed-by: Paul Burton Cc: james.hogan@imgtec.com Cc: petar.jovanovic@imgtec.com Cc: goran.ferenc@imgtec.com Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/15456/ Signed-off-by: Ralf Baechle Signed-off-by: Sasha Levin --- arch/mips/kernel/mips-r2-to-r6-emul.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/arch/mips/kernel/mips-r2-to-r6-emul.c b/arch/mips/kernel/mips-= r2-to-r6-emul.c index e3384065f5e7..81cd389e855c 100644 --- a/arch/mips/kernel/mips-r2-to-r6-emul.c +++ b/arch/mips/kernel/mips-r2-to-r6-emul.c @@ -1097,10 +1097,20 @@ repeat: } break; =20 - case beql_op: - case bnel_op: case blezl_op: case bgtzl_op: + /* + * For BLEZL and BGTZL, rt field must be set to 0. If this + * is not the case, this may be an encoding of a MIPS R6 + * instruction, so return to CPU execution if this occurs + */ + if (MIPSInst_RT(inst)) { + err =3D SIGILL; + break; + } + /* fall through */ + case beql_op: + case bnel_op: if (delay_slot(regs)) { err =3D SIGILL; break; --=20 2.14.1