In kobject_add(), with kobj->subsys = NULL, this kobject (embedded inside 
struct subsystem embedded inside struct bus_type) never gets added to 
either it's parent's list, nor to the (NULL) subsystem's list.  It appears 
that the object can be on either a parent's list or a subsystem's list, 
but not both, by virtue of there being only one struct list_head entry in 
struct kobject.
You're far more versed in how this should work than I.  Some ideas...
1) in bus_register(), don't set bus->subsys.parent = &bus_subsys, instead 
set bus->subsys.kobj.subsys = &bus_subsys.  I did this, and now find_bus() 
works as expected, but now the busses created don't have parents unless 
they're specified prior to calling bus_register(), so this doesn't seem 
quite right.
===== linux-2.5-edd-work/drivers/base/bus.c 1.26 vs edited =====
--- 1.26/drivers/base/bus.c     Sun Dec  1 23:22:04 2002
+++ edited/linux-2.5-edd-work/drivers/base/bus.c        Sat Jan  4 13:58:31 2003
@@ -495,7 +520,7 @@
 
        down(&bus_sem);
        strncpy(bus->subsys.kobj.name,bus->name,KOBJ_NAME_LEN);
-       bus->subsys.parent = &bus_subsys;
+       bus->subsys.kobj.subsys = &bus_subsys;
        subsystem_register(&bus->subsys);
 
        snprintf(bus->devsubsys.kobj.name,KOBJ_NAME_LEN,"devices");
2) set both bus->subsys.parent and bus->subsys.kobj.subsys, but then fix 
the test in kobject_add() to put the object on the subsystem's list if 
possible, then fall back to the parent list otherwise.  Again, doesn't 
seem quite right.
3) Add another struct list_head to kobject to let it reside on both a 
parent list and a subsystem list if either exist.
There are probably other options.  Please advise.
Thanks,
Matt
-- Matt Domsch Sr. Software Engineer, Lead Engineer, Architect Dell Linux Solutions www.dell.com/linux Linux on Dell mailing lists @ http://lists.us.dell.com
- 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/