drivers/mfd/macsmc.c:462:26: sparse: sparse: cast to restricted __be32

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild-all,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   94515f3a7d4256a5062176b7d6ed0471938cd51a
commit: e038d985c9823a12cd64fa077d0c5aca2c644b67 mfd: Add Apple Silicon System Management Controller
date:   12 months ago
config: sparc64-randconfig-r131-20260716 (https://download.01.org/0day-ci/archive/20260718/[email protected]/config)
compiler: sparc64-linux-gcc (GCC) 13.4.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260718/[email protected]/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
| Fixes: e038d985c982 ("mfd: Add Apple Silicon System Management Controller")
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

sparse warnings: (new ones prefixed by >>)
>> drivers/mfd/macsmc.c:462:26: sparse: sparse: cast to restricted __be32
   drivers/mfd/macsmc.c:242:5: sparse: sparse: context imbalance in 'apple_smc_write_atomic' - wrong count at exit

vim +462 drivers/mfd/macsmc.c

   404	
   405	static int apple_smc_probe(struct platform_device *pdev)
   406	{
   407		struct device *dev = &pdev->dev;
   408		struct apple_smc *smc;
   409		u32 count;
   410		int ret;
   411	
   412		smc = devm_kzalloc(dev, sizeof(*smc), GFP_KERNEL);
   413		if (!smc)
   414			return -ENOMEM;
   415	
   416		smc->dev = &pdev->dev;
   417		smc->sram_base = devm_platform_get_and_ioremap_resource(pdev, 1, &smc->sram);
   418		if (IS_ERR(smc->sram_base))
   419			return dev_err_probe(dev, PTR_ERR(smc->sram_base), "Failed to map SRAM region");
   420	
   421		smc->rtk = devm_apple_rtkit_init(dev, smc, NULL, 0, &apple_smc_rtkit_ops);
   422		if (IS_ERR(smc->rtk))
   423			return dev_err_probe(dev, PTR_ERR(smc->rtk), "Failed to initialize RTKit");
   424	
   425		smc->boot_stage = APPLE_SMC_BOOTING;
   426		ret = apple_rtkit_wake(smc->rtk);
   427		if (ret)
   428			return dev_err_probe(dev, ret, "Failed to wake up SMC");
   429	
   430		ret = devm_add_action_or_reset(dev, apple_smc_rtkit_shutdown, smc);
   431		if (ret)
   432			return dev_err_probe(dev, ret, "Failed to register rtkit shutdown action");
   433	
   434		ret = apple_rtkit_start_ep(smc->rtk, SMC_ENDPOINT);
   435		if (ret)
   436			return dev_err_probe(dev, ret, "Failed to start SMC endpoint");
   437	
   438		init_completion(&smc->init_done);
   439		init_completion(&smc->cmd_done);
   440	
   441		ret = apple_rtkit_send_message(smc->rtk, SMC_ENDPOINT,
   442					       FIELD_PREP(SMC_MSG, SMC_MSG_INITIALIZE), NULL, false);
   443		if (ret)
   444			return dev_err_probe(dev, ret, "Failed to send init message");
   445	
   446		if (wait_for_completion_timeout(&smc->init_done, msecs_to_jiffies(SMC_TIMEOUT_MS)) == 0) {
   447			dev_err(dev, "Timed out initializing SMC");
   448			return -ETIMEDOUT;
   449		}
   450	
   451		if (smc->boot_stage != APPLE_SMC_INITIALIZED) {
   452			dev_err(dev, "SMC failed to boot successfully, boot stage=%d\n", smc->boot_stage);
   453			return -EIO;
   454		}
   455	
   456		dev_set_drvdata(&pdev->dev, smc);
   457		BLOCKING_INIT_NOTIFIER_HEAD(&smc->event_handlers);
   458	
   459		ret = apple_smc_read_u32(smc, SMC_KEY(#KEY), &count);
   460		if (ret)
   461			return dev_err_probe(smc->dev, ret, "Failed to get key count");
 > 462		smc->key_count = be32_to_cpu(count);
   463	
   464		/* Enable notifications */
   465		apple_smc_write_flag(smc, SMC_KEY(NTAP), true);
   466		ret = devm_add_action_or_reset(dev, apple_smc_disable_notifications, smc);
   467		if (ret)
   468			return dev_err_probe(dev, ret, "Failed to register notification disable action");
   469	
   470		ret = devm_mfd_add_devices(smc->dev, PLATFORM_DEVID_NONE,
   471					   apple_smc_devs, ARRAY_SIZE(apple_smc_devs),
   472					   NULL, 0, NULL);
   473		if (ret)
   474			return dev_err_probe(smc->dev, ret, "Failed to register sub-devices");
   475	
   476	
   477		return 0;
   478	}
   479	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.