From mboxrd@z Thu Jan 1 00:00:00 1970 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 37C2CC433F5 for ; Wed, 27 Apr 2022 07:15:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B500C6B0073; Wed, 27 Apr 2022 03:15:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B004A6B0075; Wed, 27 Apr 2022 03:15:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9C8706B0078; Wed, 27 Apr 2022 03:15:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.28]) by kanga.kvack.org (Postfix) with ESMTP id 8EC3C6B0073 for ; Wed, 27 Apr 2022 03:15:18 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id 73C3381CCB for ; Wed, 27 Apr 2022 07:15:18 +0000 (UTC) X-FDA: 79401797916.16.B96C713 Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.74]) by imf09.hostedemail.com (Postfix) with ESMTP id 6D60814004B for ; Wed, 27 Apr 2022 07:15:14 +0000 (UTC) Received: from mail-ua1-f48.google.com ([209.85.222.48]) by mrelayeu.kundenserver.de (mreue109 [213.165.67.113]) with ESMTPSA (Nemesis) id 1N5mOb-1nvCfv0AzD-017HSE for ; Wed, 27 Apr 2022 09:15:16 +0200 Received: by mail-ua1-f48.google.com with SMTP id g22so291656uam.12 for ; Wed, 27 Apr 2022 00:15:15 -0700 (PDT) X-Gm-Message-State: AOAM533lYr2uy/XWMsgnppHkor/30eo40SnEiPba3DXB7Iftr+ITpKvY iReEYxHLk2P+9QzenyYvUnbxEXYwz/kAxAurqq4= X-Google-Smtp-Source: ABdhPJwaD1kOWmwPG8YXCJoPZvqoD54e+nnssat4O6xYNRUCaG64TDt/4SOl6wpW8DE+BePexx2QnPchQt4gdqTD0N8= X-Received: by 2002:a25:c604:0:b0:645:d969:97a7 with SMTP id k4-20020a25c604000000b00645d96997a7mr20381066ybf.134.1651043704287; Wed, 27 Apr 2022 00:15:04 -0700 (PDT) MIME-Version: 1.0 References: <20220426164315.625149-1-glider@google.com> <20220426164315.625149-6-glider@google.com> In-Reply-To: <20220426164315.625149-6-glider@google.com> From: Arnd Bergmann Date: Wed, 27 Apr 2022 09:14:48 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v3 05/46] x86: asm: instrument usercopy in get_user() and __put_user_size() To: Alexander Potapenko Cc: Alexander Viro , Andrew Morton , Andrey Konovalov , Andy Lutomirski , Arnd Bergmann , Borislav Petkov , Christoph Hellwig , Christoph Lameter , David Rientjes , Dmitry Vyukov , Eric Dumazet , Greg Kroah-Hartman , Herbert Xu , Ilya Leoshkevich , Ingo Molnar , Jens Axboe , Joonsoo Kim , Kees Cook , Marco Elver , Mark Rutland , Matthew Wilcox , "Michael S. Tsirkin" , Pekka Enberg , Peter Zijlstra , Petr Mladek , Steven Rostedt , Thomas Gleixner , Vasily Gorbik , Vegard Nossum , Vlastimil Babka , kasan-dev , Linux-MM , linux-arch , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:N+FYaPKh2TJbzWbRbpVCaup3V2KXyagKRBeg+mUQEILlqR+dPb8 GR1vlSvnm9UKgL33V1GfEJ5+ggyZb1BnUAYZgTmJZMin+XYAwbsJQSImuLorLUAJg2kAxKX KMLDrR258HBLRZq1KeuHXVx/hU7dRNQdVrgnPZB6HmC76Pem5jGdyo+TaTfLWASFkeJ2aVF NsMydRbTf304cS6gKlIXQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:06wTV/X0ztw=:+z91pAVUHl/Rz8mAmrZqZw hCKRry0RsvaEWGWJ/Fyu/TnRF7MRmDI3GKJV3EmFZcL1BRTJPSW0oX20Jiv9zJqLrBZYz0Mt4 PsqiLEhfsJE75sVaPdjC6uIRF5EK6JuiLrSkwNfJognttsb+ts6VUWITZMJGOJiwt/4lJ1lNr 25hzboGNWFWaUXiGOkjd/WpZuMtR0f8LyqdG4+nZtZC1ADBBhQMbjp4I6fsOdb9CWXYCHUZ74 nIXqeH1aD26WXNo8+9uEJ5ZNjMmkLemcStCXbfqm4GmO5Im1ASkaE87jB8h8JNch5uT4Twkxi qlrs51n5/1gk/wa4pZiM/Kwbv3UMf7PAbgFnB0By7ievIux+yGc3GzkeBbDxhDGl5Ppr97MCh DWTkvVgEk6npTBkSewwZ1dcAJP6+FcOIQCDQH73CbKanIJhhhpCaNXXoiPB8ntaVkx2NJrJDX iXIiw8lVXXTVEHB5NJQlu5cv/uTC99wpEmozNrV/jMlaMEXAUxxW6tYCOvx/3k8Vi2EI6aBbc E1zDIweCyouyJ4+8Ufm6HkmJs+0nQlhOxp+A1fKUiAKJ/ANSfP9aqz2mnlF3UmsS7sMfsPFCp sQQLmndDb8SYT5g5p01aDIMsE34ktHlo3hbQKG7+jUnXD5Z75O6+Kv5j94qwyxDmwgW6CY3zy ewPEM+kzHOOsmf8fXbD748QVYD8oxC2PYSsQk2wOt5SkHwi626dRyDVtkpsAadwseUqR/xupw iWeBIRWdCI1S6wEf2vJLxJOBA21wp3uB6SAdlQgkABOThGuEADTIa8T+qalvOsZKa5TfxnAd4 ktCBtnESsL18MSdiEJPHhKLOYepaPvTCyV19PD+jjTkYZH99mw= X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 6D60814004B X-Stat-Signature: 3qua1ttadkpbyrdkbj3z46xb9etnw1gx Authentication-Results: imf09.hostedemail.com; dkim=none; dmarc=none; spf=none (imf09.hostedemail.com: domain of arnd@arndb.de has no SPF policy when checking 217.72.192.74) smtp.mailfrom=arnd@arndb.de X-Rspam-User: X-HE-Tag: 1651043714-172707 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: On Tue, Apr 26, 2022 at 6:42 PM Alexander Potapenko wrote: > @@ -99,11 +100,13 @@ extern int __get_user_bad(void); > int __ret_gu; \ > register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \ > __chk_user_ptr(ptr); \ > + instrument_copy_from_user_before((void *)&(x), ptr, sizeof(*(ptr))); \ > asm volatile("call __" #fn "_%P4" \ > : "=a" (__ret_gu), "=r" (__val_gu), \ > ASM_CALL_CONSTRAINT \ > : "0" (ptr), "i" (sizeof(*(ptr)))); \ > (x) = (__force __typeof__(*(ptr))) __val_gu; \ > + instrument_copy_from_user_after((void *)&(x), ptr, sizeof(*(ptr)), 0); \ Isn't "ptr" the original pointer here? I think what happened with the reported warning is that you get one output line for every instance this is used in. There should probably be a __auto_type __ptr = (ptr); at the beginning of the macro to ensure that 'ptr' is only evaluated once. >>> arch/x86/kernel/signal.c:360:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long long [usertype] * @@ It would also make sense to add the missing __user annotation in this line, but I suspect there are others like it in drivers. Arnd