Re: kobject: Fix kobject_rename and !CONFIG_SYSFS

From: Benjamin Thery
Date: Tue May 13 2008 - 15:33:22 EST


Quoting Greg KH <greg@xxxxxxxxx>:

On Tue, May 13, 2008 at 04:25:01PM +0200, Benjamin Thery wrote:
Eric W. Biederman wrote:
Greg KH <greg@xxxxxxxxx> writes:
Eric, Randy Dunlap has found that this patch breaks the build when
CONFIG_SYSFS is not enabled. Can you please fix it up before I send it
to Linus?

The exact error is:
In file included from
/local/linsrc/next-20080509/include/linux/kobject.h:21,
from
/local/linsrc/next-20080509/include/linux/module.h:16,
from
/local/linsrc/next-20080509/include/linux/crypto.h:21,
from
/local/linsrc/next-20080509/arch/x86/kernel/asm-offsets_64.c:7,
from
/local/linsrc/next-20080509/arch/x86/kernel/asm-offsets.c:4:
/local/linsrc/next-20080509/include/linux/sysfs.h: In function
'sysfs_rename_dir':
/local/linsrc/next-20080509/include/linux/sysfs.h:142: error: implicit
declaration of function 'kobject_set_name'
I will take a look in the morning and see if I can see what is wrong.
Which tree was this error against? I thought I tested this case,
and I'm wondering if there might be another patch that is hiding
kobject_set_name.

Argh, headers "cross-dependencies":

* linux/kobject.h includes linux/sysfs.h before defining
kobject_set_name()

* linux/sysfs.h needs to include linux/kobject.h to find
kobject_set_name() definition (for inlined sysfs_rename_dir() when
CONFIG_SYSFS=n)


sysfs_rename_dir() is only called by kobject.c, kobject_rename().
I guess this kind of patch is not acceptable to fix the depency?

Ick, no. I'd rather add a kobject_set_name() function prototype to
sysfs.h in this case, that should remove the error, right?

That's what I did first. But I thought it was worse than the above
solution.
Anyway, adding kobject_set_name() to sysfs.h did fix the error.

-Benjamin


thanks,

greg k-h





----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/