Subject: Re: linux-next: build failure after merge of the w1 tree

From: Greg KH <[email-masked]>
Date: Thu, 15 Feb 2024 09:05:56 +0100

On Thu, Feb 15, 2024 at 01:29:52PM +1100, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the w1 tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
> 
> drivers/w1/masters/w1-uart.c:314:24: error: initialization of 'size_t (*)(struct serdev_device *, const u8 *, size_t)' {aka 'long unsigned int (*)(struct serdev_device *, const unsigned char *, long unsigned int)'} from incompatible pointer type 'ssize_t (*)(struct serdev_device *, const u8 *, size_t)' {aka 'long int (*)(struct serdev_device *, const unsigned char *, long unsigned int)'} [-Werror=incompatible-pointer-types]
>   314 |         .receive_buf = w1_uart_serdev_receive_buf,
>       |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/w1/masters/w1-uart.c:314:24: note: (near initialization for 'w1_uart_serdev_ops.receive_buf')
> 
> Caused by commit
> 
>   178cf9db9e6d ("w1: add UART w1 bus driver")
> 
> interacting with commit
> 
>   fed99212acae ("treewide, serdev: change receive_buf() return type to size_t")
> 
> from the tty tree.
> 
> I have applied the following merge resolution patch:
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Thu, 15 Feb 2024 13:23:35 +1100
> Subject: [PATCH] fixup for "w1: add UART w1 bus driver"
> 
> interacting with "treewide, serdev: change receive_buf() return type to size_t"
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>
> ---
>  drivers/w1/masters/w1-uart.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/w1/masters/w1-uart.c b/drivers/w1/masters/w1-uart.c
> index 6950d29d7dac..a31782e56ba7 100644
> --- a/drivers/w1/masters/w1-uart.c
> +++ b/drivers/w1/masters/w1-uart.c
> @@ -289,7 +289,7 @@ static int w1_uart_serdev_tx_rx(struct w1_uart_device *w1dev,
>  	return ret;
>  }
>  
> -static ssize_t w1_uart_serdev_receive_buf(struct serdev_device *serdev,
> +static size_t w1_uart_serdev_receive_buf(struct serdev_device *serdev,
>  					  const u8 *buf, size_t count)
>  {
>  	struct w1_uart_device *w1dev = serdev_device_get_drvdata(serdev);

Looks good to me.

Krzysztof, want to pull in the w1 changes to my tty tree and make this
change on top of it so that everything works properly going forward?

Or do you want to handle this when stuff is merged by Linus during -rc1?

thanks,

greg k-h