X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttng-kernel-version.h;h=7bed5a90812c956517a77783f510ff2305f53f56;hb=6f182b5468d6f80dfbd1002ad3966c904686ca40;hp=42d748f9c415653202da20e0633a35b2cd1d0b68;hpb=140ade7579fb78822566924134d4547c24614d4f;p=lttng-modules.git diff --git a/lttng-kernel-version.h b/lttng-kernel-version.h index 42d748f9..7bed5a90 100644 --- a/lttng-kernel-version.h +++ b/lttng-kernel-version.h @@ -40,19 +40,22 @@ * of LINUX_VERSION_CODE from the kernel headers and allocate 16bits. * Otherwise, keep using the version code from the headers to minimise the * behavior change and avoid regressions. + * + * Cast the result to uint64_t to prevent overflowing when we append distro + * specific version information. */ #if (LTTNG_LINUX_PATCH >= 256) #define LTTNG_KERNEL_VERSION(a, b, c) \ - (((a) << 24) + ((b) << 16) + (c)) + ((((a) << 24) + ((b) << 16) + (c)) * 1ULL) #define LTTNG_LINUX_VERSION_CODE \ LTTNG_KERNEL_VERSION(LTTNG_LINUX_MAJOR, LTTNG_LINUX_MINOR, LTTNG_LINUX_PATCH) #else -#define LTTNG_KERNEL_VERSION(a, b, c) KERNEL_VERSION(a, b, c) -#define LTTNG_LINUX_VERSION_CODE LINUX_VERSION_CODE +#define LTTNG_KERNEL_VERSION(a, b, c) (KERNEL_VERSION(a, b, c) * 1ULL) +#define LTTNG_LINUX_VERSION_CODE (LINUX_VERSION_CODE * 1ULL) #endif