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 7D2B5C6FD19 for ; Mon, 13 Mar 2023 11:03:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C6ED16B0071; Mon, 13 Mar 2023 07:03:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BF7496B0072; Mon, 13 Mar 2023 07:03:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A98E56B0074; Mon, 13 Mar 2023 07:03:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 9AA2B6B0071 for ; Mon, 13 Mar 2023 07:03:52 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 620BC120A47 for ; Mon, 13 Mar 2023 11:03:52 +0000 (UTC) X-FDA: 80563589904.29.998B6FF Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197]) by imf12.hostedemail.com (Postfix) with ESMTP id C35F540024 for ; Mon, 13 Mar 2023 11:03:42 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=temperror ("DNS error when getting key") header.d=alien8.de header.s=dkim header.b=W5NtNYHA; dmarc=temperror reason="query timed out" header.from=alien8.de (policy=temperror); spf=temperror (imf12.hostedemail.com: error in processing during lookup of bp@alien8.de: DNS error) smtp.mailfrom=bp@alien8.de Received: from zn.tnic (p5de8e9fe.dip0.t-ipconnect.de [93.232.233.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 6AA151EC04DA; Mon, 13 Mar 2023 12:03:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim; t=1678705420; h=from:from: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:in-reply-to:in-reply-to: references:references; bh=LtyOPOOWBs+hlc/CXfZFBydFPquT6KOjs11AJIp5x3s=; b=W5NtNYHASJ8ymhQ56TWX2poWPntiPfwL0Jm6wgZu5FXtkL/4BQxiKuEYXM0MfJy1z/wVrb OEDBwqThoSqO6S+EXw2mqWVI1Rv1oESm2+3HriA30+euNEv/+eH6cPWSUaXB0bF/8X1zzO ypXqNIiVPvf2YY7M5mSGiC/7KcmacAE= Date: Mon, 13 Mar 2023 12:03:35 +0100 From: Borislav Petkov To: "Edgecombe, Rick P" Cc: "david@redhat.com" , "bsingharora@gmail.com" , "hpa@zytor.com" , "Syromiatnikov, Eugene" , "peterz@infradead.org" , "rdunlap@infradead.org" , "keescook@chromium.org" , "dave.hansen@linux.intel.com" , "kirill.shutemov@linux.intel.com" , "Eranian, Stephane" , "linux-mm@kvack.org" , "fweimer@redhat.com" , "nadav.amit@gmail.com" , "jannh@google.com" , "dethoma@microsoft.com" , "kcc@google.com" , "linux-arch@vger.kernel.org" , "pavel@ucw.cz" , "oleg@redhat.com" , "hjl.tools@gmail.com" , "Yang, Weijiang" , "Lutomirski, Andy" , "linux-doc@vger.kernel.org" , "arnd@arndb.de" , "tglx@linutronix.de" , "Schimpe, Christina" , "mike.kravetz@oracle.com" , "x86@kernel.org" , "akpm@linux-foundation.org" , "debug@rivosinc.com" , "jamorris@linux.microsoft.com" , "john.allen@amd.com" , "rppt@kernel.org" , "andrew.cooper3@citrix.com" , "mingo@redhat.com" , "corbet@lwn.net" , "linux-kernel@vger.kernel.org" , "linux-api@vger.kernel.org" , "gorcunov@gmail.com" Subject: Re: [PATCH v7 38/41] x86/fpu: Add helper for initing features Message-ID: <20230313110335.GAZA8DB6PNSMGOGHpw@fat_crate.local> References: <20230227222957.24501-1-rick.p.edgecombe@intel.com> <20230227222957.24501-39-rick.p.edgecombe@intel.com> <3385eaf888f4178607ce4621ae2103d08ba79994.camel@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <3385eaf888f4178607ce4621ae2103d08ba79994.camel@intel.com> X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: C35F540024 X-Stat-Signature: jy8xpikqg7um369g1ct8y35ahe7ggiut X-HE-Tag: 1678705422-583333 X-HE-Meta: U2FsdGVkX1+MbdOD3ZL8U7oNQE26TfvcH3dIpjHkJf5CzfND1S08ZNOfOUzERep4tcLj2MW7ZJ5o+W/Ii2dez9BxzIEOaKzaVsklsfzk7LgRqplnoQuaIRUrIaQ23wxA2qNLp+wQA+asQu6PrYnoYM8P/UGMIJEYdUHzbMafiZIChiKx+1o7/oVEvlIPB3bcsSj2AQr0rH7QpidZa+b18CSFxKsYfsUR7wzNJ2YuQ/nrZ9uxYpaz8KeVqtBR2MjF/5FTUEWagIDKc7lnIRnCrBISMAZy9sjo7cbcw2sxMS/ZRrG8wQkT+u+qhx0J8VapZ/pDDoIuMY7AMojLHypT510ymDsdYEdx0BYfrkNqWn752KA3UpgAB/fAON34gNTvioSKlcImw/8M0ZF9e9qQmrjSJJzNuKuoYeS2yjfmNLo9wbsx0cQX93zMogFhG6l7v8tVtuHLYowzX6JE0OFQlNorWOfCX2kAXO4/hatzq4GQH4QZkPdwnfYeiGHVUSrvpS7Cj5QmTUklSyuaMK0WZi2PnoEHPMy2xZl4I3XDADsohnbKKxwXAx/noKVKeu1MSYYwKW4NI1cmN5RKAPlghtCjcaTJuZAeWuTkQIw/ntHjDaI+N5V1oncVQX2e72RI40M3i81VZsHNxNA+MldgEp+jdmbxIXyoKvZRkyApOCZe4+Z4X6GS0RR4HosqSBvpxnR3PEgq8f+2GtMwn8ZEnSAohBg1yaofZkmAxMGBX08J3mrdNv4FN7GT+cv+HHBiMKwiFTCUF/cXw6F83kXsP16y87T2/xsBRNAXn1eTyIdRm0Dy03f6dpx2SlpidRPsU9Y5aFy1eD2O4SMjLYktW6jjervjhYxAvULw2K+vJlaupcRPncu29WHgL3xmZKfkZz6v6LPgT4tuC7v+Goau8a6z4KaetnnACvQhbvc/CY2anqd9mozR1p7O/O1LfOKKHir0kbesJDxTU7ausyq yNxa1HxV 4GalOrtzqXMkckE1WbetczXAlPLAmm7QyPvL7rPPQQLSf2cOyiDDIW4OMsNPCmew2QZEA9g6NM7wWRuOJyv+aoP33UQ8vaM++9s+jwBm2QvsLvWIY2trmPL6vgeq2F/tREBCcn6ykdYULbPRm+Qsxw8nvrg9Em4/7dldpDIlx41XX+EOf6jZK1VedU6fjBQSnR1f1in8bkABVl7QHZi6bGy74Tc/K/Ek3ztmyJzmPbaKP3CHbfECG+fRZ71dHPoWkkd3TvxOyr7jxP6yiVqO72bMIA59b4B1epSVTpTKE2NukU1NZ9GR8SWixpcTyaX/qBo5YVSILSeecECTrAIWjxQiED5rwyay8H/orV75LbgrN+NyK6nEF1y+tyk1bP/2twqQQllg9sfXHQyc3w8iD+XDKzowLsS4HcWS9rpS5ksSsls5Y0FV6DfzjVEPUh1WSt9HmjKCEZo/il1w= 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 Mon, Mar 13, 2023 at 02:45:08AM +0000, Edgecombe, Rick P wrote: > These two are from the existing code. Basically they get extracted into > a new function. I know but you can fix them while at it. > I did it up, and it makes the caller code cleaner. But I'm not sure > what to think of it. Is this not mixing two operations together? Today > get_xsave_addr() pretty much just gets a buffer offset with some > checks. Now it would compute the offset and also silently go off and > changes the buffer. Ok, so why don't you write the call site this way instead: cetregs = get_xsave_addr(xsave, XFEATURE_CET_USER); if (!cetregs) { if (xfeature_saved(xsave, XFEATURE_CET_USER)) { WARN("something's wrong with this buffer") return ...; } /* Not saved, initialize it */ init_xfeature(xsave, XFEATURE_CET_USER)); } cetregs = get_xsave_addr(xsave, XFEATURE_CET_USER); if (!cetregs) { WARN_ON("WTF") return -ENODEV; } Now it is clear what happens and it is a common code pattern of trying to get something and initializing it if it wasn't initialized yet, and then retrying... Hmm? -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette