From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C8573B27F2 for ; Tue, 24 Mar 2026 06:51:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774335117; cv=none; b=R0KkQQkkDye2lSne/KR2i2wY/qadbFzTGQh00PBUvgM2HT2/kbZn6ZUiU9zF/W5w8iPuKRGpr8QWIKHfVsxtsLQjm+4/v3eSL6l+d7NpuZHaIlbxxofVyLL5zv+vhAPs9ZdEmQf2frK8D2GufsQ/hxkwaoTt9ewctfgOLv++v0k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774335117; c=relaxed/simple; bh=VCtse7tAdTCA5ZJIBrW0eGxWEBkFF83C5PCbdKrhPeU=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=A+wp88/hL04MKMbKa9bkJFibmqHBDDrZJI+WjkI9UZrdOe180deIHts0MTifqc3bCPiWXGRp4bUhFfneEQnoXzGxebxOz6KYXRRm8nQDrxH81JP/enVGpP4IaBHcvkKfZJbqjD+i97YZiEG5qtINePiOMCPKGb+Am7CUyZUqvGM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=PLJgeo91; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="PLJgeo91" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-486ff201041so29785905e9.1 for ; Mon, 23 Mar 2026 23:51:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774335104; x=1774939904; darn=vger.kernel.org; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=DK47Cs15T9o8qt84I0FUwLw3AfJ/Ss95D5OXzj/f7u8=; b=PLJgeo91GXFd2FiBMnepfMEF4CIxPu4Y3ynkH25uSjrXyy/Dn+0dZxKHHA+pLub1l1 uH43S2vAglGUAzsE+fwnDPCTojtzjPAAw1BZlFfJLuRg8RwVGs2gDWU5eJDt8H6da7hd LqAx70bY5GSlaQO+XgI2FDXRrAtJlViEo7WuOYr2G7IwX99+s4uzcyiIPT7gLfApWiLI 7rqihbJHluo9CyvjEzcXsZnw9Ds1ezpJ7qvxLC8pFhReZDAEffBJvDEsYNLoyUCd+HQh cUEWmUdmCA7QTe72wTff2jiQDzU9CZ8PQNXPwHn7LD3Rq9KyQ409wY+FLlVW2XHxTcZL Tdew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774335104; x=1774939904; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DK47Cs15T9o8qt84I0FUwLw3AfJ/Ss95D5OXzj/f7u8=; b=ZSDdSreQMzHtWssDoA8/qeFJ+4S7iKERyBAtWF+f47sgVL3p9Gd9qzJnVcU1uyyLvB FoCRBMUwJT86QL49waoHJDuQVnm2tBZt/dPyApGGP0A5XnpxDA3ml2ZtZEM1kcf0RVpb 2ZPNsebowCTDInhBiH4Ez/DArOQw3s6bUhxhj+MbL84ri4kBmNb8JGpH9JdXkAQzKkPX zMmds2UlB2jO/glHjQ6Bak9AViakswPUKqjwe1Les0o7WqgdSOBN5gEDoR38AVhy+tLs ICsruYu6RRrDp0BWgnm8wG/fsyN5HNDPbvh1T+vYZwemSwH8b0L4kza6Zti6Swv9Wznc qStg== X-Forwarded-Encrypted: i=1; AJvYcCW9gfTxtmSiQ7eKAPhFLxa4obwMVS4TQ4jF32ES9q3Ekabjv7fn8Miidr9Z6nEC5lf3ptZmiJ65DgQlauM=@vger.kernel.org X-Gm-Message-State: AOJu0YwtHuz0p3JVRxyS4PGtO22ikrAzSD26zlJ6W5JsPF1nmFWZy0bD qJogHx9u2bKPxOQky50Npb2eXqL4KVYzUMmKlEqbYIqZwcS1yfZm6hMWaLUWzy/4J2M= X-Gm-Gg: ATEYQzz243HZDaqre/9ciaDO1cOn3zB+zgxOJ4U0XJDDBeHGnN8ZCkO7HQzcciP+mnU 9LCZNi3/p1cbFM84vscukN80pzEB5Yo4qwurbkqSQkb6yz/vSFCDe/XB6GVvlo/CCrOTeDsKno8 bDHmO9wIJPVDT5rrWQR+EYEPwdpfBH2CQYDFFPtUdzKf/KX3wV6Ns3rRHi8D17x4sMozyAu1Bdm VNTe/gDPhSziWELoB/nLKxdiCU7xzCMSWoYWbZC7MNiqh426+oJ/nfPaM0w3nzLPpNCOBoSYR+8 KxbT5p+6DeKSo4Fd7AGYWgKFT9o6SwkbP+UQKtJITo0CdhqxFuAeMmm7cNH2qwjDlwnVknVkiOO RCt8OxArfP4hGmYWMwpHU0+hM7IFwiUKYg5Vl2b0arVOv/ZQ6fWspFG8mQss/zKqK6PfXAO1KNE mEBIi1j8h67wWbhihCF5dsKiNLFohq X-Received: by 2002:a05:600c:8b31:b0:485:469f:5320 with SMTP id 5b1f17b1804b1-486fee2d9e0mr213160815e9.30.1774335103411; Mon, 23 Mar 2026 23:51:43 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-487116d82f1sm27501465e9.11.2026.03.23.23.51.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 23:51:42 -0700 (PDT) Date: Tue, 24 Mar 2026 09:51:39 +0300 From: Dan Carpenter To: oe-kbuild@lists.linux.dev, Mahesh Rao Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org, Dinh Nguyen , Matthew Gerlach Subject: drivers/firmware/stratix10-svc.c:1119 stratix10_svc_add_async_client() error: Calling ida_alloc_max() with a 'max' argument which is a power of 2. -1 missing? Message-ID: <202603241328.naBWhr1K-lkp@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: c369299895a591d96745d6492d4888259b004a9e commit: bcb9f4f0706147afc62c48533276a18fe7b8f354 firmware: stratix10-svc: Add support for async communication config: arm64-randconfig-r072-20260324 (https://download.01.org/0day-ci/archive/20260324/202603241328.naBWhr1K-lkp@intel.com/config) compiler: aarch64-linux-gcc (GCC) 14.3.0 smatch: v0.5.0-9004-gb810ac53 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 | Reported-by: Dan Carpenter | Closes: https://lore.kernel.org/r/202603241328.naBWhr1K-lkp@intel.com/ New smatch warnings: drivers/firmware/stratix10-svc.c:1119 stratix10_svc_add_async_client() error: Calling ida_alloc_max() with a 'max' argument which is a power of 2. -1 missing? drivers/firmware/stratix10-svc.c:1256 stratix10_svc_async_send() error: Calling ida_alloc_max() with a 'max' argument which is a power of 2. -1 missing? Old smatch warnings: drivers/firmware/stratix10-svc.c:1302 stratix10_svc_async_send() warn: inconsistent indenting drivers/firmware/stratix10-svc.c:1630 stratix10_svc_send() warn: inconsistent indenting vim +/max +1119 drivers/firmware/stratix10-svc.c bcb9f4f0706147a Mahesh Rao 2025-10-27 1082 int stratix10_svc_add_async_client(struct stratix10_svc_chan *chan, bcb9f4f0706147a Mahesh Rao 2025-10-27 1083 bool use_unique_clientid) bcb9f4f0706147a Mahesh Rao 2025-10-27 1084 { bcb9f4f0706147a Mahesh Rao 2025-10-27 1085 struct stratix10_svc_controller *ctrl; bcb9f4f0706147a Mahesh Rao 2025-10-27 1086 struct stratix10_async_ctrl *actrl; bcb9f4f0706147a Mahesh Rao 2025-10-27 1087 struct stratix10_async_chan *achan; bcb9f4f0706147a Mahesh Rao 2025-10-27 1088 int ret = 0; bcb9f4f0706147a Mahesh Rao 2025-10-27 1089 bcb9f4f0706147a Mahesh Rao 2025-10-27 1090 if (!chan) bcb9f4f0706147a Mahesh Rao 2025-10-27 1091 return -EINVAL; bcb9f4f0706147a Mahesh Rao 2025-10-27 1092 bcb9f4f0706147a Mahesh Rao 2025-10-27 1093 ctrl = chan->ctrl; bcb9f4f0706147a Mahesh Rao 2025-10-27 1094 actrl = &ctrl->actrl; bcb9f4f0706147a Mahesh Rao 2025-10-27 1095 bcb9f4f0706147a Mahesh Rao 2025-10-27 1096 if (!actrl->initialized) { bcb9f4f0706147a Mahesh Rao 2025-10-27 1097 dev_err(ctrl->dev, "Async controller not initialized\n"); bcb9f4f0706147a Mahesh Rao 2025-10-27 1098 return -EINVAL; bcb9f4f0706147a Mahesh Rao 2025-10-27 1099 } bcb9f4f0706147a Mahesh Rao 2025-10-27 1100 bcb9f4f0706147a Mahesh Rao 2025-10-27 1101 if (chan->async_chan) { bcb9f4f0706147a Mahesh Rao 2025-10-27 1102 dev_err(ctrl->dev, "async channel already allocated\n"); bcb9f4f0706147a Mahesh Rao 2025-10-27 1103 return -EALREADY; bcb9f4f0706147a Mahesh Rao 2025-10-27 1104 } bcb9f4f0706147a Mahesh Rao 2025-10-27 1105 bcb9f4f0706147a Mahesh Rao 2025-10-27 1106 if (use_unique_clientid && bcb9f4f0706147a Mahesh Rao 2025-10-27 1107 atomic_read(&actrl->common_achan_refcount) > 0) { bcb9f4f0706147a Mahesh Rao 2025-10-27 1108 chan->async_chan = actrl->common_async_chan; bcb9f4f0706147a Mahesh Rao 2025-10-27 1109 atomic_inc(&actrl->common_achan_refcount); bcb9f4f0706147a Mahesh Rao 2025-10-27 1110 return 0; bcb9f4f0706147a Mahesh Rao 2025-10-27 1111 } bcb9f4f0706147a Mahesh Rao 2025-10-27 1112 bcb9f4f0706147a Mahesh Rao 2025-10-27 1113 achan = kzalloc(sizeof(*achan), GFP_KERNEL); bcb9f4f0706147a Mahesh Rao 2025-10-27 1114 if (!achan) bcb9f4f0706147a Mahesh Rao 2025-10-27 1115 return -ENOMEM; bcb9f4f0706147a Mahesh Rao 2025-10-27 1116 bcb9f4f0706147a Mahesh Rao 2025-10-27 1117 ida_init(&achan->job_id_pool); bcb9f4f0706147a Mahesh Rao 2025-10-27 1118 bcb9f4f0706147a Mahesh Rao 2025-10-27 @1119 ret = ida_alloc_max(&actrl->async_id_pool, MAX_SDM_CLIENT_IDS, ^^^^^^^^^^^^^^^^^^ This should be "MAX_SDM_CLIENT_IDS - 1". bcb9f4f0706147a Mahesh Rao 2025-10-27 1120 GFP_KERNEL); bcb9f4f0706147a Mahesh Rao 2025-10-27 1121 if (ret < 0) { bcb9f4f0706147a Mahesh Rao 2025-10-27 1122 dev_err(ctrl->dev, bcb9f4f0706147a Mahesh Rao 2025-10-27 1123 "Failed to allocate async client id\n"); bcb9f4f0706147a Mahesh Rao 2025-10-27 1124 ida_destroy(&achan->job_id_pool); bcb9f4f0706147a Mahesh Rao 2025-10-27 1125 kfree(achan); bcb9f4f0706147a Mahesh Rao 2025-10-27 1126 return ret; bcb9f4f0706147a Mahesh Rao 2025-10-27 1127 } [ snip ] bcb9f4f0706147a Mahesh Rao 2025-10-27 1223 int stratix10_svc_async_send(struct stratix10_svc_chan *chan, void *msg, bcb9f4f0706147a Mahesh Rao 2025-10-27 1224 void **handler, async_callback_t cb, void *cb_arg) bcb9f4f0706147a Mahesh Rao 2025-10-27 1225 { bcb9f4f0706147a Mahesh Rao 2025-10-27 1226 struct arm_smccc_1_2_regs args = { 0 }, res = { 0 }; bcb9f4f0706147a Mahesh Rao 2025-10-27 1227 struct stratix10_svc_async_handler *handle = NULL; bcb9f4f0706147a Mahesh Rao 2025-10-27 1228 struct stratix10_svc_client_msg *p_msg = bcb9f4f0706147a Mahesh Rao 2025-10-27 1229 (struct stratix10_svc_client_msg *)msg; bcb9f4f0706147a Mahesh Rao 2025-10-27 1230 struct stratix10_svc_controller *ctrl; bcb9f4f0706147a Mahesh Rao 2025-10-27 1231 struct stratix10_async_ctrl *actrl; bcb9f4f0706147a Mahesh Rao 2025-10-27 1232 struct stratix10_async_chan *achan; bcb9f4f0706147a Mahesh Rao 2025-10-27 1233 int ret = 0; bcb9f4f0706147a Mahesh Rao 2025-10-27 1234 bcb9f4f0706147a Mahesh Rao 2025-10-27 1235 if (!chan || !msg || !handler) bcb9f4f0706147a Mahesh Rao 2025-10-27 1236 return -EINVAL; bcb9f4f0706147a Mahesh Rao 2025-10-27 1237 bcb9f4f0706147a Mahesh Rao 2025-10-27 1238 achan = chan->async_chan; bcb9f4f0706147a Mahesh Rao 2025-10-27 1239 ctrl = chan->ctrl; bcb9f4f0706147a Mahesh Rao 2025-10-27 1240 actrl = &ctrl->actrl; bcb9f4f0706147a Mahesh Rao 2025-10-27 1241 bcb9f4f0706147a Mahesh Rao 2025-10-27 1242 if (!actrl->initialized) { bcb9f4f0706147a Mahesh Rao 2025-10-27 1243 dev_err(ctrl->dev, "Async controller not initialized\n"); bcb9f4f0706147a Mahesh Rao 2025-10-27 1244 return -EINVAL; bcb9f4f0706147a Mahesh Rao 2025-10-27 1245 } bcb9f4f0706147a Mahesh Rao 2025-10-27 1246 bcb9f4f0706147a Mahesh Rao 2025-10-27 1247 if (!achan) { bcb9f4f0706147a Mahesh Rao 2025-10-27 1248 dev_err(ctrl->dev, "Async channel not allocated\n"); bcb9f4f0706147a Mahesh Rao 2025-10-27 1249 return -EINVAL; bcb9f4f0706147a Mahesh Rao 2025-10-27 1250 } bcb9f4f0706147a Mahesh Rao 2025-10-27 1251 bcb9f4f0706147a Mahesh Rao 2025-10-27 1252 handle = kzalloc(sizeof(*handle), GFP_KERNEL); bcb9f4f0706147a Mahesh Rao 2025-10-27 1253 if (!handle) bcb9f4f0706147a Mahesh Rao 2025-10-27 1254 return -ENOMEM; bcb9f4f0706147a Mahesh Rao 2025-10-27 1255 bcb9f4f0706147a Mahesh Rao 2025-10-27 @1256 ret = ida_alloc_max(&achan->job_id_pool, MAX_SDM_JOB_IDS, ^^^^^^^^^^^^^^^^^^ "MAX_SDM_CLIENT_IDS - 1" as well. bcb9f4f0706147a Mahesh Rao 2025-10-27 1257 GFP_KERNEL); bcb9f4f0706147a Mahesh Rao 2025-10-27 1258 if (ret < 0) { bcb9f4f0706147a Mahesh Rao 2025-10-27 1259 dev_err(ctrl->dev, "Failed to allocate job id\n"); bcb9f4f0706147a Mahesh Rao 2025-10-27 1260 kfree(handle); bcb9f4f0706147a Mahesh Rao 2025-10-27 1261 return -ENOMEM; bcb9f4f0706147a Mahesh Rao 2025-10-27 1262 } bcb9f4f0706147a Mahesh Rao 2025-10-27 1263 bcb9f4f0706147a Mahesh Rao 2025-10-27 1264 handle->transaction_id = bcb9f4f0706147a Mahesh Rao 2025-10-27 1265 STRATIX10_SET_TRANSACTIONID(achan->async_client_id, ret); bcb9f4f0706147a Mahesh Rao 2025-10-27 1266 handle->cb = cb; bcb9f4f0706147a Mahesh Rao 2025-10-27 1267 handle->msg = p_msg; bcb9f4f0706147a Mahesh Rao 2025-10-27 1268 handle->cb_arg = cb_arg; bcb9f4f0706147a Mahesh Rao 2025-10-27 1269 handle->achan = achan; bcb9f4f0706147a Mahesh Rao 2025-10-27 1270 bcb9f4f0706147a Mahesh Rao 2025-10-27 1271 /*set the transaction jobid in args.a1*/ bcb9f4f0706147a Mahesh Rao 2025-10-27 1272 args.a1 = bcb9f4f0706147a Mahesh Rao 2025-10-27 1273 STRATIX10_SIP_SMC_SET_TRANSACTIONID_X1(handle->transaction_id); bcb9f4f0706147a Mahesh Rao 2025-10-27 1274 bcb9f4f0706147a Mahesh Rao 2025-10-27 1275 switch (p_msg->command) { bcb9f4f0706147a Mahesh Rao 2025-10-27 1276 default: bcb9f4f0706147a Mahesh Rao 2025-10-27 1277 dev_err(ctrl->dev, "Invalid command ,%d\n", p_msg->command); bcb9f4f0706147a Mahesh Rao 2025-10-27 1278 ret = -EINVAL; bcb9f4f0706147a Mahesh Rao 2025-10-27 1279 goto deallocate_id; bcb9f4f0706147a Mahesh Rao 2025-10-27 1280 } bcb9f4f0706147a Mahesh Rao 2025-10-27 1281 bcb9f4f0706147a Mahesh Rao 2025-10-27 1282 /** bcb9f4f0706147a Mahesh Rao 2025-10-27 1283 * There is a chance that during the execution of async_send() bcb9f4f0706147a Mahesh Rao 2025-10-27 1284 * in one core, an interrupt might be received in another core; bcb9f4f0706147a Mahesh Rao 2025-10-27 1285 * to mitigate this we are adding the handle to the DB and then bcb9f4f0706147a Mahesh Rao 2025-10-27 1286 * send the smc call. If the smc call is rejected or busy then bcb9f4f0706147a Mahesh Rao 2025-10-27 1287 * we will deallocate the handle for the client to retry again. bcb9f4f0706147a Mahesh Rao 2025-10-27 1288 */ bcb9f4f0706147a Mahesh Rao 2025-10-27 1289 scoped_guard(spinlock_bh, &actrl->trx_list_lock) { bcb9f4f0706147a Mahesh Rao 2025-10-27 1290 hash_add(actrl->trx_list, &handle->next, bcb9f4f0706147a Mahesh Rao 2025-10-27 1291 handle->transaction_id); bcb9f4f0706147a Mahesh Rao 2025-10-27 1292 } bcb9f4f0706147a Mahesh Rao 2025-10-27 1293 bcb9f4f0706147a Mahesh Rao 2025-10-27 1294 actrl->invoke_fn(actrl, &args, &res); bcb9f4f0706147a Mahesh Rao 2025-10-27 1295 bcb9f4f0706147a Mahesh Rao 2025-10-27 1296 switch (res.a0) { bcb9f4f0706147a Mahesh Rao 2025-10-27 1297 case INTEL_SIP_SMC_STATUS_OK: bcb9f4f0706147a Mahesh Rao 2025-10-27 1298 dev_dbg(ctrl->dev, bcb9f4f0706147a Mahesh Rao 2025-10-27 1299 "Async message sent with transaction_id 0x%02x\n", bcb9f4f0706147a Mahesh Rao 2025-10-27 1300 handle->transaction_id); bcb9f4f0706147a Mahesh Rao 2025-10-27 1301 *handler = handle; ^^^^^^^^^^^^^^^^^^ This line is indented one tab too far. bcb9f4f0706147a Mahesh Rao 2025-10-27 1302 return 0; bcb9f4f0706147a Mahesh Rao 2025-10-27 1303 case INTEL_SIP_SMC_STATUS_BUSY: bcb9f4f0706147a Mahesh Rao 2025-10-27 1304 dev_warn(ctrl->dev, "Mailbox is busy, try after some time\n"); bcb9f4f0706147a Mahesh Rao 2025-10-27 1305 ret = -EAGAIN; bcb9f4f0706147a Mahesh Rao 2025-10-27 1306 break; bcb9f4f0706147a Mahesh Rao 2025-10-27 1307 case INTEL_SIP_SMC_STATUS_REJECTED: bcb9f4f0706147a Mahesh Rao 2025-10-27 1308 dev_err(ctrl->dev, "Async message rejected\n"); bcb9f4f0706147a Mahesh Rao 2025-10-27 1309 ret = -EBADF; -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki