Hi Christian,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on staging/staging-testing]
[also build test WARNING on usb/usb-testing linus/master v5.7-rc5 next-20200514]
[cannot apply to balbi-usb/next peter.chen-usb/ci-for-usb-next]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Christian-Gromm/staging-most-move-USB-adapter-driver-to-stable-branch/20200514-183525
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 
8a01032e02c8a0fb3e9f33791023b62dee73cc03
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 
a52f10b5a382c040e7ad1ce933cda6c07a4b3a8d)
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <l...@intel.com>

All warnings (new ones prefixed by >>, old ones prefixed by <<):

>> drivers/most/most_usb.c:1104:6: warning: variable 'ret' is used 
>> uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (!mdev->busy_urbs)
^~~~~~~~~~~~~~~~
drivers/most/most_usb.c:1186:9: note: uninitialized use occurs here
return ret;
^~~
drivers/most/most_usb.c:1104:2: note: remove the 'if' if its condition is 
always false
if (!mdev->busy_urbs)
^~~~~~~~~~~~~~~~~~~~~
drivers/most/most_usb.c:1099:6: warning: variable 'ret' is used uninitialized 
whenever 'if' condition is true [-Wsometimes-uninitialized]
if (!mdev->ep_address)
^~~~~~~~~~~~~~~~~
drivers/most/most_usb.c:1186:9: note: uninitialized use occurs here
return ret;
^~~
drivers/most/most_usb.c:1099:2: note: remove the 'if' if its condition is 
always false
if (!mdev->ep_address)
^~~~~~~~~~~~~~~~~~~~~~
drivers/most/most_usb.c:1093:6: warning: variable 'ret' is used uninitialized 
whenever 'if' condition is true [-Wsometimes-uninitialized]
if (!mdev->cap)
^~~~~~~~~~
drivers/most/most_usb.c:1186:9: note: uninitialized use occurs here
return ret;
^~~
drivers/most/most_usb.c:1093:2: note: remove the 'if' if its condition is 
always false
if (!mdev->cap)
^~~~~~~~~~~~~~~
drivers/most/most_usb.c:1089:6: warning: variable 'ret' is used uninitialized 
whenever 'if' condition is true [-Wsometimes-uninitialized]
if (!mdev->conf)
^~~~~~~~~~~
drivers/most/most_usb.c:1186:9: note: uninitialized use occurs here
return ret;
^~~
drivers/most/most_usb.c:1089:2: note: remove the 'if' if its condition is 
always false
if (!mdev->conf)
^~~~~~~~~~~~~~~~
drivers/most/most_usb.c:1047:9: note: initialize the variable 'ret' to silence 
this warning
int ret;
^
= 0
4 warnings generated.

vim +1104 drivers/most/most_usb.c

56c7d34c835125c6 Christian Gromm 2020-05-14  1017  
56c7d34c835125c6 Christian Gromm 2020-05-14  1018  static void 
release_mdev(struct device *dev)
56c7d34c835125c6 Christian Gromm 2020-05-14  1019  {
56c7d34c835125c6 Christian Gromm 2020-05-14  1020       struct most_dev *mdev = 
to_mdev_from_dev(dev);
56c7d34c835125c6 Christian Gromm 2020-05-14  1021  
56c7d34c835125c6 Christian Gromm 2020-05-14  1022       kfree(mdev);
56c7d34c835125c6 Christian Gromm 2020-05-14  1023  }
56c7d34c835125c6 Christian Gromm 2020-05-14  1024  /**
56c7d34c835125c6 Christian Gromm 2020-05-14  1025   * hdm_probe - probe 
function of USB device driver
56c7d34c835125c6 Christian Gromm 2020-05-14  1026   * @interface: Interface of 
the attached USB device
56c7d34c835125c6 Christian Gromm 2020-05-14  1027   * @id: Pointer to the USB 
ID table.
56c7d34c835125c6 Christian Gromm 2020-05-14  1028   *
56c7d34c835125c6 Christian Gromm 2020-05-14  1029   * This allocates and 
initializes the device instance, adds the new
56c7d34c835125c6 Christian Gromm 2020-05-14  1030   * entry to the internal 
list, scans the USB descriptors and registers
56c7d34c835125c6 Christian Gromm 2020-05-14  1031   * the interface with the 
core.
56c7d34c835125c6 Christian Gromm 2020-05-14  1032   * Additionally, the DCI 
objects are created and the hardware is sync'd.
56c7d34c835125c6 Christian Gromm 2020-05-14  1033   *
56c7d34c835125c6 Christian Gromm 2020-05-14  1034   * Return 0 on success. In 
case of an error a negative number is returned.
56c7d34c835125c6 Christian Gromm 2020-05-14  1035   */
56c7d34c835125c6 Christian Gromm 2020-05-14  1036  static int
56c7d34c835125c6 Christian Gromm 2020-05-14  1037  hdm_probe(struct 
usb_interface *interface, const struct usb_device_id *id)
56c7d34c835125c6 Christian Gromm 2020-05-14  1038  {
56c7d34c835125c6 Christian Gromm 2020-05-14  1039       struct 
usb_host_interface *usb_iface_desc = interface->cur_altsetting;
56c7d34c835125c6 Christian Gromm 2020-05-14  1040       struct usb_device 
*usb_dev = interface_to_usbdev(interface);
56c7d34c835125c6 Christian Gromm 2020-05-14  1041       struct device *dev = 
&usb_dev->dev;
56c7d34c835125c6 Christian Gromm 2020-05-14  1042       struct most_dev *mdev = 
kzalloc(sizeof(*mdev), GFP_KERNEL);
56c7d34c835125c6 Christian Gromm 2020-05-14  1043       unsigned int i;
56c7d34c835125c6 Christian Gromm 2020-05-14  1044       unsigned int 
num_endpoints;
56c7d34c835125c6 Christian Gromm 2020-05-14  1045       struct 
most_channel_capability *tmp_cap;
56c7d34c835125c6 Christian Gromm 2020-05-14  1046       struct 
usb_endpoint_descriptor *ep_desc;
220484e072685b00 Christian Gromm 2020-05-14  1047       int ret;
56c7d34c835125c6 Christian Gromm 2020-05-14  1048  
56c7d34c835125c6 Christian Gromm 2020-05-14  1049       if (!mdev)
220484e072685b00 Christian Gromm 2020-05-14  1050               return -ENOMEM;
56c7d34c835125c6 Christian Gromm 2020-05-14  1051  
56c7d34c835125c6 Christian Gromm 2020-05-14  1052       
usb_set_intfdata(interface, mdev);
56c7d34c835125c6 Christian Gromm 2020-05-14  1053       num_endpoints = 
usb_iface_desc->desc.bNumEndpoints;
220484e072685b00 Christian Gromm 2020-05-14  1054       if (num_endpoints > 
MAX_NUM_ENDPOINTS) {
220484e072685b00 Christian Gromm 2020-05-14  1055               kfree(mdev);
220484e072685b00 Christian Gromm 2020-05-14  1056               return -EINVAL;
220484e072685b00 Christian Gromm 2020-05-14  1057       }
56c7d34c835125c6 Christian Gromm 2020-05-14  1058       
mutex_init(&mdev->io_mutex);
56c7d34c835125c6 Christian Gromm 2020-05-14  1059       
INIT_WORK(&mdev->poll_work_obj, wq_netinfo);
56c7d34c835125c6 Christian Gromm 2020-05-14  1060       
timer_setup(&mdev->link_stat_timer, link_stat_timer_handler, 0);
56c7d34c835125c6 Christian Gromm 2020-05-14  1061  
56c7d34c835125c6 Christian Gromm 2020-05-14  1062       mdev->usb_device = 
usb_dev;
56c7d34c835125c6 Christian Gromm 2020-05-14  1063       
mdev->link_stat_timer.expires = jiffies + (2 * HZ);
56c7d34c835125c6 Christian Gromm 2020-05-14  1064  
56c7d34c835125c6 Christian Gromm 2020-05-14  1065       mdev->iface.mod = 
hdm_usb_fops.owner;
56c7d34c835125c6 Christian Gromm 2020-05-14  1066       mdev->iface.dev = 
&mdev->dev;
56c7d34c835125c6 Christian Gromm 2020-05-14  1067       mdev->iface.driver_dev 
= &interface->dev;
56c7d34c835125c6 Christian Gromm 2020-05-14  1068       mdev->iface.interface = 
ITYPE_USB;
56c7d34c835125c6 Christian Gromm 2020-05-14  1069       mdev->iface.configure = 
hdm_configure_channel;
56c7d34c835125c6 Christian Gromm 2020-05-14  1070       
mdev->iface.request_netinfo = hdm_request_netinfo;
56c7d34c835125c6 Christian Gromm 2020-05-14  1071       mdev->iface.enqueue = 
hdm_enqueue;
56c7d34c835125c6 Christian Gromm 2020-05-14  1072       
mdev->iface.poison_channel = hdm_poison_channel;
56c7d34c835125c6 Christian Gromm 2020-05-14  1073       mdev->iface.dma_alloc = 
hdm_dma_alloc;
56c7d34c835125c6 Christian Gromm 2020-05-14  1074       mdev->iface.dma_free = 
hdm_dma_free;
56c7d34c835125c6 Christian Gromm 2020-05-14  1075       mdev->iface.description 
= mdev->description;
56c7d34c835125c6 Christian Gromm 2020-05-14  1076       
mdev->iface.num_channels = num_endpoints;
56c7d34c835125c6 Christian Gromm 2020-05-14  1077  
56c7d34c835125c6 Christian Gromm 2020-05-14  1078       
snprintf(mdev->description, sizeof(mdev->description),
56c7d34c835125c6 Christian Gromm 2020-05-14  1079                "%d-%s:%d.%d",
56c7d34c835125c6 Christian Gromm 2020-05-14  1080                
usb_dev->bus->busnum,
56c7d34c835125c6 Christian Gromm 2020-05-14  1081                
usb_dev->devpath,
56c7d34c835125c6 Christian Gromm 2020-05-14  1082                
usb_dev->config->desc.bConfigurationValue,
56c7d34c835125c6 Christian Gromm 2020-05-14  1083                
usb_iface_desc->desc.bInterfaceNumber);
56c7d34c835125c6 Christian Gromm 2020-05-14  1084  
56c7d34c835125c6 Christian Gromm 2020-05-14  1085       mdev->dev.init_name = 
mdev->description;
56c7d34c835125c6 Christian Gromm 2020-05-14  1086       mdev->dev.parent = 
&interface->dev;
56c7d34c835125c6 Christian Gromm 2020-05-14  1087       mdev->dev.release = 
release_mdev;
56c7d34c835125c6 Christian Gromm 2020-05-14  1088       mdev->conf = 
kcalloc(num_endpoints, sizeof(*mdev->conf), GFP_KERNEL);
56c7d34c835125c6 Christian Gromm 2020-05-14  1089       if (!mdev->conf)
56c7d34c835125c6 Christian Gromm 2020-05-14  1090               goto 
err_free_mdev;
56c7d34c835125c6 Christian Gromm 2020-05-14  1091  
56c7d34c835125c6 Christian Gromm 2020-05-14  1092       mdev->cap = 
kcalloc(num_endpoints, sizeof(*mdev->cap), GFP_KERNEL);
56c7d34c835125c6 Christian Gromm 2020-05-14  1093       if (!mdev->cap)
56c7d34c835125c6 Christian Gromm 2020-05-14  1094               goto 
err_free_conf;
56c7d34c835125c6 Christian Gromm 2020-05-14  1095  
56c7d34c835125c6 Christian Gromm 2020-05-14  1096       
mdev->iface.channel_vector = mdev->cap;
56c7d34c835125c6 Christian Gromm 2020-05-14  1097       mdev->ep_address =
56c7d34c835125c6 Christian Gromm 2020-05-14  1098               
kcalloc(num_endpoints, sizeof(*mdev->ep_address), GFP_KERNEL);
56c7d34c835125c6 Christian Gromm 2020-05-14  1099       if (!mdev->ep_address)
56c7d34c835125c6 Christian Gromm 2020-05-14  1100               goto 
err_free_cap;
56c7d34c835125c6 Christian Gromm 2020-05-14  1101  
56c7d34c835125c6 Christian Gromm 2020-05-14  1102       mdev->busy_urbs =
56c7d34c835125c6 Christian Gromm 2020-05-14  1103               
kcalloc(num_endpoints, sizeof(*mdev->busy_urbs), GFP_KERNEL);
56c7d34c835125c6 Christian Gromm 2020-05-14 @1104       if (!mdev->busy_urbs)
56c7d34c835125c6 Christian Gromm 2020-05-14  1105               goto 
err_free_ep_address;
56c7d34c835125c6 Christian Gromm 2020-05-14  1106  
56c7d34c835125c6 Christian Gromm 2020-05-14  1107       tmp_cap = mdev->cap;
56c7d34c835125c6 Christian Gromm 2020-05-14  1108       for (i = 0; i < 
num_endpoints; i++) {
56c7d34c835125c6 Christian Gromm 2020-05-14  1109               ep_desc = 
&usb_iface_desc->endpoint[i].desc;
56c7d34c835125c6 Christian Gromm 2020-05-14  1110               
mdev->ep_address[i] = ep_desc->bEndpointAddress;
56c7d34c835125c6 Christian Gromm 2020-05-14  1111               
mdev->padding_active[i] = false;
56c7d34c835125c6 Christian Gromm 2020-05-14  1112               
mdev->is_channel_healthy[i] = true;
56c7d34c835125c6 Christian Gromm 2020-05-14  1113  
56c7d34c835125c6 Christian Gromm 2020-05-14  1114               
snprintf(&mdev->suffix[i][0], MAX_SUFFIX_LEN, "ep%02x",
56c7d34c835125c6 Christian Gromm 2020-05-14  1115                        
mdev->ep_address[i]);
56c7d34c835125c6 Christian Gromm 2020-05-14  1116  
56c7d34c835125c6 Christian Gromm 2020-05-14  1117               
tmp_cap->name_suffix = &mdev->suffix[i][0];
56c7d34c835125c6 Christian Gromm 2020-05-14  1118               
tmp_cap->buffer_size_packet = MAX_BUF_SIZE;
56c7d34c835125c6 Christian Gromm 2020-05-14  1119               
tmp_cap->buffer_size_streaming = MAX_BUF_SIZE;
56c7d34c835125c6 Christian Gromm 2020-05-14  1120               
tmp_cap->num_buffers_packet = BUF_CHAIN_SIZE;
56c7d34c835125c6 Christian Gromm 2020-05-14  1121               
tmp_cap->num_buffers_streaming = BUF_CHAIN_SIZE;
56c7d34c835125c6 Christian Gromm 2020-05-14  1122               
tmp_cap->data_type = MOST_CH_CONTROL | MOST_CH_ASYNC |
56c7d34c835125c6 Christian Gromm 2020-05-14  1123                               
     MOST_CH_ISOC | MOST_CH_SYNC;
56c7d34c835125c6 Christian Gromm 2020-05-14  1124               if 
(usb_endpoint_dir_in(ep_desc))
56c7d34c835125c6 Christian Gromm 2020-05-14  1125                       
tmp_cap->direction = MOST_CH_RX;
56c7d34c835125c6 Christian Gromm 2020-05-14  1126               else
56c7d34c835125c6 Christian Gromm 2020-05-14  1127                       
tmp_cap->direction = MOST_CH_TX;
56c7d34c835125c6 Christian Gromm 2020-05-14  1128               tmp_cap++;
56c7d34c835125c6 Christian Gromm 2020-05-14  1129               
init_usb_anchor(&mdev->busy_urbs[i]);
56c7d34c835125c6 Christian Gromm 2020-05-14  1130               
spin_lock_init(&mdev->channel_lock[i]);
56c7d34c835125c6 Christian Gromm 2020-05-14  1131       }
56c7d34c835125c6 Christian Gromm 2020-05-14  1132       dev_notice(dev, 
"claimed gadget: Vendor=%4.4x ProdID=%4.4x Bus=%02x Device=%02x\n",
56c7d34c835125c6 Christian Gromm 2020-05-14  1133                  
le16_to_cpu(usb_dev->descriptor.idVendor),
56c7d34c835125c6 Christian Gromm 2020-05-14  1134                  
le16_to_cpu(usb_dev->descriptor.idProduct),
56c7d34c835125c6 Christian Gromm 2020-05-14  1135                  
usb_dev->bus->busnum,
56c7d34c835125c6 Christian Gromm 2020-05-14  1136                  
usb_dev->devnum);
56c7d34c835125c6 Christian Gromm 2020-05-14  1137  
56c7d34c835125c6 Christian Gromm 2020-05-14  1138       dev_notice(dev, "device 
path: /sys/bus/usb/devices/%d-%s:%d.%d\n",
56c7d34c835125c6 Christian Gromm 2020-05-14  1139                  
usb_dev->bus->busnum,
56c7d34c835125c6 Christian Gromm 2020-05-14  1140                  
usb_dev->devpath,
56c7d34c835125c6 Christian Gromm 2020-05-14  1141                  
usb_dev->config->desc.bConfigurationValue,
56c7d34c835125c6 Christian Gromm 2020-05-14  1142                  
usb_iface_desc->desc.bInterfaceNumber);
56c7d34c835125c6 Christian Gromm 2020-05-14  1143  
56c7d34c835125c6 Christian Gromm 2020-05-14  1144       ret = 
most_register_interface(&mdev->iface);
56c7d34c835125c6 Christian Gromm 2020-05-14  1145       if (ret)
56c7d34c835125c6 Christian Gromm 2020-05-14  1146               goto 
err_free_busy_urbs;
56c7d34c835125c6 Christian Gromm 2020-05-14  1147  
56c7d34c835125c6 Christian Gromm 2020-05-14  1148       
mutex_lock(&mdev->io_mutex);
56c7d34c835125c6 Christian Gromm 2020-05-14  1149       if 
(le16_to_cpu(usb_dev->descriptor.idProduct) == USB_DEV_ID_OS81118 ||
56c7d34c835125c6 Christian Gromm 2020-05-14  1150           
le16_to_cpu(usb_dev->descriptor.idProduct) == USB_DEV_ID_OS81119 ||
56c7d34c835125c6 Christian Gromm 2020-05-14  1151           
le16_to_cpu(usb_dev->descriptor.idProduct) == USB_DEV_ID_OS81210) {
56c7d34c835125c6 Christian Gromm 2020-05-14  1152               mdev->dci = 
kzalloc(sizeof(*mdev->dci), GFP_KERNEL);
56c7d34c835125c6 Christian Gromm 2020-05-14  1153               if (!mdev->dci) 
{
56c7d34c835125c6 Christian Gromm 2020-05-14  1154                       
mutex_unlock(&mdev->io_mutex);
56c7d34c835125c6 Christian Gromm 2020-05-14  1155                       
most_deregister_interface(&mdev->iface);
56c7d34c835125c6 Christian Gromm 2020-05-14  1156                       ret = 
-ENOMEM;
56c7d34c835125c6 Christian Gromm 2020-05-14  1157                       goto 
err_free_busy_urbs;
56c7d34c835125c6 Christian Gromm 2020-05-14  1158               }
56c7d34c835125c6 Christian Gromm 2020-05-14  1159  
56c7d34c835125c6 Christian Gromm 2020-05-14  1160               
mdev->dci->dev.init_name = "dci";
56c7d34c835125c6 Christian Gromm 2020-05-14  1161               
mdev->dci->dev.parent = get_device(mdev->iface.dev);
56c7d34c835125c6 Christian Gromm 2020-05-14  1162               
mdev->dci->dev.groups = dci_attr_groups;
56c7d34c835125c6 Christian Gromm 2020-05-14  1163               
mdev->dci->dev.release = release_dci;
56c7d34c835125c6 Christian Gromm 2020-05-14  1164               if 
(device_register(&mdev->dci->dev)) {
56c7d34c835125c6 Christian Gromm 2020-05-14  1165                       
mutex_unlock(&mdev->io_mutex);
56c7d34c835125c6 Christian Gromm 2020-05-14  1166                       
most_deregister_interface(&mdev->iface);
56c7d34c835125c6 Christian Gromm 2020-05-14  1167                       ret = 
-ENOMEM;
56c7d34c835125c6 Christian Gromm 2020-05-14  1168                       goto 
err_free_dci;
56c7d34c835125c6 Christian Gromm 2020-05-14  1169               }
56c7d34c835125c6 Christian Gromm 2020-05-14  1170               
mdev->dci->usb_device = mdev->usb_device;
56c7d34c835125c6 Christian Gromm 2020-05-14  1171       }
56c7d34c835125c6 Christian Gromm 2020-05-14  1172       
mutex_unlock(&mdev->io_mutex);
56c7d34c835125c6 Christian Gromm 2020-05-14  1173       return 0;
56c7d34c835125c6 Christian Gromm 2020-05-14  1174  err_free_dci:
56c7d34c835125c6 Christian Gromm 2020-05-14  1175       
put_device(&mdev->dci->dev);
56c7d34c835125c6 Christian Gromm 2020-05-14  1176  err_free_busy_urbs:
56c7d34c835125c6 Christian Gromm 2020-05-14  1177       kfree(mdev->busy_urbs);
56c7d34c835125c6 Christian Gromm 2020-05-14  1178  err_free_ep_address:
56c7d34c835125c6 Christian Gromm 2020-05-14  1179       kfree(mdev->ep_address);
56c7d34c835125c6 Christian Gromm 2020-05-14  1180  err_free_cap:
56c7d34c835125c6 Christian Gromm 2020-05-14  1181       kfree(mdev->cap);
56c7d34c835125c6 Christian Gromm 2020-05-14  1182  err_free_conf:
56c7d34c835125c6 Christian Gromm 2020-05-14  1183       kfree(mdev->conf);
56c7d34c835125c6 Christian Gromm 2020-05-14  1184  err_free_mdev:
56c7d34c835125c6 Christian Gromm 2020-05-14  1185       put_device(&mdev->dev);
56c7d34c835125c6 Christian Gromm 2020-05-14  1186       return ret;
56c7d34c835125c6 Christian Gromm 2020-05-14  1187  }
56c7d34c835125c6 Christian Gromm 2020-05-14  1188  

:::::: The code at line 1104 was first introduced by commit
:::::: 56c7d34c835125c6587fb28f67cddd1d4062975f drivers: most: add usb adapter 
driver

:::::: TO: Christian Gromm <christian.gr...@microchip.com>
:::::: CC: 0day robot <l...@intel.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to