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 8BDECC4829D for ; Mon, 12 Feb 2024 22:20:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 19C558D0003; Mon, 12 Feb 2024 17:20:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 14C228D0001; Mon, 12 Feb 2024 17:20:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F2F1E8D0003; Mon, 12 Feb 2024 17:20:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id DF1798D0001 for ; Mon, 12 Feb 2024 17:20:06 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id AB756C065D for ; Mon, 12 Feb 2024 22:20:06 +0000 (UTC) X-FDA: 81784570812.23.497AA9D Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by imf03.hostedemail.com (Postfix) with ESMTP id 0731020019 for ; Mon, 12 Feb 2024 22:20:03 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="e/5jwKE3"; spf=pass (imf03.hostedemail.com: domain of lkp@intel.com designates 198.175.65.10 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707776404; a=rsa-sha256; cv=none; b=BcKF2NqgcMiDy5ZjgPjd8fwEAt7bxBJvac5Y5gSyhGFpf7ZOpwyGLS0+X16E7Wq4XaNMgK lVTXHO/TdGqw2XsB3GNNss2jhnXpyizxedrmIZC84zr0lchu/bvAzItU5CefueaeNBrWqW tJ5pK2xf+5DUws0hWSZQ5yzEK/rechY= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="e/5jwKE3"; spf=pass (imf03.hostedemail.com: domain of lkp@intel.com designates 198.175.65.10 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707776404; 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=kKki4Ea1YuWHQZntcYDR+Mrm73736pkxHSXqWg4PFNc=; b=UnEbgtHGAb5VsM32KAqzGOGIqckhJh4Oiz8+XqkpgHhlqldSoSz3xE1XxkRgcrjkOuBPbz d4jwiX8Ye4Ajc1w3cFVtZev+2koccs4XB/FFFh0+ZZLxd1jK73LKhWvB5fCTfWXQIIex85 DeJ59+2hz7t/X1/XQcJqPnnx0Y+hGJw= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1707776405; x=1739312405; h=date:from:to:cc:subject:message-id:mime-version; bh=OKc5Fo0XeOFgeqtXV2OfxX3rmCu3XLNuQpAaSKSjdfc=; b=e/5jwKE3Jf+dYf1kDpzBs1eznk6xyzU284ZNHtahhOUwvC5ofxgSu07F SfgK6yzO24d36sFzIMAcKnmete8q2KrYrh7vzRd6tDDgPTMnnkH8fsy1L c3faTXSyQy7TBC//8+s8IhFF527bZKgYskRONE/VgWGGeYGEsUIlptQSD VJSoaJvjzwDUFi66yxm6ux11ABhYOaR5+S58LUdEzwo3QYsaqZjJxrUbR 6H9wJvNl/QCT+TbGNfQWGh873OshOVhQa+HljqmNNHW6042dlGY89tOwe Inn03Gr79sV6FNwFRSncV4KFYg8vH9XfcB1lZ03ezOXD7TtA1/6Qi2eAd g==; X-IronPort-AV: E=McAfee;i="6600,9927,10982"; a="19186395" X-IronPort-AV: E=Sophos;i="6.06,155,1705392000"; d="scan'208";a="19186395" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Feb 2024 14:20:03 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,155,1705392000"; d="scan'208";a="7338857" Received: from lkp-server01.sh.intel.com (HELO 01f0647817ea) ([10.239.97.150]) by fmviesa004.fm.intel.com with ESMTP; 12 Feb 2024 14:20:00 -0800 Received: from kbuild by 01f0647817ea with local (Exim 4.96) (envelope-from ) id 1rZeec-0007OI-0Y; Mon, 12 Feb 2024 22:19:58 +0000 Date: Tue, 13 Feb 2024 06:19:37 +0800 From: kernel test robot To: Lukasz Luba Cc: oe-kbuild-all@lists.linux.dev, Linux Memory Management List , "Rafael J. Wysocki" , Dietmar Eggemann Subject: [linux-next:master 4687/6082] kernel/power/energy_model.c:247:45: sparse: sparse: incorrect type in argument 2 (different address spaces) Message-ID: <202402130633.bfNCWVeh-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 0731020019 X-Stat-Signature: s9jnxkkzm8charyn6in819t6xya8uytz X-Rspam-User: X-HE-Tag: 1707776403-757955 X-HE-Meta: U2FsdGVkX1/FYPL/MNojRngkF5S00pLVPi4IQeajC5xHZ+4kMPB/NjR27TB1fd+VynekxIyUvzXNhWsSY6AomMoHnSoZJTPWI45GjTuGcAMZby0D2SaJ49Li2snnIuySu3knRmBpkTo+PCeErJaKXAeY4iKmq08iputGHV1ZaGOMOVwQ75YZnE9jQ9CT3T4mOEnIcNNbAz5+RE0rfIYwb5YSJ2PO5/hfToD+kJ894KI/q0sOrXGsYtxDT0LY+QB8TOIoAdmxterdxUYPQSlcY2ejj/XpVpe0mRe9CiMXCeOyp0YKJwbBnU1oUFRZhOybs36hFb26av1tU3UjO0YpbOvYylB+Fxilh4w6VctDtyGHn7LwdNxXjuYjEZ9h8ERLPUjj15Ux5E58IKHUjgArnYyrXFdcL7vzOye8ocqA4kFUUj67VjOzTzQVdylaiaBGVTjSDjXIjKy0J8MEqlrIpQvjAy7SgsAZyBgWlG4Y8OSQvplYOocr99i8228VQkZIy4SPNpv/ONrwtlqYxuakObvf6wBR7MjMawCn0cJxucID0ooQbRka4vePShD0x6znpTz4pA1llnds54B0vUSxNCQozwNdSERFOz19agNfZ7jIiYNeI5jp91NYPdCWJ31qnvSRA2NvdZPG+p5HvbvB2pbiptA8x5+VvA8CeNLmm4NAUoQxa8AzA7c0RtjTZ2ODuTnyj83ISbtybp6oVjwBWbv2JzOEH6PtmGbWuPDYes41sv0gqzvfrd6jMwG7iPNcV4jMTBiX9sGYEJrmd0lBsnVWoXtSjtgmz4qZgDQIySH+lZTMEouVqRw9ULNabsl4avJySyyQl5RCalDQXnVC8xVO0F7nIHRGFrvxqmPRhkLzg3XtuViVE7qAigqF7uWGOXmMA5PZHtSkWoGcoe0bNQ2+ks9Cj9tZxwRyKBqhYoe3fyWLG0yT1sDfqd+8svwjOJet2Lc0oLdkExxHtcL FlE5uZRs G+Wkd/EQiKqLiPkMzbSWl+SFwyf5DrDjkZRnX4KBuclXO7QAEroxQ43W+MTSvvrT3X0p4xTFTT6xgipB7hJHBOuaym2raV18anS/WI0i1/y+1eYF2YiTm1QKLx5pqB7XiDBqXLyPGcrqXce1JNU5gHV+WmWn3wClYPqAY79KCvrSJV/XBiR0dkr3rtEpVjKccEqaf02PMfoJ95S3h8YcUzTCMb8rrCWL3V+xniRkM/CFSVeMS3R2f+lZ0SrIf257QfZ4Eoxl9D9wlJauc6fsCD0EELC7HC/yRCjZ4prk4GUFgGtfcey5b8bp80QnZbl8EpyhcI8NX7zoa1hnlFO4DKCXVr2eqDN9iOXM4MG7yg7tvEE8Za2Lb6N1TXfRujBth/2qE 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/next/linux-next.git master head: ae00c445390b349e070a64dc62f08aa878db7248 commit: 977230d5d50314f9920d3ee6348773d8babbfb58 [4687/6082] PM: EM: Introduce em_dev_update_perf_domain() for EM updates config: x86_64-randconfig-122-20240211 (https://download.01.org/0day-ci/archive/20240213/202402130633.bfNCWVeh-lkp@intel.com/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240213/202402130633.bfNCWVeh-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/202402130633.bfNCWVeh-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) kernel/power/energy_model.c:113:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct em_perf_table [noderef] __rcu *table @@ got struct em_perf_table * @@ kernel/power/energy_model.c:113:15: sparse: expected struct em_perf_table [noderef] __rcu *table kernel/power/energy_model.c:113:15: sparse: got struct em_perf_table * kernel/power/energy_model.c:114:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *objp @@ got struct em_perf_table [noderef] __rcu *table @@ kernel/power/energy_model.c:114:15: sparse: expected void const *objp kernel/power/energy_model.c:114:15: sparse: got struct em_perf_table [noderef] __rcu *table kernel/power/energy_model.c:122:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct em_perf_table [noderef] __rcu *table @@ got struct em_perf_table * @@ kernel/power/energy_model.c:122:15: sparse: expected struct em_perf_table [noderef] __rcu *table kernel/power/energy_model.c:122:15: sparse: got struct em_perf_table * kernel/power/energy_model.c:124:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct callback_head *head @@ got struct callback_head [noderef] __rcu * @@ kernel/power/energy_model.c:124:19: sparse: expected struct callback_head *head kernel/power/energy_model.c:124:19: sparse: got struct callback_head [noderef] __rcu * kernel/power/energy_model.c:135:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct kref *kref @@ got struct kref [noderef] __rcu * @@ kernel/power/energy_model.c:135:19: sparse: expected struct kref *kref kernel/power/energy_model.c:135:19: sparse: got struct kref [noderef] __rcu * kernel/power/energy_model.c:153:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct em_perf_table [noderef] __rcu *table @@ got void * @@ kernel/power/energy_model.c:153:15: sparse: expected struct em_perf_table [noderef] __rcu *table kernel/power/energy_model.c:153:15: sparse: got void * kernel/power/energy_model.c:157:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct kref *kref @@ got struct kref [noderef] __rcu * @@ kernel/power/energy_model.c:157:20: sparse: expected struct kref *kref kernel/power/energy_model.c:157:20: sparse: got struct kref [noderef] __rcu * kernel/power/energy_model.c:242:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct kref *kref @@ got struct kref [noderef] __rcu * @@ kernel/power/energy_model.c:242:19: sparse: expected struct kref *kref kernel/power/energy_model.c:242:19: sparse: got struct kref [noderef] __rcu * >> kernel/power/energy_model.c:247:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct em_perf_state *table @@ got struct em_perf_state [noderef] __rcu * @@ kernel/power/energy_model.c:247:45: sparse: expected struct em_perf_state *table kernel/power/energy_model.c:247:45: sparse: got struct em_perf_state [noderef] __rcu * kernel/power/energy_model.c:267:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got struct em_perf_state [noderef] __rcu * @@ kernel/power/energy_model.c:267:9: sparse: expected void const * kernel/power/energy_model.c:267:9: sparse: got struct em_perf_state [noderef] __rcu * kernel/power/energy_model.c:267:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got struct em_perf_state [noderef] __rcu * @@ kernel/power/energy_model.c:267:9: sparse: expected void const * kernel/power/energy_model.c:267:9: sparse: got struct em_perf_state [noderef] __rcu * kernel/power/energy_model.c:267:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *p @@ got struct em_perf_state [noderef] __rcu * @@ kernel/power/energy_model.c:267:9: sparse: expected void *p kernel/power/energy_model.c:267:9: sparse: got struct em_perf_state [noderef] __rcu * vim +247 kernel/power/energy_model.c 137 138 /** 139 * em_table_alloc() - Allocate a new EM table 140 * @pd : EM performance domain for which this must be done 141 * 142 * Allocate a new EM table and initialize its kref to indicate that it 143 * has a user. 144 * Returns allocated table or NULL. 145 */ 146 struct em_perf_table __rcu *em_table_alloc(struct em_perf_domain *pd) 147 { 148 struct em_perf_table __rcu *table; 149 int table_size; 150 151 table_size = sizeof(struct em_perf_state) * pd->nr_perf_states; 152 > 153 table = kzalloc(sizeof(*table) + table_size, GFP_KERNEL); 154 if (!table) 155 return NULL; 156 157 kref_init(&table->kref); 158 159 return table; 160 } 161 162 static int em_compute_costs(struct device *dev, struct em_perf_state *table, 163 struct em_data_callback *cb, int nr_states, 164 unsigned long flags) 165 { 166 unsigned long prev_cost = ULONG_MAX; 167 u64 fmax; 168 int i, ret; 169 170 /* Compute the cost of each performance state. */ 171 fmax = (u64) table[nr_states - 1].frequency; 172 for (i = nr_states - 1; i >= 0; i--) { 173 unsigned long power_res, cost; 174 175 if ((flags & EM_PERF_DOMAIN_ARTIFICIAL) && cb->get_cost) { 176 ret = cb->get_cost(dev, table[i].frequency, &cost); 177 if (ret || !cost || cost > EM_MAX_POWER) { 178 dev_err(dev, "EM: invalid cost %lu %d\n", 179 cost, ret); 180 return -EINVAL; 181 } 182 } else { 183 power_res = table[i].power; 184 cost = div64_u64(fmax * power_res, table[i].frequency); 185 } 186 187 table[i].cost = cost; 188 189 if (table[i].cost >= prev_cost) { 190 table[i].flags = EM_PERF_STATE_INEFFICIENT; 191 dev_dbg(dev, "EM: OPP:%lu is inefficient\n", 192 table[i].frequency); 193 } else { 194 prev_cost = table[i].cost; 195 } 196 } 197 198 return 0; 199 } 200 201 static int em_allocate_perf_table(struct em_perf_domain *pd, 202 int nr_states) 203 { 204 pd->table = kcalloc(nr_states, sizeof(struct em_perf_state), 205 GFP_KERNEL); 206 if (!pd->table) 207 return -ENOMEM; 208 209 return 0; 210 } 211 212 /** 213 * em_dev_update_perf_domain() - Update runtime EM table for a device 214 * @dev : Device for which the EM is to be updated 215 * @new_table : The new EM table that is going to be used from now 216 * 217 * Update EM runtime modifiable table for the @dev using the provided @table. 218 * 219 * This function uses a mutex to serialize writers, so it must not be called 220 * from a non-sleeping context. 221 * 222 * Return 0 on success or an error code on failure. 223 */ 224 int em_dev_update_perf_domain(struct device *dev, 225 struct em_perf_table __rcu *new_table) 226 { 227 struct em_perf_table __rcu *old_table; 228 struct em_perf_domain *pd; 229 230 if (!dev) 231 return -EINVAL; 232 233 /* Serialize update/unregister or concurrent updates */ 234 mutex_lock(&em_pd_mutex); 235 236 if (!dev->em_pd) { 237 mutex_unlock(&em_pd_mutex); 238 return -EINVAL; 239 } 240 pd = dev->em_pd; 241 242 kref_get(&new_table->kref); 243 244 old_table = pd->em_table; 245 rcu_assign_pointer(pd->em_table, new_table); 246 > 247 em_cpufreq_update_efficiencies(dev, new_table->state); 248 249 em_table_free(old_table); 250 251 mutex_unlock(&em_pd_mutex); 252 return 0; 253 } 254 EXPORT_SYMBOL_GPL(em_dev_update_perf_domain); 255 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki