lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 6 Nov 2015 18:55:18 -0800 From: Jeremiah Mahler <jmmahler@...il.com> To: Jarkko Sakkinen <jarkko.sakkinen@...ux.intel.com> Cc: tpmdd-devel@...ts.sourceforge.net, linux-kernel@...r.kernel.org, peterhuewe@....de, gregkh@...uxfoundation.org, jgunthorpe@...idianresearch.com, dhowells@...hat.com, artem.bityutskiy@...ux.intel.com, Tejun Heo <tj@...nel.org>, NeilBrown <neilb@...e.de>, Guenter Roeck <linux@...ck-us.net>, "Eric W. Biederman" <ebiederm@...ssion.com> Subject: Re: [BUG, PATCH 03/10] sysfs: added __compat_only_sysfs_link_entry_to_kobj() 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@...ux.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. [...] -- - Jeremiah Mahler -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists