Re: [PATCH 1/3] err.h: add ERR_PTR_CONST macro

From: Christian Marangi

Date: Wed Oct 29 2025 - 11:39:01 EST


On Wed, Oct 29, 2025 at 05:32:48PM +0200, Andy Shevchenko wrote:
> On Wed, Oct 29, 2025 at 02:33:19PM +0100, Christian Marangi wrote:
> > Add ERR_PTR_CONST macro to initialize global variables with error
>
> ERR_PTR_CONST()
>
> > pointers. This might be useful for specific case where there is a global
> > variables initialized to an error condition and then later set to the
> > real handle once probe finish/completes.
>
> Okay, this has two caveats:
>
> 1) naming is bad as it suggests something about const qualifier (and not, it's
> not about that at all);
>
> 2) it doesn't explain what's wrong with ERR_PTR().
>

It can't be used for global variables as it does cause compilation
error.

I wanted to use ERR_PTR to set the __smem handle instead of freecode
(void *) -EPROBE_DEFER and notice the compiler doesn't like using
ERR_PTR().

Then the problem is clear as static declaration require constant value
for initialization and ERR_PTR is a inline function.

This is why ERR_PTR_CONST following the pattern that was used for
FIELD_PREP -> FIELD_PREP_CONST that was also introduced for similar
case.

So yes this is specific for case of static global variables.

> ...
>
> Note, I'm not objecting an idea as a whole.
>
> --
> With Best Regards,
> Andy Shevchenko
>
>

--
Ansuel