lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202503141052.v7b9psFM-lkp@intel.com>
Date: Fri, 14 Mar 2025 11:19:30 +0800
From: kernel test robot <lkp@...el.com>
To: Subu Dwevedi <messigoatcr7nop@...il.com>
Cc: oe-kbuild-all@...ts.linux.dev, Subu Dwevedi <messigoatcr7nop@...il.com>,
	Henrik Rydberg <rydberg@...math.org>,
	Jean Delvare <jdelvare@...e.com>,
	Guenter Roeck <linux@...ck-us.net>, linux-hwmon@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] hwmon/applesmc: add MMIO for newer macs

Hi Subu,

kernel test robot noticed the following build warnings:

[auto build test WARNING on groeck-staging/hwmon-next]
[also build test WARNING on linus/master v6.14-rc6 next-20250313]
[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/Subu-Dwevedi/hwmon-applesmc-add-MMIO-for-newer-macs/20250312-203248
base:   https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next
patch link:    https://lore.kernel.org/r/20250312123055.1735-2-messigoatcr7nop%40gmail.com
patch subject: [PATCH 1/2] hwmon/applesmc: add MMIO for newer macs
config: x86_64-randconfig-122-20250313 (https://download.01.org/0day-ci/archive/20250314/202503141052.v7b9psFM-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250314/202503141052.v7b9psFM-lkp@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 <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503141052.v7b9psFM-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/hwmon/applesmc.c:257:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:257:31: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:257:31: sparse:     got unsigned char [usertype] *
>> drivers/hwmon/applesmc.c:258:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:258:46: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:258:46: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:269:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:269:44: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:269:44: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:281:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:281:44: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:281:44: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:282:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:282:34: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:282:34: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:283:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:283:33: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:283:33: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:288:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:288:31: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:288:31: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:292:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:292:39: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:292:39: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:299:71: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:299:71: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:299:71: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:302:81: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:302:81: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:302:81: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:306:73: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:306:73: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:306:73: sparse:     got unsigned char [usertype] *
>> drivers/hwmon/applesmc.c:311:49: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const volatile [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:311:49: sparse:     expected void const volatile [noderef] __iomem *
   drivers/hwmon/applesmc.c:311:49: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:320:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:320:44: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:320:44: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:324:63: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:324:63: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:324:63: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:327:73: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:327:73: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:327:73: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:331:65: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:331:65: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:331:65: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:335:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:335:33: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:335:33: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:336:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:336:34: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:336:34: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:337:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:337:33: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:337:33: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:341:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:341:31: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:341:31: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:510:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:510:52: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:510:52: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:511:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:511:39: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:511:39: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:512:63: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:512:63: sparse:     expected void [noderef] __iomem *
   drivers/hwmon/applesmc.c:512:63: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:517:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:517:41: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:517:41: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:521:58: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:521:58: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:521:58: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:522:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:522:48: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:522:48: sparse:     got unsigned char [usertype] *
   drivers/hwmon/applesmc.c:523:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:523:50: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:523:50: sparse:     got unsigned char [usertype] *
>> drivers/hwmon/applesmc.c:740:19: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base @@     got void [noderef] __iomem * @@
   drivers/hwmon/applesmc.c:740:19: sparse:     expected unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base
   drivers/hwmon/applesmc.c:740:19: sparse:     got void [noderef] __iomem *
   drivers/hwmon/applesmc.c:745:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __iomem * @@     got unsigned char [usertype] * @@
   drivers/hwmon/applesmc.c:745:31: sparse:     expected void const [noderef] __iomem *
   drivers/hwmon/applesmc.c:745:31: sparse:     got unsigned char [usertype] *
>> drivers/hwmon/applesmc.c:757:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base @@
   drivers/hwmon/applesmc.c:757:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/hwmon/applesmc.c:757:17: sparse:     got unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base
   drivers/hwmon/applesmc.c:1611:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base @@
   drivers/hwmon/applesmc.c:1611:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/hwmon/applesmc.c:1611:25: sparse:     got unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base
>> drivers/hwmon/applesmc.c:257:21: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:258:36: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:269:34: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:281:34: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:282:24: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:283:23: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:288:21: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:292:29: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:299:61: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:302:71: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:306:63: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:311:39: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:320:34: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:324:53: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:327:63: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:331:55: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:335:23: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:336:24: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:337:23: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:341:21: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:510:42: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:511:29: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:512:53: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:517:31: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:521:48: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:522:38: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:523:40: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:742:14: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:745:21: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:757:17: sparse: sparse: dereference of noderef expression
   drivers/hwmon/applesmc.c:1611:25: sparse: sparse: dereference of noderef expression

vim +257 drivers/hwmon/applesmc.c

   250	
   251	/*
   252	 * MMIO Impliementation
   253	 */
   254	
   255	static void clearArbitration(void)
   256	{
 > 257		if (ioread8(mmio_base + 0x4005))
 > 258			return iowrite8(0, mmio_base + 0x4005);
   259	}
   260	static int waitForKeyDone(void)
   261	{
   262		int i = 1000; //millisecounds
   263		u8 status;
   264	
   265		while (i) {
   266			msleep(1);
   267			i--;
   268	
   269			status = ioread8(mmio_base + 0x4005);
   270			if (status & 0x20)
   271				return 0;
   272		}
   273	
   274		return -EIO;
   275	}
   276	static int mmio_read_smc(u8 cmd, const char *key, u8 *buffer, u64 len)
   277	{
   278		u8 i, u = 0;
   279	
   280		clearArbitration();
   281		iowrite32(*((u32 *)key), mmio_base + 0x78);
   282		iowrite8(0x15, mmio_base + 0x7E);
   283		iowrite8(cmd, mmio_base + 0x7F);
   284	
   285		if (waitForKeyDone())
   286			return -EIO;
   287	
   288		i = ioread8(mmio_base + 0x7F);
   289		if (i)
   290			return -EIO;
   291		if (cmd == APPLESMC_READ_CMD) {
   292			i = ioread8(mmio_base + 0x7D);
   293			if (i > len || !i)
   294				return -EIO;
   295	
   296			while (u < i) {
   297				if ((i - u) < 4) {
   298					if ((i - u) < 2) {
   299						buffer[u] = ioread8(mmio_base + u);
   300						u += 1;
   301					} else {
   302						*(u16 *)&buffer[u] = ioread16(mmio_base + u);
   303						u += 2;
   304					}
   305				} else {
   306					*(u32 *)&buffer[u] = ioread32(mmio_base + u);
   307					u += 4;
   308				}
   309			}
   310		} else
 > 311			memcpy_fromio(buffer, mmio_base + 0x0, len);
   312	
   313		return 0;
   314	}
   315	static int mmio_write_smc(u8 cmd, const char *key, const u8 *buffer, u8 len)
   316	{
   317		u8 i = 0;
   318	
   319		clearArbitration();
   320		iowrite32(*((u32 *)key), mmio_base + 0x78);
   321		while (i < len) {
   322			if (len - i < 4) {
   323				if (len - i < 2) {
   324					iowrite8(buffer[i], mmio_base + i);
   325					i += 1;
   326				} else {
   327					iowrite16(*(u16 *)&buffer[i], mmio_base + i);
   328					i += 2;
   329				}
   330			} else {
   331				iowrite32(*(u32 *)&buffer[i], mmio_base + i);
   332				i += 4;
   333			}
   334		}
   335		iowrite8(len, mmio_base + 0x7D);
   336		iowrite8(0x15, mmio_base + 0x7E);
   337		iowrite8(cmd, mmio_base + 0x7F);
   338		if (waitForKeyDone())
   339			return -EIO;
   340	
   341		i = ioread8(mmio_base + 0x7F);
   342		if (i)
   343			return -EIO;
   344	
   345		return 0;
   346	}
   347	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ