Re: [PATCH] net: rfkill: gpio: set GPIO direction

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Rouven,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 994d5c58e50e91bb02c7be4a91d5186292a895c8]

url:    https://github.com/intel-lab-lkp/linux/commits/Rouven-Czerwinski/net-rfkill-gpio-set-GPIO-direction/20231206-211525
base:   994d5c58e50e91bb02c7be4a91d5186292a895c8
patch link:    https://lore.kernel.org/r/20231206131336.3099727-1-r.czerwinski%40pengutronix.de
patch subject: [PATCH] net: rfkill: gpio: set GPIO direction
config: powerpc-allmodconfig (https://download.01.org/0day-ci/archive/20231207/202312070522.71CNBJ25-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231207/202312070522.71CNBJ25-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312070522.71CNBJ25-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> net/rfkill/rfkill-gpio.c:129:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
     129 |         if (rfkill->reset_gpio)
         |             ^~~~~~~~~~~~~~~~~~
   net/rfkill/rfkill-gpio.c:131:6: note: uninitialized use occurs here
     131 |         if (ret)
         |             ^~~
   net/rfkill/rfkill-gpio.c:129:2: note: remove the 'if' if its condition is always true
     129 |         if (rfkill->reset_gpio)
         |         ^~~~~~~~~~~~~~~~~~~~~~~
     130 |                 ret = gpiod_direction_output(rfkill->reset_gpio, true);
         | ~~~~~~~~~~~~~~~~
   net/rfkill/rfkill-gpio.c:82:9: note: initialize the variable 'ret' to silence this warning
      82 |         int ret;
         |                ^
         |                 = 0
   1 warning generated.


vim +129 net/rfkill/rfkill-gpio.c

    74	
    75	static int rfkill_gpio_probe(struct platform_device *pdev)
    76	{
    77		struct rfkill_gpio_data *rfkill;
    78		struct gpio_desc *gpio;
    79		const char *name_property;
    80		const char *type_property;
    81		const char *type_name;
    82		int ret;
    83	
    84		rfkill = devm_kzalloc(&pdev->dev, sizeof(*rfkill), GFP_KERNEL);
    85		if (!rfkill)
    86			return -ENOMEM;
    87	
    88		if (dev_of_node(&pdev->dev)) {
    89			name_property = "label";
    90			type_property = "radio-type";
    91		} else {
    92			name_property = "name";
    93			type_property = "type";
    94		}
    95		device_property_read_string(&pdev->dev, name_property, &rfkill->name);
    96		device_property_read_string(&pdev->dev, type_property, &type_name);
    97	
    98		if (!rfkill->name)
    99			rfkill->name = dev_name(&pdev->dev);
   100	
   101		rfkill->type = rfkill_find_type(type_name);
   102	
   103		if (ACPI_HANDLE(&pdev->dev)) {
   104			ret = rfkill_gpio_acpi_probe(&pdev->dev, rfkill);
   105			if (ret)
   106				return ret;
   107		}
   108	
   109		rfkill->clk = devm_clk_get(&pdev->dev, NULL);
   110	
   111		gpio = devm_gpiod_get_optional(&pdev->dev, "reset", GPIOD_ASIS);
   112		if (IS_ERR(gpio))
   113			return PTR_ERR(gpio);
   114	
   115		rfkill->reset_gpio = gpio;
   116	
   117		gpio = devm_gpiod_get_optional(&pdev->dev, "shutdown", GPIOD_ASIS);
   118		if (IS_ERR(gpio))
   119			return PTR_ERR(gpio);
   120	
   121		rfkill->shutdown_gpio = gpio;
   122	
   123		/* Make sure at-least one GPIO is defined for this instance */
   124		if (!rfkill->reset_gpio && !rfkill->shutdown_gpio) {
   125			dev_err(&pdev->dev, "invalid platform data\n");
   126			return -EINVAL;
   127		}
   128	
 > 129		if (rfkill->reset_gpio)
   130			ret = gpiod_direction_output(rfkill->reset_gpio, true);
   131		if (ret)
   132			return ret;
   133	
   134		if (rfkill->shutdown_gpio)
   135			ret = gpiod_direction_output(rfkill->shutdown_gpio, true);
   136		if (ret)
   137			return ret;
   138	
   139		rfkill->rfkill_dev = rfkill_alloc(rfkill->name, &pdev->dev,
   140						  rfkill->type, &rfkill_gpio_ops,
   141						  rfkill);
   142		if (!rfkill->rfkill_dev)
   143			return -ENOMEM;
   144	
   145		ret = rfkill_register(rfkill->rfkill_dev);
   146		if (ret < 0)
   147			goto err_destroy;
   148	
   149		platform_set_drvdata(pdev, rfkill);
   150	
   151		dev_info(&pdev->dev, "%s device registered.\n", rfkill->name);
   152	
   153		return 0;
   154	
   155	err_destroy:
   156		rfkill_destroy(rfkill->rfkill_dev);
   157	
   158		return ret;
   159	}
   160	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux