Subject: Re: linux-next: manual merge of the char-misc tree with the driver-core tree

From: Stephen Rothwell <[email-masked]>
Date: Fri, 12 Jul 2019 10:53:40 +1000

Hi all,

On Mon, 1 Jul 2019 19:09:40 +1000 Stephen Rothwell <[email-masked]> wrote:
>
> Today's linux-next merge of the char-misc tree got a conflict in:
> 
>   drivers/hwtracing/coresight/of_coresight.c
> 
> between commit:
> 
>   418e3ea157ef ("bus_find_device: Unify the match callback with class_find_device")
> 
> from the driver-core tree and commits:
> 
>   22aa495a6477 ("coresight: Rename of_coresight to coresight-platform")
>   20961aea982e ("coresight: platform: Use fwnode handle for device search")
> 
> from the char-misc tree.
> 
> I fixed it up (I removed the file and added the following merge fix patch)
> 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.
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Mon, 1 Jul 2019 19:07:20 +1000
> Subject: [PATCH] coresight: fix for "bus_find_device: Unify the match callback
>  with class_find_device"
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>
> ---
>  drivers/hwtracing/coresight/coresight-platform.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/hwtracing/coresight/coresight-platform.c b/drivers/hwtracing/coresight/coresight-platform.c
> index 3c5ceda8db24..fc67f6ae0b3e 100644
> --- a/drivers/hwtracing/coresight/coresight-platform.c
> +++ b/drivers/hwtracing/coresight/coresight-platform.c
> @@ -37,7 +37,7 @@ static int coresight_alloc_conns(struct device *dev,
>  	return 0;
>  }
>  
> -int coresight_device_fwnode_match(struct device *dev, void *fwnode)
> +int coresight_device_fwnode_match(struct device *dev, const void *fwnode)
>  {
>  	return dev_fwnode(dev) == fwnode;
>  }

This is now a conflict between the driver-core tree and Linus' tree.

The declaration of coresight_device_fwnode_match() also needs fixing up
in drivers/hwtracing/coresight/coresight-priv.h (as done in the patch
below supplied by Nathan Chancellor).

From: Nathan Chancellor <[email-masked]>
Date: Mon, 1 Jul 2019 11:28:08 -0700
Subject: [PATCH] coresight: Make the coresight_device_fwnode_match declaration's fwnode parameter const

drivers/hwtracing/coresight/coresight.c:1051:11: error: incompatible pointer types passing 'int (struct device *, void *)' to parameter of type 'int (*)(struct device *, const void *)' [-Werror,-Wincompatible-pointer-types]
                                      coresight_device_fwnode_match);
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/device.h:173:17: note: passing argument to parameter 'match' here
                               int (*match)(struct device *dev, const void *data));
                                     ^
1 error generated.

Signed-off-by: Nathan Chancellor <[email-masked]>
---
 drivers/hwtracing/coresight/coresight-priv.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwtracing/coresight/coresight-priv.h b/drivers/hwtracing/coresight/coresight-priv.h
index 8b07fe55395a..7d401790dd7e 100644
--- a/drivers/hwtracing/coresight/coresight-priv.h
+++ b/drivers/hwtracing/coresight/coresight-priv.h
@@ -202,6 +202,6 @@ static inline void *coresight_get_uci_data(const struct amba_id *id)
 
 void coresight_release_platform_data(struct coresight_platform_data *pdata);
 
-int coresight_device_fwnode_match(struct device *dev, void *fwnode);
+int coresight_device_fwnode_match(struct device *dev, const void *fwnode);
 
 #endif
-- 
2.22.0

-- 
Cheers,
Stephen Rothwell