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

Message ID 20240215132952.6c83ab23@canb.auug.org.au
State New
Headers
Series linux-next: build failure after merge of the w1 tree |

Commit Message

Stephen Rothwell Feb. 15, 2024, 2:29 a.m. UTC
  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 <sfr@canb.auug.org.au>
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 <sfr@canb.auug.org.au>
---
 drivers/w1/masters/w1-uart.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Greg KH Feb. 15, 2024, 8:05 a.m. UTC | #1
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 <sfr@canb.auug.org.au>
> 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 <sfr@canb.auug.org.au>
> ---
>  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
  
Krzysztof Kozlowski Feb. 15, 2024, 1:54 p.m. UTC | #2
On 15/02/2024 09:05, Greg KH wrote:
> 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 <sfr@canb.auug.org.au>
>> 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 <sfr@canb.auug.org.au>
>> ---
>>  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?

Sure, I will base my branch on top of your tty-next. Currently the HEAD
is: 6cc3028f797a ("tty: vt: decrypt magic constants in vc_is_control()")


Best regards,
Krzysztof
  

Patch

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);