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 21E6AC433F5 for ; Fri, 15 Apr 2022 15:24:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 489AE6B0071; Fri, 15 Apr 2022 11:24:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 439926B0073; Fri, 15 Apr 2022 11:24:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2DA456B0074; Fri, 15 Apr 2022 11:24:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0001.hostedemail.com [216.40.44.1]) by kanga.kvack.org (Postfix) with ESMTP id 1B6406B0071 for ; Fri, 15 Apr 2022 11:24:22 -0400 (EDT) Received: from smtpin26.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id C3AD58249980 for ; Fri, 15 Apr 2022 15:24:21 +0000 (UTC) X-FDA: 79359484722.26.5E4BE96 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by imf08.hostedemail.com (Postfix) with ESMTP id 0ABD0160003 for ; Fri, 15 Apr 2022 15:24:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650036260; x=1681572260; h=date:from:to:cc:subject:message-id:mime-version; bh=VvB8GNH0P63TCGiRr/JJUEkdbXGztDgVhrgyusJbmKc=; b=ZupUTkpF8Yfhc2Dj+5kKamizpOWwymC9M5ckpeXIAAPIY8RRy9gzpfUz 2wvVt1IVv2CbcteW7BC1kGbXjbKuJcLifVYmArBqph47fmjFqlNb/iKa4 Nk8VrKNIpD7YAaJDj5uQ6UAwGTxIL7en4Mghzw4BjnDLCAmiXjmfO98NG /AothgkxHDI/qyYlgJiVRRzzV8I0Ch5dVm9WGV3CfKlYgoSzUH+eaBqom CN9V+6FNPDjru2Evbhtpi2+QgOEhoGqWuibT4CVyrjl7P3izixre2X233 J5H61e1VWeHFWN/yXN899YTOWox74p2oSJAa33/xmxEerrmicD+USPXT1 g==; X-IronPort-AV: E=McAfee;i="6400,9594,10318"; a="245054350" X-IronPort-AV: E=Sophos;i="5.90,263,1643702400"; d="scan'208";a="245054350" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Apr 2022 08:24:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,263,1643702400"; d="scan'208";a="591656327" Received: from lkp-server01.sh.intel.com (HELO 3abc53900bec) ([10.239.97.150]) by orsmga001.jf.intel.com with ESMTP; 15 Apr 2022 08:24:13 -0700 Received: from kbuild by 3abc53900bec with local (Exim 4.95) (envelope-from ) id 1nfNnx-00025n-2z; Fri, 15 Apr 2022 15:24:13 +0000 Date: Fri, 15 Apr 2022 23:23:15 +0800 From: kernel test robot To: Deepak Kumar Singh Cc: kbuild-all@lists.01.org, Linux Memory Management List , Bjorn Andersson Subject: [linux-next:master 3545/4328] drivers/soc/qcom/smem.c:1056:31: sparse: sparse: incorrect type in argument 1 (different address spaces) Message-ID: <202204152338.v4sO65BF-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZupUTkpF; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf08.hostedemail.com: domain of lkp@intel.com has no SPF policy when checking 134.134.136.126) smtp.mailfrom=lkp@intel.com X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 0ABD0160003 X-Stat-Signature: 4t4sst9yg3payhnuugihecjr4kpyjtmf X-HE-Tag: 1650036259-441562 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: tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 40354149f4d738dc3492d9998e45b3f02950369a commit: 20bb6c9de1b7e13f11d2ffe73686f4449c426807 [3545/4328] soc: qcom: smem: map only partitions used by local HOST config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20220415/202204152338.v4sO65BF-lkp@intel.com/config) compiler: mips-linux-gcc (GCC) 11.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=20bb6c9de1b7e13f11d2ffe73686f4449c426807 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 20bb6c9de1b7e13f11d2ffe73686f4449c426807 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=mips SHELL=/bin/bash drivers/soc/qcom/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) command-line: note: in included file: builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined builtin:0:0: sparse: this was the original definition builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined builtin:0:0: sparse: this was the original definition builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined builtin:0:0: sparse: this was the original definition builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined builtin:0:0: sparse: this was the original definition drivers/soc/qcom/smem.c:422:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_header *header @@ got void [noderef] __iomem *virt_base @@ drivers/soc/qcom/smem.c:422:16: sparse: expected struct smem_header *header drivers/soc/qcom/smem.c:422:16: sparse: got void [noderef] __iomem *virt_base drivers/soc/qcom/smem.c:507:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_header *header @@ got void [noderef] __iomem *virt_base @@ drivers/soc/qcom/smem.c:507:16: sparse: expected struct smem_header *header drivers/soc/qcom/smem.c:507:16: sparse: got void [noderef] __iomem *virt_base drivers/soc/qcom/smem.c:520:50: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@ drivers/soc/qcom/smem.c:520:50: sparse: expected void * drivers/soc/qcom/smem.c:520:50: sparse: got void [noderef] __iomem * drivers/soc/qcom/smem.c:648:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_partition_header *phdr @@ got void [noderef] __iomem *virt_base @@ drivers/soc/qcom/smem.c:648:22: sparse: expected struct smem_partition_header *phdr drivers/soc/qcom/smem.c:648:22: sparse: got void [noderef] __iomem *virt_base drivers/soc/qcom/smem.c:653:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_partition_header *phdr @@ got void [noderef] __iomem *virt_base @@ drivers/soc/qcom/smem.c:653:22: sparse: expected struct smem_partition_header *phdr drivers/soc/qcom/smem.c:653:22: sparse: got void [noderef] __iomem *virt_base drivers/soc/qcom/smem.c:657:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_header *header @@ got void [noderef] __iomem *virt_base @@ drivers/soc/qcom/smem.c:657:24: sparse: expected struct smem_header *header drivers/soc/qcom/smem.c:657:24: sparse: got void [noderef] __iomem *virt_base drivers/soc/qcom/smem.c:667:30: sparse: sparse: incompatible types in comparison expression (different address spaces): drivers/soc/qcom/smem.c:667:30: sparse: void * drivers/soc/qcom/smem.c:667:30: sparse: void [noderef] __iomem * drivers/soc/qcom/smem.c:688:36: sparse: sparse: subtraction of different types can't work (different address spaces) drivers/soc/qcom/smem.c:697:28: sparse: sparse: subtraction of different types can't work (different address spaces) drivers/soc/qcom/smem.c:706:36: sparse: sparse: subtraction of different types can't work (different address spaces) drivers/soc/qcom/smem.c:721:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_header *header @@ got void [noderef] __iomem *virt_base @@ drivers/soc/qcom/smem.c:721:16: sparse: expected struct smem_header *header drivers/soc/qcom/smem.c:721:16: sparse: got void [noderef] __iomem *virt_base drivers/soc/qcom/smem.c:754:57: sparse: sparse: restricted __le32 degrades to integer drivers/soc/qcom/smem.c:775:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_partition_header *header @@ got void [noderef] __iomem * @@ drivers/soc/qcom/smem.c:775:16: sparse: expected struct smem_partition_header *header drivers/soc/qcom/smem.c:775:16: sparse: got void [noderef] __iomem * drivers/soc/qcom/smem.c:926:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_ptable *ptable @@ got void [noderef] __iomem * @@ drivers/soc/qcom/smem.c:926:22: sparse: expected struct smem_ptable *ptable drivers/soc/qcom/smem.c:926:22: sparse: got void [noderef] __iomem * drivers/soc/qcom/smem.c:1035:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_header *header @@ got void [noderef] __iomem *virt_base @@ drivers/soc/qcom/smem.c:1035:16: sparse: expected struct smem_header *header drivers/soc/qcom/smem.c:1035:16: sparse: got void [noderef] __iomem *virt_base >> drivers/soc/qcom/smem.c:1056:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got restricted __le32 * @@ drivers/soc/qcom/smem.c:1056:31: sparse: expected void const volatile [noderef] __iomem *mem drivers/soc/qcom/smem.c:1056:31: sparse: got restricted __le32 * drivers/soc/qcom/smem.c:1056:67: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got restricted __le32 * @@ drivers/soc/qcom/smem.c:1056:67: sparse: expected void const volatile [noderef] __iomem *mem drivers/soc/qcom/smem.c:1056:67: sparse: got restricted __le32 * vim +1056 drivers/soc/qcom/smem.c 973 974 static int qcom_smem_probe(struct platform_device *pdev) 975 { 976 struct smem_header *header; 977 struct reserved_mem *rmem; 978 struct qcom_smem *smem; 979 unsigned long flags; 980 size_t array_size; 981 int num_regions; 982 int hwlock_id; 983 u32 version; 984 u32 size; 985 int ret; 986 int i; 987 988 num_regions = 1; 989 if (of_find_property(pdev->dev.of_node, "qcom,rpm-msg-ram", NULL)) 990 num_regions++; 991 992 array_size = num_regions * sizeof(struct smem_region); 993 smem = devm_kzalloc(&pdev->dev, sizeof(*smem) + array_size, GFP_KERNEL); 994 if (!smem) 995 return -ENOMEM; 996 997 smem->dev = &pdev->dev; 998 smem->num_regions = num_regions; 999 1000 rmem = of_reserved_mem_lookup(pdev->dev.of_node); 1001 if (rmem) { 1002 smem->regions[0].aux_base = rmem->base; 1003 smem->regions[0].size = rmem->size; 1004 } else { 1005 /* 1006 * Fall back to the memory-region reference, if we're not a 1007 * reserved-memory node. 1008 */ 1009 ret = qcom_smem_resolve_mem(smem, "memory-region", &smem->regions[0]); 1010 if (ret) 1011 return ret; 1012 } 1013 1014 if (num_regions > 1) { 1015 ret = qcom_smem_resolve_mem(smem, "qcom,rpm-msg-ram", &smem->regions[1]); 1016 if (ret) 1017 return ret; 1018 } 1019 1020 1021 ret = qcom_smem_map_toc(smem, &smem->regions[0]); 1022 if (ret) 1023 return ret; 1024 1025 for (i = 1; i < num_regions; i++) { 1026 smem->regions[i].virt_base = devm_ioremap_wc(&pdev->dev, 1027 smem->regions[i].aux_base, 1028 smem->regions[i].size); 1029 if (!smem->regions[i].virt_base) { 1030 dev_err(&pdev->dev, "failed to remap %pa\n", &smem->regions[i].aux_base); 1031 return -ENOMEM; 1032 } 1033 } 1034 1035 header = smem->regions[0].virt_base; 1036 if (le32_to_cpu(header->initialized) != 1 || 1037 le32_to_cpu(header->reserved)) { 1038 dev_err(&pdev->dev, "SMEM is not initialized by SBL\n"); 1039 return -EINVAL; 1040 } 1041 1042 hwlock_id = of_hwspin_lock_get_id(pdev->dev.of_node, 0); 1043 if (hwlock_id < 0) { 1044 if (hwlock_id != -EPROBE_DEFER) 1045 dev_err(&pdev->dev, "failed to retrieve hwlock\n"); 1046 return hwlock_id; 1047 } 1048 1049 smem->hwlock = hwspin_lock_request_specific(hwlock_id); 1050 if (!smem->hwlock) 1051 return -ENXIO; 1052 1053 ret = hwspin_lock_timeout_irqsave(smem->hwlock, HWSPINLOCK_TIMEOUT, &flags); 1054 if (ret) 1055 return ret; > 1056 size = readl_relaxed(&header->available) + readl_relaxed(&header->free_offset); 1057 hwspin_unlock_irqrestore(smem->hwlock, &flags); 1058 1059 version = qcom_smem_get_sbl_version(smem); 1060 /* 1061 * smem header mapping is required only in heap version scheme, so unmap 1062 * it here. It will be remapped in qcom_smem_map_global() when whole 1063 * partition is mapped again. 1064 */ 1065 devm_iounmap(smem->dev, smem->regions[0].virt_base); 1066 switch (version >> 16) { 1067 case SMEM_GLOBAL_PART_VERSION: 1068 ret = qcom_smem_set_global_partition(smem); 1069 if (ret < 0) 1070 return ret; 1071 smem->item_count = qcom_smem_get_item_count(smem); 1072 break; 1073 case SMEM_GLOBAL_HEAP_VERSION: 1074 qcom_smem_map_global(smem, size); 1075 smem->item_count = SMEM_ITEM_COUNT; 1076 break; 1077 default: 1078 dev_err(&pdev->dev, "Unsupported SMEM version 0x%x\n", version); 1079 return -EINVAL; 1080 } 1081 1082 BUILD_BUG_ON(SMEM_HOST_APPS >= SMEM_HOST_COUNT); 1083 ret = qcom_smem_enumerate_partitions(smem, SMEM_HOST_APPS); 1084 if (ret < 0 && ret != -ENOENT) 1085 return ret; 1086 1087 __smem = smem; 1088 1089 smem->socinfo = platform_device_register_data(&pdev->dev, "qcom-socinfo", 1090 PLATFORM_DEVID_NONE, NULL, 1091 0); 1092 if (IS_ERR(smem->socinfo)) 1093 dev_dbg(&pdev->dev, "failed to register socinfo device\n"); 1094 1095 return 0; 1096 } 1097 -- 0-DAY CI Kernel Test Service https://01.org/lkp