Hi Kamal,

kernel test robot noticed the following build warnings:

[auto build test WARNING on robh/for-next]
[also build test WARNING on linus/master v6.16-rc5 next-20250711]
[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#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Kamal-Dasu/dt-bindings-brcmstb-hwspinlock-support-for-hwspinlock/20250712-034624
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link:    
https://lore.kernel.org/r/20250711154221.928164-4-kamal.dasu%40broadcom.com
patch subject: [PATCH 2/4] hwspinlock: brcmstb hardware semaphore support
config: arc-randconfig-r111-20250713 
(https://download.01.org/0day-ci/archive/20250713/202507131422.6eiuyxuj-...@intel.com/config)
compiler: arc-linux-gcc (GCC) 12.4.0
reproduce: 
(https://download.01.org/0day-ci/archive/20250713/202507131422.6eiuyxuj-...@intel.com/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
| Reported-by: kernel test robot <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202507131422.6eiuyxuj-...@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/hwspinlock/brcmstb_hwspinlock.c:26:39: sparse: sparse: incorrect 
>> type in initializer (different address spaces) @@     expected void 
>> [noderef] __iomem *lock_addr @@     got void *priv @@
   drivers/hwspinlock/brcmstb_hwspinlock.c:26:39: sparse:     expected void 
[noderef] __iomem *lock_addr
   drivers/hwspinlock/brcmstb_hwspinlock.c:26:39: sparse:     got void *priv
   drivers/hwspinlock/brcmstb_hwspinlock.c:35:39: sparse: sparse: incorrect 
type in initializer (different address spaces) @@     expected void [noderef] 
__iomem *lock_addr @@     got void *priv @@
   drivers/hwspinlock/brcmstb_hwspinlock.c:35:39: sparse:     expected void 
[noderef] __iomem *lock_addr
   drivers/hwspinlock/brcmstb_hwspinlock.c:35:39: sparse:     got void *priv
>> drivers/hwspinlock/brcmstb_hwspinlock.c:73:30: sparse: sparse: incorrect 
>> type in assignment (different address spaces) @@     expected void *priv @@  
>>    got void [noderef] __iomem * @@
   drivers/hwspinlock/brcmstb_hwspinlock.c:73:30: sparse:     expected void 
*priv
   drivers/hwspinlock/brcmstb_hwspinlock.c:73:30: sparse:     got void 
[noderef] __iomem *

vim +26 drivers/hwspinlock/brcmstb_hwspinlock.c

    23  
    24  static int brcmstb_hwspinlock_trylock(struct hwspinlock *lock)
    25  {
  > 26          void __iomem *lock_addr = lock->priv;
    27  
    28          writel(HWSPINLOCK_VAL, lock_addr);
    29  
    30          return (readl(lock_addr) == HWSPINLOCK_VAL);
    31  }
    32  
    33  static void brcmstb_hwspinlock_unlock(struct hwspinlock *lock)
    34  {
    35          void __iomem *lock_addr = lock->priv;
    36  
    37          /* release the lock by writing 0 to it */
    38          writel(RESET_SEMAPHORE, lock_addr);
    39  }
    40  
    41  static void brcmstb_hwspinlock_relax(struct hwspinlock *lock)
    42  {
    43          ndelay(50);
    44  }
    45  
    46  static const struct hwspinlock_ops brcmstb_hwspinlock_ops = {
    47          .trylock        = brcmstb_hwspinlock_trylock,
    48          .unlock         = brcmstb_hwspinlock_unlock,
    49          .relax          = brcmstb_hwspinlock_relax,
    50  };
    51  
    52  static int brcmstb_hwspinlock_probe(struct platform_device *pdev)
    53  {
    54          struct hwspinlock_device *bank;
    55          struct hwspinlock *hwlock;
    56          void __iomem *io_base;
    57          int i, num_locks = BRCMSTB_MAX_SEMAPHORES;
    58  
    59          io_base = devm_platform_ioremap_resource(pdev, 0);
    60          if (IS_ERR(io_base)) {
    61                  dev_err(&pdev->dev, "semaphore iobase mapping error\n");
    62                  return PTR_ERR(io_base);
    63          }
    64  
    65          bank = devm_kzalloc(&pdev->dev, struct_size(bank, lock, 
num_locks),
    66                              GFP_KERNEL);
    67          if (!bank)
    68                  return -ENOMEM;
    69  
    70          platform_set_drvdata(pdev, bank);
    71  
    72          for (i = 0, hwlock = &bank->lock[0]; i < num_locks; i++, 
hwlock++)
  > 73                  hwlock->priv = io_base + sizeof(u32) * i;
    74  
    75          return devm_hwspin_lock_register(&pdev->dev, bank,
    76                                           &brcmstb_hwspinlock_ops,
    77                                           0, num_locks);
    78  }
    79  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to