From patchwork Wed Sep 28 11:58:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robin Murphy X-Patchwork-Id: 12992177 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D90BCC04A95 for ; Wed, 28 Sep 2022 12:00:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=JmPFRivrjcDRFQ3ziVPKL2VtCTatQUdgk/1zAFKAmhw=; b=DlWJrEP8k7ELn+ d7errgDZfGwZdQhNp0E4A12qpuXX48Jxr9viMehIeMWYMmxYxgVIi+iB8zqPyCLPFyL4zpoikvK0L 96q4X4/XLQTpH9IhH5GSptKWEVueCFzI0bhFnRNJSdMoCrsG14hhD91TRQWoISUARfvIAjfdIP7V/ OfrdM+bMJnHysbP3qqUjOy/JIC3dKG2ZT3nSHVJDx2IQGvCgkkL+3DrhBVZScAkdKHQ8l04W5nqJR UJGIURGo3wz3yCXKkUUyDZlIqgJZ6ss0DAYQZgTYXeM/x5yAa7ZVk+MxNytTnVeoEfVXjy14fO3Wu JLLPAFmxzoPFq8IV4FOA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1odViS-00G4wY-75; Wed, 28 Sep 2022 11:59:04 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1odViO-00G4un-Lo for linux-arm-kernel@lists.infradead.org; Wed, 28 Sep 2022 11:59:02 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EA3431595; Wed, 28 Sep 2022 04:59:04 -0700 (PDT) Received: from e121345-lin.cambridge.arm.com (e121345-lin.cambridge.arm.com [10.1.196.40]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7868C3F73D; Wed, 28 Sep 2022 04:58:57 -0700 (PDT) From: Robin Murphy To: will@kernel.org, catalin.marinas@arm.com Cc: linux-arm-kernel@lists.infradead.org, mark.rutland@arm.com, kristina.martsenko@arm.com Subject: [PATCH 0/3] arm64: Usercopy refresh Date: Wed, 28 Sep 2022 12:58:50 +0100 Message-Id: X-Mailer: git-send-email 2.36.1.dirty MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220928_045900_780082_A4F79504 X-CRM114-Status: UNSURE ( 9.76 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi all, With the troublesome copy_in_user() now long gone, it's finally time for some less-worse usercopy routines! Beyond just improving on the mangled old code, this is also spurred on by Mark's ongoing work on exception handling, off the back of which we had some ideas around making uaccess fixups neater. Those can be explored in due course, but getting the last of the old cruft out of the way first should help make it easier. For now I've held off on clever macro stuff and stuck with hand-rolled labels and explicit annotations which do bump the line count up a fair bit, but in the hope of keeping the code itself more readable for review. Thanks, Robin. Robin Murphy (3): arm64: Update copy_from_user() arm64: Update copy_to_user() arm64: Garbage-collect usercopy leftovers arch/arm64/include/asm/asm-uaccess.h | 30 -- arch/arm64/lib/copy_from_user.S | 274 +++++++++++++++---- arch/arm64/lib/copy_template.S | 181 ------------- arch/arm64/lib/copy_to_user.S | 391 +++++++++++++++++++++++---- 4 files changed, 564 insertions(+), 312 deletions(-) delete mode 100644 arch/arm64/lib/copy_template.S