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@xxxxxxxxx> 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@xxxxxxx> :::::: CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel