+++ /dev/null
-36453 5 i40e-1.5.18/pci.updates
-33977 7 i40e-1.5.18/scripts/set_irq_affinity
-20875 2 i40e-1.5.18/scripts/dump_tables
-05363 3 i40e-1.5.18/i40e.7
-24081 6 i40e-1.5.18/src/i40e_diag.c
-09578 46 i40e-1.5.18/src/i40e_nvm.c
-64861 6 i40e-1.5.18/src/i40e_virtchnl_pf.h
-22166 6 i40e-1.5.18/src/i40e_lan_hmc.h
-48944 84 i40e-1.5.18/src/i40e_debugfs.c
-14633 9 i40e-1.5.18/src/i40e_dcb_nl.c
-58183 4 i40e-1.5.18/src/i40e_fcoe.h
-63581 11 i40e-1.5.18/src/i40e_hmc.c
-29827 72 i40e-1.5.18/src/i40e_adminq_cmd.h
-10518 37 i40e-1.5.18/src/i40e_dcb.c
-27208 30 i40e-1.5.18/src/i40e_adminq.c
-17176 8 i40e-1.5.18/src/common.mk
-54442 78 i40e-1.5.18/src/i40e_virtchnl_pf.c
-63972 8 i40e-1.5.18/src/i40e_hmc.h
-27994 7 i40e-1.5.18/src/Makefile
-51547 23 i40e-1.5.18/src/i40e_ptp.c
-59117 2 i40e-1.5.18/src/i40e_diag.h
-17075 47 i40e-1.5.18/src/i40e_fcoe.c
-30612 55 i40e-1.5.18/src/i40e_type.h
-21794 54 i40e-1.5.18/src/kcompat.c
-44588 1 i40e-1.5.18/src/Module.supported
-52213 24 i40e-1.5.18/src/i40e_prototype.h
-20223 194 i40e-1.5.18/src/i40e_common.c
-07981 3 i40e-1.5.18/src/i40e_alloc.h
-06064 364 i40e-1.5.18/src/i40e_register.h
-10029 16 i40e-1.5.18/src/i40e_txrx.h
-49924 145 i40e-1.5.18/src/kcompat.h
-33326 135 i40e-1.5.18/src/i40e_ethtool.c
-61620 91 i40e-1.5.18/src/i40e_txrx.c
-20253 5 i40e-1.5.18/src/i40e_adminq.h
-56064 7 i40e-1.5.18/src/i40e_dcb.h
-63399 41 i40e-1.5.18/src/i40e_lan_hmc.c
-60171 4 i40e-1.5.18/src/i40e_status.h
-60497 36 i40e-1.5.18/src/i40e.h
-43933 334 i40e-1.5.18/src/i40e_main.c
-57941 4 i40e-1.5.18/src/i40e_helper.h
-23798 14 i40e-1.5.18/src/i40e_virtchnl.h
-32236 2 i40e-1.5.18/src/i40e_devids.h
-58990 5 i40e-1.5.18/src/i40e_osdep.h
-64761 10 i40e-1.5.18/i40e.spec
-02733 18 i40e-1.5.18/COPYING
-65334 46 i40e-1.5.18/README
--- /dev/null
+36453 5 i40e-1.5.19/pci.updates
+57941 4 i40e-1.5.19/src/i40e_helper.h
+44588 1 i40e-1.5.19/src/Module.supported
+29827 72 i40e-1.5.19/src/i40e_adminq_cmd.h
+47545 149 i40e-1.5.19/src/kcompat.h
+48944 84 i40e-1.5.19/src/i40e_debugfs.c
+61620 91 i40e-1.5.19/src/i40e_txrx.c
+22166 6 i40e-1.5.19/src/i40e_lan_hmc.h
+09578 46 i40e-1.5.19/src/i40e_nvm.c
+27994 7 i40e-1.5.19/src/Makefile
+27208 30 i40e-1.5.19/src/i40e_adminq.c
+07981 3 i40e-1.5.19/src/i40e_alloc.h
+54442 78 i40e-1.5.19/src/i40e_virtchnl_pf.c
+56064 7 i40e-1.5.19/src/i40e_dcb.h
+59117 2 i40e-1.5.19/src/i40e_diag.h
+52213 24 i40e-1.5.19/src/i40e_prototype.h
+51547 23 i40e-1.5.19/src/i40e_ptp.c
+17294 10 i40e-1.5.19/src/common.mk
+10518 37 i40e-1.5.19/src/i40e_dcb.c
+58990 5 i40e-1.5.19/src/i40e_osdep.h
+14633 9 i40e-1.5.19/src/i40e_dcb_nl.c
+25797 334 i40e-1.5.19/src/i40e_main.c
+06064 364 i40e-1.5.19/src/i40e_register.h
+36665 54 i40e-1.5.19/src/kcompat.c
+20253 5 i40e-1.5.19/src/i40e_adminq.h
+64861 6 i40e-1.5.19/src/i40e_virtchnl_pf.h
+17075 47 i40e-1.5.19/src/i40e_fcoe.c
+63972 8 i40e-1.5.19/src/i40e_hmc.h
+30612 55 i40e-1.5.19/src/i40e_type.h
+13567 135 i40e-1.5.19/src/i40e_ethtool.c
+60171 4 i40e-1.5.19/src/i40e_status.h
+23798 14 i40e-1.5.19/src/i40e_virtchnl.h
+24081 6 i40e-1.5.19/src/i40e_diag.c
+32236 2 i40e-1.5.19/src/i40e_devids.h
+63581 11 i40e-1.5.19/src/i40e_hmc.c
+20223 194 i40e-1.5.19/src/i40e_common.c
+63399 41 i40e-1.5.19/src/i40e_lan_hmc.c
+58183 4 i40e-1.5.19/src/i40e_fcoe.h
+60497 36 i40e-1.5.19/src/i40e.h
+10029 16 i40e-1.5.19/src/i40e_txrx.h
+33977 7 i40e-1.5.19/scripts/set_irq_affinity
+20875 2 i40e-1.5.19/scripts/dump_tables
+02733 18 i40e-1.5.19/COPYING
+52431 10 i40e-1.5.19/i40e.spec
+65334 46 i40e-1.5.19/README
+05363 3 i40e-1.5.19/i40e.7
################################################################################
# common Makefile rules useful for out-of-tree Linux driver builds
+#
+# Usage: include common.mk
+#
+# After including, you probably want to add a minimum_kver_check call
+#
+# Required Variables:
+# DRIVER
+# -- Set to the lowercase driver name
#####################
# Helpful functions #
-a ${KVER}
################
-# initrd Macro #
+# dracut Macro #
################
cmd_initrd := $(shell \
if which dracut > /dev/null 2>&1 ; then \
echo "dracut --force"; \
- elif which mkinitrd > /dev/null 2>&1 ; then \
- echo "mkinitrd"; \
- elif which update-initramfs > /dev/null 2>&1 ; then \
- echo "update-initramfs -u"; \
fi )
#####################
# fallback to /usr/man
MANDIR := /usr/man
endif
+
+####################
+# CCFLAGS variable #
+####################
+
+# set correct CCFLAGS variable for kernels older than 2.6.24
+ifeq (0,$(shell [ ${KVER_CODE} -lt $(call get_kvercode,2,6,24) ]; echo $$?))
+CCFLAGS_VAR := EXTRA_CFLAGS
+else
+CCFLAGS_VAR := ccflags-y
+endif
+
+#################
+# KBUILD_OUTPUT #
+#################
+
+# Only set KBUILD_OUTPUT if KOBJ differs from KSRC
+ifneq (${KSRC},${KOBJ})
+export KBUILD_OUTPUT ?= ${KOBJ}
+endif
+
+############################
+# Module Install Directory #
+############################
+
+# Default to using updates/drivers/net/ethernet/intel/ path, since depmod since
+# v3.1 defaults to checking updates folder first, and only checking kernels/
+# and extra afterwards. We use updates instead of kernel/* due to desire to
+# prevent over-writing built-in modules files.
+export INSTALL_MOD_DIR ?= updates/drivers/net/ethernet/intel/${DRIVER}
+
+######################
+# Kernel Build Macro #
+######################
+
+# kernel build function
+# ${1} is the kernel build target
+# ${2} may contain any extra rules to pass directly to the sub-make process
+#
+# This function is expected to be executed by
+# @+$(call kernelbuild,<target>,<extra parameters>)
+# from within a Makefile recipe.
+#
+# The following variables are expected to be defined for its use:
+#
+# *) GCC_I_SYS -- if set it will enable use of gcc-i-sys.sh wrapper to use -isystem
+# *) CCFLAGS_VAR -- the CCFLAGS variable to set extra CFLAGS
+# *) EXTRA_CFLAGS -- a set of extra CFLAGS to pass into the ccflags-y variable
+# *) KSRC -- the location of the kernel source tree to build against
+# *) DRIVER_UPPERCASE -- the uppercase name of the kernel module, set from DRIVER
+#
+kernelbuild = ${MAKE} $(if ${GCC_I_SYS},CC="${GCC_I_SYS}") \
+ ${CCFLAGS_VAR}="${EXTRA_CFLAGS}" \
+ -C "${KSRC}" \
+ CONFIG_${DRIVER_UPPERCASE}=m \
+ M="${CURDIR}" \
+ ${2} ${1};
#define VLAN_PRIO_SHIFT 13
#endif
+#ifndef PCI_EXP_LNKSTA_CLS_2_5GB
+#define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001
+#endif
+
+#ifndef PCI_EXP_LNKSTA_CLS_5_0GB
+#define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002
+#endif
+
+#ifndef PCI_EXP_LNKSTA_CLS_8_0GB
+#define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003
+#endif
+
+#ifndef PCI_EXP_LNKSTA_NLW_X1
+#define PCI_EXP_LNKSTA_NLW_X1 0x0010
+#endif
+
+#ifndef PCI_EXP_LNKSTA_NLW_X2
+#define PCI_EXP_LNKSTA_NLW_X2 0x0020
+#endif
+
+#ifndef PCI_EXP_LNKSTA_NLW_X4
+#define PCI_EXP_LNKSTA_NLW_X4 0x0040
+#endif
+
+#ifndef PCI_EXP_LNKSTA_NLW_X8
+#define PCI_EXP_LNKSTA_NLW_X8 0x0080
+#endif
+
#ifndef __GFP_COLD
#define __GFP_COLD 0
#endif
#define RHEL_RELEASE_CODE 0
#endif
+/* RHEL 7 didn't backport the parameter change in
+ * create_singlethread_workqueue.
+ * If/when RH corrects this we will want to tighten up the version check.
+ */
+#if (RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7,0))
+#undef create_singlethread_workqueue
+#define create_singlethread_workqueue(name) \
+ alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, name)
+#endif
+
/* Ubuntu Release ABI is the 4th digit of their kernel version. You can find
* it in /usr/src/linux/$(uname -r)/include/generated/utsrelease.h for new
* enough versions of Ubuntu. Otherwise you can simply see it in the output of
* ABI value. Otherwise, it becomes impossible to correlate ABI to version for
* ordering checks.
*/
-#define UBUNTU_VERSION_CODE (((LINUX_VERSION_CODE & ~0xFF) << 8) + (UTS_UBUNTU_RELEASE_ABI))
+#define UBUNTU_VERSION_CODE (((~0xFF & LINUX_VERSION_CODE) << 8) + \
+ UTS_UBUNTU_RELEASE_ABI)
#if UTS_UBUNTU_RELEASE_ABI > 255
#error UTS_UBUNTU_RELEASE_ABI is too large...
extern u32 _kc_ethtool_op_get_flags(struct net_device *);
#define ethtool_op_get_flags _kc_ethtool_op_get_flags
+enum {
+ WQ_UNBOUND = 0,
+ WQ_RESCUER = 0,
+};
+
#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
#ifdef NET_IP_ALIGN
#undef NET_IP_ALIGN
/*****************************************************************************/
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) )
+#define HAVE_NON_CONST_PCI_DRIVER_NAME
#ifndef netif_set_real_num_tx_queues
static inline int _kc_netif_set_real_num_tx_queues(struct net_device *dev,
unsigned int txq)
#define ETH_FLAG_RXVLAN (1 << 8)
#endif /* ETH_FLAG_RXVLAN */
+#define WQ_MEM_RECLAIM WQ_RESCUER
+
static inline void _kc_skb_checksum_none_assert(struct sk_buff *skb)
{
WARN_ON(skb->ip_summed != CHECKSUM_NONE);
#endif
/*****************************************************************************/
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) )
+/* NOTE: the order of parameters to _kc_alloc_workqueue() is different than
+ * alloc_workqueue() to avoid compiler warning from -Wvarargs
+ */
+static inline struct workqueue_struct * __attribute__ ((format(printf, 3, 4)))
+_kc_alloc_workqueue(__maybe_unused int flags, __maybe_unused int max_active,
+ const char *fmt, ...)
+{
+ struct workqueue_struct *wq;
+ va_list args, temp;
+ unsigned int len;
+ char *p;
+
+ va_start(args, fmt);
+ va_copy(temp, args);
+ len = vsnprintf(NULL, 0, fmt, temp);
+ va_end(temp);
+
+ p = kmalloc(len + 1, GFP_KERNEL);
+ if (!p) {
+ va_end(args);
+ return NULL;
+ }
+
+ vsnprintf(p, len + 1, fmt, args);
+ va_end(args);
+#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36) )
+ wq = create_workqueue(p);
+#else
+ wq = alloc_workqueue(p, flags, max_active);
+#endif
+ kfree(p);
+
+ return wq;
+}
+#ifdef alloc_workqueue
+#undef alloc_workqueue
+#endif
+#define alloc_workqueue(fmt, flags, max_active, args...) \
+ _kc_alloc_workqueue(flags, max_active, fmt, ##args)
+
#if !(RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,5))
typedef u32 netdev_features_t;
#endif
u16 reg16;
pos = pci_find_capability(pdev, PCI_CAP_ID_EXP);
- if (!pos)
- BUG();
+ BUG_ON(!pos);
pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, ®16);
return (reg16 & PCI_EXP_FLAGS_TYPE) >> 4;
}
#if ( SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(12,0,0))
#define HAVE_NDO_SELECT_QUEUE_ACCEL_FALLBACK
#endif
+#if ( LINUX_VERSION_CODE < KERNEL_VERSION(4,8,0) )
#define HAVE_VXLAN_RX_OFFLOAD
+#endif /* < 4.8.0 */
#define HAVE_NDO_GET_PHYS_PORT_ID
#endif /* >= 3.12.0 */
#undef HAVE_STRUCT_PAGE_PFMEMALLOC
#define HAVE_DCBNL_OPS_SETAPP_RETURN_INT
#endif
+#ifndef list_next_entry
+#define list_next_entry(pos, member) \
+ list_entry((pos)->member.next, typeof(*(pos)), member)
+#endif
#else /* >= 3.13.0 */
#define HAVE_VXLAN_CHECKS
#endif
#else
+#define HAVE_PCI_ERROR_HANDLER_RESET_NOTIFY
#define HAVE_NDO_SET_VF_MIN_MAX_TX_RATE
#endif /* 3.16.0 */
#define __napi_alloc_skb(napi,len,mask) __kc_napi_alloc_skb(napi,len)
#endif /* SKB_ALLOC_NAPI */
#define HAVE_CONFIG_PM_RUNTIME
+#if (RHEL_RELEASE_CODE && (RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(6,7)) && \
+ (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,0)))
+#define HAVE_RXFH_HASHFUNC
+#endif /* 6.7 < RHEL < 7.0 */
#if RHEL_RELEASE_CODE && (RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(7,1))
-#define NDO_DFLT_BRIDGE_GETLINK_HAS_BRFLAGS
#define HAVE_RXFH_HASHFUNC
-#endif /* RHEL_RELEASE_CODE */
+#define NDO_DFLT_BRIDGE_GETLINK_HAS_BRFLAGS
+#endif /* RHEL > 7.1 */
#ifndef napi_schedule_irqoff
#define napi_schedule_irqoff napi_schedule
#endif
+#ifndef READ_ONCE
+#define READ_ONCE(_x) ACCESS_ONCE(_x)
+#endif
#else /* 3.19.0 */
#define HAVE_NDO_FDB_ADD_VID
#define HAVE_RXFH_HASHFUNC
#endif /* 4.2.0 */
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,4,0))
+#ifndef CONFIG_64BIT
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
+#include <asm-generic/io-64-nonatomic-lo-hi.h> /* 32-bit readq/writeq */
+#else /* 3.3.0 => 4.3.x */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26))
+#include <asm-generic/int-ll64.h>
+#endif /* 2.6.26 => 3.3.0 */
+#ifndef readq
+static inline __u64 readq(const volatile void __iomem *addr)
+{
+ const volatile u32 __iomem *p = addr;
+ u32 low, high;
+
+ low = readl(p);
+ high = readl(p + 1);
+
+ return low + ((u64)high << 32);
+}
+#define readq readq
+#endif
+
+#ifndef writeq
+static inline void writeq(__u64 val, volatile void __iomem *addr)
+{
+ writel(val, addr);
+ writel(val >> 32, addr + 4);
+}
+#define writeq writeq
+#endif
+#endif /* < 3.3.0 */
+#endif /* !CONFIG_64BIT */
#else
#define HAVE_NDO_SET_VF_TRUST
+
+#ifndef CONFIG_64BIT
+#include <linux/io-64-nonatomic-lo-hi.h> /* 32-bit readq/writeq */
+#endif /* !CONFIG_64BIT */
#endif /* 4.4.0 */
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,5,0))
#define NETIF_F_SCTP_CRC NETIF_F_SCTP_CSUM
#endif /* NETIF_F_SCTP_CRC */
#else
+#if ( LINUX_VERSION_CODE < KERNEL_VERSION(4,8,0) )
#define HAVE_GENEVE_RX_OFFLOAD
+#endif /* < 4.8.0 */
#define HAVE_NETIF_NAPI_ADD_CALLS_NAPI_HASH_ADD
#endif /* 4.5.0 */
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0))
+#if !(UBUNTU_VERSION_CODE && UBUNTU_VERSION_CODE >= UBUNTU_VERSION(4,4,0,21))
static inline void napi_consume_skb(struct sk_buff *skb,
int __always_unused budget)
{
dev_consume_skb_any(skb);
}
+#endif /* UBUNTU_VERSION(4,4,0,21) */
+static inline void csum_replace_by_diff(__sum16 *sum, __wsum diff)
+{
+ * sum = csum_fold(csum_add(diff, ~csum_unfold(*sum)));
+}
+
static inline void page_ref_inc(struct page *page)
{
atomic_inc(&page->_count);
#endif /* 4.6.0 */
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0))
+#else
+#define HAVE_NETIF_TRANS_UPDATE
+#endif /* 4.7.0 */
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,8,0))
+enum udp_parsable_tunnel_type {
+ UDP_TUNNEL_TYPE_VXLAN,
+ UDP_TUNNEL_TYPE_GENEVE,
+};
+struct udp_tunnel_info {
+ unsigned short type;
+ sa_family_t sa_family;
+ __be16 port;
+};
+#else
+#define HAVE_UDP_ENC_RX_OFFLOAD
+#endif /* 4.8.0 */
+
#endif /* _KCOMPAT_H_ */