On 05/02/2024 23:10, Masahiro Yamada wrote:
I think what you can contribute are:Unfortunately I expect resistance for this. I also expect places like FW
- Explore the UTS_RELEASE users, and check if you can get rid of it.
loader it is necessary. And when this is used in sysfs, people will say
that it is part of the ABI now.
How about I send the patch to update to use init_uts_ns and mention also
that it would be better to not use at all, if possible? I can cc you.
OK.
As I mentioned in the previous reply, the replacement is safe
for builtin code.
When you touch modular code, please pay a little more care,
because UTS_RELEASE and init_utsname()->release
may differ when CONFIG_MODVERSIONS=y.
Are you saying that we may have a different release version kernel and module built with CONFIG_MODVERSIONS=y, and the module was using UTS_RELEASE for something? That something may be like setting some info in a sysfs file, like in this example:
static ssize_t target_core_item_version_show(struct config_item *item,
char *page)
{
return sprintf(page, "Target Engine Core ConfigFS Infrastructure %s"
" on %s/%s on "UTS_RELEASE"\n", TARGET_CORE_VERSION,
utsname()->sysname, utsname()->machine);
}
And the intention is to use the module codebase release version and not the kernel codebase release version. Hence utsname() is used for .sysname and .machine, but not .release .