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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 16 May 2022 09:49:05 +0200
From:   Greg KH <greg@...ah.com>
To:     Miguel Ojeda <miguel.ojeda.sandonis@...il.com>,
        Arnd Bergmann <arnd@...db.de>,
        Alex Gaynor <alex.gaynor@...il.com>,
        Carlos Llamas <cmllamas@...gle.com>,
        Finn Behrens <me@...enk.de>, Gary Guo <gary@...yguo.net>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Linux Next Mailing List <linux-next@...r.kernel.org>,
        Miguel Ojeda <ojeda@...nel.org>,
        Sven Van Asbroeck <thesven73@...il.com>,
        Wayne Campbell <wcampbell1995@...il.com>,
        Wedson Almeida Filho <wedsonaf@...gle.com>
Cc:     Stephen Rothwell <sfr@...b.auug.org.au>
Subject: Re: linux-next: manual merge of the rust tree with the char-misc tree

On Mon, May 16, 2022 at 05:13:29PM +1000, Stephen Rothwell wrote:
> Hi all,
> 
> Today's linux-next merge of the rust tree got a conflict in:
> 
>   include/uapi/linux/android/binder.h
> 
> between commit:
> 
>   bd32889e841c ("binder: add BINDER_GET_EXTENDED_ERROR ioctl")
> 
> from the char-misc tree and commit:
> 
>   d637f9ec1954 ("[RFC] drivers: android: Binder IPC in Rust")
> 
> from the rust tree.
> 
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
> 
> -- 
> Cheers,
> Stephen Rothwell
> 
> diff --cc include/uapi/linux/android/binder.h
> index e6ee8cae303b,a982c30dbbf5..000000000000
> --- a/include/uapi/linux/android/binder.h
> +++ b/include/uapi/linux/android/binder.h
> @@@ -236,35 -236,21 +236,37 @@@ struct binder_frozen_status_info 
>   	__u32            async_recv;
>   };
>   
>  +/* struct binder_extened_error - extended error information
>  + * @id:		identifier for the failed operation
>  + * @command:	command as defined by binder_driver_return_protocol
>  + * @param:	parameter holding a negative errno value
>  + *
>  + * Used with BINDER_GET_EXTENDED_ERROR. This extends the error information
>  + * returned by the driver upon a failed operation. Userspace can pull this
>  + * data to properly handle specific error scenarios.
>  + */
>  +struct binder_extended_error {
>  +	__u32	id;
>  +	__u32	command;
>  +	__s32	param;
>  +};
>  +
> - #define BINDER_WRITE_READ		_IOWR('b', 1, struct binder_write_read)
> - #define BINDER_SET_IDLE_TIMEOUT		_IOW('b', 3, __s64)
> - #define BINDER_SET_MAX_THREADS		_IOW('b', 5, __u32)
> - #define BINDER_SET_IDLE_PRIORITY	_IOW('b', 6, __s32)
> - #define BINDER_SET_CONTEXT_MGR		_IOW('b', 7, __s32)
> - #define BINDER_THREAD_EXIT		_IOW('b', 8, __s32)
> - #define BINDER_VERSION			_IOWR('b', 9, struct binder_version)
> - #define BINDER_GET_NODE_DEBUG_INFO	_IOWR('b', 11, struct binder_node_debug_info)
> - #define BINDER_GET_NODE_INFO_FOR_REF	_IOWR('b', 12, struct binder_node_info_for_ref)
> - #define BINDER_SET_CONTEXT_MGR_EXT	_IOW('b', 13, struct flat_binder_object)
> - #define BINDER_FREEZE			_IOW('b', 14, struct binder_freeze_info)
> - #define BINDER_GET_FROZEN_INFO		_IOWR('b', 15, struct binder_frozen_status_info)
> - #define BINDER_ENABLE_ONEWAY_SPAM_DETECTION	_IOW('b', 16, __u32)
> - #define BINDER_GET_EXTENDED_ERROR	_IOWR('b', 17, struct binder_extended_error)
> + enum {
> + 	BINDER_WRITE_READ		= _IOWR('b', 1, struct binder_write_read),
> + 	BINDER_SET_IDLE_TIMEOUT		= _IOW('b', 3, __s64),
> + 	BINDER_SET_MAX_THREADS		= _IOW('b', 5, __u32),
> + 	BINDER_SET_IDLE_PRIORITY	= _IOW('b', 6, __s32),
> + 	BINDER_SET_CONTEXT_MGR		= _IOW('b', 7, __s32),
> + 	BINDER_THREAD_EXIT		= _IOW('b', 8, __s32),
> + 	BINDER_VERSION			= _IOWR('b', 9, struct binder_version),
> + 	BINDER_GET_NODE_DEBUG_INFO	= _IOWR('b', 11, struct binder_node_debug_info),
> + 	BINDER_GET_NODE_INFO_FOR_REF	= _IOWR('b', 12, struct binder_node_info_for_ref),
> + 	BINDER_SET_CONTEXT_MGR_EXT	= _IOW('b', 13, struct flat_binder_object),
> + 	BINDER_FREEZE			= _IOW('b', 14, struct binder_freeze_info),
> + 	BINDER_GET_FROZEN_INFO		= _IOWR('b', 15, struct binder_frozen_status_info),
> + 	BINDER_ENABLE_ONEWAY_SPAM_DETECTION	= _IOW('b', 16, __u32),
> ++	BINDER_GET_EXTENDED_ERROR	= _IOWR('b', 17, struct binder_extended_error),
> + };
>   

Odd, why does the Rust binder implementation require the IOCTL
definitions to be in an enum instead of a #define?

If that's required, I can take that type of change now to prevent merge
issues in the future.

thanks,

greg k-h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ