[driver-core:device_h_splitup 35/35] drivers/usb/roles/class.c:97:49: error: passing argument 2 of 'class_find_device_by_fwnode' from incompatible pointer type
kbuild test robot
lkp at intel.com
Sun Nov 3 18:48:38 UTC 2019
tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git device_h_splitup
head: 8ac09706c581716b3ca938773ad29e50854fa674
commit: 8ac09706c581716b3ca938773ad29e50854fa674 [35/35] device.h: move 'struct class' stuff out to device/class.h
config: x86_64-randconfig-b001-201944 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
git checkout 8ac09706c581716b3ca938773ad29e50854fa674
# save the attached .config to linux build tree
make ARCH=x86_64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/device.h:29:0,
from include/linux/usb/role.h:6,
from drivers/usb/roles/class.c:10:
include/linux/device/bus.h:193:62: warning: 'struct fwnode_handle' declared inside parameter list will not be visible outside of this definition or declaration
bus_find_device_by_fwnode(struct bus_type *bus, const struct fwnode_handle *fwnode)
^~~~~~~~~~~~~
In file included from include/linux/device.h:30:0,
from include/linux/usb/role.h:6,
from drivers/usb/roles/class.c:10:
include/linux/device/class.h:152:21: warning: 'struct fwnode_handle' declared inside parameter list will not be visible outside of this definition or declaration
const struct fwnode_handle *fwnode)
^~~~~~~~~~~~~
drivers/usb/roles/class.c: In function 'usb_role_switch_match':
>> drivers/usb/roles/class.c:97:49: error: passing argument 2 of 'class_find_device_by_fwnode' from incompatible pointer type [-Werror=incompatible-pointer-types]
dev = class_find_device_by_fwnode(role_class, con->fwnode);
^~~
In file included from include/linux/device.h:30:0,
from include/linux/usb/role.h:6,
from drivers/usb/roles/class.c:10:
include/linux/device/class.h:151:1: note: expected 'const struct fwnode_handle *' but argument is of type 'struct fwnode_handle *'
class_find_device_by_fwnode(struct class *class,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/usb/roles/class.c: In function 'usb_role_switch_is_parent':
drivers/usb/roles/class.c:114:48: error: passing argument 2 of 'class_find_device_by_fwnode' from incompatible pointer type [-Werror=incompatible-pointer-types]
dev = class_find_device_by_fwnode(role_class, parent);
^~~~~~
In file included from include/linux/device.h:30:0,
from include/linux/usb/role.h:6,
from drivers/usb/roles/class.c:10:
include/linux/device/class.h:151:1: note: expected 'const struct fwnode_handle *' but argument is of type 'struct fwnode_handle *'
class_find_device_by_fwnode(struct class *class,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
In file included from include/linux/device.h:29:0,
from drivers/usb/typec/class.c:9:
include/linux/device/bus.h:193:62: warning: 'struct fwnode_handle' declared inside parameter list will not be visible outside of this definition or declaration
bus_find_device_by_fwnode(struct bus_type *bus, const struct fwnode_handle *fwnode)
^~~~~~~~~~~~~
In file included from include/linux/device.h:30:0,
from drivers/usb/typec/class.c:9:
include/linux/device/class.h:152:21: warning: 'struct fwnode_handle' declared inside parameter list will not be visible outside of this definition or declaration
const struct fwnode_handle *fwnode)
^~~~~~~~~~~~~
drivers/usb/typec/class.c: In function 'typec_port_match':
>> drivers/usb/typec/class.c:217:51: error: passing argument 2 of 'class_find_device_by_fwnode' from incompatible pointer type [-Werror=incompatible-pointer-types]
return class_find_device_by_fwnode(typec_class, con->fwnode);
^~~
In file included from include/linux/device.h:30:0,
from drivers/usb/typec/class.c:9:
include/linux/device/class.h:151:1: note: expected 'const struct fwnode_handle *' but argument is of type 'struct fwnode_handle *'
class_find_device_by_fwnode(struct class *class,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/class_find_device_by_fwnode +97 drivers/usb/roles/class.c
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 @10 #include <linux/usb/role.h>
ec69e9533c4879 drivers/usb/roles/class.c Heikki Krogerus 2019-02-13 11 #include <linux/property.h>
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 12 #include <linux/device.h>
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 13 #include <linux/module.h>
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 14 #include <linux/mutex.h>
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 15 #include <linux/slab.h>
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 16
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 17 static struct class *role_class;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 18
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 19 struct usb_role_switch {
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 20 struct device dev;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 21 struct mutex lock; /* device lock*/
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 22 enum usb_role role;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 23
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 24 /* From descriptor */
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 25 struct device *usb2_port;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 26 struct device *usb3_port;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 27 struct device *udc;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 28 usb_role_switch_set_t set;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 29 usb_role_switch_get_t get;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 30 bool allow_userspace_control;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 31 };
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 32
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 33 #define to_role_switch(d) container_of(d, struct usb_role_switch, dev)
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 34
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 35 /**
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 36 * usb_role_switch_set_role - Set USB role for a switch
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 37 * @sw: USB role switch
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 38 * @role: USB role to be switched to
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 39 *
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 40 * Set USB role @role for @sw.
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 41 */
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 42 int usb_role_switch_set_role(struct usb_role_switch *sw, enum usb_role role)
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 43 {
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 44 int ret;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 45
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 46 if (IS_ERR_OR_NULL(sw))
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 47 return 0;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 48
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 49 mutex_lock(&sw->lock);
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 50
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 51 ret = sw->set(sw->dev.parent, role);
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 52 if (!ret)
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 53 sw->role = role;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 54
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 55 mutex_unlock(&sw->lock);
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 56
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 57 return ret;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 58 }
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 59 EXPORT_SYMBOL_GPL(usb_role_switch_set_role);
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 60
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 61 /**
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 62 * usb_role_switch_get_role - Get the USB role for a switch
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 63 * @sw: USB role switch
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 64 *
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 65 * Depending on the role-switch-driver this function returns either a cached
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 66 * value of the last set role, or reads back the actual value from the hardware.
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 67 */
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 68 enum usb_role usb_role_switch_get_role(struct usb_role_switch *sw)
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 69 {
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 70 enum usb_role role;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 71
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 72 if (IS_ERR_OR_NULL(sw))
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 73 return USB_ROLE_NONE;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 74
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 75 mutex_lock(&sw->lock);
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 76
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 77 if (sw->get)
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 78 role = sw->get(sw->dev.parent);
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 79 else
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 80 role = sw->role;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 81
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 82 mutex_unlock(&sw->lock);
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 83
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 84 return role;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 85 }
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 86 EXPORT_SYMBOL_GPL(usb_role_switch_get_role);
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 87
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 88 static void *usb_role_switch_match(struct device_connection *con, int ep,
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 89 void *data)
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 90 {
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 91 struct device *dev;
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 92
ec69e9533c4879 drivers/usb/roles/class.c Heikki Krogerus 2019-02-13 93 if (con->fwnode) {
fde777791eb83f drivers/usb/roles/class.c Heikki Krogerus 2019-05-31 94 if (con->id && !fwnode_property_present(con->fwnode, con->id))
ec69e9533c4879 drivers/usb/roles/class.c Heikki Krogerus 2019-02-13 95 return NULL;
ec69e9533c4879 drivers/usb/roles/class.c Heikki Krogerus 2019-02-13 96
67843bbaf36eb0 drivers/usb/roles/class.c Suzuki K Poulose 2019-07-23 @97 dev = class_find_device_by_fwnode(role_class, con->fwnode);
ec69e9533c4879 drivers/usb/roles/class.c Heikki Krogerus 2019-02-13 98 } else {
6cda08a20dbde4 drivers/usb/roles/class.c Suzuki K Poulose 2019-07-23 99 dev = class_find_device_by_name(role_class, con->endpoint[ep]);
ec69e9533c4879 drivers/usb/roles/class.c Heikki Krogerus 2019-02-13 100 }
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 101
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 102 return dev ? to_role_switch(dev) : ERR_PTR(-EPROBE_DEFER);
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 103 }
fde0aa6c175a4d drivers/usb/common/roles.c Heikki Krogerus 2018-03-20 104
:::::: The code at line 97 was first introduced by commit
:::::: 67843bbaf36eb087714f40e783ee78e99e9e4b86 drivers: Introduce device lookup variants by fwnode
:::::: TO: Suzuki K Poulose <suzuki.poulose at arm.com>
:::::: CC: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 26721 bytes
Desc: not available
URL: <http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/attachments/20191104/f8191db5/attachment-0001.bin>
More information about the devel
mailing list