Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2138527pxb; Mon, 22 Feb 2021 22:23:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJzPDnV1C8DsQNCfjzx2hPPcorhhYuo87ZTCVjk1mtUDn6iRBSy46ahX55lAShe514rCrY7T X-Received: by 2002:a17:907:734a:: with SMTP id dq10mr6395944ejc.411.1614061421099; Mon, 22 Feb 2021 22:23:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614061421; cv=none; d=google.com; s=arc-20160816; b=xNzCOJkWal5z8FtZ1qpt31py6ENmbxsNE90h2PcKvrExBBRNZVyxLi+sijdpwHsp3k 0xOFtGoPEEyBWWIUt65l//87HYvBatXk3lymQkO2RajRtK07iHE58OT1JaWe3H5ghK7I hVh5KWcsaVOZA7pk+t8k/9s9tr2FXd/o3uc7ywnTMY2GZGma5hr9RNypfLhVmd5117Wy MwmJnm5Y+C3Sy652hJpBlQvTsbWgQoq+iSAqN3eC0BlWY65WJXZz5cojbMLt/bF6/x7C ev8JPQq9ae3nXdyifbz1PB/KdP+iOZCDLRa4QdY+GXQ0fv/fBLe0DAGCEtiJUcVjVa17 YTYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=PVn+KurcISyzCTCcOBSQVj+VDYh9QnzU4Z+HrgGYqA0=; b=Xn9AJgWRWXE3crMXyIit16di6gjxF9queP0+6ssqVkisP/axSWTIqhq1zXaaHrvFeV nN+nGiRsbfS8GvJqasRVS/oyDf1/WGyMuK4bbc8BNcfc/hLIAO2MxNEjeGRxfSReKYiW kAlRHMnIn5ZA588gEu9osLLrpdjaRcrCpARIRqdBQ1i5NvHsVFtbaUm1ZjU0KCrojdFP KHdo/+mGCi4JX0KQePbwQTVWmc3v5rORYVMrUz8TiboFozAlcT4BVbZAt773ZX6gwoH6 XYcFMOSq0nZdPrOeAuo2sualkfSG05YOi5OPar9Jmr50uchkfxkAh0is11Z98cQOEGFR 2ETQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=stGgyRsu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i2si15238355ejp.556.2021.02.22.22.23.13; Mon, 22 Feb 2021 22:23:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=stGgyRsu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231495AbhBWFv0 (ORCPT + 99 others); Tue, 23 Feb 2021 00:51:26 -0500 Received: from mail.kernel.org ([198.145.29.99]:54486 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231393AbhBWFvR (ORCPT ); Tue, 23 Feb 2021 00:51:17 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id DFD3964E60; Tue, 23 Feb 2021 05:50:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1614059434; bh=IPkD+572EaUq/Ouy9LtIH5yCNhFOhkYfrxu8FFiUTRg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=stGgyRsuhqDn1KY3wVlD82Jr93tvHhs6l6I2q1NPz5eBsWWPldliFJ3gHhLiew/f2 1QsogMswaYaz1/BUKkKGo98IxBbY3JUcFRyf/W9fxrhbO9l9PuAWgp9p7DwgQmfCXN 1kbl0IsKdkxB+BFPEPCckDwZBdikUAjPhydSd0xwxdrz65y+GOlZhJX3hul1cMpGfO jgcZRgcm+haCHQt9iFHSnDR1bzrMnF6Q8bBz9u5GLEss7nIKzbf5GizLZRDFMtZUk0 91eQaW3r6WpGHbQqeUx+geojFYxnr/iXHSeamApQ0d3hBjQjyqpFbQ7tKzrgjNZ09m EXATPoakyyGMw== From: Andy Lutomirski To: x86@kernel.org Cc: LKML , Andy Lutomirski , stable@vger.kernel.org Subject: [PATCH 2/3] x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls Date: Mon, 22 Feb 2021 21:50:28 -0800 Message-Id: X-Mailer: git-send-email 2.29.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On a 32-bit fast syscall that fails to read its arguments from user memory, the kernel currently does syscall exit work but not syscall exit work. This would confuse audit and ptrace. This is a minimal fix intended for ease of backporting. A more complete cleanup is coming. Cc: stable@vger.kernel.org Fixes: 0b085e68f407 ("x86/entry: Consolidate 32/64 bit syscall entry") Signed-off-by: Andy Lutomirski --- arch/x86/entry/common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c index 0904f5676e4d..cf4dcf346ca8 100644 --- a/arch/x86/entry/common.c +++ b/arch/x86/entry/common.c @@ -128,7 +128,8 @@ static noinstr bool __do_fast_syscall_32(struct pt_regs *regs) regs->ax = -EFAULT; instrumentation_end(); - syscall_exit_to_user_mode(regs); + local_irq_disable(); + exit_to_user_mode(); return false; } -- 2.29.2