lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251023164408.GB2090923@ax162>
Date: Thu, 23 Oct 2025 18:44:08 +0200
From: Nathan Chancellor <nathan@...nel.org>
To: Rasmus Villemoes <linux@...musvillemoes.dk>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
	Alexander Viro <viro@...iv.linux.org.uk>,
	Christian Brauner <brauner@...nel.org>,
	linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
	linux-kbuild@...r.kernel.org, David Sterba <dsterba@...e.com>,
	Nicolas Schier <nsc@...nel.org>
Subject: Re: [PATCH] fs/pipe: stop duplicating union pipe_index declaration

On Thu, Oct 23, 2025 at 10:21:42AM +0200, Rasmus Villemoes wrote:
> Now that we build with -fms-extensions, union pipe_index can be
> included as an anonymous member in struct pipe_inode_info, avoiding
> the duplication.
> 
> Signed-off-by: Rasmus Villemoes <linux@...musvillemoes.dk>
> ---
> Do we want to do this as well? At the very least it would give some
> more test coverage if this could be in -next for most of a cycle.

Yeah, this would also be a good conversion example so we could include
it in kbuild-next with the appropriate Acks. We probably do not want to
take too many other conversions in the initial pull. If people really
want to use this in other places for 6.19, we should probably do a
shared branch for these changes that maintainers could pull into their
own trees.

> Context for new people:
> 
> https://lore.kernel.org/lkml/CAHk-=wjeZwww6Zswn6F_iZTpUihTSNKYppLqj36iQDDhfntuEw@mail.gmail.com/
> https://lore.kernel.org/linux-kbuild/20251020142228.1819871-1-linux@rasmusvillemoes.dk/
> 
>  include/linux/pipe_fs_i.h | 15 +--------------
>  1 file changed, 1 insertion(+), 14 deletions(-)
> 
> diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
> index 9d42d473d201..80539972e569 100644
> --- a/include/linux/pipe_fs_i.h
> +++ b/include/linux/pipe_fs_i.h
> @@ -44,12 +44,6 @@ typedef unsigned int pipe_index_t;
>  typedef unsigned short pipe_index_t;
>  #endif
>  
> -/*
> - * We have to declare this outside 'struct pipe_inode_info',
> - * but then we can't use 'union pipe_index' for an anonymous
> - * union, so we end up having to duplicate this declaration
> - * below. Annoying.
> - */
>  union pipe_index {
>  	unsigned long head_tail;
>  	struct {
> @@ -87,14 +81,7 @@ struct pipe_inode_info {
>  	struct mutex mutex;
>  	wait_queue_head_t rd_wait, wr_wait;
>  
> -	/* This has to match the 'union pipe_index' above */
> -	union {
> -		unsigned long head_tail;
> -		struct {
> -			pipe_index_t head;
> -			pipe_index_t tail;
> -		};
> -	};
> +	union pipe_index;
>  
>  	unsigned int max_usage;
>  	unsigned int ring_size;
> 
> base-commit: 778740ee2d00e5c04d0c8ffd9c3beea89b1ec554
> -- 
> 2.51.0
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ