From patchwork Mon May 8 01:44:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tong Tiangen X-Patchwork-Id: 13233992 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 4D60BC7EE22 for ; Mon, 8 May 2023 01:45:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9E62E6B0078; Sun, 7 May 2023 21:45:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 995CF6B007D; Sun, 7 May 2023 21:45:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8ABFF6B007E; Sun, 7 May 2023 21:45:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 7A6916B0078 for ; Sun, 7 May 2023 21:45:01 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id A9104A0534 for ; Mon, 8 May 2023 01:45:00 +0000 (UTC) X-FDA: 80765394360.27.7CD7BA2 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by imf06.hostedemail.com (Postfix) with ESMTP id 34FE1180004 for ; Mon, 8 May 2023 01:44:57 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=none; spf=pass (imf06.hostedemail.com: domain of tongtiangen@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=tongtiangen@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1683510298; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Zq23zzyZVMkdc/EXpTivR7acVXFe/p9y542EhEVDwrI=; b=Og7s2E61PJgjPJVGndFSeTHPlQAqlq5pm+hb8ObjE9MaOHYexAJLr1XElF5DiZS/z99qdt OT+ukn/5YbhuW2MurdzOQEeW1IczIsHWhWE0hoKcLZOdDaxdxAuJ/Pmu+YHHlhXw2wQ0gv +zIAkx73EV6rVN//dCbAl1J0OQ6n3WY= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=none; spf=pass (imf06.hostedemail.com: domain of tongtiangen@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=tongtiangen@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683510298; a=rsa-sha256; cv=none; b=ks5XkoOcHG7eSy4KX/hpXvl4YWT/7u+XynX0EhDKqAWJ+HWftZ7A9FgOSZesW/3MmC/5vI 6y7IRMp0gZjQNml5WzB1LyRJOyEjIVWPIQi7mVDbGYQDZHSl0Ei42PxFCPNBs5rESqTTse Z/hyNL4ZqOd9pWoROkNwBmCtT6oLbT8= Received: from kwepemm600017.china.huawei.com (unknown [172.30.72.55]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4QF3vr6r9rzsR5p; Mon, 8 May 2023 09:43:04 +0800 (CST) Received: from localhost.localdomain (10.175.112.125) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Mon, 8 May 2023 09:44:53 +0800 From: Tong Tiangen To: Catalin Marinas , Mark Rutland , James Morse , Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Robin Murphy , Dave Hansen , Will Deacon , Alexander Viro , , "H . Peter Anvin" CC: , , , Kefeng Wang , Guohanjun , Xie XiuQi , Tong Tiangen Subject: [PATCH -next v9 1/5] uaccess: add generic fallback version of copy_mc_to_user() Date: Mon, 8 May 2023 09:44:32 +0800 Message-ID: <20230508014436.198717-2-tongtiangen@huawei.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230508014436.198717-1-tongtiangen@huawei.com> References: <20230508014436.198717-1-tongtiangen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.112.125] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600017.china.huawei.com (7.193.23.234) X-CFilter-Loop: Reflected X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 34FE1180004 X-Stat-Signature: gap84hukt35arow1j3aukjnicokx6atb X-HE-Tag: 1683510297-533786 X-HE-Meta: U2FsdGVkX19GqGArUSMRvfcAyr337dev9VmWrfMH3NjSpmxzvO1CsE6we+vjceqxaUxtV+pyiInUaTcbEOd1cPx1AEAAlEnZjQizUZki2JzTX8gAhg/2X3j9gaaAJBI5663q9Dp/DNUQsjtLaQlA5g58LtDPzjWC+abyDx1JN2A5eQYxDh0gkZVgtYAafBmsS7SYYggBHR/KXCa1cIh0ICl4rNYlvooTw+m9K65jdKoAHYpncLNrCcmYrLd2k7WSrpiQ2ZdMi7sgWF0jNsM98cRK4ANsW/pzv95wSX4I7C1V8GNx7f34GhlgNK01oRGXmKwI4Eh6QB+gACgv5OEj4gBlV+QsPQ5ohM1GGXsRJAQ/cmn/p1PzZpcmAIISjbZ0TrHcteMsFGi1y/h5tdTigwoY+i2nKSaWV4gqxxlzJFbytLFpEM7tVPyPsxGZ9PZaE9jTkmLwrzjWeZkpqfVZpzexW0YNroDSJuRli325DyVLqCjbPkmB+ftNu59y5E/WC9Weg8yaL0Y8itML2c8xWkX1JECKWwcsW/sHK68IiH7hpJ4cPeJkdEqpjkFE8+Ok002c1teDkHCNN1vsn3w8hUJMxlJIcfveBHcJ6NytNFjQ0OkhGfhGD1BPyGu5/E0ypy7LTLYGGpU6Cr3qYEOZaL2x60eTLefWgJKGp1vE7VsNBMZubbSIuHamltw+MCnavSZiIoxeRmbjxnRlPCpR1nLETdkZGMj28ej8CIku1X5C0R1aSMqyy1tDsM+7PBdi7Qw0wgWcSc4NuBWZjrptG55jk8sN00x6GBE+ch19vfIH7xeoK36PvTS2iyQrWAb3QB8PgTNx7emnZqyjarFdehSRtag+oFvBcREfLERbEP7MPdreUAlTeXqqzAR2ADQVaE65Aifq6UvGezSbOQPsG2LKRA9Kv+K5Y/DPZjjNOSZUXmKur+6FMgR8/7D5PWRa9ldTQdfKMLWLFh5EVxz PbRsCsYK J1nvIrG4pFsREpRGMBVasWyNcaOQlbiXbhkYRbIhmAD5ymLz9mnVB5EXgXqf6WmfENUutKRlY6HI/oTOQiqZxStiW0b/zDgu+6gMlX0DqvhTkkSK9AfO9OocsHlGjwKO3AXWirZ3/eVs452Fmx6OT6q1p8HAmGzNqZW5sAoh9b9u+WVYtQg+GnBzHNPyV35zJSyDb 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: x86/powerpc has it's implementation of copy_mc_to_user(), we add generic fallback in include/linux/uaccess.h prepare for other architechures to enable CONFIG_ARCH_HAS_COPY_MC. Signed-off-by: Tong Tiangen Acked-by: Michael Ellerman --- arch/powerpc/include/asm/uaccess.h | 1 + arch/x86/include/asm/uaccess.h | 1 + include/linux/uaccess.h | 9 +++++++++ 3 files changed, 11 insertions(+) diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h index a2d255aa9627..1713dff36568 100644 --- a/arch/powerpc/include/asm/uaccess.h +++ b/arch/powerpc/include/asm/uaccess.h @@ -381,6 +381,7 @@ copy_mc_to_user(void __user *to, const void *from, unsigned long n) return n; } +#define copy_mc_to_user copy_mc_to_user #endif extern long __copy_from_user_flushcache(void *dst, const void __user *src, diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h index 457e814712af..37d3c078d768 100644 --- a/arch/x86/include/asm/uaccess.h +++ b/arch/x86/include/asm/uaccess.h @@ -573,6 +573,7 @@ copy_mc_to_kernel(void *to, const void *from, unsigned len); unsigned long __must_check copy_mc_to_user(void *to, const void *from, unsigned len); +#define copy_mc_to_user copy_mc_to_user #endif /* diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h index 3064314f4832..550287c92990 100644 --- a/include/linux/uaccess.h +++ b/include/linux/uaccess.h @@ -205,6 +205,15 @@ copy_mc_to_kernel(void *dst, const void *src, size_t cnt) } #endif +#ifndef copy_mc_to_user +static inline unsigned long __must_check +copy_mc_to_user(void *dst, const void *src, size_t cnt) +{ + check_object_size(src, cnt, true); + return raw_copy_to_user(dst, src, cnt); +} +#endif + static __always_inline void pagefault_disabled_inc(void) { current->pagefault_disabled++;