From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (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 B118420B810 for ; Sat, 17 Jan 2026 14:10:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768659039; cv=none; b=ZQMVZiuChw4fFP5KPnu6Djq69iQwiH4HRMuV9Y1daCxQk82BJUatkUo3uFAw24TmFegSl9Tw9QAY/AawrldskYsill4hKn3WnRl63Z/L6wFI6KxZi64dGBrI2ongqC5NXQOGZclnxY5q6Qxykrube05YlQLM2tFK8iq78FyS5FA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768659039; c=relaxed/simple; bh=CA+7J/RR0nTc9It1XerSFp5SJbWoyky7hYTlZfMsQeM=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QhvCDvT0WrG61ljr1MEZ9HW4baHUaAlEF86P1NbgWbQRNGsHI7VymADr9ubKOQXcvbjtfrkiY415DHsRepmfx1kDL2TXGFTXUmwEZlKgKBCYX4SYYWpP6O36m2mhE14+IZf9w5I87Yb+oaTXd2wZxGC973HBpdGWfrhsi+lZDPA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cTkbCRhc; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cTkbCRhc" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-47ee07570deso20178305e9.1 for ; Sat, 17 Jan 2026 06:10:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768659036; x=1769263836; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=UiKlHj+3mIbgnx+R2A3g/i2Ls37g5s26/ZzzGkqA/rc=; b=cTkbCRhcSF7lU5JLMOi1QwuWC4OSZ0MUzUbvfv3SFzkLbOh3ROa+AdH7O2mPPcJc8h Vk+BEUuGASte9uo9VmERE2KYKte8Jn3AP/KEItaBqBSt1FVe2Wdt7YJop7ur9k2BjA6Y mMSAWNcq2z92QMUdbvi80NHARQ7cVc9wSLauJ4zGrlhJ4w1BR5tGRxsvOsrmrhzmgvnQ tV1ISnyHiteBKslCvxmvcubA2t/9qtY4MjcrgFxCQUxBaBrAOhyhnB4AaKoBDnHjFx5D HX6PydgntHzyLWL+pT0FlbiH/+GwTxcdYqX/jlrnnBTwUdlkCcpgKyPGfCfiasXmoFpO dlcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768659036; x=1769263836; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UiKlHj+3mIbgnx+R2A3g/i2Ls37g5s26/ZzzGkqA/rc=; b=pTRrpOyKrF7CU3+lfG6CiKfoy7xNHUBYSTNYyZc6vZWG6gFi4PbIBEiS1978NbpiBs rRuM6Jkc/ir29JsXKYcE1I1b1ksa4Xv/w9a0lhhTOqpmvaRkUik4YLzWmjQc/ZiJtgiS QsethHvIXlEOyGoL9nRNAOcvGQdHjKymDLsHwdId6papki9WDLKGOJdKpAwPsX33NjSL HYNniOhU5GvZP7dvVx8YqrcUD0kOhgA1dTA+28D5wuM+M8HJaNeLDrvkFE11D8WFnqyN XaJGu0xXSbKDdAHwZtHBHQcKHOZL5QQv+R5rlUwM5+z9shOi3sWc3ctOK+yt8xZFIiIt EegQ== X-Forwarded-Encrypted: i=1; AJvYcCVmlc+wa8dHJme9COKXTebrj4iLBEM8L+WLzgX6KgiGqrPgzB2FUDLItDFE/yHRfcXtfwdYcw4jeDwhaRs=@vger.kernel.org X-Gm-Message-State: AOJu0YzkmYeJ6BJXnEXAiSB3xFUcy0CLHWK6yA1Q0+FjL/3hEvHzjzFD Nk4s950y+NY/kNUlIH4R339wUf4zrAtl8QM/kNZvCUHaPoTakkLBOaPRGG14vw== X-Gm-Gg: AY/fxX4fKbSjX/CjukhFeHwbLzU6FWZGcMwcyzuf0ERPidtYF21nnZwUw9NDqHPkzlJ lTMGAJ3RcGvTKzS5DCtmTfvKq0M7tYy83ktmSVnAU4bqV7QPOixi7msd+kJyCAWXMRn5nx811zh g3ULzPGxHoSJ/yAKfQ/zCJj04ELsRicWiEJ+XVGJdULfbdEn2KzGFZmLBqbfibh1HLx2eZVuR9q IHwTKGywoI+kGxAg9x0t/GWOaJ+S6L7C7zd3nJw8QC1Fateldiq/W9V5tC+/hG/B5fYKeNrmT0f aE37xZhCUFvxomH0Kiim9gvy/IWrai2KVPlQm3snLoiuGfDT4vd/y1zvs0X3k0I0w9SNBUjXQzJ TZS9ivDsd2xwYCACXr1fj3R3EweU3zVtoYtZ8z0YFH3MWV4K8+YOjOS3eyS/tGA4u7of3Z1APsS zfwRXdGCxYM7wfySf1nVKz0jdaawB0gJAE2/vdzvLvsPapughnkEsN X-Received: by 2002:a05:600c:6489:b0:459:db7b:988e with SMTP id 5b1f17b1804b1-4801eac331bmr68009345e9.13.1768659035967; Sat, 17 Jan 2026 06:10:35 -0800 (PST) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4801fd458aesm42726695e9.2.2026.01.17.06.10.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 17 Jan 2026 06:10:35 -0800 (PST) Date: Sat, 17 Jan 2026 14:10:31 +0000 From: David Laight To: Colin Ian King Cc: Jens Wiklander , Sumit Garg , op-tee@lists.trustedfirmware.org, kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH][next] optee: make read-only array attr static const Message-ID: <20260117141031.1514faf2@pumpkin> In-Reply-To: <20260109154442.421248-1-coking@nvidia.com> References: <20260109154442.421248-1-coking@nvidia.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) 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-Transfer-Encoding: 7bit On Fri, 9 Jan 2026 15:44:42 +0000 Colin Ian King wrote: > Don't populate the read-only array attr on the stack at run > time, instead make it static const. For a 4 byte array initialising on stack is likely to generate faster code. In particular it avoid a very likely data-cache miss for the rodata. The on-stack array access might even shorter code than accessing a global array on some architectures. The compiler might, of course, decide to unroll the loop and not instantiate the array at all (in either case). Indeed, just unrolling the loop as: if (params[0].attr != TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT) goto bad; if (params[1].attr != TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT) goto bad; if (params[2].attr != TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT) goto bad; if (params[3].attr != TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_OUTPUT) goto bad; is likely to be pretty near optimal. (Collecting the bytes and doing a single 32bit compare may be better.) Of course this won't be a massively hot path - so the code choice won't make a measurable difference. David > > Signed-off-by: Colin Ian King > --- > drivers/tee/optee/rpc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/tee/optee/rpc.c b/drivers/tee/optee/rpc.c > index 97fc5b14db0c..1758eb7e6e8b 100644 > --- a/drivers/tee/optee/rpc.c > +++ b/drivers/tee/optee/rpc.c > @@ -43,7 +43,7 @@ static void handle_rpc_func_cmd_i2c_transfer(struct tee_context *ctx, > struct i2c_msg msg = { }; > size_t i; > int ret = -EOPNOTSUPP; > - u8 attr[] = { > + static const u8 attr[] = { > TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT, > TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT, > TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT,