lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 8 Feb 2019 09:26:55 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Marek Szyprowski <m.szyprowski@...sung.com>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org,
        linux-pm@...r.kernel.org,
        Marek Szyprowski <m.szyprowski@...sung.com>,
        linux-samsung-soc@...r.kernel.org,
        Viresh Kumar <viresh.kumar@...aro.org>,
        "Rafael J . Wysocki" <rjw@...ysocki.net>,
        Nishanth Menon <nm@...com>, Stephen Boyd <sboyd@...nel.org>,
        Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
        Dave Gerlach <d-gerlach@...com>,
        Wolfram Sang <wsa@...-dreams.de>
Subject: Re: [PATCH 2/2] cpufreq: dt: rework resources initialization

Hi Marek,

I love your patch! Perhaps something to improve:

[auto build test WARNING on pm/linux-next]
[also build test WARNING on next-20190207]
[cannot apply to v5.0-rc4]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Marek-Szyprowski/cpufreq-opp-rework-regulator-initialization/20190208-071454
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=8.2.0 make.cross ARCH=sh 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   drivers//cpufreq/cpufreq-dt.c: In function 'dt_cpufreq_probe':
>> drivers//cpufreq/cpufreq-dt.c:149:12: warning: 'cpu_reg' may be used uninitialized in this function [-Wmaybe-uninitialized]
     priv->reg = cpu_reg;
     ~~~~~~~~~~^~~~~~~~~
   drivers//cpufreq/cpufreq-dt.c:102:20: note: 'cpu_reg' was declared here
     struct regulator *cpu_reg;
                       ^~~~~~~

vim +/cpu_reg +149 drivers//cpufreq/cpufreq-dt.c

    98	
    99	static int get_cpu_resources(struct private_data *priv, unsigned int cpu)
   100	{
   101		struct device *cpu_dev;
   102		struct regulator *cpu_reg;
   103		struct clk *cpu_clk;
   104		int ret = 0;
   105		const char *name;
   106	
   107		cpu_dev = get_cpu_device(cpu);
   108		if (!cpu_dev) {
   109			pr_err("failed to get cpu%d device\n", cpu);
   110			return -ENODEV;
   111		}
   112	
   113		cpu_clk = clk_get(cpu_dev, NULL);
   114		ret = PTR_ERR_OR_ZERO(cpu_clk);
   115		if (ret) {
   116			/*
   117			 * If cpu's clk node is present, but clock is not yet
   118			 * registered, we should try defering probe.
   119			 */
   120			if (ret == -EPROBE_DEFER)
   121				dev_dbg(cpu_dev, "clock not ready, retry\n");
   122			else
   123				dev_err(cpu_dev, "failed to get clock: %d\n", ret);
   124	
   125			return ret;
   126		}
   127	
   128		name = find_supply_name(cpu_dev);
   129		/* Platform doesn't require regulator */
   130		if (!name)
   131			goto no_regulator;
   132	
   133		cpu_reg = regulator_get_optional(cpu_dev, name);
   134		ret = PTR_ERR_OR_ZERO(cpu_reg);
   135		if (ret) {
   136			/*
   137			 * If cpu's regulator supply node is present, but regulator is
   138			 * not yet registered, we should try defering probe.
   139			 */
   140			if (ret == -EPROBE_DEFER)
   141				dev_dbg(cpu_dev, "regulator not ready, retry\n");
   142			else
   143				dev_dbg(cpu_dev, "no regulator for cpu: %d\n", ret);
   144			goto free;
   145		}
   146	no_regulator:
   147		priv->cpu_dev = cpu_dev;
   148		priv->clk = cpu_clk;
 > 149		priv->reg = cpu_reg;
   150		return 0;
   151	free:
   152		clk_put(cpu_clk);
   153		return ret;
   154	}
   155	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (50796 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ