[PATCH] tpm: tpm_try_transmit() ignore value of go_to_idle()

Subsystems: the rest, tpm device driver

STALE2849d

5 messages, 3 authors, 2018-10-17 · open the first message on its own page

[PATCH] tpm: tpm_try_transmit() ignore value of go_to_idle()

From: Tomas Winkler <hidden>
Date: 2018-10-15 11:18:40

Ignore the return value of go_to_idle() in tpm_try_transmit().
Once it may shadow the return value of actual tpm operation,
second the consequent command will fail as well and the error
will be caought anyway.
Last fix wrong goto, that jumped back instead of forward.

Fixes: 627448e85c76 ("tpm: separate cmd_ready/go_idle from runtime_pm")
Signed-off-by: Tomas Winkler <redacted>
---
 drivers/char/tpm/tpm-interface.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c
index 129f640424b7..f69c711bf74a 100644
--- a/drivers/char/tpm/tpm-interface.c
+++ b/drivers/char/tpm/tpm-interface.c
@@ -547,9 +547,7 @@ static ssize_t tpm_try_transmit(struct tpm_chip *chip,
 		dev_err(&chip->dev, "tpm2_commit_space: error %d\n", rc);
 
 out:
-	rc = tpm_go_idle(chip, flags);
-	if (rc)
-		goto out;
+	(void)tpm_go_idle(chip, flags);
 
 	if (need_locality)
 		tpm_relinquish_locality(chip, flags);
-- 
2.14.4

Re: [PATCH] tpm: tpm_try_transmit() ignore value of go_to_idle()

From: Jason Gunthorpe <jgg@ziepe.ca>
Date: 2018-10-16 05:42:02

On Mon, Oct 15, 2018 at 02:14:34PM +0300, Tomas Winkler wrote:
quoted hunk
Ignore the return value of go_to_idle() in tpm_try_transmit().
Once it may shadow the return value of actual tpm operation,
second the consequent command will fail as well and the error
will be caought anyway.
Last fix wrong goto, that jumped back instead of forward.

Fixes: 627448e85c76 ("tpm: separate cmd_ready/go_idle from runtime_pm")
Signed-off-by: Tomas Winkler <redacted>
 drivers/char/tpm/tpm-interface.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c
index 129f640424b7..f69c711bf74a 100644
+++ b/drivers/char/tpm/tpm-interface.c
@@ -547,9 +547,7 @@ static ssize_t tpm_try_transmit(struct tpm_chip *chip,
 		dev_err(&chip->dev, "tpm2_commit_space: error %d\n", rc);
 
 out:
-	rc = tpm_go_idle(chip, flags);
-	if (rc)
-		goto out;
+	(void)tpm_go_idle(chip, flags);
We don't really use this style in the kernel, AFAIK.

Jason

RE: [PATCH] tpm: tpm_try_transmit() ignore value of go_to_idle()

From: Winkler, Tomas <hidden>
Date: 2018-10-16 06:20:38

On Mon, Oct 15, 2018 at 02:14:34PM +0300, Tomas Winkler wrote:
quoted
Ignore the return value of go_to_idle() in tpm_try_transmit().
Once it may shadow the return value of actual tpm operation, second
the consequent command will fail as well and the error will be caought
anyway.
Last fix wrong goto, that jumped back instead of forward.

Fixes: 627448e85c76 ("tpm: separate cmd_ready/go_idle from
runtime_pm")
Signed-off-by: Tomas Winkler <redacted>
drivers/char/tpm/tpm-interface.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/char/tpm/tpm-interface.c
b/drivers/char/tpm/tpm-interface.c
index 129f640424b7..f69c711bf74a 100644
+++ b/drivers/char/tpm/tpm-interface.c
@@ -547,9 +547,7 @@ static ssize_t tpm_try_transmit(struct tpm_chip
*chip,
quoted
 		dev_err(&chip->dev, "tpm2_commit_space: error %d\n", rc);

 out:
-	rc = tpm_go_idle(chip, flags);
-	if (rc)
-		goto out;
+	(void)tpm_go_idle(chip, flags);
We don't really use this style in the kernel, AFAIK.

Right, there are no many of those; just wanted to emphasize that return value is ignored. I can drop (void).

Thanks
Tomas

Re: [PATCH] tpm: tpm_try_transmit() ignore value of go_to_idle()

From: Jarkko Sakkinen <hidden>
Date: 2018-10-17 23:01:30

On Mon, 15 Oct 2018, Tomas Winkler wrote:
quoted hunk
Ignore the return value of go_to_idle() in tpm_try_transmit().
Once it may shadow the return value of actual tpm operation,
second the consequent command will fail as well and the error
will be caought anyway.
Last fix wrong goto, that jumped back instead of forward.

Fixes: 627448e85c76 ("tpm: separate cmd_ready/go_idle from runtime_pm")
Signed-off-by: Tomas Winkler <redacted>
---
drivers/char/tpm/tpm-interface.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c
index 129f640424b7..f69c711bf74a 100644
--- a/drivers/char/tpm/tpm-interface.c
+++ b/drivers/char/tpm/tpm-interface.c
@@ -547,9 +547,7 @@ static ssize_t tpm_try_transmit(struct tpm_chip *chip,
		dev_err(&chip->dev, "tpm2_commit_space: error %d\n", rc);

out:
-	rc = tpm_go_idle(chip, flags);
-	if (rc)
-		goto out;
+	(void)tpm_go_idle(chip, flags);

	if (need_locality)
		tpm_relinquish_locality(chip, flags);
-- 
2.14.4
LGTM. Should be probably Cc'd to stable (can add).

Reviewed-by: Jarkko Sakkinen <redacted>

/Jarkko

RE: [PATCH] tpm: tpm_try_transmit() ignore value of go_to_idle()

From: Winkler, Tomas <hidden>
Date: 2018-10-17 23:08:53

-----Original Message-----
From: Jarkko Sakkinen [mailto:jarkko.sakkinen@linux.intel.com]
Sent: Thursday, October 18, 2018 02:01
To: Winkler, Tomas <redacted>
Cc: Jarkko Sakkinen <redacted>; Jason Gunthorpe
[off-list ref]; Nayna Jain [off-list ref]; Usyskin,
Alexander [off-list ref]; Struk, Tadeusz
[off-list ref]; linux-integrity@vger.kernel.org; linux-security-
module@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: Re: [PATCH] tpm: tpm_try_transmit() ignore value of go_to_idle()

On Mon, 15 Oct 2018, Tomas Winkler wrote:
quoted
Ignore the return value of go_to_idle() in tpm_try_transmit().
Once it may shadow the return value of actual tpm operation, second
the consequent command will fail as well and the error will be caought
anyway.
Last fix wrong goto, that jumped back instead of forward.

Fixes: 627448e85c76 ("tpm: separate cmd_ready/go_idle from
runtime_pm")
Signed-off-by: Tomas Winkler <redacted>
---
drivers/char/tpm/tpm-interface.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/char/tpm/tpm-interface.c
b/drivers/char/tpm/tpm-interface.c
index 129f640424b7..f69c711bf74a 100644
--- a/drivers/char/tpm/tpm-interface.c
+++ b/drivers/char/tpm/tpm-interface.c
@@ -547,9 +547,7 @@ static ssize_t tpm_try_transmit(struct tpm_chip
*chip,
quoted
		dev_err(&chip->dev, "tpm2_commit_space: error %d\n", rc);

out:
-	rc = tpm_go_idle(chip, flags);
-	if (rc)
-		goto out;
+	(void)tpm_go_idle(chip, flags);

	if (need_locality)
		tpm_relinquish_locality(chip, flags);
--
2.14.4
LGTM. Should be probably Cc'd to stable (can add).

Reviewed-by: Jarkko Sakkinen <redacted>
I've posted another one, there are more issues in the flow.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help