Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751042AbbKJGQV (ORCPT ); Tue, 10 Nov 2015 01:16:21 -0500 Received: from mga02.intel.com ([134.134.136.20]:23359 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750866AbbKJGQU (ORCPT ); Tue, 10 Nov 2015 01:16:20 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,269,1444719600"; d="scan'208";a="832580380" Date: Tue, 10 Nov 2015 08:16:16 +0200 From: Jarkko Sakkinen To: Jeremiah Mahler , Peter Huewe , Marcel Selhorst , Jason Gunthorpe , "moderated list:TPM DEVICE DRIVER" , open list Subject: Re: [PATCH] tpm: fix compat 'ppi' link handling in tpm_chip_register() Message-ID: <20151110061616.GA4404@intel.com> References: <1446969067-29016-1-git-send-email-jarkko.sakkinen@linux.intel.com> <20151110061141.GB31052@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151110061141.GB31052@localhost.localdomain> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2697 Lines: 80 On Mon, Nov 09, 2015 at 10:11:41PM -0800, Jeremiah Mahler wrote: > Jarkko, > > On Sun, Nov 08, 2015 at 09:51:07AM +0200, Jarkko Sakkinen wrote: > > __compat_only_sysfs_link_entry_to_kobj() was unconditionally called for > > TPM1 chips, which caused crash on Acer C720 laptop where DSM for the > > ACPI object did not exist. > > > > There are two reasons for unwanted behavior: > > > > * The code did not check whether > > __compat_only_sysfs_link_entry_to_kobj() returned -ENOENT. This is > > OK. It just meanst that ppi is not available. > > * The code did not clean up properly. Compat link should added only > > after all other init is done. > > > > This patch sorts out these issues. > > > > Fixes: 9b774d5cf2db > > Reported-by: Jeremiah Mahler > > Signed-off-by: Jarkko Sakkinen > > Tested-by: Jeremiah Mahler > > --- > > drivers/char/tpm/tpm-chip.c | 18 ++++++++++-------- > > 1 file changed, 10 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c > > index a5cdce7..45cc39a 100644 > > --- a/drivers/char/tpm/tpm-chip.c > > +++ b/drivers/char/tpm/tpm-chip.c > > @@ -226,14 +226,6 @@ int tpm_chip_register(struct tpm_chip *chip) > > if (rc) > > goto out_err; > > > > - if (!(chip->flags & TPM_CHIP_FLAG_TPM2)) { > > - rc = __compat_only_sysfs_link_entry_to_kobj(&chip->pdev->kobj, > > - &chip->dev.kobj, > > - "ppi"); > > - if (rc) > > - goto out_err; > > - } > > - > > /* Make the chip available. */ > > spin_lock(&driver_lock); > > list_add_tail_rcu(&chip->list, &tpm_chip_list); > > @@ -241,6 +233,16 @@ int tpm_chip_register(struct tpm_chip *chip) > > > > chip->flags |= TPM_CHIP_FLAG_REGISTERED; > > > > + if (!(chip->flags & TPM_CHIP_FLAG_TPM2)) { > > + rc = __compat_only_sysfs_link_entry_to_kobj(&chip->pdev->kobj, > > + &chip->dev.kobj, > > + "ppi"); > > + if (rc && rc != -ENOENT) { > > + tpm_chip_unregister(chip); > > + return rc; > > + } > > + } > > + > > return 0; > > out_err: > > tpm1_chip_unregister(chip); > > -- > > 2.5.0 > > > > This patch doesn't apply to the latest linux-next (20151109). I think I > may be missing a dependent patch. Do you know which one? It is expected as there are 7 other bug fixes that I'm including to the next pull rquest and this is on top. > - Jeremiah Mahler /Jarkko -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/