drivers/pwm/pwm-mediatek.c:380:16-17: WARNING: Use struct_size (fwd)
From: Julia Lawall
Date: Thu Oct 30 2025 - 06:13:41 EST
---------- Forwarded message ----------
Date: Thu, 30 Oct 2025 17:19:39 +0800
From: kernel test robot <lkp@xxxxxxxxx>
To: oe-kbuild@xxxxxxxxxxxxxxx
Cc: lkp@xxxxxxxxx, Julia Lawall <julia.lawall@xxxxxxxx>
Subject: drivers/pwm/pwm-mediatek.c:380:16-17: WARNING: Use struct_size
BCC: lkp@xxxxxxxxx
CC: oe-kbuild-all@xxxxxxxxxxxxxxx
CC: linux-kernel@xxxxxxxxxxxxxxx
TO: "Uwe Kleine-König" <u.kleine-koenig@xxxxxxxxxxxx>
CC: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: e53642b87a4f4b03a8d7e5f8507fc3cd0c595ea6
commit: ed5902a2464834656f94f1c23fa61f99ea38f328 pwm: mediatek: Lock and cache clock rate
date: 6 weeks ago
:::::: branch date: 32 hours ago
:::::: commit date: 6 weeks ago
config: powerpc-randconfig-r054-20251029 (https://download.01.org/0day-ci/archive/20251030/202510301753.iqGmTwae-lkp@xxxxxxxxx/config)
compiler: powerpc-linux-gcc (GCC) 8.5.0
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>
| Reported-by: Julia Lawall <julia.lawall@xxxxxxxx>
| Closes: https://lore.kernel.org/r/202510301753.iqGmTwae-lkp@xxxxxxxxx/
cocci warnings: (new ones prefixed by >>)
>> drivers/pwm/pwm-mediatek.c:380:16-17: WARNING: Use struct_size
vim +380 drivers/pwm/pwm-mediatek.c
a911f15745fd4a9 Uwe Kleine-König 2025-07-25 368
2503781c97fa66f Sam Shih 2019-09-20 369 static int pwm_mediatek_probe(struct platform_device *pdev)
caf065f8fd583b4 John Crispin 2017-01-23 370 {
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 371 struct pwm_chip *chip;
2503781c97fa66f Sam Shih 2019-09-20 372 struct pwm_mediatek_chip *pc;
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 373 const struct pwm_mediatek_of_data *soc;
caf065f8fd583b4 John Crispin 2017-01-23 374 unsigned int i;
caf065f8fd583b4 John Crispin 2017-01-23 375 int ret;
caf065f8fd583b4 John Crispin 2017-01-23 376
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 377 soc = of_device_get_match_data(&pdev->dev);
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 378
ed5902a24648346 Uwe Kleine-König 2025-07-25 379 chip = devm_pwmchip_alloc(&pdev->dev, soc->num_pwms,
ed5902a24648346 Uwe Kleine-König 2025-07-25 @380 sizeof(*pc) + soc->num_pwms * sizeof(*pc->clk_pwms));
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 381 if (IS_ERR(chip))
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 382 return PTR_ERR(chip);
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 383 pc = to_pwm_mediatek_chip(chip);
caf065f8fd583b4 John Crispin 2017-01-23 384
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 385 pc->soc = soc;
424268c7494c2ae Zhi Mao 2017-10-25 386
7681c2bd2ab2dd1 Yangtao Li 2019-12-29 387 pc->regs = devm_platform_ioremap_resource(pdev, 0);
caf065f8fd583b4 John Crispin 2017-01-23 388 if (IS_ERR(pc->regs))
caf065f8fd583b4 John Crispin 2017-01-23 389 return PTR_ERR(pc->regs);
caf065f8fd583b4 John Crispin 2017-01-23 390
efecdeb82f21d41 Sam Shih 2019-09-20 391 pc->clk_top = devm_clk_get(&pdev->dev, "top");
5264e8ca762bb1b AngeloGioacchino Del Regno 2022-02-14 392 if (IS_ERR(pc->clk_top))
5264e8ca762bb1b AngeloGioacchino Del Regno 2022-02-14 393 return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_top),
4d690e508a69f42 AngeloGioacchino Del Regno 2022-02-14 394 "Failed to get top clock\n");
efecdeb82f21d41 Sam Shih 2019-09-20 395
efecdeb82f21d41 Sam Shih 2019-09-20 396 pc->clk_main = devm_clk_get(&pdev->dev, "main");
5264e8ca762bb1b AngeloGioacchino Del Regno 2022-02-14 397 if (IS_ERR(pc->clk_main))
5264e8ca762bb1b AngeloGioacchino Del Regno 2022-02-14 398 return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_main),
4d690e508a69f42 AngeloGioacchino Del Regno 2022-02-14 399 "Failed to get main clock\n");
efecdeb82f21d41 Sam Shih 2019-09-20 400
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 401 for (i = 0; i < soc->num_pwms; i++) {
efecdeb82f21d41 Sam Shih 2019-09-20 402 char name[8];
efecdeb82f21d41 Sam Shih 2019-09-20 403
efecdeb82f21d41 Sam Shih 2019-09-20 404 snprintf(name, sizeof(name), "pwm%d", i + 1);
efecdeb82f21d41 Sam Shih 2019-09-20 405
ed5902a24648346 Uwe Kleine-König 2025-07-25 406 pc->clk_pwms[i].clk = devm_clk_get(&pdev->dev, name);
ed5902a24648346 Uwe Kleine-König 2025-07-25 407 if (IS_ERR(pc->clk_pwms[i].clk))
ed5902a24648346 Uwe Kleine-König 2025-07-25 408 return dev_err_probe(&pdev->dev, PTR_ERR(pc->clk_pwms[i].clk),
4d690e508a69f42 AngeloGioacchino Del Regno 2022-02-14 409 "Failed to get %s clock\n", name);
ed5902a24648346 Uwe Kleine-König 2025-07-25 410
ed5902a24648346 Uwe Kleine-König 2025-07-25 411 ret = devm_clk_rate_exclusive_get(&pdev->dev, pc->clk_pwms[i].clk);
ed5902a24648346 Uwe Kleine-König 2025-07-25 412 if (ret)
ed5902a24648346 Uwe Kleine-König 2025-07-25 413 return dev_err_probe(&pdev->dev, ret,
ed5902a24648346 Uwe Kleine-König 2025-07-25 414 "Failed to lock clock rate for %s\n", name);
424268c7494c2ae Zhi Mao 2017-10-25 415 }
caf065f8fd583b4 John Crispin 2017-01-23 416
a911f15745fd4a9 Uwe Kleine-König 2025-07-25 417 ret = pwm_mediatek_init_used_clks(pc);
a911f15745fd4a9 Uwe Kleine-König 2025-07-25 418 if (ret)
a911f15745fd4a9 Uwe Kleine-König 2025-07-25 419 return dev_err_probe(&pdev->dev, ret, "Failed to initialize used clocks\n");
a911f15745fd4a9 Uwe Kleine-König 2025-07-25 420
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 421 chip->ops = &pwm_mediatek_ops;
caf065f8fd583b4 John Crispin 2017-01-23 422
1c8090d7b3babd2 Uwe Kleine-König 2024-02-14 423 ret = devm_pwmchip_add(&pdev->dev, chip);
5264e8ca762bb1b AngeloGioacchino Del Regno 2022-02-14 424 if (ret < 0)
5264e8ca762bb1b AngeloGioacchino Del Regno 2022-02-14 425 return dev_err_probe(&pdev->dev, ret, "pwmchip_add() failed\n");
caf065f8fd583b4 John Crispin 2017-01-23 426
caf065f8fd583b4 John Crispin 2017-01-23 427 return 0;
caf065f8fd583b4 John Crispin 2017-01-23 428 }
caf065f8fd583b4 John Crispin 2017-01-23 429
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki