All of lore.kernel.org
 help / color / mirror / Atom feed
From: Petr Mladek <pmladek@suse.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	mm-commits@vger.kernel.org, stable@vger.kernel.org,
	nathan@kernel.org, hca@linux.ibm.com, gor@linux.ibm.com,
	ansuelsmth@gmail.com, andersson@kernel.org,
	aleksander.lobakin@intel.com, agordeev@linux.ibm.com,
	arnd@arndb.de, Tamir Duberstein <tamird@kernel.org>
Subject: Re: + errh-use-__always_inline-on-all-error-pointer-helpers.patch added to mm-nonmm-unstable branch
Date: Tue, 2 Jun 2026 14:40:56 +0200	[thread overview]
Message-ID: <ah7PWK4gTdOYG1t_@pathway> (raw)
In-Reply-To: <ah6WDkwO8eYY5f2a@ashevche-desk.local>

Adding Tamir into Cc.

On Tue 2026-06-02 11:36:30, Andy Shevchenko wrote:
> On Tue, May 26, 2026 at 11:40:59AM -0700, Andrew Morton wrote:
> 
> > The patch titled
> >      Subject: err.h: use __always_inline on all error pointer helpers
> > has been added to the -mm mm-nonmm-unstable branch.  Its filename is
> >      errh-use-__always_inline-on-all-error-pointer-helpers.patch
> > 
> > This patch will shortly appear at
> >      https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/errh-use-__always_inline-on-all-error-pointer-helpers.patch
> 
> Petr, shouldn't this also fix the problem with old (buggy) GCC for xtensa
> (IIRC) that we encountered in some tests a couple of months ago?

It might here there as well. Unfortunately, I could not test it easily
because it required some old GCC.

I wonder if Tamir could try to revert the commit 8901ac9d2c7eb8ed
("printf: Compile the kunit test with DISABLE_BRANCH_PROFILING")
and try this patch instead.

Best Regards,
Petr

> > ------------------------------------------------------
> > From: Arnd Bergmann <arnd@arndb.de>
> > Subject: err.h: use __always_inline on all error pointer helpers
> > Date: Tue, 26 May 2026 12:18:41 +0200
> > 
> > While testing randconfig builds on s390, I came across a link failure with
> > CONFIG_DMA_SHARED_BUFFER disabled:
> > 
> > ERROR: modpost: "dma_buf_put" [drivers/iommu/iommufd/iommufd.ko] undefined!
> > 
> > The problem here is that IS_ERR() is not inlined and dead code elimination
> > fails as a consequence.
> > 
> > The err.h helpers all turn into a trivial assignment of a bit mask and
> > should never result in a function call, so force them to always be inline.
> > This should generally result in better object code aside from avoiding
> > the link failure above.
> > 
> > Link: https://lore.kernel.org/20260526101851.2495110-1-arnd@kernel.org
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com>
> > Cc: Alexander Gordeev <agordeev@linux.ibm.com>
> > Cc: Andriy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Cc: Ansuel Smith <ansuelsmth@gmail.com>
> > Cc: Bjorn Andersson <andersson@kernel.org>
> > Cc: Heiko Carstens <hca@linux.ibm.com>
> > Cc: Nathan Chancellor <nathan@kernel.org>
> > Cc: Vasily Gorbik <gor@linux.ibm.com>
> > Cc: <stable@vger.kernel.org>
> > Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> > ---
> > 
> >  include/linux/err.h |   12 ++++++------
> >  1 file changed, 6 insertions(+), 6 deletions(-)
> > 
> > --- a/include/linux/err.h~errh-use-__always_inline-on-all-error-pointer-helpers
> > +++ a/include/linux/err.h
> > @@ -36,7 +36,7 @@
> >   *
> >   * Return: A pointer with @error encoded within its value.
> >   */
> > -static inline void * __must_check ERR_PTR(long error)
> > +static __always_inline void * __must_check ERR_PTR(long error)
> >  {
> >  	return (void *) error;
> >  }
> > @@ -60,7 +60,7 @@ static inline void * __must_check ERR_PT
> >   * @ptr: An error pointer.
> >   * Return: The error code within @ptr.
> >   */
> > -static inline long __must_check PTR_ERR(__force const void *ptr)
> > +static __always_inline long __must_check PTR_ERR(__force const void *ptr)
> >  {
> >  	return (long) ptr;
> >  }
> > @@ -73,7 +73,7 @@ static inline long __must_check PTR_ERR(
> >   * @ptr: The pointer to check.
> >   * Return: true if @ptr is an error pointer, false otherwise.
> >   */
> > -static inline bool __must_check IS_ERR(__force const void *ptr)
> > +static __always_inline bool __must_check IS_ERR(__force const void *ptr)
> >  {
> >  	return IS_ERR_VALUE((unsigned long)ptr);
> >  }
> > @@ -87,7 +87,7 @@ static inline bool __must_check IS_ERR(_
> >   *
> >   * Like IS_ERR(), but also returns true for a null pointer.
> >   */
> > -static inline bool __must_check IS_ERR_OR_NULL(__force const void *ptr)
> > +static __always_inline bool __must_check IS_ERR_OR_NULL(__force const void *ptr)
> >  {
> >  	return unlikely(!ptr) || IS_ERR_VALUE((unsigned long)ptr);
> >  }
> > @@ -99,7 +99,7 @@ static inline bool __must_check IS_ERR_O
> >   * Explicitly cast an error-valued pointer to another pointer type in such a
> >   * way as to make it clear that's what's going on.
> >   */
> > -static inline void * __must_check ERR_CAST(__force const void *ptr)
> > +static __always_inline void * __must_check ERR_CAST(__force const void *ptr)
> >  {
> >  	/* cast away the const */
> >  	return (void *) ptr;
> > @@ -122,7 +122,7 @@ static inline void * __must_check ERR_CA
> >   *
> >   * Return: The error code within @ptr if it is an error pointer; 0 otherwise.
> >   */
> > -static inline int __must_check PTR_ERR_OR_ZERO(__force const void *ptr)
> > +static __always_inline int __must_check PTR_ERR_OR_ZERO(__force const void *ptr)
> >  {
> >  	if (IS_ERR(ptr))
> >  		return PTR_ERR(ptr);
> 
> -- 
> With Best Regards,
> Andy Shevchenko
> 

  reply	other threads:[~2026-06-02 12:41 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-26 18:40 + errh-use-__always_inline-on-all-error-pointer-helpers.patch added to mm-nonmm-unstable branch Andrew Morton
2026-06-02  8:36 ` Andy Shevchenko
2026-06-02 12:40   ` Petr Mladek [this message]
2026-06-02 13:46     ` Tamir Duberstein

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ah7PWK4gTdOYG1t_@pathway \
    --to=pmladek@suse.com \
    --cc=agordeev@linux.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=aleksander.lobakin@intel.com \
    --cc=andersson@kernel.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=ansuelsmth@gmail.com \
    --cc=arnd@arndb.de \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=mm-commits@vger.kernel.org \
    --cc=nathan@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tamird@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.