On 2023/05/10 18:03, lijiang wrote:
Hi, Kazu
Thank you for the patch.
On Wed, May 10, 2023 at 3:09 PM HAGIO KAZUHITO(萩尾 一仁) <k-hagio-ab(a)nec.com>
wrote:
> From: Kazuhito Hagio <k-hagio-ab(a)nec.com>
>
> The current comparison macros for kernel version shift minor number only
> 8 bits. This can cause an unexpected result on kernels with revision
> number over 255, e.g. Linux 4.14.314.
>
>
For this case, I saw kernel deal with it as below:
#define KERNEL_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + ((c) > 255 ?
255 : (c)))
Can you try to imitate the above macro definition and help to confirm if it
can also work for your case? If yes, it should be good to follow up kernel
change.
um, if we need to check a revision number over 255, the KERNEL_VERSION
macro will not work. For example,
if (THIS_KERNEL_VERSION < LINUX(4,14,300))
and yet, why do you think it is good to follow the kernel one?
(Although I don't know the purpose and usage of the macro in kernel,
probably it's enough for kernel or tools.)
btw, makedumpfile has the same shift values as the patch since 2007.
#define KVER_MAJ_SHIFT 24
#define KVER_MIN_SHIFT 16
#define KERNEL_VERSION(x,y,z) (((x) << KVER_MAJ_SHIFT) | ((y) <<
KVER_MIN_SHIFT) | (z))
Thanks,
Kazu