/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef _KCOMPAT_RHEL_DEFS_H_ #define _KCOMPAT_RHEL_DEFS_H_ /* This is the RedHat Enterprise Linux distribution specific definitions file. * It defines what features need backports for a given version of the RHEL * kernel. * * It checks the RHEL_RELEASE_CODE and RHEL_RELEASE_VERSION macros to decide * what support the target kernel has. * * It assumes that kcompat_std_defs.h has already been processed, and will * #define or #undef any flags that have changed based on backports done by * RHEL. */ #if !RHEL_RELEASE_CODE #error "RHEL_RELEASE_CODE is 0 or undefined" #endif #ifndef RHEL_RELEASE_VERSION #error "RHEL_RELEASE_VERSION is undefined" #endif /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,3)) #define NEED_NETDEV_TXQ_BQL_PREFETCH #else /* >= 7.3 */ #endif /* 7.3 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,4)) #define NEED_BUILD_BUG_ON #else /* >= 7.4 */ #define HAVE_RHEL7_EXTENDED_OFFLOAD_STATS #define HAVE_INCLUDE_BITFIELD #endif /* 7.4 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,5)) #else /* >= 7.5 */ #define HAVE_TCF_EXTS_TO_LIST #define HAVE_FLOW_DISSECTOR_KEY_IP #endif /* 7.5 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)) #undef HAVE_XDP_BUFF_RXQ #undef HAVE_XDP_RXQ_INFO_REG_3_PARAMS #else /* >= 7.6 */ #undef NEED_JIFFIES_64_TIME_IS_MACROS #undef NEED_TC_CLS_CAN_OFFLOAD_AND_CHAIN0 #undef NEED_TC_SETUP_QDISC_MQPRIO #endif /* 7.6 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,7)) #else /* >= 7.7 */ #define HAVE_DEVLINK_PORT_ATTRS_SET_PORT_FLAVOUR #define HAVE_ETHTOOL_NEW_100G_BITS #undef NEED_NETDEV_TX_SENT_QUEUE #undef NEED_IN_TASK #define HAVE_FLOW_DISSECTOR_KEY_ENC_IP #endif /* 7.7 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8,0)) #else /* >= 8.0 */ #undef HAVE_TCF_EXTS_TO_LIST #undef HAVE_ETHTOOL_NEW_100G_BITS #define HAVE_NDO_OFFLOAD_STATS #undef HAVE_RHEL7_EXTENDED_OFFLOAD_STATS #define HAVE_TCF_EXTS_FOR_EACH_ACTION /* 7.7 undefs it due to a backport in 7.7+, but 8.0 needs it still */ #define NEED_NETDEV_TX_SENT_QUEUE #endif /* 8.0 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8,1)) #define NEED_IDA_ALLOC_MIN_MAX_RANGE_FREE #define NEED_FLOW_MATCH #else /* >= 8.1 */ #define HAVE_ETHTOOL_NEW_100G_BITS #undef NEED_IDA_ALLOC_MIN_MAX_RANGE_FREE #undef NEED_FLOW_MATCH #undef NEED_NETDEV_TX_SENT_QUEUE #undef NEED_INDIRECT_CALL_WRAPPER_MACROS #define HAVE_INDIRECT_CALL_WRAPPER_HEADER #define HAVE_GRETAP_TYPE #define HAVE_GENEVE_TYPE #define HAVE_VXLAN_TYPE #define HAVE_LINKMODE #endif /* 8.1 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8,2)) #else /* >= 8.2 */ #undef NEED_DEVLINK_FLASH_UPDATE_STATUS_NOTIFY #undef NEED_SKB_FRAG_OFF #undef NEED_SKB_FRAG_OFF_ADD #undef NEED_FLOW_INDR_BLOCK_CB_REGISTER #define HAVE_FLOW_INDR_BLOCK_LOCK #define HAVE_DEVLINK_PORT_ATTRS_SET_SWITCH_ID #define HAVE_NETDEV_SB_DEV #endif /* 8.2 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8,3)) #else /* >= 8.3 */ #undef NEED_CPU_LATENCY_QOS_RENAME #undef NEED_DEVLINK_REGION_CREATE_OPS #define HAVE_RT_IRQ_SCHED_FIX #endif /* 8.3 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8,4)) #else /* >= 8.4 */ #undef NEED_DEVLINK_PORT_ATTRS_SET_STRUCT #undef NEED_DEVLINK_FLASH_UPDATE_TIMEOUT_NOTIFY #undef HAVE_XDP_QUERY_PROG #define HAVE_AF_XDP_ZC_SUPPORT #define HAVE_MEM_TYPE_XSK_BUFF_POOL #define HAVE_NDO_XSK_WAKEUP #define XSK_UMEM_RETURNS_XDP_DESC #undef NEED_XSK_UMEM_GET_RX_FRAME_SIZE #define HAVE_ETHTOOL_COALESCE_PARAMS_SUPPORT #define HAVE_PTP_FIND_PIN_UNLOCKED #endif /* 8.4 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8,5)) #else /* >= 8.5 */ #undef HAVE_NAPI_BUSY_LOOP #undef HAVE_XDP_RXQ_INFO_REG_3_PARAMS #undef NEED_XSK_BUFF_DMA_SYNC_FOR_CPU #define NO_XDP_QUERY_XSK_UMEM #undef NEED_XSK_BUFF_POOL_RENAME #define HAVE_NETDEV_BPF_XSK_POOL #define HAVE_AF_XDP_NETDEV_UMEM #define HAVE_DEVLINK_OPS_CREATE_DEL #endif /* 8.5 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8,7)) #else /* >= 8.7 */ #undef NEED_DEVLINK_ALLOC_SETS_DEV #define HAVE_DEVLINK_SET_STATE_3_PARAM #endif /* 8.7 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(9,0)) #else /* >= 9.0 */ #define HAVE_XDP_BUFF_RXQ #endif /* 9.0 */ /*****************************************************************************/ #if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(9,1)) #else /* >= 9.1 */ #undef HAVE_PASID_SUPPORT #endif /* 9.1 */ /*****************************************************************************/ #endif /* _KCOMPAT_RHEL_DEFS_H_ */