Subject: Re: [PATCH v5 3/4] net: socket: simplify dev_ifconf handling

From: Christoph Hellwig <[email-masked]>
Date: Wed, 21 Jul 2021 09:32:50 +0200

> The implementation can be simplified further, based on the
> knowledge that the dynamic registration is only ever used
> > for IPv4.

I think dropping register_gifconf (which seems like a nice cleanup!)
needs to be a separate prep patch to not make this too confusing.

> index e6231837aff5..4727c7a3a988 100644
> --- a/include/linux/compat.h
> +++ b/include/linux/compat.h
> @@ -104,6 +104,11 @@ struct compat_ifmap {
>  	unsigned char port;
>  };
>  
> +struct compat_ifconf {
> +	compat_int_t	ifc_len;                /* size of buffer */
> +	compat_uptr_t	ifcbuf;
> +};
> +
>  #ifdef CONFIG_COMPAT
>  
>  #ifndef compat_user_stack_pointer
> @@ -326,12 +331,6 @@ typedef struct compat_sigevent {
>  	} _sigev_un;
>  } compat_sigevent_t;
>  
> -struct compat_if_settings {
> -	unsigned int type;	/* Type of physical device or protocol */
> -	unsigned int size;	/* Size of the data allocated by the caller */
> -	compat_uptr_t ifs_ifsu;	/* union of pointers */
> -};

Does this actually compile as-is?  It adds a second definition of
compat_ifconf but removes the still used compat_if_settings?

Maybe it would be a better idea to add a prep patch that makes as much
as possible of compat.h available unconditionally instead of all these
little moves.