* drivers/rtc/rtc-mxc_v2.c:361 mxc_rtc_probe() warn: 'pdata->clk' not released on lines: 341.
@ 2021-10-09 13:12 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-10-09 13:12 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 8105 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Alexandre Belloni <alexandre.belloni@bootlin.com>
CC: Fabio Estevam <festevam@gmail.com>
Hi Alexandre,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5d6ab0bb408ffdaac585982faa9ec8c7d5cc349f
commit: 0020868f2a7037e87d6b3b196526de2fb885830d rtc: mxc{,_v2}: enable COMPILE_TEST
date: 10 months ago
:::::: branch date: 17 hours ago
:::::: commit date: 10 months ago
config: nios2-randconfig-m031-20211009 (attached as .config)
compiler: nios2-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/rtc/rtc-mxc_v2.c:361 mxc_rtc_probe() warn: 'pdata->clk' not released on lines: 341.
vim +361 drivers/rtc/rtc-mxc_v2.c
83c880f79e88cc Patrick Bruenn 2017-12-18 278
83c880f79e88cc Patrick Bruenn 2017-12-18 279 static int mxc_rtc_probe(struct platform_device *pdev)
83c880f79e88cc Patrick Bruenn 2017-12-18 280 {
83c880f79e88cc Patrick Bruenn 2017-12-18 281 struct mxc_rtc_data *pdata;
83c880f79e88cc Patrick Bruenn 2017-12-18 282 void __iomem *ioaddr;
83c880f79e88cc Patrick Bruenn 2017-12-18 283 int ret = 0;
83c880f79e88cc Patrick Bruenn 2017-12-18 284
83c880f79e88cc Patrick Bruenn 2017-12-18 285 pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
83c880f79e88cc Patrick Bruenn 2017-12-18 286 if (!pdata)
83c880f79e88cc Patrick Bruenn 2017-12-18 287 return -ENOMEM;
83c880f79e88cc Patrick Bruenn 2017-12-18 288
874532cdeefefa Anson Huang 2019-07-17 289 pdata->ioaddr = devm_platform_ioremap_resource(pdev, 0);
83c880f79e88cc Patrick Bruenn 2017-12-18 290 if (IS_ERR(pdata->ioaddr))
83c880f79e88cc Patrick Bruenn 2017-12-18 291 return PTR_ERR(pdata->ioaddr);
83c880f79e88cc Patrick Bruenn 2017-12-18 292
83c880f79e88cc Patrick Bruenn 2017-12-18 293 ioaddr = pdata->ioaddr;
83c880f79e88cc Patrick Bruenn 2017-12-18 294
83c880f79e88cc Patrick Bruenn 2017-12-18 295 pdata->clk = devm_clk_get(&pdev->dev, NULL);
83c880f79e88cc Patrick Bruenn 2017-12-18 296 if (IS_ERR(pdata->clk)) {
83c880f79e88cc Patrick Bruenn 2017-12-18 297 dev_err(&pdev->dev, "unable to get rtc clock!\n");
83c880f79e88cc Patrick Bruenn 2017-12-18 298 return PTR_ERR(pdata->clk);
83c880f79e88cc Patrick Bruenn 2017-12-18 299 }
83c880f79e88cc Patrick Bruenn 2017-12-18 300
83c880f79e88cc Patrick Bruenn 2017-12-18 301 spin_lock_init(&pdata->lock);
83c880f79e88cc Patrick Bruenn 2017-12-18 302 pdata->irq = platform_get_irq(pdev, 0);
83c880f79e88cc Patrick Bruenn 2017-12-18 303 if (pdata->irq < 0)
83c880f79e88cc Patrick Bruenn 2017-12-18 304 return pdata->irq;
83c880f79e88cc Patrick Bruenn 2017-12-18 305
83c880f79e88cc Patrick Bruenn 2017-12-18 306 device_init_wakeup(&pdev->dev, 1);
fbc5ee9a6955e6 Anson Huang 2019-04-11 307 ret = dev_pm_set_wake_irq(&pdev->dev, pdata->irq);
fbc5ee9a6955e6 Anson Huang 2019-04-11 308 if (ret)
fbc5ee9a6955e6 Anson Huang 2019-04-11 309 dev_err(&pdev->dev, "failed to enable irq wake\n");
83c880f79e88cc Patrick Bruenn 2017-12-18 310
83c880f79e88cc Patrick Bruenn 2017-12-18 311 ret = clk_prepare_enable(pdata->clk);
83c880f79e88cc Patrick Bruenn 2017-12-18 312 if (ret)
83c880f79e88cc Patrick Bruenn 2017-12-18 313 return ret;
83c880f79e88cc Patrick Bruenn 2017-12-18 314 /* initialize glitch detect */
83c880f79e88cc Patrick Bruenn 2017-12-18 315 writel(SRTC_LPPDR_INIT, ioaddr + SRTC_LPPDR);
83c880f79e88cc Patrick Bruenn 2017-12-18 316
83c880f79e88cc Patrick Bruenn 2017-12-18 317 /* clear lp interrupt status */
83c880f79e88cc Patrick Bruenn 2017-12-18 318 writel(0xFFFFFFFF, ioaddr + SRTC_LPSR);
83c880f79e88cc Patrick Bruenn 2017-12-18 319
83c880f79e88cc Patrick Bruenn 2017-12-18 320 /* move out of init state */
83c880f79e88cc Patrick Bruenn 2017-12-18 321 writel((SRTC_LPCR_IE | SRTC_LPCR_NSA), ioaddr + SRTC_LPCR);
83c880f79e88cc Patrick Bruenn 2017-12-18 322 ret = mxc_rtc_wait_for_flag(ioaddr + SRTC_LPSR, SRTC_LPSR_IES);
83c880f79e88cc Patrick Bruenn 2017-12-18 323 if (ret) {
83c880f79e88cc Patrick Bruenn 2017-12-18 324 dev_err(&pdev->dev, "Timeout waiting for SRTC_LPSR_IES\n");
83c880f79e88cc Patrick Bruenn 2017-12-18 325 clk_disable_unprepare(pdata->clk);
83c880f79e88cc Patrick Bruenn 2017-12-18 326 return ret;
83c880f79e88cc Patrick Bruenn 2017-12-18 327 }
83c880f79e88cc Patrick Bruenn 2017-12-18 328
83c880f79e88cc Patrick Bruenn 2017-12-18 329 /* move out of non-valid state */
83c880f79e88cc Patrick Bruenn 2017-12-18 330 writel((SRTC_LPCR_IE | SRTC_LPCR_NVE | SRTC_LPCR_NSA |
83c880f79e88cc Patrick Bruenn 2017-12-18 331 SRTC_LPCR_EN_LP), ioaddr + SRTC_LPCR);
83c880f79e88cc Patrick Bruenn 2017-12-18 332 ret = mxc_rtc_wait_for_flag(ioaddr + SRTC_LPSR, SRTC_LPSR_NVES);
83c880f79e88cc Patrick Bruenn 2017-12-18 333 if (ret) {
83c880f79e88cc Patrick Bruenn 2017-12-18 334 dev_err(&pdev->dev, "Timeout waiting for SRTC_LPSR_NVES\n");
83c880f79e88cc Patrick Bruenn 2017-12-18 335 clk_disable_unprepare(pdata->clk);
83c880f79e88cc Patrick Bruenn 2017-12-18 336 return ret;
83c880f79e88cc Patrick Bruenn 2017-12-18 337 }
83c880f79e88cc Patrick Bruenn 2017-12-18 338
5490a1e018a4b4 Alexandre Belloni 2018-05-19 339 pdata->rtc = devm_rtc_allocate_device(&pdev->dev);
5490a1e018a4b4 Alexandre Belloni 2018-05-19 340 if (IS_ERR(pdata->rtc))
5490a1e018a4b4 Alexandre Belloni 2018-05-19 341 return PTR_ERR(pdata->rtc);
5490a1e018a4b4 Alexandre Belloni 2018-05-19 342
5490a1e018a4b4 Alexandre Belloni 2018-05-19 343 pdata->rtc->ops = &mxc_rtc_ops;
95fbfa14b431d4 Alexandre Belloni 2018-05-19 344 pdata->rtc->range_max = U32_MAX;
5490a1e018a4b4 Alexandre Belloni 2018-05-19 345
83c880f79e88cc Patrick Bruenn 2017-12-18 346 clk_disable(pdata->clk);
83c880f79e88cc Patrick Bruenn 2017-12-18 347 platform_set_drvdata(pdev, pdata);
83c880f79e88cc Patrick Bruenn 2017-12-18 348 ret =
83c880f79e88cc Patrick Bruenn 2017-12-18 349 devm_request_irq(&pdev->dev, pdata->irq, mxc_rtc_interrupt, 0,
83c880f79e88cc Patrick Bruenn 2017-12-18 350 pdev->name, &pdev->dev);
83c880f79e88cc Patrick Bruenn 2017-12-18 351 if (ret < 0) {
83c880f79e88cc Patrick Bruenn 2017-12-18 352 dev_err(&pdev->dev, "interrupt not available.\n");
83c880f79e88cc Patrick Bruenn 2017-12-18 353 clk_unprepare(pdata->clk);
83c880f79e88cc Patrick Bruenn 2017-12-18 354 return ret;
83c880f79e88cc Patrick Bruenn 2017-12-18 355 }
83c880f79e88cc Patrick Bruenn 2017-12-18 356
fdcfd854333be5 Bartosz Golaszewski 2020-11-09 357 ret = devm_rtc_register_device(pdata->rtc);
5490a1e018a4b4 Alexandre Belloni 2018-05-19 358 if (ret < 0)
83c880f79e88cc Patrick Bruenn 2017-12-18 359 clk_unprepare(pdata->clk);
83c880f79e88cc Patrick Bruenn 2017-12-18 360
5490a1e018a4b4 Alexandre Belloni 2018-05-19 @361 return ret;
83c880f79e88cc Patrick Bruenn 2017-12-18 362 }
83c880f79e88cc Patrick Bruenn 2017-12-18 363
:::::: The code at line 361 was first introduced by commit
:::::: 5490a1e018a4b447c1fdb49ec274a620e60a4d42 rtc: mxc_v2: fix possible race condition
:::::: TO: Alexandre Belloni <alexandre.belloni@bootlin.com>
:::::: CC: Alexandre Belloni <alexandre.belloni@bootlin.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 25965 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-10-09 13:12 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-09 13:12 drivers/rtc/rtc-mxc_v2.c:361 mxc_rtc_probe() warn: 'pdata->clk' not released on lines: 341 kernel test robot
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.