All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Uros Bizjak <ubizjak@gmail.com>
Cc: linux-kernel@vger.kernel.org, "Rafael J. Wysocki" <rafael@kernel.org>
Subject: Re: [PATCH] devres: Correclty strip percpu address space of devm_free_percpu() argument
Date: Fri, 30 Aug 2024 11:54:40 +0200	[thread overview]
Message-ID: <2024083059-crummy-backrest-3b6c@gregkh> (raw)
In-Reply-To: <20240830083406.9695-1-ubizjak@gmail.com>

On Fri, Aug 30, 2024 at 10:33:52AM +0200, Uros Bizjak wrote:
> devm_free_percpu() calls devres_release() with a pointer in percpu
> address space. devres_release() expects pointers in the generic address
> space, so address space needs to be stripped from the argument.
> 
> When strict percpu address space checks are enabled, then the current
> direct cast from the percpu address space to the generic address space
> fails the compilation on x86_64 with:
> 
> devres.c:1234:32: error: cast to generic address space pointer from disjoint ‘__seg_gs’ address space pointer
> 
> Add intermediate casts to unsigned long to remove address space of
> the pointer before casting it to the generic AS, as advised in [1]
> and [2].
> 
> Side note: sparse still requires __force, although the documentation
> [2] allows casts to unsigned long without __force attribute.
> 
> Found by GCC's named address space checks.
> 
> There were no changes in the resulting object file.
> 
> [1] https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html#x86-Named-Address-Spaces
> [2] https://sparse.docs.kernel.org/en/latest/annotations.html#address-space-name
> 
> Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: "Rafael J. Wysocki" <rafael@kernel.org>
> ---
>  drivers/base/devres.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/base/devres.c b/drivers/base/devres.c
> index a2ce0ead06a6..2152eec0c135 100644
> --- a/drivers/base/devres.c
> +++ b/drivers/base/devres.c
> @@ -1231,6 +1231,6 @@ void devm_free_percpu(struct device *dev, void __percpu *pdata)
>  	 * devm_free_pages() does.
>  	 */
>  	WARN_ON(devres_release(dev, devm_percpu_release, devm_percpu_match,
> -			       (__force void *)pdata));
> +			       (void *)(__force unsigned long)pdata));
>  }
>  EXPORT_SYMBOL_GPL(devm_free_percpu);
> -- 
> 2.46.0
> 

What commit id does this fix?

thanks,

greg k-h

  reply	other threads:[~2024-08-30  9:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-30  8:33 [PATCH] devres: Correclty strip percpu address space of devm_free_percpu() argument Uros Bizjak
2024-08-30  9:54 ` Greg Kroah-Hartman [this message]
2024-08-30 10:20   ` Uros Bizjak

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=2024083059-crummy-backrest-3b6c@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=ubizjak@gmail.com \
    /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.