Messages in this thread Patch in this message | | | From | Jarkko Sakkinen <> | Subject | [PATCH v2 3/4] tpm: Hold the kref during tpm_chip_find_get | Date | Sat, 13 Feb 2016 15:47:06 +0200 |
| |
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
This was missed during the struct device conversion, we need to hold a kref on the chip to make sure it isn't freed.
Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.cm> Fixes: afb5abc262e9 ("tpm: two-phase chip management functions") cc: stable@vger.kernel.org --- drivers/char/tpm/tpm-chip.c | 2 ++ drivers/char/tpm/tpm.h | 1 + 2 files changed, 3 insertions(+)
diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c index 274dd01..84a54a2 100644 --- a/drivers/char/tpm/tpm-chip.c +++ b/drivers/char/tpm/tpm-chip.c @@ -53,6 +53,8 @@ struct tpm_chip *tpm_chip_find_get(int chip_num) chip = pos; break; } + + get_device(&chip->dev); } rcu_read_unlock(); return chip; diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h index 28b477e..f6bc0b3 100644 --- a/drivers/char/tpm/tpm.h +++ b/drivers/char/tpm/tpm.h @@ -200,6 +200,7 @@ struct tpm_chip { static inline void tpm_chip_put(struct tpm_chip *chip) { module_put(chip->pdev->driver->owner); + put_device(&chip->dev); } static inline int tpm_read_index(int base, int index) -- 2.7.0
| |