From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755688AbbKGWbP (ORCPT ); Sat, 7 Nov 2015 17:31:15 -0500 Received: from mga02.intel.com ([134.134.136.20]:65310 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752723AbbKGWbO (ORCPT ); Sat, 7 Nov 2015 17:31:14 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,258,1444719600"; d="scan'208";a="845110514" Date: Sun, 8 Nov 2015 00:31:09 +0200 From: Jarkko Sakkinen To: Jeremiah Mahler , tpmdd-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, peterhuewe@gmx.de, gregkh@linuxfoundation.org, jgunthorpe@obsidianresearch.com, dhowells@redhat.com, artem.bityutskiy@linux.intel.com, Tejun Heo , NeilBrown , Guenter Roeck , "Eric W. Biederman" Subject: Re: [BUG, PATCH 03/10] sysfs: added __compat_only_sysfs_link_entry_to_kobj() Message-ID: <20151107223109.GA16578@intel.com> References: <1445020843-9382-1-git-send-email-jarkko.sakkinen@linux.intel.com> <1445020843-9382-4-git-send-email-jarkko.sakkinen@linux.intel.com> <20151107025518.GB2911@newt.localdomain> <20151107105543.GA6897@intel.com> <20151107114137.GA5100@intel.com> <20151107180856.GA2250@newt.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151107180856.GA2250@newt.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 On Sat, Nov 07, 2015 at 10:08:56AM -0800, Jeremiah Mahler wrote: > Jarkko, > > On Sat, Nov 07, 2015 at 01:41:37PM +0200, Jarkko Sakkinen wrote: > > On Sat, Nov 07, 2015 at 12:55:43PM +0200, Jarkko Sakkinen wrote: > > > On Fri, Nov 06, 2015 at 06:55:18PM -0800, Jeremiah Mahler wrote: > > > > Jarkko, > > > > > [...] > > > > > + entry = kernfs_find_and_get(target_kobj->sd, target_name); > > > > > + if (!entry) { > > > > > + kernfs_put(target); > > > > > + return -ENOENT; > > > > > + } > > > > > + > > > > > > > > On an Acer C720 this call to kernfs_find_and_get fails resulting in > > > > a failed resume after suspend. > > > > > > > > Apparently it can't find an object for the name "ppi". > > > > > > > > This bug does not appear until the next patch is applied which > > > > calls __compat_only_sysfs_link_entry_to_kobj. > > > > > > I think I might have found something thanks to your help > > > > > > First I found this old bug: > > > > > > https://bugzilla.redhat.com/show_bug.cgi?id=1096511 > > > > > > What is happening is that DSM is not found and therefore tpm_add_ppi() > > > does not add ppi to sysfs groups array. > > > > > > __compat_only_sysfs_link_entry_to_kobj() is called after tpm_add_ppi > > > unconditionally for TPM1. > > > > > > I'll implement a fix for this ASAP. > > > > > > Thank you for great effort on finding tis! > > > > I pushed a fix over here: > > > > https://github.com/jsakkine/linux-tpmdd/tree/fixes > > > This fix does work since it effectively avoids the call to > __compat_only_sysfs_link_entry_to_kobj(). > > Have you tested cases where __compat_only_sysfs_link_entry_to_kobj() > is actually used? Yes, of course I have. And I checked your DSDT and my assumption was correct. There was no DSM in the ACPI object. However, there is probably another regression but it is caused by some patch that was added earlier. I strongly believe it is not caused by any of my 4.4 patches. I think what was happening with you was that __compat_only_sysfs_link_entry_to_kobj() was returning -ENOENT, which it should do when target is not found. This was propagated to tpm_tis and it probably messes up clean up somehow. I have to test my hypothesis as soon as possible. The fix that I pushed is still valid no matter which way the things are. > [...] > > -- > - Jeremiah Mahler /Jarkko