All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Aidan MacDonald <aidanmacdonald.0x0@gmail.com>,
	paul@crapouillou.net, robh+dt@kernel.org, krzk+dt@kernel.org,
	tsbogend@alpha.franken.de, mturquette@baylibre.com,
	sboyd@kernel.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	linux-mips@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org
Subject: Re: [PATCH v4 2/2] clk: ingenic-tcu: Fix missing TCU clock for X1000 SoCs
Date: Tue, 12 Apr 2022 10:03:05 +0800	[thread overview]
Message-ID: <202204120958.uBiGandq-lkp@intel.com> (raw)
In-Reply-To: <20220411154241.50834-3-aidanmacdonald.0x0@gmail.com>

Hi Aidan,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on robh/for-next]
[also build test WARNING on clk/clk-next linus/master linux/master v5.18-rc2 next-20220411]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Aidan-MacDonald/Fix-missing-TCU-clock-for-X1000-X1830-SoCs/20220411-234531
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: mips-randconfig-c004-20220411 (https://download.01.org/0day-ci/archive/20220412/202204120958.uBiGandq-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c6e83f560f06cdfe8aa47b248d8bdc58f947274b)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install mips cross compiling tool for clang build
        # apt-get install binutils-mips-linux-gnu
        # https://github.com/intel-lab-lkp/linux/commit/8c04eee82a9d67a768bb6c787d66724782fce89b
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Aidan-MacDonald/Fix-missing-TCU-clock-for-X1000-X1830-SoCs/20220411-234531
        git checkout 8c04eee82a9d67a768bb6c787d66724782fce89b
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/clk/ingenic/

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

All warnings (new ones prefixed by >>):

>> drivers/clk/ingenic/tcu.c:366:8: warning: variable 'ret' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
                           if (tcu->soc_info->allow_missing_tcu_clk &&
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/ingenic/tcu.c:456:9: note: uninitialized use occurs here
           return ret;
                  ^~~
   drivers/clk/ingenic/tcu.c:366:4: note: remove the 'if' if its condition is always true
                           if (tcu->soc_info->allow_missing_tcu_clk &&
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/clk/ingenic/tcu.c:366:8: warning: variable 'ret' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized]
                           if (tcu->soc_info->allow_missing_tcu_clk &&
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/ingenic/tcu.c:456:9: note: uninitialized use occurs here
           return ret;
                  ^~~
   drivers/clk/ingenic/tcu.c:366:8: note: remove the '&&' if its condition is always true
                           if (tcu->soc_info->allow_missing_tcu_clk &&
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/ingenic/tcu.c:343:9: note: initialize the variable 'ret' to silence this warning
           int ret;
                  ^
                   = 0
   2 warnings generated.


vim +366 drivers/clk/ingenic/tcu.c

   336	
   337	static int __init ingenic_tcu_probe(struct device_node *np)
   338	{
   339		const struct of_device_id *id = of_match_node(ingenic_tcu_of_match, np);
   340		struct ingenic_tcu *tcu;
   341		struct regmap *map;
   342		unsigned int i;
   343		int ret;
   344	
   345		map = device_node_to_regmap(np);
   346		if (IS_ERR(map))
   347			return PTR_ERR(map);
   348	
   349		tcu = kzalloc(sizeof(*tcu), GFP_KERNEL);
   350		if (!tcu)
   351			return -ENOMEM;
   352	
   353		tcu->map = map;
   354		tcu->soc_info = id->data;
   355	
   356		if (tcu->soc_info->has_tcu_clk) {
   357			tcu->clk = of_clk_get_by_name(np, "tcu");
   358			if (IS_ERR(tcu->clk)) {
   359				/*
   360				 * Old device trees for some SoCs did not include the
   361				 * TCU clock because this driver (incorrectly) didn't
   362				 * use it. In this case we complain loudly and attempt
   363				 * to continue without the clock, which might work if
   364				 * booting with workarounds like "clk_ignore_unused".
   365				 */
 > 366				if (tcu->soc_info->allow_missing_tcu_clk &&
   367				    PTR_ERR(tcu->clk) == -EINVAL) {
   368					pr_warn("TCU clock missing from device tree, please update your device tree\n");
   369					tcu->clk = NULL;
   370				} else {
   371					pr_crit("Cannot get TCU clock from device tree\n");
   372					goto err_free_tcu;
   373				}
   374			} else {
   375				ret = clk_prepare_enable(tcu->clk);
   376				if (ret) {
   377					pr_crit("Unable to enable TCU clock\n");
   378					goto err_put_clk;
   379				}
   380			}
   381		}
   382	
   383		tcu->clocks = kzalloc(struct_size(tcu->clocks, hws, TCU_CLK_COUNT),
   384				      GFP_KERNEL);
   385		if (!tcu->clocks) {
   386			ret = -ENOMEM;
   387			goto err_clk_disable;
   388		}
   389	
   390		tcu->clocks->num = TCU_CLK_COUNT;
   391	
   392		for (i = 0; i < tcu->soc_info->num_channels; i++) {
   393			ret = ingenic_tcu_register_clock(tcu, i, TCU_PARENT_EXT,
   394							 &ingenic_tcu_clk_info[i],
   395							 tcu->clocks);
   396			if (ret) {
   397				pr_crit("cannot register clock %d\n", i);
   398				goto err_unregister_timer_clocks;
   399			}
   400		}
   401	
   402		/*
   403		 * We set EXT as the default parent clock for all the TCU clocks
   404		 * except for the watchdog one, where we set the RTC clock as the
   405		 * parent. Since the EXT and PCLK are much faster than the RTC clock,
   406		 * the watchdog would kick after a maximum time of 5s, and we might
   407		 * want a slower kicking time.
   408		 */
   409		ret = ingenic_tcu_register_clock(tcu, TCU_CLK_WDT, TCU_PARENT_RTC,
   410						 &ingenic_tcu_watchdog_clk_info,
   411						 tcu->clocks);
   412		if (ret) {
   413			pr_crit("cannot register watchdog clock\n");
   414			goto err_unregister_timer_clocks;
   415		}
   416	
   417		if (tcu->soc_info->has_ost) {
   418			ret = ingenic_tcu_register_clock(tcu, TCU_CLK_OST,
   419							 TCU_PARENT_EXT,
   420							 &ingenic_tcu_ost_clk_info,
   421							 tcu->clocks);
   422			if (ret) {
   423				pr_crit("cannot register ost clock\n");
   424				goto err_unregister_watchdog_clock;
   425			}
   426		}
   427	
   428		ret = of_clk_add_hw_provider(np, of_clk_hw_onecell_get, tcu->clocks);
   429		if (ret) {
   430			pr_crit("cannot add OF clock provider\n");
   431			goto err_unregister_ost_clock;
   432		}
   433	
   434		ingenic_tcu = tcu;
   435	
   436		return 0;
   437	
   438	err_unregister_ost_clock:
   439		if (tcu->soc_info->has_ost)
   440			clk_hw_unregister(tcu->clocks->hws[i + 1]);
   441	err_unregister_watchdog_clock:
   442		clk_hw_unregister(tcu->clocks->hws[i]);
   443	err_unregister_timer_clocks:
   444		for (i = 0; i < tcu->clocks->num; i++)
   445			if (tcu->clocks->hws[i])
   446				clk_hw_unregister(tcu->clocks->hws[i]);
   447		kfree(tcu->clocks);
   448	err_clk_disable:
   449		if (tcu->clk)
   450			clk_disable_unprepare(tcu->clk);
   451	err_put_clk:
   452		if (tcu->clk)
   453			clk_put(tcu->clk);
   454	err_free_tcu:
   455		kfree(tcu);
   456		return ret;
   457	}
   458	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

  parent reply	other threads:[~2022-04-12  2:03 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-11 15:42 [PATCH v4 0/2] Fix missing TCU clock for X1000/X1830 SoCs Aidan MacDonald
2022-04-11 15:42 ` [PATCH v4 1/2] mips: dts: ingenic: Add TCU clock to x1000/x1830 tcu device node Aidan MacDonald
2022-04-11 19:07   ` Paul Cercueil
2022-04-11 15:42 ` [PATCH v4 2/2] clk: ingenic-tcu: Fix missing TCU clock for X1000 SoCs Aidan MacDonald
2022-04-11 15:48   ` Paul Cercueil
2022-04-11 16:08     ` Aidan MacDonald
2022-04-11 16:36       ` Paul Cercueil
2022-04-11 19:07   ` Paul Cercueil
2022-04-12  2:03   ` kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-04-12 10:41 kernel test robot
2022-04-12 10:57 ` Dan Carpenter
2022-04-12 10:57 ` Dan Carpenter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202204120958.uBiGandq-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=aidanmacdonald.0x0@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=kbuild-all@lists.01.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=mturquette@baylibre.com \
    --cc=paul@crapouillou.net \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=tsbogend@alpha.franken.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.