All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tpm: don't destroy chip device prematurely
@ 2016-10-02  7:39 Tomas Winkler
  2016-10-02 10:17   ` Jarkko Sakkinen
  0 siblings, 1 reply; 69+ messages in thread
From: Tomas Winkler @ 2016-10-02  7:39 UTC (permalink / raw)
  To: tpmdd-devel, Jason Gunthorpe, Jarkko Sakkinen; +Cc: linux-kernel, Tomas Winkler

In tpm_del_char_device device_del is called
prior to tpm2_shutdown where it is still used.

Fortunately, so far chip->dev was used only for printouts
int tpm2_shutdown flow, hence system didn't crash. But with
the introduction of runtime power management it will result in
shutting down the parent device while it still in use.

Fixes: 20e0152393b41 ("tpm: fix crash in tpm_tis deinitialization")
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
---
 drivers/char/tpm/tpm-chip.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index e5950131bd90..b1cb0aae8e66 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -261,7 +261,6 @@ static int tpm_add_char_device(struct tpm_chip *chip)
 static void tpm_del_char_device(struct tpm_chip *chip)
 {
 	cdev_del(&chip->cdev);
-	device_del(&chip->dev);
 
 	/* Make the chip unavailable. */
 	mutex_lock(&idr_lock);
@@ -274,6 +273,8 @@ static void tpm_del_char_device(struct tpm_chip *chip)
 		tpm2_shutdown(chip, TPM2_SU_CLEAR);
 	chip->ops = NULL;
 	up_write(&chip->ops_sem);
+
+	device_del(&chip->dev);
 }
 
 static int tpm1_chip_register(struct tpm_chip *chip)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 69+ messages in thread

end of thread, other threads:[~2016-10-08 10:47 UTC | newest]

Thread overview: 69+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-02  7:39 [PATCH] tpm: don't destroy chip device prematurely Tomas Winkler
2016-10-02 10:17 ` Jarkko Sakkinen
2016-10-02 10:17   ` Jarkko Sakkinen
2016-10-02 10:24   ` Jarkko Sakkinen
2016-10-02 10:24     ` Jarkko Sakkinen
2016-10-02 21:21     ` Jason Gunthorpe
2016-10-02 21:21       ` Jason Gunthorpe
2016-10-03  7:05       ` Winkler, Tomas
2016-10-03  7:05         ` Winkler, Tomas
2016-10-03  7:38         ` Winkler, Tomas
2016-10-03  7:38           ` Winkler, Tomas
2016-10-03 12:42           ` Jarkko Sakkinen
2016-10-03 12:42             ` Jarkko Sakkinen
2016-10-03 16:03             ` Jason Gunthorpe
2016-10-03 16:03               ` Jason Gunthorpe
2016-10-03 17:30               ` Winkler, Tomas
2016-10-03 17:30                 ` Winkler, Tomas
2016-10-03 12:48         ` Jarkko Sakkinen
2016-10-03 12:48           ` Jarkko Sakkinen
2016-10-04  5:19           ` Jarkko Sakkinen
2016-10-04  5:19             ` Jarkko Sakkinen
2016-10-04 16:47             ` Jason Gunthorpe
2016-10-04 16:47               ` Jason Gunthorpe
2016-10-04 21:55               ` Winkler, Tomas
2016-10-04 21:55                 ` Winkler, Tomas
2016-10-04 23:10                 ` Jason Gunthorpe
2016-10-04 23:10                   ` Jason Gunthorpe
2016-10-05  7:48                   ` Winkler, Tomas
2016-10-05  7:48                     ` Winkler, Tomas
2016-10-05 15:15                     ` Jarkko Sakkinen
2016-10-05 15:15                       ` Jarkko Sakkinen
2016-10-05 16:37                       ` Jason Gunthorpe
2016-10-05 16:37                         ` Jason Gunthorpe
2016-10-05 17:11                     ` Jason Gunthorpe
2016-10-05 17:11                       ` Jason Gunthorpe
2016-10-05 20:09                       ` Winkler, Tomas
2016-10-05 20:09                         ` Winkler, Tomas
2016-10-05 21:16                         ` Jason Gunthorpe
2016-10-05 21:16                           ` Jason Gunthorpe
2016-10-06  0:43                           ` Winkler, Tomas
2016-10-06  0:43                             ` Winkler, Tomas
2016-10-06  2:07                             ` Jason Gunthorpe
2016-10-06  2:07                               ` Jason Gunthorpe
2016-10-07 14:24                               ` Winkler, Tomas
2016-10-07 14:24                                 ` Winkler, Tomas
2016-10-07 19:17                                 ` Jason Gunthorpe
2016-10-07 19:17                                   ` Jason Gunthorpe
2016-10-07 20:10                                   ` Winkler, Tomas
2016-10-07 20:10                                     ` Winkler, Tomas
2016-10-08 10:47                                 ` Jarkko Sakkinen
2016-10-08 10:47                                   ` Jarkko Sakkinen
2016-10-05 10:02               ` Jarkko Sakkinen
2016-10-05 10:02                 ` Jarkko Sakkinen
2016-10-05 16:27                 ` Jason Gunthorpe
2016-10-05 16:27                   ` Jason Gunthorpe
2016-10-06 11:23                   ` Jarkko Sakkinen
2016-10-06 11:23                     ` Jarkko Sakkinen
2016-10-06 16:22                     ` Jason Gunthorpe
2016-10-06 16:22                       ` Jason Gunthorpe
2016-10-06 16:46                       ` Jarkko Sakkinen
2016-10-06 16:46                         ` Jarkko Sakkinen
2016-10-05 10:09               ` Jarkko Sakkinen
2016-10-05 10:09                 ` Jarkko Sakkinen
2016-10-03 16:00         ` Jason Gunthorpe
2016-10-03 16:00           ` Jason Gunthorpe
2016-10-03 17:16           ` Winkler, Tomas
2016-10-03 17:16             ` Winkler, Tomas
2016-10-03 17:30             ` Jason Gunthorpe
2016-10-03 17:30               ` Jason Gunthorpe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.