2024-02-15 02:30:15

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: build failure after merge of the w1 tree

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 protected]>
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 protected]>
---
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);
--
2.43.0

--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2024-02-15 08:09:24

by Greg KH

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the w1 tree

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 protected]>
> 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 protected]>
> ---
> 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

2024-02-15 13:56:57

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the w1 tree

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 <[email protected]>
>> 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 protected]>
>> ---
>> 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