Subject: Re: linux-next: Tree for Mar 18 (drivers/base/power/sysfs.c)

From: Stephen Rothwell <[email-masked]>
Date: Thu, 19 Mar 2020 14:20:02 +1100

Hi Randy,

On Wed, 18 Mar 2020 09:14:29 -0700 Randy Dunlap <[email-masked]> wrote:
>
> on i386:
> 
> ../drivers/base/power/sysfs.c: In function ‘dpm_sysfs_change_owner’:
> ../drivers/base/power/sysfs.c:708:44: error: passing argument 2 of ‘sysfs_group_change_owner’ from incompatible pointer type [-Werror=incompatible-pointer-types]
>   rc = sysfs_group_change_owner(&dev->kobj, &pm_attr_group, kuid, kgid);
>                                             ^
> In file included from ../include/linux/kobject.h:20:0,
>                  from ../include/linux/device.h:17,
>                  from ../drivers/base/power/sysfs.c:3:
> ../include/linux/sysfs.h:576:19: note: expected ‘const struct attribute_group **’ but argument is of type ‘const struct attribute_group *’
>  static inline int sysfs_group_change_owner(struct kobject *kobj,
>                    ^~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/base/power/sysfs.c:714:16: error: passing argument 2 of ‘sysfs_group_change_owner’ from incompatible pointer type [-Werror=incompatible-pointer-types]
>     &dev->kobj, &pm_runtime_attr_group, kuid, kgid);
>                 ^
> In file included from ../include/linux/kobject.h:20:0,
>                  from ../include/linux/device.h:17,
>                  from ../drivers/base/power/sysfs.c:3:
> ../include/linux/sysfs.h:576:19: note: expected ‘const struct attribute_group **’ but argument is of type ‘const struct attribute_group *’
>  static inline int sysfs_group_change_owner(struct kobject *kobj,
>                    ^~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/base/power/sysfs.c:720:45: error: passing argument 2 of ‘sysfs_group_change_owner’ from incompatible pointer type [-Werror=incompatible-pointer-types]
>    rc = sysfs_group_change_owner(&dev->kobj, &pm_wakeup_attr_group,
>                                              ^
> In file included from ../include/linux/kobject.h:20:0,
>                  from ../include/linux/device.h:17,
>                  from ../drivers/base/power/sysfs.c:3:
> ../include/linux/sysfs.h:576:19: note: expected ‘const struct attribute_group **’ but argument is of type ‘const struct attribute_group *’
>  static inline int sysfs_group_change_owner(struct kobject *kobj,
>                    ^~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/base/power/sysfs.c:732:16: error: passing argument 2 of ‘sysfs_group_change_owner’ from incompatible pointer type [-Werror=incompatible-pointer-types]
>     &dev->kobj, &pm_qos_latency_tolerance_attr_group, kuid,
>                 ^
> In file included from ../include/linux/kobject.h:20:0,
>                  from ../include/linux/device.h:17,
>                  from ../drivers/base/power/sysfs.c:3:
> ../include/linux/sysfs.h:576:19: note: expected ‘const struct attribute_group **’ but argument is of type ‘const struct attribute_group *’
>  static inline int sysfs_group_change_owner(struct kobject *kobj,
>                    ^~~~~~~~~~~~~~~~~~~~~~~~

Caused by commitCONFIG_SYSFS

  303a42769c4c ("sysfs: add sysfs_group{s}_change_owner()")

from the net-next tree.

The CONFIG_SYSFS declaration of sysfs_group_change_owner() is different
from the !CONFIG_SYSFS version.

-- 
Cheers,
Stephen Rothwell