All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Jeremiah Mahler <jmmahler@gmail.com>,
	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 <tj@kernel.org>,
	NeilBrown <neilb@suse.de>, Guenter Roeck <linux@roeck-us.net>,
	"Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: [BUG, PATCH 03/10] sysfs: added __compat_only_sysfs_link_entry_to_kobj()
Date: Sat, 7 Nov 2015 13:41:37 +0200	[thread overview]
Message-ID: <20151107114137.GA5100@intel.com> (raw)
In-Reply-To: <20151107105543.GA6897@intel.com>

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,
> > 
> > On Fri, Oct 16, 2015 at 09:40:22PM +0300, Jarkko Sakkinen wrote:
> > > Added a new function __compat_only_sysfs_link_group_to_kobj() that adds
> > > a symlink from attribute or group to a kobject. This needed for
> > > maintaining backwards compatibility with PPI attributes in the TPM
> > > driver.
> > > 
> > > Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
> > > ---
> > >  fs/sysfs/group.c      | 44 ++++++++++++++++++++++++++++++++++++++++++++
> > >  include/linux/sysfs.h | 11 +++++++++++
> > >  2 files changed, 55 insertions(+)
> > > 
> > > diff --git a/fs/sysfs/group.c b/fs/sysfs/group.c
> > > index 39a0199..e123659 100644
> > > --- a/fs/sysfs/group.c
> > > +++ b/fs/sysfs/group.c
> > > @@ -352,3 +352,47 @@ void sysfs_remove_link_from_group(struct kobject *kobj, const char *group_name,
> > >  	}
> > >  }
> > >  EXPORT_SYMBOL_GPL(sysfs_remove_link_from_group);
> > > +
> > > +/**
> > > + * __compat_only_sysfs_link_entry_to_kobj - add a symlink to a kobject pointing
> > > + * to a group or an attribute
> > > + * @kobj:		The kobject containing the group.
> > > + * @target_kobj:	The target kobject.
> > > + * @target_name:	The name of the target group or attribute.
> > > + */
> > > +int __compat_only_sysfs_link_entry_to_kobj(struct kobject *kobj,
> > > +				      struct kobject *target_kobj,
> > > +				      const char *target_name)
> > > +{
> > > +	struct kernfs_node *target;
> > > +	struct kernfs_node *entry;
> > > +	struct kernfs_node *link;
> > > +
> > > +	/*
> > > +	 * We don't own @target_kobj and it may be removed at any time.
> > > +	 * Synchronize using sysfs_symlink_target_lock. See sysfs_remove_dir()
> > > +	 * for details.
> > > +	 */
> > > +	spin_lock(&sysfs_symlink_target_lock);
> > > +	target = target_kobj->sd;
> > > +	if (target)
> > > +		kernfs_get(target);
> > > +	spin_unlock(&sysfs_symlink_target_lock);
> > > +	if (!target)
> > > +		return -ENOENT;
> > > +
> > > +	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

I'm at the moment in process testing it. Can you run 'acpidump' on your
laptop and send the output me in private? I'll just verify that my
deduction for the root cause is correct.

> > -- 
> > - Jeremiah Mahler

/Jarkko

  reply	other threads:[~2015-11-07 11:41 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-16 18:40 [PATCH 00/10] TPM2 updates for 4.4 Jarkko Sakkinen
2015-10-16 18:40 ` Jarkko Sakkinen
2015-10-16 18:40 ` [PATCH 01/10] tpm, tpm_crb: fix unaligned read of the command buffer address Jarkko Sakkinen
2015-10-18  3:02   ` Peter Hüwe
2015-10-18 11:15     ` Jarkko Sakkinen
2015-10-16 18:40 ` [PATCH 02/10] tpm, tpm_tis: fix tpm_tis ACPI detection issue with TPM 2.0 Jarkko Sakkinen
2015-10-16 18:40 ` [PATCH 03/10] sysfs: added __compat_only_sysfs_link_entry_to_kobj() Jarkko Sakkinen
2015-10-18  1:37   ` Peter Hüwe
2015-10-18 11:21     ` Jarkko Sakkinen
2015-11-07  0:23   ` Jeremiah Mahler
2015-11-09 22:32     ` Jason Gunthorpe
2015-11-07  2:55   ` [BUG, PATCH " Jeremiah Mahler
2015-11-07 10:55     ` Jarkko Sakkinen
2015-11-07 11:41       ` Jarkko Sakkinen [this message]
2015-11-07 18:08         ` Jeremiah Mahler
2015-11-07 22:31           ` Jarkko Sakkinen
2015-11-07 23:11             ` Jeremiah Mahler
2015-11-08  0:49               ` Jarkko Sakkinen
2015-11-08  3:04                 ` Jeremiah Mahler
2015-11-08  7:46                   ` Jarkko Sakkinen
2015-10-16 18:40 ` [PATCH 04/10] tpm: move the PPI attributes to character device directory Jarkko Sakkinen
2015-11-04 18:17   ` [BUG, bisect, PATCH " Jeremiah Mahler
2015-11-05  9:22     ` Jarkko Sakkinen
2015-11-05 11:05       ` [tpmdd-devel] " Jarkko Sakkinen
2015-11-05 16:47         ` Jeremiah Mahler
2015-11-05 17:46           ` Jarkko Sakkinen
2015-11-05 18:17             ` Jeremiah Mahler
2015-11-06 13:45               ` Jarkko Sakkinen
2015-11-07  2:54     ` Jeremiah Mahler
2015-10-16 18:40 ` [PATCH 05/10] tpm: update PPI documentation to address the location change Jarkko Sakkinen
2015-10-16 18:40   ` Jarkko Sakkinen
2015-10-16 18:40 ` [PATCH 06/10] tpm: introduce tpm_buf Jarkko Sakkinen
2015-10-18  2:57   ` Peter Hüwe
2015-10-18 11:19     ` Jarkko Sakkinen
2015-10-16 18:40 ` [PATCH 07/10] keys, trusted: move struct trusted_key_options to trusted-type.h Jarkko Sakkinen
2015-10-16 18:40 ` [PATCH 08/10] tpm: seal/unseal for TPM 2.0 Jarkko Sakkinen
2015-11-07 18:58   ` Jeremiah Mahler
2015-11-07 21:39     ` Jarkko Sakkinen
2015-10-16 18:40 ` [PATCH 09/10] keys, trusted: seal/unseal with TPM 2.0 chips Jarkko Sakkinen
2015-10-16 18:40 ` [PATCH 10/10] MAINTAINERS: add new maintainer for TPM DEVICE DRIVER Jarkko Sakkinen
2015-10-16 19:06 ` [tpmdd-devel] [PATCH 00/10] TPM2 updates for 4.4 Kevin Strasser
2015-10-16 19:06   ` Kevin Strasser

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151107114137.GA5100@intel.com \
    --to=jarkko.sakkinen@linux.intel.com \
    --cc=artem.bityutskiy@linux.intel.com \
    --cc=dhowells@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=jmmahler@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=neilb@suse.de \
    --cc=peterhuewe@gmx.de \
    --cc=tj@kernel.org \
    --cc=tpmdd-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.