Re: linux-next: build failure after merge of the driver-core tree

Stephen Rothwell
2022-11-28T12:45:03Z

[-- Attachment #1: Type: text/plain, Size: 2187 bytes --]

Hi Greg,

On Mon, 28 Nov 2022 12:50:03 +0100 Greg KH <greg@kroah.com> wrote:
>
> On Mon, Nov 28, 2022 at 01:36:00PM +1100, Stephen Rothwell wrote:
> >
> > After merging the driver-core tree, today's linux-next build (powerpc
> > ppc64_defconfig) failed like this:
> >
> > arch/powerpc/platforms/book3s/vas-api.c: In function 'vas_register_coproc_api':
> > arch/powerpc/platforms/book3s/vas-api.c:590:38: error: assignment to 'char * (*)(const struct device *, umode_t *)' {aka 'char * (*)(const struct device *, short unsigned int *)'} from incompatible pointer type 'char * (*)(struct device *, umode_t *)' {aka 'char * (*)(struct device *, short unsigned int *)'} [-Werror=incompatible-pointer-types]
> > 590 | coproc_device.class->devnode = coproc_devnode;
> > | ^
> > drivers/misc/cxl/file.c: In function 'cxl_file_init':
> > drivers/misc/cxl/file.c:687:28: error: assignment to 'char * (*)(const struct device *, umode_t *)' {aka 'char * (*)(const struct device *, short unsigned int *)'} from incompatible pointer type 'char * (*)(struct device *, umode_t *)' {aka 'char * (*)(struct device *, short unsigned int *)'} [-Werror=incompatible-pointer-types]
> > 687 | cxl_class->devnode = cxl_devnode;
> > | ^
> >
> > Caused by commit
> >
> > ff62b8e6588f ("driver core: make struct class.devnode() take a const *")
> >
> > I have used the driver-core tree from next-20221125 for today.
>
> Hm, how do we resolve problems like this where an api changes in my
> branch but needs to be updated in another branch that is not in Linus's
> tree yet?

That is not the case here:

$ git show ff62b8e6588f:arch/powerpc/platforms/book3s/vas-api.c | grep coproc_devnode
static char *coproc_devnode(struct device *dev, umode_t *mode)
coproc_device.class->devnode = coproc_devnode;
$ git show ff62b8e6588f:drivers/misc/cxl/file.c | grep cxl_devnode
static char *cxl_devnode(struct device *dev, umode_t *mode)
cxl_class->devnode = cxl_devnode;

You just need to add a commit to your tree that updates the missed cases.
--
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]