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 X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2E057C2D0DE for ; Wed, 1 Jan 2020 20:51:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0C99921734 for ; Wed, 1 Jan 2020 20:51:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727232AbgAAUvV (ORCPT ); Wed, 1 Jan 2020 15:51:21 -0500 Received: from mout.kundenserver.de ([217.72.192.73]:56947 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727215AbgAAUvV (ORCPT ); Wed, 1 Jan 2020 15:51:21 -0500 Received: from mail-qk1-f178.google.com ([209.85.222.178]) by mrelayeu.kundenserver.de (mreue107 [212.227.15.145]) with ESMTPSA (Nemesis) id 1MWBGG-1jG20514Qc-00Xf5u; Wed, 01 Jan 2020 21:51:19 +0100 Received: by mail-qk1-f178.google.com with SMTP id x129so30166581qke.8; Wed, 01 Jan 2020 12:51:18 -0800 (PST) X-Gm-Message-State: APjAAAWSqrOU/sHxPHKlWeKo828rBE0U0DVU7TqNMtKhhvffNl5rYXmO YAkB2W+/gVgELNz/hVD9tcVp3lLPgTX+09e4J2g= X-Google-Smtp-Source: APXvYqwPUffdxOwkYrrGlQKEUjh0DqO0/sbzUbDfmtql+dmrfAoS6A5yQuvY8II40XAftlk8yxtyRvUCyFvgSLjFMYA= X-Received: by 2002:a37:2f02:: with SMTP id v2mr61985919qkh.3.1577911877938; Wed, 01 Jan 2020 12:51:17 -0800 (PST) MIME-Version: 1.0 References: <20200101175916.558284-1-paulburton@kernel.org> In-Reply-To: <20200101175916.558284-1-paulburton@kernel.org> From: Arnd Bergmann Date: Wed, 1 Jan 2020 21:51:02 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] MIPS: Don't declare __current_thread_info globally To: Paul Burton Cc: "open list:BROADCOM NVRAM DRIVER" , "linux-kernel@vger.kernel.org" , "Jason A. Donenfeld" , Christian Brauner , Vincenzo Frascino , "# 3.4.x" Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:2rtdkpAtrO0rIVNjV1PXPRT+x8s3zFerjLVvDm+ppkfNc7XJJEK AiDvikYtt3241DVPkLSLr+K2fHRZuP4gxEPIdDvDbezRbFeJy3JkevOYVRGXRMuDFMCvCFO Lnm9lg8vSVpYV57tQa7eTEcfA8H5FjNMIQkcAR9hjp1W4Bo16HE+aCdQURqu4AYV369SPZg JKyA1VT3AeZGpVZBE1yyw== X-UI-Out-Filterresults: notjunk:1;V03:K0:AqZ9YiHFvQI=:jC67QZvuDmpFXxawCRXEsa RrW2E3H5LRNThKJnVq2V6Tz2EuehJm5Ve9ex4cVLCvN2ayOlhTf/nDxaSh3a2GwY52ssH8yO4 zn4oMlz+xNSqzkcwBsPU10rjsx5BweuGdgudFdSoQnKBQgqHUq3hAF6BYVDtJaGkOKMGokZla epXCh6sEHPoIbuBPuZ95GK/qSnulXbr2NHuy8zTp7HxL37N503i0Eg8FskyzYuhzUqHZg4fBP JgMVSg6mJf5o5iPjHEoMwqOlwprhvb3mVDWlKGMRsApdi8Sbcbrp7fBxn4yeFUZbM0ti+VGa7 tt7fcVxICve2K53j+s+IIUcjofffK66rOx7NDiHoTxV2irVnCBiR29aUO8nF2MczpQmiWcq1Q /q/kj6LKAaBhCklOt1riFBhKWS1VAR3BmkMH0aegN7rIYNQfKD5NM+1mUjkw3Vngvpr/F33sn Rhe+7m0fHO6tIYTVrxsp6CDOzxeQ+dK4PUpacTpQ0TvFWXDx0eABuEhip2DwtKVGu08SdDKVI 8regV24yt/5+HXdLNXq3u6rd01a4WGWtPE9YYAUskv4ZXQ3kT7OlZaOOzKAHW53Iv1e4+NefT D67Vs+DaDtqnf9Qqbi1CaoLAK9kwPtFGI2G250FH7hZ2dJHou23+RF04WvUrImUAoEkHrIbVS Jn+TY8XJIY9OmeDmObBsm7Vc/XtS2cppyGAjuUQZcS6inEAd/rGt1Ewka27JWuUOPAuh+Gr+c 5vhg3wCoXv4ij6BFvxB68FgFLK2W4WKrQSEOK7I7Bx9iUjn6SBAPzqa/IYuSAEf+sbqFuCxgP almClZtq4DrEQAvqURUKGNu//z1TGTj204w6VeqSD4XX35MvfreohfinUWDmGqrJkC5/VmJAM 5GOnnA/zdVa+e9DtdH7g== Sender: linux-mips-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mips@vger.kernel.org On Wed, Jan 1, 2020 at 6:57 PM Paul Burton wrote: > diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h > index 4993db40482c..aceefc3f9a1a 100644 > --- a/arch/mips/include/asm/thread_info.h > +++ b/arch/mips/include/asm/thread_info.h > @@ -50,10 +50,10 @@ struct thread_info { > } > > /* How to get the thread information struct from C. */ > -register struct thread_info *__current_thread_info __asm__("$28"); > - > static inline struct thread_info *current_thread_info(void) > { > + register struct thread_info *__current_thread_info __asm__("$28"); > + > return __current_thread_info; > } This looks like a nice fix, but are you sure it doesn't allow the compiler to reuse $28 for another purpose in the kernel under register pressure, which would break current_thread_info()? I see in the MIPS ABI document that $28 is preserved across function calls, but I don't see any indication that a function is not allowed to modify it and later restore the original content. Arnd