diff mbox series

[1/2] platform/x86/amd/pmf: Do not use readl() for policy buffer access

Message ID 20240227140500.98077-1-W_Armin@gmx.de (mailing list archive)
State Changes Requested, archived
Headers show
Series [1/2] platform/x86/amd/pmf: Do not use readl() for policy buffer access | expand

Commit Message

Armin Wolf Feb. 27, 2024, 2:04 p.m. UTC
The policy buffer is allocated using normal memory allocation
functions, so readl() should not be used on it.

Compile-tested only.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
---
 drivers/platform/x86/amd/pmf/tee-if.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--
2.39.2

Comments

Ilpo Järvinen Feb. 27, 2024, 2:09 p.m. UTC | #1
On Tue, 27 Feb 2024, Armin Wolf wrote:

> The policy buffer is allocated using normal memory allocation
> functions, so readl() should not be used on it.
> 
> Compile-tested only.
> 
> Signed-off-by: Armin Wolf <W_Armin@gmx.de>
> ---
>  drivers/platform/x86/amd/pmf/tee-if.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/amd/pmf/tee-if.c b/drivers/platform/x86/amd/pmf/tee-if.c
> index 16973bebf55f..70d09103ab18 100644
> --- a/drivers/platform/x86/amd/pmf/tee-if.c
> +++ b/drivers/platform/x86/amd/pmf/tee-if.c
> @@ -249,8 +249,8 @@ static int amd_pmf_start_policy_engine(struct amd_pmf_dev *dev)
>  	u32 cookie, length;
>  	int res;
> 
> -	cookie = readl(dev->policy_buf + POLICY_COOKIE_OFFSET);
> -	length = readl(dev->policy_buf + POLICY_COOKIE_LEN);
> +	cookie = dev->policy_buf[POLICY_COOKIE_OFFSET];
> +	length = dev->policy_buf[POLICY_COOKIE_LEN];

Hmm, the next question is, is it okay to get just 8 bits instead the full 
dword (the policy_buf is unsigned char *)?
diff mbox series

Patch

diff --git a/drivers/platform/x86/amd/pmf/tee-if.c b/drivers/platform/x86/amd/pmf/tee-if.c
index 16973bebf55f..70d09103ab18 100644
--- a/drivers/platform/x86/amd/pmf/tee-if.c
+++ b/drivers/platform/x86/amd/pmf/tee-if.c
@@ -249,8 +249,8 @@  static int amd_pmf_start_policy_engine(struct amd_pmf_dev *dev)
 	u32 cookie, length;
 	int res;

-	cookie = readl(dev->policy_buf + POLICY_COOKIE_OFFSET);
-	length = readl(dev->policy_buf + POLICY_COOKIE_LEN);
+	cookie = dev->policy_buf[POLICY_COOKIE_OFFSET];
+	length = dev->policy_buf[POLICY_COOKIE_LEN];

 	if (cookie != POLICY_SIGN_COOKIE || !length)
 		return -EINVAL;