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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Wed, 27 Feb 2008 15:38:23 +0100
From:	Cornelia Huck <cornelia.huck@...ibm.com>
To:	Guennadi Liakhovetski <g.liakhovetski@....de>
Cc:	Greg KH <greg@...ah.com>, linux-kernel@...r.kernel.org
Subject: Re: [PCI] duplicate sysfs symbols getting registered in current git

On Wed, 27 Feb 2008 14:46:05 +0100 (CET),
Guennadi Liakhovetski <g.liakhovetski@....de> wrote:

> On Wed, 27 Feb 2008, Cornelia Huck wrote:
> 
> > On Wed, 27 Feb 2008 13:33:13 +0100 (CET),
> > Guennadi Liakhovetski <g.liakhovetski@....de> wrote:
> > 
> > > You mean the kernel panic without CONFIG_SYSFS_DEPRECATED? No, 
> > > unfortunately is doesn't.
> > 
> > Hm, dev->kobj.parent may be NULL in cleanup_device_parent(). Does this
> > one help?
> 
> Yes, this one does. 

Great, thanks for testing!

> But Greg's original idea, that disabling 
> CONFIG_SYSFS_DEPRECATED would eliminate one of the warnings doesn't hold, 
> all three of them are still there (after your patches):

I'm afraid I can't help there, as this looks PCI-related...

Greg: Attached are the fixes against your tree with proper description
and s-o-b.


Driver core: Fix cleanup when failing device_add().

-Don't call cleanup_device_parent() if we didn't call setup_parent().
-dev->kobj.parent may be NULL when cleanup_device_parent() is called,
 so we need to handle glue_dir == NULL in cleanup_glue_dir().

Signed-off-by: Cornelia Huck <cornelia.huck@...ibm.com>

---
 drivers/base/core.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- linux-2.6.orig/drivers/base/core.c
+++ linux-2.6/drivers/base/core.c
@@ -622,7 +622,8 @@ static struct kobject *get_device_parent
 static void cleanup_glue_dir(struct device *dev, struct kobject *glue_dir)
 {
 	/* see if we live in a "glue" directory */
-	if (!dev->class || glue_dir->kset != &dev->class->class_dirs)
+	if (!glue_dir || !dev->class ||
+	    glue_dir->kset != &dev->class->class_dirs)
 		return;
 
 	kobject_put(glue_dir);
@@ -781,7 +782,7 @@ int device_add(struct device *dev)
 	dev = get_device(dev);
 	if (!dev || !strlen(dev->bus_id)) {
 		error = -EINVAL;
-		goto Error;
+		goto Done;
 	}
 
 	pr_debug("device: '%s': %s\n", dev->bus_id, __FUNCTION__);
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ