From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752554AbcBMAEn (ORCPT ); Fri, 12 Feb 2016 19:04:43 -0500 Received: from quartz.orcorp.ca ([184.70.90.242]:41466 "EHLO quartz.orcorp.ca" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752535AbcBMAEl (ORCPT ); Fri, 12 Feb 2016 19:04:41 -0500 From: Jason Gunthorpe To: Jarkko Sakkinen , tpmdd-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Cc: Stefan Berger , Peter Huewe Subject: [PATCH 1/3] tpm: Hold the kref during tpm_chip_find_get Date: Fri, 12 Feb 2016 17:04:29 -0700 Message-Id: <1455321871-28296-2-git-send-email-jgunthorpe@obsidianresearch.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1455321871-28296-1-git-send-email-jgunthorpe@obsidianresearch.com> References: <1455321871-28296-1-git-send-email-jgunthorpe@obsidianresearch.com> X-Broken-Reverse-DNS: no host name found for IP address 10.0.0.160 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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 45cc39aabeee..ae2fed8a162b 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 542a80cbfd9c..f6ba79d91857 100644 --- a/drivers/char/tpm/tpm.h +++ b/drivers/char/tpm/tpm.h @@ -207,6 +207,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.1.4