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 for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202308071025.KCEf7Mhd-lkp@intel.com>
Date:   Mon, 7 Aug 2023 10:58:55 +0800
From:   kernel test robot <lkp@...el.com>
To:     Benjamin Gray <bgray@...ux.ibm.com>
Cc:     oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
        Michael Ellerman <mpe@...erman.id.au>,
        Christophe Leroy <christophe.leroy@...roup.eu>
Subject: arch/powerpc/platforms/powermac/time.c:210:24: sparse: sparse: cast
 removes address space '__iomem' of expression

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   52a93d39b17dc7eb98b6aa3edb93943248e03b2f
commit: 86582e6189dd8f9f52c25d46c70fe5d111da6345 powerpc/powermac: Use early_* IO variants in via_calibrate_decr()
date:   5 days ago
config: powerpc-randconfig-r071-20230807 (https://download.01.org/0day-ci/archive/20230807/202308071025.KCEf7Mhd-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230807/202308071025.KCEf7Mhd-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/202308071025.KCEf7Mhd-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> arch/powerpc/platforms/powermac/time.c:210:24: sparse: sparse: cast removes address space '__iomem' of expression
>> arch/powerpc/platforms/powermac/time.c:210:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] __iomem *addr @@     got void * @@
   arch/powerpc/platforms/powermac/time.c:210:24: sparse:     expected void [noderef] __iomem *addr
   arch/powerpc/platforms/powermac/time.c:210:24: sparse:     got void *
   arch/powerpc/platforms/powermac/time.c:192:30: sparse: sparse: dereference of noderef expression
   arch/powerpc/platforms/powermac/time.c:192:30: sparse: sparse: dereference of noderef expression
   arch/powerpc/platforms/powermac/time.c:196:27: sparse: sparse: cast truncates bits from constant value (b798 becomes 98)

vim +/__iomem +210 arch/powerpc/platforms/powermac/time.c

   161	
   162	#ifdef CONFIG_PPC32
   163	/*
   164	 * Calibrate the decrementer register using VIA timer 1.
   165	 * This is used both on powermacs and CHRP machines.
   166	 */
   167	static int __init via_calibrate_decr(void)
   168	{
   169		struct device_node *vias;
   170		volatile unsigned char __iomem *via;
   171		int count = VIA_TIMER_FREQ_6 / 100;
   172		unsigned int dstart, dend;
   173		struct resource rsrc;
   174	
   175		vias = of_find_node_by_name(NULL, "via-cuda");
   176		if (vias == NULL)
   177			vias = of_find_node_by_name(NULL, "via-pmu");
   178		if (vias == NULL)
   179			vias = of_find_node_by_name(NULL, "via");
   180		if (vias == NULL || of_address_to_resource(vias, 0, &rsrc)) {
   181		        of_node_put(vias);
   182			return 0;
   183		}
   184		of_node_put(vias);
   185		via = early_ioremap(rsrc.start, resource_size(&rsrc));
   186		if (via == NULL) {
   187			printk(KERN_ERR "Failed to map VIA for timer calibration !\n");
   188			return 0;
   189		}
   190	
   191		/* set timer 1 for continuous interrupts */
   192		out_8(&via[ACR], (via[ACR] & ~T1MODE) | T1MODE_CONT);
   193		/* set the counter to a small value */
   194		out_8(&via[T1CH], 2);
   195		/* set the latch to `count' */
   196		out_8(&via[T1LL], count);
   197		out_8(&via[T1LH], count >> 8);
   198		/* wait until it hits 0 */
   199		while ((in_8(&via[IFR]) & T1_INT) == 0)
   200			;
   201		dstart = get_dec();
   202		/* clear the interrupt & wait until it hits 0 again */
   203		in_8(&via[T1CL]);
   204		while ((in_8(&via[IFR]) & T1_INT) == 0)
   205			;
   206		dend = get_dec();
   207	
   208		ppc_tb_freq = (dstart - dend) * 100 / 6;
   209	
 > 210		early_iounmap((void *)via, resource_size(&rsrc));
   211	
   212		return 1;
   213	}
   214	#endif
   215	

-- 
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