tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git bus_type_removal head: 4fe33425a6308e00d6bbe641e66abd3e78f45c3a commit: ded32ca684d535165ce291bf5cfb9d2f2eae1550 [11/16] powerpc: vio_cmo: use dev_groups and not dev_attrs for bus_type config: powerpc-defconfig (attached as .config) compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout ded32ca684d535165ce291bf5cfb9d2f2eae1550 # save the attached .config to linux build tree make.cross ARCH=powerpc
All errors (new ones prefixed by >>):
In file included from include/linux/kobject.h:21:0,
from include/linux/device.h:17,
from include/linux/node.h:17,
from include/linux/cpu.h:16,
from arch/powerpc/platforms/pseries/vio.c:17:
>> arch/powerpc/platforms/pseries/vio.c:1002:23: error:
>> 'cmo_allocs_failed_show' undeclared here (not in a function)
static DEVICE_ATTR_RW(cmo_allocs_failed);
^
include/linux/sysfs.h:103:10: note: in definition of macro '__ATTR'
.show = _show, \
^~~~~
include/linux/device.h:586:45: note: in expansion of macro '__ATTR_RW'
struct device_attribute dev_attr_##_name = __ATTR_RW(_name)
^~~~~~~~~
arch/powerpc/platforms/pseries/vio.c:1002:8: note: in expansion of macro
'DEVICE_ATTR_RW'
static DEVICE_ATTR_RW(cmo_allocs_failed);
^~~~~~~~~~~~~~
>> arch/powerpc/platforms/pseries/vio.c:1019:16: error: conflicting types for
>> 'cmo_entitled_show'
static ssize_t cmo_##name##_show(struct bus_type *bt, char *buf) \
^
arch/powerpc/platforms/pseries/vio.c:1033:1: note: in expansion of macro
'viobus_cmo_rd_attr'
viobus_cmo_rd_attr(entitled);
^~~~~~~~~~~~~~~~~~
arch/powerpc/platforms/pseries/vio.c:951:16: note: previous definition of
'cmo_entitled_show' was here
static ssize_t cmo_##name##_show(struct device *dev, \
^
arch/powerpc/platforms/pseries/vio.c:989:1: note: in expansion of macro
'viodev_cmo_rd_attr'
viodev_cmo_rd_attr(entitled);
^~~~~~~~~~~~~~~~~~
>> arch/powerpc/platforms/pseries/vio.c:1019:16: error: conflicting types for
>> 'cmo_desired_show'
static ssize_t cmo_##name##_show(struct bus_type *bt, char *buf) \
^
arch/powerpc/platforms/pseries/vio.c:1036:1: note: in expansion of macro
'viobus_cmo_rd_attr'
viobus_cmo_rd_attr(desired);
^~~~~~~~~~~~~~~~~~
arch/powerpc/platforms/pseries/vio.c:951:16: note: previous definition of
'cmo_desired_show' was here
static ssize_t cmo_##name##_show(struct device *dev, \
^
arch/powerpc/platforms/pseries/vio.c:988:1: note: in expansion of macro
'viodev_cmo_rd_attr'
viodev_cmo_rd_attr(desired);
^~~~~~~~~~~~~~~~~~
In file included from include/linux/node.h:17:0,
from include/linux/cpu.h:16,
from arch/powerpc/platforms/pseries/vio.c:17:
include/linux/device.h:588:26: error: redefinition of 'dev_attr_name'
struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
^
arch/powerpc/platforms/pseries/vio.c:1547:8: note: in expansion of macro
'DEVICE_ATTR_RO'
static DEVICE_ATTR_RO(name);
^~~~~~~~~~~~~~
include/linux/device.h:588:26: note: previous definition of 'dev_attr_name'
was here
struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
^
arch/powerpc/platforms/pseries/vio.c:996:8: note: in expansion of macro
'DEVICE_ATTR_RO'
static DEVICE_ATTR_RO(name);
^~~~~~~~~~~~~~
include/linux/device.h:588:26: error: redefinition of 'dev_attr_devspec'
struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
^
arch/powerpc/platforms/pseries/vio.c:1556:8: note: in expansion of macro
'DEVICE_ATTR_RO'
static DEVICE_ATTR_RO(devspec);
^~~~~~~~~~~~~~
include/linux/device.h:588:26: note: previous definition of
'dev_attr_devspec' was here
struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
^
arch/powerpc/platforms/pseries/vio.c:997:8: note: in expansion of macro
'DEVICE_ATTR_RO'
static DEVICE_ATTR_RO(devspec);
^~~~~~~~~~~~~~
include/linux/device.h:588:26: error: redefinition of 'dev_attr_modalias'
struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
^
arch/powerpc/platforms/pseries/vio.c:1578:8: note: in expansion of macro
'DEVICE_ATTR_RO'
static DEVICE_ATTR_RO(modalias);
^~~~~~~~~~~~~~
include/linux/device.h:588:26: note: previous definition of
'dev_attr_modalias' was here
struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
^
arch/powerpc/platforms/pseries/vio.c:998:8: note: in expansion of macro
'DEVICE_ATTR_RO'
static DEVICE_ATTR_RO(modalias);
^~~~~~~~~~~~~~
arch/powerpc/platforms/pseries/vio.c:1586:26: error: conflicting types for
'vio_dev_attrs'
static struct attribute *vio_dev_attrs[] = {
^~~~~~~~~~~~~
arch/powerpc/platforms/pseries/vio.c:1580:32: note: previous definition of
'vio_dev_attrs' was here
static struct device_attribute vio_dev_attrs[] = {
^~~~~~~~~~~~~
arch/powerpc/platforms/pseries/vio.c:1580:32: error: 'vio_dev_attrs' defined
but not used [-Werror=unused-variable]
>> arch/powerpc/platforms/pseries/vio.c:958:16: error:
>> 'viodev_cmo_allocs_failed_show' defined but not used
>> [-Werror=unused-function]
static ssize_t viodev_cmo_allocs_failed_show(struct device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/cmo_allocs_failed_show +1002 arch/powerpc/platforms/pseries/vio.c
952 struct device_attribute *attr,
\
953 char *buf)
\
954 {
\
955 return sprintf(buf, "%lu\n", to_vio_dev(dev)->cmo.name);
\
956 }
957
> 958 static ssize_t viodev_cmo_allocs_failed_show(struct device *dev,
959 struct device_attribute *attr, char *buf)
960 {
961 struct vio_dev *viodev = to_vio_dev(dev);
962 return sprintf(buf, "%d\n",
atomic_read(&viodev->cmo.allocs_failed));
963 }
964
965 static ssize_t cmo_allocs_failed_store(struct device *dev,
966 struct device_attribute *attr, const char *buf, size_t
count)
967 {
968 struct vio_dev *viodev = to_vio_dev(dev);
969 atomic_set(&viodev->cmo.allocs_failed, 0);
970 return count;
971 }
972
973 static ssize_t cmo_desired_store(struct device *dev,
974 struct device_attribute *attr, const char *buf, size_t
count)
975 {
976 struct vio_dev *viodev = to_vio_dev(dev);
977 size_t new_desired;
978 int ret;
979
980 ret = kstrtoul(buf, 10, &new_desired);
981 if (ret)
982 return ret;
983
984 vio_cmo_set_dev_desired(viodev, new_desired);
985 return count;
986 }
987
988 viodev_cmo_rd_attr(desired);
989 viodev_cmo_rd_attr(entitled);
990 viodev_cmo_rd_attr(allocated);
991
992 static ssize_t name_show(struct device *, struct device_attribute *,
char *);
993 static ssize_t devspec_show(struct device *, struct device_attribute *,
char *);
994 static ssize_t modalias_show(struct device *dev, struct
device_attribute *attr,
995 char *buf);
996 static DEVICE_ATTR_RO(name);
997 static DEVICE_ATTR_RO(devspec);
998 static DEVICE_ATTR_RO(modalias);
999 static DEVICE_ATTR_RO(cmo_entitled);
1000 static DEVICE_ATTR_RO(cmo_allocated);
1001 static DEVICE_ATTR_RW(cmo_desired);
> 1002 static DEVICE_ATTR_RW(cmo_allocs_failed);
1003
1004 static struct attribute *vio_cmo_dev_attrs[] = {
1005 &dev_attr_name.attr,
1006 &dev_attr_devspec.attr,
1007 &dev_attr_modalias.attr,
1008 &dev_attr_cmo_entitled.attr,
1009 &dev_attr_cmo_allocated.attr,
1010 &dev_attr_cmo_desired.attr,
1011 &dev_attr_cmo_allocs_failed.attr,
1012 NULL,
1013 };
1014 ATTRIBUTE_GROUPS(vio_cmo_dev);
1015
1016 /* sysfs bus functions and data structures for CMO */
1017
1018 #define viobus_cmo_rd_attr(name)
\
> 1019 static ssize_t cmo_##name##_show(struct bus_type *bt, char *buf)
> \
1020 {
\
1021 return sprintf(buf, "%lu\n", vio_cmo.name);
\
1022 }
\
1023 static BUS_ATTR_RO(cmo_##name)
1024
1025 #define viobus_cmo_pool_rd_attr(name, var)
\
1026 static ssize_t
\
1027 cmo_##name##_##var##_show(struct bus_type *bt, char *buf)
\
1028 {
\
1029 return sprintf(buf, "%lu\n", vio_cmo.name.var);
\
1030 }
\
1031 static BUS_ATTR_RO(cmo_##name##_##var)
1032
> 1033 viobus_cmo_rd_attr(entitled);
1034 viobus_cmo_rd_attr(spare);
1035 viobus_cmo_rd_attr(min);
1036 viobus_cmo_rd_attr(desired);
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip
_______________________________________________ devel mailing list [email protected] http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
