From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 21044FC6172 for ; Fri, 13 Sep 2024 21:23:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 844076B00BD; Fri, 13 Sep 2024 17:23:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7F3926B00C1; Fri, 13 Sep 2024 17:23:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6BC946B00C2; Fri, 13 Sep 2024 17:23:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 4B9E76B00BD for ; Fri, 13 Sep 2024 17:23:35 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A1BDC80C3A for ; Fri, 13 Sep 2024 21:23:34 +0000 (UTC) X-FDA: 82560991548.11.EAE774E Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) by imf05.hostedemail.com (Postfix) with ESMTP id E214B100005 for ; Fri, 13 Sep 2024 21:23:30 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="D/V+vlzp"; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf05.hostedemail.com: domain of lkp@intel.com designates 192.198.163.17 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726262583; a=rsa-sha256; cv=none; b=3rSoLhyQNAdHnuCoUOKzi/sBfcuLbC0CVfGzLw89UTkK9CnAbrOP0KWWFWWO6voQ+aHjTu 51u7GnJpIBpR+lTWED32cFsCAryryP0XwTlGBqXeXwEbp3+I8fHHevsD4cIvwxVYPyKugR K9j6Vtaa1Zc+iMBGKeiXvVR6+e3JolI= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="D/V+vlzp"; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf05.hostedemail.com: domain of lkp@intel.com designates 192.198.163.17 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1726262583; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=RtMuZwUcHT8UUQnsVzKT0H26jHfdKFST7UPFSJgXUaU=; b=SChZAbS3RtuX4YAjYR3IAMBnf9o46u4d79vzMReAEabqoaUMkrezf1Tay62S/lLobu4c0F RBVFPrZZrWAJfEmtjEZ37Xo13cSabq8fOXzwFzRaPHjTniheGNZEvHcJXPRU/628ggrqnn AoT3PRPvU+c73ZaN/Y2WGc58wQ/Kox4= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1726262611; x=1757798611; h=date:from:to:cc:subject:message-id:mime-version; bh=BYt45oZPDkVHlYHqzGVb0rk4AE97llNfA0B9F86dKnc=; b=D/V+vlzpueU5tYbPMsh+tXoiElLfzf44f1m+OyHf77kfBwYzL1O2V0kJ EeOI2axeJ/+9yQXmM+B0ERNkuz5vEwtWeVTiJOMpvRPFtEg5R4MzUZmzy E8IZ9Fti5I/UvhncUxPaJ1sGxj9fV98vxbZ2pfEXEpd0DXWnceDEhYqWM CD8iO4yrjyvoJGHZFp0AsGyGk+fvHCu6qF9IMAXFeKOivmuoF+gCRMPaJ e6FlhNbS1gg0d2d5hh1G2//RX1D7k3gwrdOvSDa9XpW7jfZBu1fypzsKd tb6q4hkjTXT1G6IlnE7nZeoZ6VeeeOWBmdLi76N0eokuJhTJq1YUbpMlo A==; X-CSE-ConnectionGUID: rMej1icgQXO1YEDQRtF0RA== X-CSE-MsgGUID: nbFEi6UaSESW7vNn2B5XKA== X-IronPort-AV: E=McAfee;i="6700,10204,11194"; a="25062598" X-IronPort-AV: E=Sophos;i="6.10,227,1719903600"; d="scan'208";a="25062598" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Sep 2024 14:23:28 -0700 X-CSE-ConnectionGUID: aVfLqxGWSMe80OH2Am86Mw== X-CSE-MsgGUID: RYkeqJGmTrmWNEuNThOXaQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,227,1719903600"; d="scan'208";a="68520815" Received: from lkp-server01.sh.intel.com (HELO 53e96f405c61) ([10.239.97.150]) by orviesa006.jf.intel.com with ESMTP; 13 Sep 2024 14:23:27 -0700 Received: from kbuild by 53e96f405c61 with local (Exim 4.96) (envelope-from ) id 1spDlE-000722-0r; Fri, 13 Sep 2024 21:23:24 +0000 Date: Sat, 14 Sep 2024 05:22:24 +0800 From: kernel test robot To: Baoquan He Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org, Andrew Morton , Linux Memory Management List Subject: kernel/iomem.c:18:32: sparse: sparse: cast truncates bits from constant value (38400000050e becomes 50e) Message-ID: <202409140544.bY7KrkTy-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspam-User: X-Rspamd-Queue-Id: E214B100005 X-Rspamd-Server: rspam01 X-Stat-Signature: 9w3t7fisuznh3ok3fic4cef34ub1ksta X-HE-Tag: 1726262610-304357 X-HE-Meta: U2FsdGVkX194YISJ56WnCi2SGGzf6z1B3NO62QCTQ02HL5w96IAYwwxENZpgrw/lHr8bJoFn6uLGk2OY6oa4jmc6qJ28d6pQxlIrtZiFPhb3QiHxXWH5Lj3FCBcd8Fbny4q0BycqmqcLOj1VuA9/MKMXJH9CTmr54vBu+FdgOsR2G41sYkNH9Y/1wF0UYYixlTvqDLEhMclHzh0bod3DeRO/H2Z+ToOuXH5Bz9TievipgNT+c1YYLm2ET1IP4J2fijLTbkJTygIFLgD53RRAjUjY2SI0yGa/c2eK1Hc5duEf/tAZbv9J0fo/4rvQA7wH+3BgMoxemoN5WpA4PEDqueWe5iHyiHzC+28rHK+OYSsnfZ46z+Zx7Ku/94R3/yxPoRL0xqCtBTrT5iO0r8Xp3fWjhN8R6jES1FBsM/HeX0lntvjM9qc9URuZ9mmXHGkCirGG+wUMRTPu7FE2rkKICdG0kg1dZTEnG0TKTCIGraTB6IaTfyJD+iHRlqw+F1BN1kOoRoOHVc6SFl8SI9YBYgQ4eKVioesAupZndH4xVzjZcn3NiWcmwOCslQGzopaB1NbQHVYDxmjWevAIREXBhclC1RRXgxP/lrV8ln+i6G+KyjCsRry65CKD28tZg8om4ZrhinvIjvtwfio93GLCqyEL0JRrNsv1xQPlNTYCd2TckZ2TXZ2hyDCEX8ibTDeh5EWiwB1t8UfW8r5Y4iPWIAnHts8g3OS9Dx5wmuoa60P3rS0FkfihAY9fOmMvPAwC0OMs6XQTR8rON9wAd+ez/sc18QIUNJ/kw5O1QVnPG2vp2b41wehxkIE1/HuBVRxhkjEzlNvrIwkDYtcopOJm1MFStUiPanXlwKeBHKKGnf5uklbwG5xBDTI+7CZTwV/rzaFMxGjzCSsGMJlsGEGt0Z9+FxNYC8Gnf+sJTkW6CnT89VW5EZuUj1ucxE81L4OKtTAznHFPP6lWHqddL+L dUn7nmS9 2CoRL+QD2/FdwjNqlLQOsuqHJhbQQFC7q6V9ux4n5FctDGg6YwTLJJovN1bQPz6s1xSd0KDHEQ8lIlMs4X6mEmdU0I3VtLdG41reJymPaZtS2akr+Ql8O34CavtapaHPs3PbVpXo087TPxuBlAOTp2BKz3jKKeHlBBWQuwRj96xPPfx7cVI9j9wUkIoYd8uzdL/pxMTSrUnvjZMy8OUWP2EDA2MgnMFpk2e9ZObGdK0xkXmlqXbWRe3W8IjPPFSz9idB9iM40g+E/e6F/5gmaRkWSfwK99b4fQOk+AUStni47fAsVI2kyTBr9ESJbMm3/azP9/B4GqGMqB4A= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: e936e7d4a83b5ff6b7a685722f0ba348383af68c commit: 0453c9a78015cb2219cda7239d881f4e3137bff8 sh: mm: convert to GENERIC_IOREMAP date: 1 year, 1 month ago config: sh-randconfig-r113-20240913 (https://download.01.org/0day-ci/archive/20240914/202409140544.bY7KrkTy-lkp@intel.com/config) compiler: sh4-linux-gcc (GCC) 14.1.0 reproduce: (https://download.01.org/0day-ci/archive/20240914/202409140544.bY7KrkTy-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 | Closes: https://lore.kernel.org/oe-kbuild-all/202409140544.bY7KrkTy-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) kernel/iomem.c:113:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *[assigned] addr @@ got void [noderef] __iomem * @@ kernel/iomem.c:113:22: sparse: expected void *[assigned] addr kernel/iomem.c:113:22: sparse: got void [noderef] __iomem * kernel/iomem.c:116:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *[assigned] addr @@ got void [noderef] __iomem * @@ kernel/iomem.c:116:22: sparse: expected void *[assigned] addr kernel/iomem.c:116:22: sparse: got void [noderef] __iomem * >> kernel/iomem.c:18:32: sparse: sparse: cast truncates bits from constant value (38400000050e becomes 50e) kernel/iomem.c: note: in included file (through include/linux/gfp.h, include/linux/xarray.h, include/linux/radix-tree.h, ...): include/linux/mmzone.h:1997:40: sparse: sparse: self-comparison always evaluates to false -- drivers/usb/musb/tusb6010.c: note: in included file (through arch/sh/include/asm/io.h, include/linux/io.h, include/linux/irq.h, ...): >> include/asm-generic/io.h:1089:41: sparse: sparse: cast truncates bits from constant value (384000000506 becomes 506) vim +18 kernel/iomem.c 5981690ddb8f72 Dan Williams 2018-03-29 14 5981690ddb8f72 Dan Williams 2018-03-29 15 #ifndef arch_memremap_wb 5981690ddb8f72 Dan Williams 2018-03-29 16 static void *arch_memremap_wb(resource_size_t offset, unsigned long size) 5981690ddb8f72 Dan Williams 2018-03-29 17 { 5981690ddb8f72 Dan Williams 2018-03-29 @18 return (__force void *)ioremap_cache(offset, size); 5981690ddb8f72 Dan Williams 2018-03-29 19 } 5981690ddb8f72 Dan Williams 2018-03-29 20 #endif 5981690ddb8f72 Dan Williams 2018-03-29 21 5981690ddb8f72 Dan Williams 2018-03-29 22 #ifndef arch_memremap_can_ram_remap 5981690ddb8f72 Dan Williams 2018-03-29 23 static bool arch_memremap_can_ram_remap(resource_size_t offset, size_t size, 5981690ddb8f72 Dan Williams 2018-03-29 24 unsigned long flags) 5981690ddb8f72 Dan Williams 2018-03-29 25 { 5981690ddb8f72 Dan Williams 2018-03-29 26 return true; 5981690ddb8f72 Dan Williams 2018-03-29 27 } 5981690ddb8f72 Dan Williams 2018-03-29 28 #endif 5981690ddb8f72 Dan Williams 2018-03-29 29 5981690ddb8f72 Dan Williams 2018-03-29 30 static void *try_ram_remap(resource_size_t offset, size_t size, 5981690ddb8f72 Dan Williams 2018-03-29 31 unsigned long flags) 5981690ddb8f72 Dan Williams 2018-03-29 32 { 5981690ddb8f72 Dan Williams 2018-03-29 33 unsigned long pfn = PHYS_PFN(offset); 5981690ddb8f72 Dan Williams 2018-03-29 34 5981690ddb8f72 Dan Williams 2018-03-29 35 /* In the simple case just return the existing linear address */ 5981690ddb8f72 Dan Williams 2018-03-29 36 if (pfn_valid(pfn) && !PageHighMem(pfn_to_page(pfn)) && 5981690ddb8f72 Dan Williams 2018-03-29 37 arch_memremap_can_ram_remap(offset, size, flags)) 5981690ddb8f72 Dan Williams 2018-03-29 38 return __va(offset); 5981690ddb8f72 Dan Williams 2018-03-29 39 5981690ddb8f72 Dan Williams 2018-03-29 40 return NULL; /* fallback to arch_memremap_wb */ 5981690ddb8f72 Dan Williams 2018-03-29 41 } 5981690ddb8f72 Dan Williams 2018-03-29 42 5981690ddb8f72 Dan Williams 2018-03-29 43 /** 5981690ddb8f72 Dan Williams 2018-03-29 44 * memremap() - remap an iomem_resource as cacheable memory 5981690ddb8f72 Dan Williams 2018-03-29 45 * @offset: iomem resource start address 5981690ddb8f72 Dan Williams 2018-03-29 46 * @size: size of remap 5981690ddb8f72 Dan Williams 2018-03-29 47 * @flags: any of MEMREMAP_WB, MEMREMAP_WT, MEMREMAP_WC, 5981690ddb8f72 Dan Williams 2018-03-29 48 * MEMREMAP_ENC, MEMREMAP_DEC 5981690ddb8f72 Dan Williams 2018-03-29 49 * 5981690ddb8f72 Dan Williams 2018-03-29 50 * memremap() is "ioremap" for cases where it is known that the resource 5981690ddb8f72 Dan Williams 2018-03-29 51 * being mapped does not have i/o side effects and the __iomem 5981690ddb8f72 Dan Williams 2018-03-29 52 * annotation is not applicable. In the case of multiple flags, the different 5981690ddb8f72 Dan Williams 2018-03-29 53 * mapping types will be attempted in the order listed below until one of 5981690ddb8f72 Dan Williams 2018-03-29 54 * them succeeds. 5981690ddb8f72 Dan Williams 2018-03-29 55 * 5981690ddb8f72 Dan Williams 2018-03-29 56 * MEMREMAP_WB - matches the default mapping for System RAM on 5981690ddb8f72 Dan Williams 2018-03-29 57 * the architecture. This is usually a read-allocate write-back cache. f6c6010a077341 Wei Yang 2019-03-05 58 * Moreover, if MEMREMAP_WB is specified and the requested remap region is RAM 5981690ddb8f72 Dan Williams 2018-03-29 59 * memremap() will bypass establishing a new mapping and instead return 5981690ddb8f72 Dan Williams 2018-03-29 60 * a pointer into the direct map. 5981690ddb8f72 Dan Williams 2018-03-29 61 * 5981690ddb8f72 Dan Williams 2018-03-29 62 * MEMREMAP_WT - establish a mapping whereby writes either bypass the 5981690ddb8f72 Dan Williams 2018-03-29 63 * cache or are written through to memory and never exist in a 5981690ddb8f72 Dan Williams 2018-03-29 64 * cache-dirty state with respect to program visibility. Attempts to 5981690ddb8f72 Dan Williams 2018-03-29 65 * map System RAM with this mapping type will fail. 5981690ddb8f72 Dan Williams 2018-03-29 66 * 5981690ddb8f72 Dan Williams 2018-03-29 67 * MEMREMAP_WC - establish a writecombine mapping, whereby writes may 5981690ddb8f72 Dan Williams 2018-03-29 68 * be coalesced together (e.g. in the CPU's write buffers), but is otherwise 5981690ddb8f72 Dan Williams 2018-03-29 69 * uncached. Attempts to map System RAM with this mapping type will fail. 5981690ddb8f72 Dan Williams 2018-03-29 70 */ 5981690ddb8f72 Dan Williams 2018-03-29 71 void *memremap(resource_size_t offset, size_t size, unsigned long flags) 5981690ddb8f72 Dan Williams 2018-03-29 72 { 5981690ddb8f72 Dan Williams 2018-03-29 73 int is_ram = region_intersects(offset, size, 5981690ddb8f72 Dan Williams 2018-03-29 74 IORESOURCE_SYSTEM_RAM, IORES_DESC_NONE); 5981690ddb8f72 Dan Williams 2018-03-29 75 void *addr = NULL; 5981690ddb8f72 Dan Williams 2018-03-29 76 5981690ddb8f72 Dan Williams 2018-03-29 77 if (!flags) 5981690ddb8f72 Dan Williams 2018-03-29 78 return NULL; 5981690ddb8f72 Dan Williams 2018-03-29 79 5981690ddb8f72 Dan Williams 2018-03-29 80 if (is_ram == REGION_MIXED) { 5981690ddb8f72 Dan Williams 2018-03-29 81 WARN_ONCE(1, "memremap attempted on mixed range %pa size: %#lx\n", 5981690ddb8f72 Dan Williams 2018-03-29 82 &offset, (unsigned long) size); 5981690ddb8f72 Dan Williams 2018-03-29 83 return NULL; 5981690ddb8f72 Dan Williams 2018-03-29 84 } 5981690ddb8f72 Dan Williams 2018-03-29 85 5981690ddb8f72 Dan Williams 2018-03-29 86 /* Try all mapping types requested until one returns non-NULL */ 5981690ddb8f72 Dan Williams 2018-03-29 87 if (flags & MEMREMAP_WB) { 5981690ddb8f72 Dan Williams 2018-03-29 88 /* f6c6010a077341 Wei Yang 2019-03-05 89 * MEMREMAP_WB is special in that it can be satisfied 5981690ddb8f72 Dan Williams 2018-03-29 90 * from the direct map. Some archs depend on the 5981690ddb8f72 Dan Williams 2018-03-29 91 * capability of memremap() to autodetect cases where 5981690ddb8f72 Dan Williams 2018-03-29 92 * the requested range is potentially in System RAM. 5981690ddb8f72 Dan Williams 2018-03-29 93 */ 5981690ddb8f72 Dan Williams 2018-03-29 94 if (is_ram == REGION_INTERSECTS) 5981690ddb8f72 Dan Williams 2018-03-29 95 addr = try_ram_remap(offset, size, flags); 5981690ddb8f72 Dan Williams 2018-03-29 96 if (!addr) 5981690ddb8f72 Dan Williams 2018-03-29 97 addr = arch_memremap_wb(offset, size); 5981690ddb8f72 Dan Williams 2018-03-29 98 } 5981690ddb8f72 Dan Williams 2018-03-29 99 5981690ddb8f72 Dan Williams 2018-03-29 100 /* 5981690ddb8f72 Dan Williams 2018-03-29 101 * If we don't have a mapping yet and other request flags are 5981690ddb8f72 Dan Williams 2018-03-29 102 * present then we will be attempting to establish a new virtual 5981690ddb8f72 Dan Williams 2018-03-29 103 * address mapping. Enforce that this mapping is not aliasing 5981690ddb8f72 Dan Williams 2018-03-29 104 * System RAM. 5981690ddb8f72 Dan Williams 2018-03-29 105 */ 5981690ddb8f72 Dan Williams 2018-03-29 106 if (!addr && is_ram == REGION_INTERSECTS && flags != MEMREMAP_WB) { 5981690ddb8f72 Dan Williams 2018-03-29 107 WARN_ONCE(1, "memremap attempted on ram %pa size: %#lx\n", 5981690ddb8f72 Dan Williams 2018-03-29 108 &offset, (unsigned long) size); 5981690ddb8f72 Dan Williams 2018-03-29 109 return NULL; 5981690ddb8f72 Dan Williams 2018-03-29 110 } 5981690ddb8f72 Dan Williams 2018-03-29 111 5981690ddb8f72 Dan Williams 2018-03-29 112 if (!addr && (flags & MEMREMAP_WT)) 5981690ddb8f72 Dan Williams 2018-03-29 @113 addr = ioremap_wt(offset, size); 5981690ddb8f72 Dan Williams 2018-03-29 114 5981690ddb8f72 Dan Williams 2018-03-29 115 if (!addr && (flags & MEMREMAP_WC)) 5981690ddb8f72 Dan Williams 2018-03-29 116 addr = ioremap_wc(offset, size); 5981690ddb8f72 Dan Williams 2018-03-29 117 5981690ddb8f72 Dan Williams 2018-03-29 118 return addr; 5981690ddb8f72 Dan Williams 2018-03-29 119 } 5981690ddb8f72 Dan Williams 2018-03-29 120 EXPORT_SYMBOL(memremap); 5981690ddb8f72 Dan Williams 2018-03-29 121 :::::: The code at line 18 was first introduced by commit :::::: 5981690ddb8f72f9546a2d017a914cf56095fc1f memremap: split devm_memremap_pages() and memremap() infrastructure :::::: TO: Dan Williams :::::: CC: Dan Williams -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki