--- a/src/drv_mei_cpe_os.h +++ b/src/drv_mei_cpe_os.h @@ -36,6 +36,15 @@ #include "ifxos_select.h" #include "ifx_fifo.h" +/* __BYTE_ORDER is defined in ifxos_linux_common.h and ifxos_linux_drv.h, which + * leads to an compile error in include/uapi/linux/aio_abi.h because the + * __LITTLE_ENDIAN is still undefined. So let's undef the unwanted __BYTE_ORDER + * again here. + */ +#ifdef __BYTE_ORDER + #undef __BYTE_ORDER +#endif + #if defined(IFXOS_HAVE_VERSION_CHECK) # if (IFXOS_VERSION_CHECK_EG_THAN(1,1,0)) # define IFXOS_SUPPORTS_FIFO_PEEK 1 --- a/src/drv_mei_cpe_linux.c +++ b/src/drv_mei_cpe_linux.c @@ -2548,7 +2548,11 @@ static int MEI_InitModuleRegCharDev(cons ("Using major number %d" MEI_DRV_CRLF, major_number)); } +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) mei_class = class_create(THIS_MODULE, devName); +#else + mei_class = class_create(devName); +#endif mei_devt = MKDEV(major_number, 0); device_create(mei_class, NULL, mei_devt, NULL, "%s/%i", devName, 0);