kbuild: simplify access to the kernel's version
Instead of storing the version in a single integer and having various kernel (and userspace) code how it's constructed, export individual (major, patchlevel, sublevel) components and simplify kernel code that uses it. This should also make it easier on userspace. Signed-off-by: Sasha Levin <sashal@kernel.org> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
9b82f13e7e
commit
88a686728b
5
Makefile
5
Makefile
|
@ -1255,7 +1255,10 @@ define filechk_version.h
|
|||
expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + $(SUBLEVEL)); \
|
||||
fi; \
|
||||
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + \
|
||||
((c) > 255 ? 255 : (c)))'
|
||||
((c) > 255 ? 255 : (c)))'; \
|
||||
echo \#define LINUX_VERSION_MAJOR $(VERSION); \
|
||||
echo \#define LINUX_VERSION_PATCHLEVEL $(PATCHLEVEL); \
|
||||
echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL)
|
||||
endef
|
||||
|
||||
$(version_h): FORCE
|
||||
|
|
|
@ -235,8 +235,8 @@ static void mlx5_set_driver_version(struct mlx5_core_dev *dev)
|
|||
remaining_size = max_t(int, 0, driver_ver_sz - strlen(string));
|
||||
|
||||
snprintf(string + strlen(string), remaining_size, "%u.%u.%u",
|
||||
(u8)((LINUX_VERSION_CODE >> 16) & 0xff), (u8)((LINUX_VERSION_CODE >> 8) & 0xff),
|
||||
(u16)(LINUX_VERSION_CODE & 0xffff));
|
||||
LINUX_VERSION_MAJOR, LINUX_VERSION_PATCHLEVEL,
|
||||
LINUX_VERSION_SUBLEVEL);
|
||||
|
||||
/*Send the command*/
|
||||
MLX5_SET(set_driver_version_in, in, opcode,
|
||||
|
|
|
@ -111,8 +111,8 @@ DECLARE_WAIT_QUEUE_HEAD(usb_kill_urb_queue);
|
|||
*/
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
#define KERNEL_REL bin2bcd(((LINUX_VERSION_CODE >> 16) & 0x0ff))
|
||||
#define KERNEL_VER bin2bcd(((LINUX_VERSION_CODE >> 8) & 0x0ff))
|
||||
#define KERNEL_REL bin2bcd(LINUX_VERSION_MAJOR)
|
||||
#define KERNEL_VER bin2bcd(LINUX_VERSION_PATCHLEVEL)
|
||||
|
||||
/* usb 3.1 root hub device descriptor */
|
||||
static const u8 usb31_rh_dev_descriptor[18] = {
|
||||
|
|
|
@ -46,8 +46,8 @@
|
|||
* - Make vid/did overridable
|
||||
* - make it look like usb1 if usb1 mode forced
|
||||
*/
|
||||
#define KERNEL_REL bin2bcd(((LINUX_VERSION_CODE >> 16) & 0x0ff))
|
||||
#define KERNEL_VER bin2bcd(((LINUX_VERSION_CODE >> 8) & 0x0ff))
|
||||
#define KERNEL_REL bin2bcd(LINUX_VERSION_MAJOR)
|
||||
#define KERNEL_VER bin2bcd(LINUX_VERSION_PATCHLEVEL)
|
||||
|
||||
enum {
|
||||
AST_VHUB_STR_INDEX_MAX = 4,
|
||||
|
|
|
@ -573,8 +573,8 @@ static inline u16 get_default_bcdDevice(void)
|
|||
{
|
||||
u16 bcdDevice;
|
||||
|
||||
bcdDevice = bin2bcd((LINUX_VERSION_CODE >> 16 & 0xff)) << 8;
|
||||
bcdDevice |= bin2bcd((LINUX_VERSION_CODE >> 8 & 0xff));
|
||||
bcdDevice = bin2bcd(LINUX_VERSION_MAJOR) << 8;
|
||||
bcdDevice |= bin2bcd(LINUX_VERSION_PATCHLEVEL);
|
||||
return bcdDevice;
|
||||
}
|
||||
|
||||
|
|
|
@ -1243,7 +1243,7 @@ static int override_release(char __user *release, size_t len)
|
|||
break;
|
||||
rest++;
|
||||
}
|
||||
v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 60;
|
||||
v = LINUX_VERSION_PATCHLEVEL + 60;
|
||||
copy = clamp_t(size_t, len, 1, sizeof(buf));
|
||||
copy = scnprintf(buf, copy, "2.6.%u%s", v, rest);
|
||||
ret = copy_to_user(release, buf, copy + 1);
|
||||
|
|
Loading…
Reference in New Issue