CC: [email protected]
CC: [email protected]
TO: Hans Verkuil <[email protected]>

tree:   git://linuxtv.org/hverkuil/media_tree.git hdmi-dbg
head:   62840ed1491a81a6c57dd4183216c5e599f8025d
commit: b8ca4c46e7613329ffb82d415cc062175f442e16 [9/11] gpio-virt-link: wip: 
add virtual gpio link driver
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: x86_64-randconfig-m031-20210911 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/gpio/gpio-virt-link.c:552 gpio_virt_link_probe() error: uninitialized 
symbol 'ret'.

vim +/ret +552 drivers/gpio/gpio-virt-link.c

b8ca4c46e7613329 Hans Verkuil 2021-08-11  476  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  477  static int 
gpio_virt_link_probe(struct platform_device *pdev)
b8ca4c46e7613329 Hans Verkuil 2021-08-11  478  {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  479   struct gpio_virt_link_state 
*state;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  480   struct device_node *node, 
*link_node;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  481   const char *reg_name;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  482   int out = 0;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  483   int in = 0;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  484   int ret;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  485  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  486   /* out */
b8ca4c46e7613329 Hans Verkuil 2021-08-11  487   node = 
of_get_child_by_name(pdev->dev.of_node, GVL_NODE_OUT);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  488   if (node) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  489           ret = 
of_property_read_u32(node, "num-gpios", &out);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  490           of_node_put(node);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  491           if (ret) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  492                   
dev_err(&pdev->dev, "%s: no out num-gpios property\n", __func__);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  493                   return ret;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  494           }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  495           if (out > MAX_NUM_OUT 
|| out == 0) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  496                   
dev_err(&pdev->dev, "%s: requested %d number of outputs\n", __func__, out);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  497                   return -EINVAL;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  498           }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  499   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  500  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  501   /* in */
b8ca4c46e7613329 Hans Verkuil 2021-08-11  502   node = 
of_get_child_by_name(pdev->dev.of_node, GVL_NODE_IN);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  503   if (node) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  504           ret = 
of_property_read_u32(node, "num-gpios", &in);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  505           of_node_put(node);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  506           if (ret) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  507                   
dev_err(&pdev->dev, "%s: no in num-gpios property\n", __func__);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  508                   return ret;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  509           }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  510           if (in > MAX_NUM_IN || 
in == 0) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  511                   
dev_err(&pdev->dev, "%s: requested %d number of inputs\n", __func__, in);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  512                   return -EINVAL;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  513           }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  514   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  515  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  516   /* state */
b8ca4c46e7613329 Hans Verkuil 2021-08-11  517   state = 
devm_kzalloc(&pdev->dev, sizeof(struct gpio_virt_link_state), GFP_KERNEL);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  518   if (!state) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  519           return -ENOMEM;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  520   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  521  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  522   state->dev = &pdev->dev;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  523   state->num_outputs = out;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  524   state->num_inputs = in;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  525  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  526   /* links */
b8ca4c46e7613329 Hans Verkuil 2021-08-11  527   node = 
of_get_child_by_name(pdev->dev.of_node, "links");
b8ca4c46e7613329 Hans Verkuil 2021-08-11  528   if (node) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  529           int i = 0;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  530           state->num_links = 
of_get_child_count(node);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  531           if (state->num_links > 
MAX_NUM_LINKS) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  532                   
of_node_put(node);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  533                   
dev_err(&pdev->dev, "%s: requested %d number of links\n", __func__, 
state->num_links);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  534                   return -EINVAL;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  535           }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  536           
for_each_child_of_node(node, link_node) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  537                   ret = 
of_property_read_string(link_node, "desc", &state->links[i].desc);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  538                   if (ret) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  539                           
state->links[i].desc = NULL;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  540                   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  541                   ret = 
of_property_read_u32(link_node, "out", &state->links[i].out);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  542                   if (ret) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  543                           break;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  544                   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  545                   ret = 
of_property_read_u32(link_node, "in", &state->links[i].in);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  546                   if (ret) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  547                           break;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  548                   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  549                   i++;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  550           }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  551           of_node_put(node);
b8ca4c46e7613329 Hans Verkuil 2021-08-11 @552           if (ret) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  553                   
dev_err(&pdev->dev, "%s: failed getting link %d setting\n", __func__, i);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  554                   return ret;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  555           }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  556   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  557  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  558   /* lock */
b8ca4c46e7613329 Hans Verkuil 2021-08-11  559   spin_lock_init(&state->lock);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  560  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  561   ret = 
gpio_virt_link_add_gpio_chips(state);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  562   if (ret) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  563           dev_err(&pdev->dev, 
"%s: add gpio chips failed\n", __func__);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  564           return ret;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  565   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  566  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  567   ret = 
of_property_read_string(pdev->dev.of_node, "reg-name", &reg_name);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  568   if (ret == 0) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  569           
snprintf(state->dbg.name, sizeof(state->dbg.name), "%s_%s", 
GPIO_VIRT_LINK_DRV_NAME, reg_name);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  570   } else {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  571           
snprintf(state->dbg.name, sizeof(state->dbg.name), "%s", 
GPIO_VIRT_LINK_DRV_NAME);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  572   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  573  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  574   state->workqueue = 
create_singlethread_workqueue(state->dbg.name);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  575   if (!state->workqueue) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  576           dev_err(&pdev->dev, 
"Failed to create workqueue\n");
b8ca4c46e7613329 Hans Verkuil 2021-08-11  577           ret = -ENOMEM;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  578           goto err_work_queue;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  579   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  580   
INIT_WORK(&state->update_input_work, vgl_update_input_work);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  581  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  582   /* debug-fs */
b8ca4c46e7613329 Hans Verkuil 2021-08-11  583   state->dbg.fsroot = 
debugfs_create_dir(state->dbg.name, NULL);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  584   if (!state->dbg.fsroot) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  585           dev_err(&pdev->dev, 
"%s: failed to create fsroot\n", __func__);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  586           ret = -EIO;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  587           goto err_fsroot;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  588   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  589  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  590   state->dbg.status = 
debugfs_create_file("status", S_IRUGO, state->dbg.fsroot, state, 
&dbg_status_fops);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  591   if (!state->dbg.status) {
b8ca4c46e7613329 Hans Verkuil 2021-08-11  592           dev_err(&pdev->dev, 
"%s: failed to create debugfs file\n", __func__);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  593           ret = -EIO;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  594           goto err_fs_status;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  595   }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  596  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  597   platform_set_drvdata(pdev, 
state);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  598  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  599   dev_info(&pdev->dev, "%s:\n", 
__func__);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  600  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  601   return 0;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  602  
b8ca4c46e7613329 Hans Verkuil 2021-08-11  603  err_fs_status:
b8ca4c46e7613329 Hans Verkuil 2021-08-11  604   
debugfs_remove_recursive(state->dbg.fsroot);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  605  err_fsroot:
b8ca4c46e7613329 Hans Verkuil 2021-08-11  606   
destroy_workqueue(state->workqueue);
b8ca4c46e7613329 Hans Verkuil 2021-08-11  607  err_work_queue:
b8ca4c46e7613329 Hans Verkuil 2021-08-11  608   return ret;
b8ca4c46e7613329 Hans Verkuil 2021-08-11  609  }
b8ca4c46e7613329 Hans Verkuil 2021-08-11  610  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to