diff --git a/BLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci/__namespace.h b/BLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci/__namespace.h new file mode 100644 index 0000000000000000000000000000000000000000..b893435b294f1d80b7fb750659561965ce45c65a --- /dev/null +++ b/BLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci/__namespace.h @@ -0,0 +1,9 @@ + +/* + * DO NOT EDIT THIS FILE - IT IS GENERATED BY THE DRIVER BUILD. + * + * If you need to change the driver's name spaces, look in the scons + * files for the driver's defineVmkDriver() rule. + */ + +VMK_NAMESPACE_REQUIRED("com.vmware.usb", "9.2.2.0"); diff --git a/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/net/vmkapi_net_types.h b/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/net/vmkapi_net_types.h index ff1777734098b75197829e2769c2eab97e9937f0..635810f3117d9d4a8b3e80c6ffda4ecaafd39863 100644 --- a/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/net/vmkapi_net_types.h +++ b/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/net/vmkapi_net_types.h @@ -170,6 +170,9 @@ typedef vmk_uint32 vmk_LinkSpeed; /** Uplink link speed 10000Mbps */ #define VMK_LINK_SPEED_10000_MBPS 10000 +/** Uplink link speed 20000Mbps */ +#define VMK_LINK_SPEED_20000_MBPS 20000 + /** Uplink link speed 40000Mbps */ #define VMK_LINK_SPEED_40000_MBPS 40000 diff --git a/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/nmp/vmkapi_nmp_satp.h b/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/nmp/vmkapi_nmp_satp.h index d425c5931bd0d25356545ad68fddf1e3fecb36e4..2121a9da2abc577d7ff5668014bc5345895dd82a 100644 --- a/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/nmp/vmkapi_nmp_satp.h +++ b/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/nmp/vmkapi_nmp_satp.h @@ -1354,6 +1354,31 @@ vmk_NmpSatpAPActivatePathsHelper ( vmk_uint32 starStopUnitTimeoutMs, vmk_Bool *pathsActivated); +/* + ************************************************************************ + * vmk_NmpSatpSetProbeFailuresOptionFlag -- */ /** + * + * \ingroup NMP_SATP_API + * \brief Sets the option to handle retry failures for probe commands. + * + * Sets the SATP's preference on handling continuous RETRY failures + * for probe sync commands. If set then the path will be marked dead + * after a timeout else the path state will not be updated. If a SATP + * uses NMP's default probing mechanism via + * vmk_NmpSatpAPUpdatePathStatesHelper or + * vmk_NmpSatpAAUpdatePathStatesHelper then this API must be called + * from the SATP when the config option 'enable_action_OnRetryErrors' + * or 'disable_action_OnRetryErrors' is set. + * + * \param[in] nmpDevice NMP device + * \param[in] flag VMK_TRUE indicates option is ON + * VMK_FALSE indicates option is OFF + * + ************************************************************************ + */ +void +vmk_NmpSatpSetProbeFailuresOptionFlag(vmk_NmpDevice *nmpDevice, vmk_Bool flag); + #endif /* _VMK_NMP_SATP_H_ */ /** @} */ /** @} */ diff --git a/BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/net/vmkapi_net_types.h b/BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/net/vmkapi_net_types.h index ff1777734098b75197829e2769c2eab97e9937f0..635810f3117d9d4a8b3e80c6ffda4ecaafd39863 100644 --- a/BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/net/vmkapi_net_types.h +++ b/BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/net/vmkapi_net_types.h @@ -170,6 +170,9 @@ typedef vmk_uint32 vmk_LinkSpeed; /** Uplink link speed 10000Mbps */ #define VMK_LINK_SPEED_10000_MBPS 10000 +/** Uplink link speed 20000Mbps */ +#define VMK_LINK_SPEED_20000_MBPS 20000 + /** Uplink link speed 40000Mbps */ #define VMK_LINK_SPEED_40000_MBPS 40000 diff --git a/BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/nmp/vmkapi_nmp_satp.h b/BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/nmp/vmkapi_nmp_satp.h index d425c5931bd0d25356545ad68fddf1e3fecb36e4..2121a9da2abc577d7ff5668014bc5345895dd82a 100644 --- a/BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/nmp/vmkapi_nmp_satp.h +++ b/BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/nmp/vmkapi_nmp_satp.h @@ -1354,6 +1354,31 @@ vmk_NmpSatpAPActivatePathsHelper ( vmk_uint32 starStopUnitTimeoutMs, vmk_Bool *pathsActivated); +/* + ************************************************************************ + * vmk_NmpSatpSetProbeFailuresOptionFlag -- */ /** + * + * \ingroup NMP_SATP_API + * \brief Sets the option to handle retry failures for probe commands. + * + * Sets the SATP's preference on handling continuous RETRY failures + * for probe sync commands. If set then the path will be marked dead + * after a timeout else the path state will not be updated. If a SATP + * uses NMP's default probing mechanism via + * vmk_NmpSatpAPUpdatePathStatesHelper or + * vmk_NmpSatpAAUpdatePathStatesHelper then this API must be called + * from the SATP when the config option 'enable_action_OnRetryErrors' + * or 'disable_action_OnRetryErrors' is set. + * + * \param[in] nmpDevice NMP device + * \param[in] flag VMK_TRUE indicates option is ON + * VMK_FALSE indicates option is OFF + * + ************************************************************************ + */ +void +vmk_NmpSatpSetProbeFailuresOptionFlag(vmk_NmpDevice *nmpDevice, vmk_Bool flag); + #endif /* _VMK_NMP_SATP_H_ */ /** @} */ /** @} */ diff --git a/BLD/build/version/buildNumber.h b/BLD/build/version/buildNumber.h index cff02ca82aa6c43ad6d3488ddb892a374d2b2681..1b90975ea29eb942855fe84dd9794479de7a5455 100644 --- a/BLD/build/version/buildNumber.h +++ b/BLD/build/version/buildNumber.h @@ -1,6 +1,6 @@ -#define BUILD_NUMBER "build-00000" -#define BUILD_NUMBER_NUMERIC 00000 -#define BUILD_NUMBER_NUMERIC_STRING "00000" -#define PRODUCT_BUILD_NUMBER "product-build-00000" -#define PRODUCT_BUILD_NUMBER_NUMERIC 00000 -#define PRODUCT_BUILD_NUMBER_NUMERIC_STRING "00000" +#define BUILD_NUMBER "build-2899292" +#define BUILD_NUMBER_NUMERIC 2899292 +#define BUILD_NUMBER_NUMERIC_STRING "2899292" +#define PRODUCT_BUILD_NUMBER "product-build-30998" +#define PRODUCT_BUILD_NUMBER_NUMERIC 30998 +#define PRODUCT_BUILD_NUMBER_NUMERIC_STRING "30998" diff --git a/INSTALL.txt b/INSTALL.txt index b277d684cfc20b54897957e778a45bebe618583f..44f8d4fddfdfeb2366bf7d03651e062f3f6130ea 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -3,16 +3,16 @@ This server should have SSH access enabled: Customize System/View Logs -> Troubleshooting Options -> Enable SSH To install the package create a working directory on a datastore on the -ESXi server, e.g., "/vmfs/volumes/Storage1/install" and copy the binary +ESXi server, e.g., "/vmfs/volumes/datastore1/" and copy the binary disclosure created by the build: -scp centos-5.3-x64.tar root@esx.example.org:/vmfs/volumes/Storage1/install/centos-5.3-x64.tar +scp centos-5.3-x64.tar root@esx.example.org:/vmfs/volumes/datastore1/centos-5.3-x64.tar On the ESXi host, verify the shipped version: Replace the shipped version with the custom build: -cd /vmfs/volumes/Storage1/install +cd /vmfs/volumes/datastore1/ tar xf centos-5.3-x64.tar ./update-drivers.sh diff --git a/build-vmkdrivers.sh b/build-vmkdrivers.sh old mode 100755 new mode 100644 index 52d642a3d615a75950c2f6fe2ea4aa9067af1d72..bb5959d4b56b46bc1c42f2d7a90036ff8fc2e4f9 --- a/build-vmkdrivers.sh +++ b/build-vmkdrivers.sh @@ -29,600 +29,605 @@ $GREP -v -e "SED" build-*.sh \ | $GREP -v -e "\*" \ | $XARGS $MKDIR -p -mkdir ./vmkdrivers/src_92/drivers/usb/host/xhci -cp ./vmkdrivers/src_92/drivers/usb/core/xhci-ext-caps.h ./vmkdrivers/src_92/drivers/usb/host/xhci - # Compiler flags assume being compiled natively on a x86-64 machine -$CC -DASSEMBLY -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/thunk.o vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/thunk.S -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usbnet\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usbnet -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FCOE_MQ -DCONFIG_FCOE_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"libfcoe_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfcoe_92 -DLINUX_MODULE_HEAP_INITIAL=4*1024*100 -DLINUX_MODULE_HEAP_MAX=10*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfcoe_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.24.9.3\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfcoe_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfcoe_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FCOE_MQ -DCONFIG_FCOE_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"fcoe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fcoe -DLINUX_MODULE_HEAP_INITIAL=4*1024*100 -DLINUX_MODULE_HEAP_MAX=10*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_fcoe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.29.9.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/fcoe -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fcoe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_9_2_1_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_9_2_1_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata_9_2_1_0.o vmkdrivers/src_92/drivers/ata/libata_9_2_1_0.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"hid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=512*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/input -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/hid -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/hid -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-ohci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_ohci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_ohci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/ohci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-ohci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-ohci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"cdc_ether\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cdc_ether -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_cdc_ether -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/cdc_ether -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cdc_ether-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"iscsi_linux_9_2_1_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/iscsi_linux -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/iscsi_linux_9_2_1_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-iscsi_linux_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_1_0.o vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_1_0.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-uhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_uhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_uhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/uhci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-uhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-uhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata_9_2_0_0.o vmkdrivers/src_92/drivers/ata/libata_9_2_0_0.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"cnic_register\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cnic_register -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=16*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_cnic_register -DLINUX_MODULE_VERSION=\"1.72.1.v50.1i\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/cnic_register -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cnic_register-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ata_piix\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ata_piix -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ata_piix -DLINUX_MODULE_VERSION=\"2.12\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ata_piix -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ata_piix-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ehci-hcd\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ehci_hcd -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ehci_hcd -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_2GB_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/ehci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/ehci-hcd -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ehci-hcd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"iscsi_linux_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/iscsi_linux -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/iscsi_linux_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-iscsi_linux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_0_0.o vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_0_0.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-libata_9_2_1_0-CUR/release/vmkernel64/libata_9_2_1_0 --whole-archive BLD/build/vmkdriver-libata_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata_9_2_1_0.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-iscsi_linux_9_2_1_0-CUR/release/vmkernel64/iscsi_linux_9_2_1_0 --whole-archive BLD/build/vmkdriver-iscsi_linux_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_1_0.o +$CC -DASSEMBLY -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/thunk.o vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/thunk.S +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_0_0.o vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_0_0.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_9_2_1_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_9_2_1_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata_9_2_1_0.o vmkdrivers/src_92/drivers/ata/libata_9_2_1_0.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata_9_2_0_0.o vmkdrivers/src_92/drivers/ata/libata_9_2_0_0.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FCOE_MQ -DCONFIG_FCOE_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"libfcoe_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfcoe_92 -DLINUX_MODULE_HEAP_INITIAL=4*1024*100 -DLINUX_MODULE_HEAP_MAX=10*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfcoe_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.24.9.3\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfcoe_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfcoe_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FCOE_MQ -DCONFIG_FCOE_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"fcoe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fcoe -DLINUX_MODULE_HEAP_INITIAL=4*1024*100 -DLINUX_MODULE_HEAP_MAX=10*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_fcoe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.29.9.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/fcoe -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fcoe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"tg3\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_tg3 -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_tg3 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.123c.v55.5\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DTG3_INBOX -DTG3_VMWARE_NETQ_DISABLE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/tg3 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/tg3 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-tg3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_mbox\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_VERSION=\"2.20.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/megaraid_mbox -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfc_9_2_0_0-CUR/release/vmkernel64/libfc_9_2_0_0 --whole-archive BLD/build/vmkdriver-libfc_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_0_0.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_si_drv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/char/openipmi/includes -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_si_drv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_msghandler\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_msghandler -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_msghandler -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_msghandler -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_msghandler -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_msghandler-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_devintf\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_devintf -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_devintf -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_devintf -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_devintf -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_devintf-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ata_piix\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ata_piix -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ata_piix -DLINUX_MODULE_VERSION=\"2.12\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ata_piix -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ata_piix-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2_INBOX=1 -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_BOOL=1 -DHAVE_DEV_ERR=1 -DKBUILD_MODNAME=\"bnx2\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2 -DLINUX_MODULE_HEAP_DMA_WIDTH=40 -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"2.2.3d.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_svw\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_svw -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_svw -DLINUX_MODULE_VERSION=\"2.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_svw -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_svw-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_sil24\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_VERSION=\"1.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_sil24 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_sil\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_sil -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_sil -DLINUX_MODULE_VERSION=\"2.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_sil -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_sil-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_promise\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_promise -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_promise -DLINUX_MODULE_VERSION=\"2.12\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_promise -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_promise-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ahci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ahci -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ahci -DLINUX_MODULE_VERSION=\"3.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ahci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ahci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_sil680\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_sil680 -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_sil680 -DLINUX_MODULE_VERSION=\"0.4.8\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_sil680 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_sil680-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_serverworks\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_serverworks -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_serverworks -DLINUX_MODULE_VERSION=\"0.4.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_serverworks -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_serverworks-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_pdc2027x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_pdc2027x -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_pdc2027x -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_pdc2027x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_pdc2027x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_hpt3x2n\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_hpt3x2n -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_hpt3x2n -DLINUX_MODULE_VERSION=\"0.3.4\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_hpt3x2n -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_hpt3x2n-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_cmd64x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_cmd64x -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_cmd64x -DLINUX_MODULE_VERSION=\"0.2.5\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_cmd64x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_cmd64x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_amd\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_amd -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_amd -DLINUX_MODULE_VERSION=\"0.3.10\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_amd -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_amd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_via\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_via -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_via -DLINUX_MODULE_VERSION=\"0.3.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_via -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_via-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_atiixp\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_atiixp -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_atiixp -DLINUX_MODULE_VERSION=\"0.4.6\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_atiixp -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_atiixp-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_nv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_nv -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_nv -DLINUX_MODULE_VERSION=\"3.5\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_nv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_nv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"cnic_register\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cnic_register -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=16*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_cnic_register -DLINUX_MODULE_VERSION=\"1.72.1.v50.1i\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/cnic_register -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cnic_register-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCNIC_INBOX -DCNIC_ISCSI_OOO_SUPPORT=1 -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_BOOL=1 -DHAVE_DEV_PRINTK=1 -DKBUILD_MODNAME=\"cnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cnic -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_cnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.52.v55.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/cnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2i\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_VERSION=\"2.72.11.v55.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2i -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2i -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wno-sign-compare -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"random\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_random -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_random -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/random -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/random -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_proc.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_proc.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/nark.o vmkdrivers/src_9/drivers/scsi/aacraid2/nark.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9_2_2_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/vmklinux_9_2_2_0 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9_2_2_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9_2_2_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_2_0/vmklinux_9_2_2_0.o vmkdrivers/src_92/vmklinux_9_2_2_0/vmklinux_9_2_2_0.c $LD $LD_OPTS -r -o BLD/build/vmkdriver-libata_9_2_0_0-CUR/release/vmkernel64/libata_9_2_0_0 --whole-archive BLD/build/vmkdriver-libata_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata_9_2_0_0.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libfcoe_9_2_1_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfcoe_9_2_1_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfcoe_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_1_0.o vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_1_0.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libfcoe_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfcoe_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfcoe_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_0_0.o vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_0_0.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_9_2_1_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_9_2_1_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_1_0.o vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_1_0.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptsas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82540.o vmkdrivers/src_9/drivers/net/e1000/e1000_82540.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_frame.o vmkdrivers/src_92/drivers/scsi/libfc/fc_frame.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/config.o vmkdrivers/src_92/drivers/usb/core/config.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_link.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_link.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_sp.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_sp.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_cmn.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_cmn.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_esx.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_esx.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptsas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-uhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_uhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_uhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/uhci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-uhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-uhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/uhci/uhci-hcd.o vmkdrivers/src_92/drivers/usb/host/uhci/uhci-hcd.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/generic.o vmkdrivers/src_92/drivers/usb/core/generic.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_disc.o vmkdrivers/src_92/drivers/scsi/libfc/fc_disc.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_ethtool.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-vmklnx.o vmkdrivers/src_92/drivers/ata/libata-vmklnx.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/devio.o vmkdrivers/src_92/drivers/usb/core/devio.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usbnet\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usbnet -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/usbnet.o vmkdrivers/src_92/drivers/usb/net/usbnet.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e2.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e2.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-iscsi_linux_9_2_0_0-CUR/release/vmkernel64/iscsi_linux_9_2_0_0 --whole-archive BLD/build/vmkdriver-iscsi_linux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_0_0.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_libfc.o vmkdrivers/src_92/drivers/scsi/libfc/fc_libfc.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/driver.o vmkdrivers/src_92/drivers/usb/core/driver.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ata_piix\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ata_piix -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ata_piix -DLINUX_MODULE_VERSION=\"2.12\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ata_piix -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ata_piix-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/ata_piix.o vmkdrivers/src_9/drivers/ata/ata_piix.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_mac.o vmkdrivers/src_9/drivers/net/e1000/e1000_mac.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/initializers.o vmkdrivers/src_92/drivers/usb/storage/initializers.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/vmklinux_9_2_0_0 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0.o vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9_2_2_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/vmklinux_9_2_2_0 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9_2_2_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9_2_2_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_2_0/vmklinux_9_2_2_0.o vmkdrivers/src_92/vmklinux_9_2_2_0/vmklinux_9_2_2_0.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9_2_1_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/vmklinux_9_2_1_0 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9_2_1_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_1_0/vmklinux_9_2_1_0.o vmkdrivers/src_92/vmklinux_9_2_1_0/vmklinux_9_2_1_0.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.o vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/kcompat.o vmkdrivers/src_9/drivers/net/e1000/kcompat.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfcoe_9_2_1_0-CUR/release/vmkernel64/libfcoe_9_2_1_0 --whole-archive BLD/build/vmkdriver-libfcoe_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_1_0.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfcoe_9_2_0_0-CUR/release/vmkernel64/libfcoe_9_2_0_0 --whole-archive BLD/build/vmkdriver-libfcoe_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_0_0.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hcd.o vmkdrivers/src_92/drivers/usb/core/hcd.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/urb.o vmkdrivers/src_92/drivers/usb/core/urb.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfc_9_2_1_0-CUR/release/vmkernel64/libfc_9_2_1_0 --whole-archive BLD/build/vmkdriver-libfc_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_1_0.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/usb.o vmkdrivers/src_92/drivers/usb/storage/usb.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_exch.o vmkdrivers/src_92/drivers/scsi/libfc/fc_exch.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_nvm.o vmkdrivers/src_9/drivers/net/e1000/e1000_nvm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-scsi.o vmkdrivers/src_92/drivers/ata/libata-scsi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"cnic_register\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cnic_register -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=16*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_cnic_register -DLINUX_MODULE_VERSION=\"1.72.1.v50.1i\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/cnic_register -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cnic_register-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/cnic_register.o vmkdrivers/src_9/drivers/net/bnx2/cnic_register.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usbnet\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usbnet -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/mii.o vmkdrivers/src_92/drivers/usb/net/mii.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"hid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=512*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/input -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/hid -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/hid -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/input/hid-core.o vmkdrivers/src_92/drivers/usb/input/hid-core.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptsas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82542.o vmkdrivers/src_9/drivers/net/e1000/e1000_82542.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/buffer.o vmkdrivers/src_92/drivers/usb/core/buffer.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-cnic_register-CUR/release/vmkernel64/cnic_register --whole-archive BLD/build/vmkdriver-cnic_register-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/cnic_register.o BLD/build/vmkdriver-cnic_register-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/option_ms.o vmkdrivers/src_92/drivers/usb/storage/option_ms.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/devices.o vmkdrivers/src_92/drivers/usb/core/devices.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_fcp.o vmkdrivers/src_92/drivers/scsi/libfc/fc_fcp.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_api.o vmkdrivers/src_9/drivers/net/e1000/e1000_api.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"cdc_ether\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cdc_ether -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_cdc_ether -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/cdc_ether -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cdc_ether-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/cdc_ether.o vmkdrivers/src_92/drivers/usb/net/cdc_ether.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_lport.o vmkdrivers/src_92/drivers/scsi/libfc/fc_lport.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_phy.o vmkdrivers/src_9/drivers/net/e1000/e1000_phy.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FCOE_MQ -DCONFIG_FCOE_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"fcoe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fcoe -DLINUX_MODULE_HEAP_INITIAL=4*1024*100 -DLINUX_MODULE_HEAP_MAX=10*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_fcoe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.29.9.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/fcoe -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fcoe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/fcoe.o vmkdrivers/src_92/drivers/scsi/fcoe/fcoe.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/message.o vmkdrivers/src_92/drivers/usb/core/message.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_param.o vmkdrivers/src_9/drivers/net/e1000/e1000_param.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/pci-quirks.o vmkdrivers/src_92/drivers/usb/core/pci-quirks.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_ethtool.o vmkdrivers/src_9/drivers/net/e1000/e1000_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/transport.o vmkdrivers/src_92/drivers/usb/storage/transport.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"hid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=512*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/input -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/hid -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/hid -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/input/hid-quirks.o vmkdrivers/src_92/drivers/usb/input/hid-quirks.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-ata_piix-CUR/release/vmkernel64/ata_piix --whole-archive BLD/build/vmkdriver-ata_piix-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/ata_piix.o BLD/build/vmkdriver-ata_piix-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82541.o vmkdrivers/src_9/drivers/net/e1000/e1000_82541.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ehci-hcd\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ehci_hcd -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ehci_hcd -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_2GB_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/ehci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/ehci-hcd -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ehci-hcd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/ehci/ehci-hcd.o vmkdrivers/src_92/drivers/usb/host/ehci/ehci-hcd.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/usual-tables.o vmkdrivers/src_92/drivers/usb/storage/usual-tables.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82543.o vmkdrivers/src_9/drivers/net/e1000/e1000_82543.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_rport.o vmkdrivers/src_92/drivers/scsi/libfc/fc_rport.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/notify.o vmkdrivers/src_92/drivers/usb/core/notify.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-cdc_ether-CUR/release/vmkernel64/cdc_ether --whole-archive BLD/build/vmkdriver-cdc_ether-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/cdc_ether.o BLD/build/vmkdriver-cdc_ether-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/debug.o vmkdrivers/src_92/drivers/usb/storage/debug.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FCOE_MQ -DCONFIG_FCOE_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"libfcoe_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfcoe_92 -DLINUX_MODULE_HEAP_INITIAL=4*1024*100 -DLINUX_MODULE_HEAP_MAX=10*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfcoe_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.24.9.3\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfcoe_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfcoe_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe.o vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_0_0.o vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_0_0.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/usbnet --whole-archive BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/usbnet.o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/mii.o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-ehci-hcd-CUR/release/vmkernel64/ehci-hcd --whole-archive BLD/build/vmkdriver-ehci-hcd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/ehci/ehci-hcd.o BLD/build/vmkdriver-ehci-hcd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-libata_9_2_1_0-CUR/release/vmkernel64/libata_9_2_1_0 --whole-archive BLD/build/vmkdriver-libata_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata_9_2_1_0.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9_2_1_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/vmklinux_9_2_1_0 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9_2_1_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_1_0/vmklinux_9_2_1_0.o vmkdrivers/src_92/vmklinux_9_2_1_0/vmklinux_9_2_1_0.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.o vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/vmklinux_9_2_0_0 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0.o vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/kcompat.o vmkdrivers/src_9/drivers/net/ixgbe/kcompat.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_elsct.o vmkdrivers/src_92/drivers/scsi/libfc/fc_elsct.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debugfs.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debugfs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_vmdq.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_vmdq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_lro.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_lro.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_sil24\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_VERSION=\"1.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_sil24 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_sil24.o vmkdrivers/src_9/drivers/ata/sata_sil24.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_tag_map.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_tag_map.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_dev.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_dev.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FORCEDETH_NAPI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"forcedeth\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_forcedeth -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_forcedeth -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"0.61\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/forcedeth -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-forcedeth-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/forcedeth/forcedeth.o vmkdrivers/src_9/drivers/net/forcedeth/forcedeth.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/phy.o vmkdrivers/src_9/drivers/net/e1000e/phy.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"hpsa\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_hpsa -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_hpsa -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/hpsa -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-hpsa-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/hpsa/hpsa.o vmkdrivers/src_9/drivers/scsi/hpsa/hpsa.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2i\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_VERSION=\"2.72.11.v55.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2i -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2i -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_iscsi.o vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_iscsi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -w -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_SMP -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"vmxnet3\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.3.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/vmxnet3 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_ethtool.o vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_nvm.o vmkdrivers/src_9/drivers/net/igb/e1000_nvm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/funcobj.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib/funcobj.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptspi\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82543.o vmkdrivers/src_9/drivers/net/e1000/e1000_82543.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_hwi.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_hwi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_main.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_main.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/reset.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/reset.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_isr.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_isr.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_frame.o vmkdrivers/src_92/drivers/scsi/libfc/fc_frame.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_main.o vmkdrivers/src_9/drivers/net/enic/enic_main.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_82598.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_82598.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_io.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_io.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptspi\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c $LD $LD_OPTS -r -o BLD/build/vmkdriver-vmklinux_9_2_1_0-CUR/release/vmkernel64/vmklinux_9_2_1_0 --whole-archive BLD/build/vmkdriver-vmklinux_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_1_0/vmklinux_9_2_1_0.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-fcoe-CUR/release/vmkernel64/fcoe --whole-archive BLD/build/vmkdriver-fcoe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/fcoe.o BLD/build/vmkdriver-fcoe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-usb-uhci-CUR/release/vmkernel64/usb-uhci --whole-archive BLD/build/vmkdriver-usb-uhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/uhci/uhci-hcd.o BLD/build/vmkdriver-usb-uhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o $LD $LD_OPTS -r -o BLD/build/vmkdriver-vmklinux_9_2_2_0-CUR/release/vmkernel64/vmklinux_9_2_2_0 --whole-archive BLD/build/vmkdriver-vmklinux_9_2_2_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_2_0/vmklinux_9_2_2_0.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/hid --whole-archive BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/input/hid-core.o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/input/hid-quirks.o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptsas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=1 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptsas/mptsas.o vmkdrivers/src_9/drivers/scsi/mpt/mptsas/mptsas.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/passthrough.o vmkdrivers/src_92/drivers/usb/core/passthrough.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/usb.o vmkdrivers/src_92/drivers/usb/core/usb.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-ohci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_ohci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_ohci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/ohci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-ohci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-ohci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/ohci/ohci-hcd.o vmkdrivers/src_92/drivers/usb/host/ohci/ohci-hcd.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_elsct.o vmkdrivers/src_92/drivers/scsi/libfc/fc_elsct.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hcd-pci.o vmkdrivers/src_92/drivers/usb/core/hcd-pci.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_npiv.o vmkdrivers/src_92/drivers/scsi/libfc/fc_npiv.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1h.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1h.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-core.o vmkdrivers/src_92/drivers/ata/libata-core.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_stats.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_stats.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_dcb.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_dcb.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-sff.o vmkdrivers/src_92/drivers/ata/libata-sff.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-eh.o vmkdrivers/src_92/drivers/ata/libata-eh.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/scsiglue.o vmkdrivers/src_92/drivers/usb/storage/scsiglue.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-pmp.o vmkdrivers/src_92/drivers/ata/libata-pmp.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptsas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_manage.o vmkdrivers/src_9/drivers/net/e1000/e1000_manage.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/kcompat_ethtool.o vmkdrivers/src_9/drivers/net/e1000/kcompat_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/quirks.o vmkdrivers/src_92/drivers/usb/core/quirks.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfc_9_2_0_0-CUR/release/vmkernel64/libfc_9_2_0_0 --whole-archive BLD/build/vmkdriver-libfc_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_0_0.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_main.o vmkdrivers/src_9/drivers/net/e1000/e1000_main.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_main.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_main.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hub.o vmkdrivers/src_92/drivers/usb/core/hub.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/protocol.o vmkdrivers/src_92/drivers/usb/storage/protocol.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_self_test.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_self_test.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmkplexer\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/vmkplexer/src -Ivmkdrivers/vmkplexer/src/base -IBLD/build/HEADERS/CUR-0-vmkdrivers-namespace/vmkernel64/release/vmkplexer -c -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_entropy.o vmkdrivers/vmkplexer/src/base/vmkplexer_entropy.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/platform.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/platform.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmkplexer\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/vmkplexer/src -Ivmkdrivers/vmkplexer/src/base -IBLD/build/HEADERS/CUR-0-vmkdrivers-namespace/vmkernel64/release/vmkplexer -c -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_procfs.o vmkdrivers/vmkplexer/src/base/vmkplexer_procfs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/input.o vmkdrivers/src_92/vmklinux_92/linux/drivers/input/input.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/runtime.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/power/runtime.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfcoe_92-CUR/release/vmkernel64/libfcoe_92 --whole-archive BLD/build/vmkdriver-libfcoe_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe.o BLD/build/vmkdriver-libfcoe_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_efi.o vmkdrivers/src_92/vmklinux_92/vmware/linux_efi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-wrappers.o vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-wrappers.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate.o vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_kthread.o vmkdrivers/src_92/vmklinux_92/vmware/linux_kthread.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-input.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-input.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_signal.o vmkdrivers/src_92/vmklinux_92/vmware/linux_signal.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_cna.o vmkdrivers/src_92/vmklinux_92/vmware/linux_cna.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmkplexer\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/vmkplexer/src -Ivmkdrivers/vmkplexer/src/base -IBLD/build/HEADERS/CUR-0-vmkdrivers-namespace/vmkernel64/release/vmkplexer -c -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/vmkplexer.o vmkdrivers/vmkplexer/src/vmkplexer.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_task.o vmkdrivers/src_92/vmklinux_92/vmware/linux_task.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-lg.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-lg.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dma.o vmkdrivers/src_92/vmklinux_92/vmware/linux_dma.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/ethtool.o vmkdrivers/src_92/vmklinux_92/linux/net/ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/hweight.o vmkdrivers/src_92/vmklinux_92/linux/lib/hweight.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/usb-storage --whole-archive BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/scsiglue.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/protocol.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/transport.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/usb.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/initializers.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/option_ms.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/usual-tables.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/debug.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/defkeymap.o vmkdrivers/src_92/vmklinux_92/linux/drivers/char/defkeymap.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dump.o vmkdrivers/src_92/vmklinux_92/vmware/linux_dump.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/core.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/core.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-belkin.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-belkin.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_hashtab.o vmkdrivers/src_92/vmklinux_92/vmware/linux_hashtab.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dma-mapping.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dma-mapping.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_vmk_if.o vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_vmk_if.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/semaphore-sleepers.o vmkdrivers/src_92/vmklinux_92/linux/lib/semaphore-sleepers.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/ff-core.o vmkdrivers/src_92/vmklinux_92/linux/drivers/input/ff-core.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-apple.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-apple.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-usb-ohci-CUR/release/vmkernel64/usb-ohci --whole-archive BLD/build/vmkdriver-usb-ohci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/ohci/ohci-hcd.o BLD/build/vmkdriver-usb-ohci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmkplexer\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/vmkplexer/src -Ivmkdrivers/vmkplexer/src/base -IBLD/build/HEADERS/CUR-0-vmkdrivers-namespace/vmkernel64/release/vmkplexer -c -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/scsi/vmkplexer_scsi.o vmkdrivers/vmkplexer/src/scsi/vmkplexer_scsi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/keyboard.o vmkdrivers/src_92/vmklinux_92/linux/drivers/char/keyboard.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/search.o vmkdrivers/src_92/vmklinux_92/linux/pci/search.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/usb --whole-archive BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hcd-pci.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/buffer.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/config.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/devices.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/devio.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/driver.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/generic.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hcd.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hub.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/message.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/notify.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/passthrough.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/pci-quirks.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/quirks.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/urb.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/usb.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dcb.o vmkdrivers/src_92/vmklinux_92/vmware/linux_dcb.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_input.o vmkdrivers/src_92/vmklinux_92/vmware/linux_input.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inftrees.o vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inftrees.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/scsi/scsi_proc.o vmkdrivers/src_92/vmklinux_92/linux/scsi/scsi_proc.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/scsi_error.o vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/scsi_error.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/vsprintf.o vmkdrivers/src_92/vmklinux_92/linux/lib/vsprintf.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_irq.o vmkdrivers/src_92/vmklinux_92/vmware/linux_irq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/consolemap.o vmkdrivers/src_92/vmklinux_92/linux/drivers/char/consolemap.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_proc.o vmkdrivers/src_92/vmklinux_92/vmware/linux_proc.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/e1000 --whole-archive BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82540.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82541.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82542.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82543.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_api.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_ethtool.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_mac.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_main.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_manage.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_nvm.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_param.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_phy.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/kcompat.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/kcompat_ethtool.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dd.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dd.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-core.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-core.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_heap.o vmkdrivers/src_92/vmklinux_92/vmware/linux_heap.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/proc.o vmkdrivers/src_92/vmklinux_92/linux/pci/proc.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/libfc_92 --whole-archive BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_disc.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_elsct.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_exch.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_fcp.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_frame.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_libfc.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_lport.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_npiv.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_rport.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/firmware/dmi_scan.o vmkdrivers/src_92/vmklinux_92/linux/drivers/firmware/dmi_scan.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_transport.o vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_transport.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/constants.o vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/constants.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/bus.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/bus.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/libata_92 --whole-archive BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-core.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-eh.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-pmp.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-scsi.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-sff.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-vmklnx.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cherry.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cherry.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_workqueue.o vmkdrivers/src_92/vmklinux_92/vmware/linux_workqueue.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-microsoft.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-microsoft.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/skbuff.o vmkdrivers/src_92/vmklinux_92/linux/net/skbuff.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/devres.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/devres.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_waitqueue.o vmkdrivers/src_92/vmklinux_92/vmware/linux_waitqueue.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi.o vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/kref.o vmkdrivers/src_92/vmklinux_92/linux/lib/kref.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/inet_lro.o vmkdrivers/src_92/vmklinux_92/linux/net/inet_lro.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/driver.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/driver.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/infutil.o vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/infutil.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_usb.o vmkdrivers/src_92/vmklinux_92/vmware/linux_usb.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.o vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/softirq.o vmkdrivers/src_92/vmklinux_92/linux/kernel/softirq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_iodm.o vmkdrivers/src_92/vmklinux_92/vmware/linux_iodm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/radix-tree.o vmkdrivers/src_92/vmklinux_92/linux/lib/radix-tree.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-ezkey.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-ezkey.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_lld_if.o vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_lld_if.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/vmklinux_9_2_0_0 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_pm.o vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_pm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/class.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/class.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_ctype.o vmkdrivers/src_92/vmklinux_92/vmware/linux_ctype.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/mousedev.o vmkdrivers/src_92/vmklinux_92/linux/drivers/input/mousedev.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_net.o vmkdrivers/src_92/vmklinux_92/vmware/linux_net.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/mm/mempool.o vmkdrivers/src_92/vmklinux_92/linux/mm/mempool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/fs/seq_file.o vmkdrivers/src_92/vmklinux_92/linux/fs/seq_file.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/idr.o vmkdrivers/src_92/vmklinux_92/linux/lib/idr.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/devres.o vmkdrivers/src_92/vmklinux_92/linux/kernel/irq/devres.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_stress.o vmkdrivers/src_92/vmklinux_92/vmware/linux_stress.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_rcu.o vmkdrivers/src_92/vmklinux_92/vmware/linux_rcu.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_block.o vmkdrivers/src_92/vmklinux_92/vmware/linux_block.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/string.o vmkdrivers/src_92/vmklinux_92/linux/lib/string.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/sort.o vmkdrivers/src_92/vmklinux_92/linux/lib/sort.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_char.o vmkdrivers/src_92/vmklinux_92/vmware/linux_char.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/msi.o vmkdrivers/src_92/vmklinux_92/linux/pci/msi.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/bnx2x --whole-archive BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_link.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_cmn.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_main.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_esx.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_dcb.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_ethtool.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_stats.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1h.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e2.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_sp.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_self_test.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/mptsas --whole-archive BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptsas/mptsas.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmkplexer\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/vmkplexer/src -Ivmkdrivers/vmkplexer/src/base -IBLD/build/HEADERS/CUR-0-vmkdrivers-namespace/vmkernel64/release/vmkplexer -c -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_chardevs.o vmkdrivers/vmkplexer/src/base/vmkplexer_chardevs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_notifier.o vmkdrivers/src_92/vmklinux_92/vmware/linux_notifier.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/devres.o vmkdrivers/src_92/vmklinux_92/linux/lib/devres.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cypress.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cypress.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-partial.o vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-partial.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/klist.o vmkdrivers/src_92/vmklinux_92/linux/lib/klist.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_time.o vmkdrivers/src_92/vmklinux_92/vmware/linux_time.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/wait.o vmkdrivers/src_92/vmklinux_92/linux/kernel/wait.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/vmklinux_9_2_0_0 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_scsi.o vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_scsi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-kye.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-kye.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate_syms.o vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate_syms.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inffast.o vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inffast.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/pci.o vmkdrivers/src_92/vmklinux_92/linux/pci/pci.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"tg3\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_tg3 -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_tg3 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.123c.v55.5\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DTG3_INBOX -DTG3_VMWARE_NETQ_DISABLE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/tg3 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/tg3 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-tg3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/tg3/tg3.o vmkdrivers/src_9/drivers/net/tg3/tg3.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_attrs.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_attrs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_fcs.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_fcs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_isr.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_isr.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_kcompat.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_kcompat.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_main.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_main.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_res.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_res.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_scsi.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_scsi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_tag_map.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_tag_map.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/vmklinux_9_2_0_0 --whole-archive BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_scsi.o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0.o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_pm.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/vmkplexer --whole-archive BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/vmkplexer.o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_chardevs.o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_procfs.o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_entropy.o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/scsi/vmkplexer_scsi.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"tg3\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_tg3 -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_tg3 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.123c.v55.5\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DTG3_INBOX -DTG3_VMWARE_NETQ_DISABLE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/tg3 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/tg3 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-tg3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_procfs.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_procfs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_cq.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_cq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_dev.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_dev.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_intr.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_intr.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_rq.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_rq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq_copy.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq_copy.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2i\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_VERSION=\"2.72.11.v55.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2i -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2i -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_init.o vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_init.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2i\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_VERSION=\"2.72.11.v55.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2i -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2i -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_iscsi.o vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_iscsi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2i\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_VERSION=\"2.72.11.v55.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2i -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2i -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_hwi.o vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_hwi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2i\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_VERSION=\"2.72.11.v55.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2i -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2i -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_sysfs.o vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_sysfs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_nv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_nv -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_nv -DLINUX_MODULE_VERSION=\"3.5\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_nv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_nv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_nv.o vmkdrivers/src_9/drivers/ata/sata_nv.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_atiixp\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_atiixp -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_atiixp -DLINUX_MODULE_VERSION=\"0.4.6\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_atiixp -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_atiixp-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_atiixp.o vmkdrivers/src_9/drivers/ata/pata_atiixp.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_via\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_via -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_via -DLINUX_MODULE_VERSION=\"0.3.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_via -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_via-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_via.o vmkdrivers/src_9/drivers/ata/pata_via.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_via\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_via -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_via -DLINUX_MODULE_VERSION=\"0.3.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_via -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_via-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_atiixp\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_atiixp -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_atiixp -DLINUX_MODULE_VERSION=\"0.4.6\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_atiixp -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_atiixp-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_nv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_nv -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_nv -DLINUX_MODULE_VERSION=\"3.5\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_nv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_nv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2i\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_VERSION=\"2.72.11.v55.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2i -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2i -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/vmklinux_9 --whole-archive BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/softirq.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/wait.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/devres.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/klist.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/kref.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/sort.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/vsprintf.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/string.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/idr.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/hweight.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/devres.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/semaphore-sleepers.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/radix-tree.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inftrees.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inffast.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate_syms.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/infutil.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/mm/mempool.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/ethtool.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/skbuff.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/inet_lro.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/pci.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/search.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/msi.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/proc.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/fs/seq_file.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/scsi/scsi_proc.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/core.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/bus.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dd.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/driver.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/class.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/devres.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/platform.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dma-mapping.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/runtime.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/keyboard.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/defkeymap.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/consolemap.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/input.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/ff-core.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/mousedev.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-apple.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-belkin.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cherry.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-core.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cypress.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-ezkey.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-input.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-kye.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-lg.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-microsoft.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/constants.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/scsi_error.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/firmware/dmi_scan.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-partial.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-wrappers.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/thunk.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_block.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_char.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_ctype.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dma.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_hashtab.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_heap.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_irq.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_net.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_proc.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_rcu.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_lld_if.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_transport.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_vmk_if.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_signal.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_stress.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_task.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_time.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_usb.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_waitqueue.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_workqueue.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_notifier.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_kthread.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_input.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_cna.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dcb.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_iodm.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dump.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_efi.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_amd\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_amd -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_amd -DLINUX_MODULE_VERSION=\"0.3.10\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_amd -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_amd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_amd.o vmkdrivers/src_9/drivers/ata/pata_amd.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_cmd64x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_cmd64x -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_cmd64x -DLINUX_MODULE_VERSION=\"0.2.5\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_cmd64x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_cmd64x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_cmd64x.o vmkdrivers/src_9/drivers/ata/pata_cmd64x.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_hpt3x2n\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_hpt3x2n -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_hpt3x2n -DLINUX_MODULE_VERSION=\"0.3.4\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_hpt3x2n -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_hpt3x2n-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_hpt3x2n.o vmkdrivers/src_9/drivers/ata/pata_hpt3x2n.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_pdc2027x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_pdc2027x -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_pdc2027x -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_pdc2027x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_pdc2027x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_pdc2027x.o vmkdrivers/src_9/drivers/ata/pata_pdc2027x.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_serverworks\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_serverworks -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_serverworks -DLINUX_MODULE_VERSION=\"0.4.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_serverworks -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_serverworks-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_serverworks.o vmkdrivers/src_9/drivers/ata/pata_serverworks.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_sil680\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_sil680 -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_sil680 -DLINUX_MODULE_VERSION=\"0.4.8\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_sil680 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_sil680-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_sil680.o vmkdrivers/src_9/drivers/ata/pata_sil680.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ahci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ahci -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ahci -DLINUX_MODULE_VERSION=\"3.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ahci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ahci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/ahci.o vmkdrivers/src_9/drivers/ata/ahci.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_promise\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_promise -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_promise -DLINUX_MODULE_VERSION=\"2.12\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_promise -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_promise-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_promise.o vmkdrivers/src_9/drivers/ata/sata_promise.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_os.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_os.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ips\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ips -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=10*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ips -DLINUX_MODULE_VERSION=\"7.12.05\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/ips -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ips-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/ips/ips.o vmkdrivers/src_9/drivers/scsi/ips/ips.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/commctrl.o vmkdrivers/src_9/drivers/scsi/aacraid2/commctrl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_x540.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_x540.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/eq.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib/eq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbaapi_ioctl.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbaapi_ioctl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/manage.o vmkdrivers/src_9/drivers/net/e1000e/manage.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_mbx.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_mbx.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debug_ioctl.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debug_ioctl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/kcompat_ethtool.o vmkdrivers/src_9/drivers/net/ixgbe/kcompat_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-sff.o vmkdrivers/src_92/drivers/ata/libata-sff.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dump.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dump.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cmd.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cmd.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_procfs.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_procfs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/rkt.o vmkdrivers/src_9/drivers/scsi/aacraid2/rkt.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_82598.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_82598.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netdev.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netdev.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBLOCK_DRIVER -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"cciss\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cciss -DLINUX_MODULE_HEAP_INITIAL=1024*256 -DLINUX_MODULE_HEAP_MAX=1024*1024*10 -DLINUX_MODULE_HEAP_NAME=vmklnx_cciss -DLINUX_MODULE_VERSION=\"3.6.14\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/block/cciss -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/block -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cciss-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/block/cciss/cciss.o vmkdrivers/src_9/drivers/block/cciss/cciss.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.o vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_82575.o vmkdrivers/src_9/drivers/net/igb/e1000_82575.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_dcb.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_dcb.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/sata_sil24 --whole-archive BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_sil24.o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mbox.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mbox.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_els.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_els.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth_access.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth_access.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_ethtool.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq_copy.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq_copy.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_proc.o vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_proc.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_tgt.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_tgt.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cq.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_cna.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_cna.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wno-sign-compare -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"random\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_random -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_random -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/random -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/random -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/random.o vmkdrivers/src_9/drivers/char/random/random.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82540.o vmkdrivers/src_9/drivers/net/e1000/e1000_82540.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_seq.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_seq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sli.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sli.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/fw.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/fw.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptsas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/srq.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/srq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_main.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_main.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_gs.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_gs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_si_drv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/char/openipmi/includes -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_si_drv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_smic_sm.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_smic_sm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_vmdq.o vmkdrivers/src_9/drivers/net/igb/igb_vmdq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_phy.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_phy.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_cq.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_cq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2500_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2500_fw.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_cmn.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_cmn.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/kcompat.o vmkdrivers/src_9/drivers/net/e1000e/kcompat.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_manage.o vmkdrivers/src_9/drivers/net/e1000/e1000_manage.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_attr.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_attr.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_link.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_link.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBLOCK_DRIVER -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"cciss\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cciss -DLINUX_MODULE_HEAP_INITIAL=1024*256 -DLINUX_MODULE_HEAP_MAX=1024*1024*10 -DLINUX_MODULE_HEAP_NAME=vmklnx_cciss -DLINUX_MODULE_VERSION=\"3.6.14\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/block/cciss -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/block -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cciss-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_nx.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_nx.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/sa.o vmkdrivers/src_9/drivers/scsi/aacraid2/sa.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-pmp.o vmkdrivers/src_92/drivers/ata/libata-pmp.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_mac.o vmkdrivers/src_9/drivers/net/e1000/e1000_mac.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptsas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=1 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptsas/mptsas.o vmkdrivers/src_9/drivers/scsi/mpt/mptsas/mptsas.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_ioctl.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_ioctl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_kcompat.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_kcompat.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_iocb.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_iocb.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_api.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_api.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_self_test.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_self_test.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_res.o vmkdrivers/src_9/drivers/net/enic/enic_res.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_i210.o vmkdrivers/src_9/drivers/net/igb/e1000_i210.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_wq.o vmkdrivers/src_9/drivers/net/enic/vnic_wq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=40*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_VERSION=\"5.34\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMKLNX_VMKSGARRAY_SUPPORTED -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid_sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas.o vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_nl.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_nl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/profile.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/profile.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_ethtool.o vmkdrivers/src_9/drivers/net/igb/igb_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/resource_tracker.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/resource_tracker.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_transport.o vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_transport.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_param.o vmkdrivers/src_9/drivers/net/e1000/e1000_param.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_config.o vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_config.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/linit.o vmkdrivers/src_9/drivers/scsi/aacraid2/linit.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_os.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_os.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_tx.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_tx.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_sata.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_sata.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm.o vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-cciss-CUR/release/vmkernel64/cciss --whole-archive BLD/build/vmkdriver-cciss-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/block/cciss/cciss.o BLD/build/vmkdriver-cciss-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_discover.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_discover.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_base.o vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_base.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_init.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_init.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_via\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_via -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_via -DLINUX_MODULE_VERSION=\"0.3.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_via -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_via-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_via.o vmkdrivers/src_9/drivers/ata/pata_via.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e2.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e2.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FCOE_MQ -DCONFIG_FCOE_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"libfcoe_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfcoe_92 -DLINUX_MODULE_HEAP_INITIAL=4*1024*100 -DLINUX_MODULE_HEAP_MAX=10*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfcoe_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.24.9.3\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfcoe_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfcoe_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe.o vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/alloc.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/alloc.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/kcompat_ethtool.o vmkdrivers/src_9/drivers/net/igb/kcompat_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-scsi.o vmkdrivers/src_92/drivers/ata/libata-scsi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wno-sign-compare -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"random\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_random -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_random -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/random -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/random -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/halfmd4.o vmkdrivers/src_9/drivers/char/random/halfmd4.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2322_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2322_fw.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_stats.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_stats.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/intf.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/intf.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.o vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_cq.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_cq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2200_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2200_fw.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_lport.o vmkdrivers/src_92/drivers/scsi/libfc/fc_lport.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mgmt.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mgmt.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/netdev.o vmkdrivers/src_9/drivers/net/e1000e/netdev.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_mbox\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_VERSION=\"2.20.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/megaraid_mbox -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mbox.o vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mbox.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_osm.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_osm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/sense.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/sense.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/mac.o vmkdrivers/src_9/drivers/net/e1000e/mac.c $LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_via-CUR/release/vmkernel64/pata_via --whole-archive BLD/build/vmkdriver-pata_via-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_via.o BLD/build/vmkdriver-pata_via-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/fnic --whole-archive BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_attrs.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_fcs.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_isr.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_kcompat.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_main.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_res.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_scsi.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_tag_map.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_procfs.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_cq.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_dev.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_intr.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_rq.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq_copy.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ahci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ahci -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ahci -DLINUX_MODULE_VERSION=\"3.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ahci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ahci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_atiixp-CUR/release/vmkernel64/pata_atiixp --whole-archive BLD/build/vmkdriver-pata_atiixp-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_atiixp.o BLD/build/vmkdriver-pata_atiixp-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-sata_nv-CUR/release/vmkernel64/sata_nv --whole-archive BLD/build/vmkdriver-sata_nv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_nv.o BLD/build/vmkdriver-sata_nv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_sil680\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_sil680 -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_sil680 -DLINUX_MODULE_VERSION=\"0.4.8\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_sil680 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_sil680-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_serverworks\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_serverworks -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_serverworks -DLINUX_MODULE_VERSION=\"0.4.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_serverworks -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_serverworks-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_pdc2027x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_pdc2027x -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_pdc2027x -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_pdc2027x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_pdc2027x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_hpt3x2n\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_hpt3x2n -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_hpt3x2n -DLINUX_MODULE_VERSION=\"0.3.4\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_hpt3x2n -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_hpt3x2n-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_cmd64x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_cmd64x -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_cmd64x -DLINUX_MODULE_VERSION=\"0.2.5\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_cmd64x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_cmd64x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_amd\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_amd -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_amd -DLINUX_MODULE_VERSION=\"0.3.10\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_amd -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_amd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_sil\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_sil -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_sil -DLINUX_MODULE_VERSION=\"2.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_sil -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_sil-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_sil.o vmkdrivers/src_9/drivers/ata/sata_sil.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_sil24\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_VERSION=\"1.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_sil24 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_sil24.o vmkdrivers/src_9/drivers/ata/sata_sil24.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_svw\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_svw -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_svw -DLINUX_MODULE_VERSION=\"2.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_svw -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_svw-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_svw.o vmkdrivers/src_9/drivers/ata/sata_svw.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBLOCK_DRIVER -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"cciss\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cciss -DLINUX_MODULE_HEAP_INITIAL=1024*256 -DLINUX_MODULE_HEAP_MAX=1024*1024*10 -DLINUX_MODULE_HEAP_NAME=vmklnx_cciss -DLINUX_MODULE_VERSION=\"3.6.14\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/block/cciss -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/block -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cciss-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/block/cciss/cciss.o vmkdrivers/src_9/drivers/block/cciss/cciss.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBLOCK_DRIVER -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"cciss\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cciss -DLINUX_MODULE_HEAP_INITIAL=1024*256 -DLINUX_MODULE_HEAP_MAX=1024*1024*10 -DLINUX_MODULE_HEAP_NAME=vmklnx_cciss -DLINUX_MODULE_VERSION=\"3.6.14\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/block/cciss -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/block -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cciss-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_82598.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_82598.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-tg3-CUR/release/vmkernel64/tg3 --whole-archive BLD/build/vmkdriver-tg3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/tg3/tg3.o BLD/build/vmkdriver-tg3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_cmd64x-CUR/release/vmkernel64/pata_cmd64x --whole-archive BLD/build/vmkdriver-pata_cmd64x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_cmd64x.o BLD/build/vmkdriver-pata_cmd64x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_hpt3x2n-CUR/release/vmkernel64/pata_hpt3x2n --whole-archive BLD/build/vmkdriver-pata_hpt3x2n-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_hpt3x2n.o BLD/build/vmkdriver-pata_hpt3x2n-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_sil680\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_sil680 -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_sil680 -DLINUX_MODULE_VERSION=\"0.4.8\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_sil680 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_sil680-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_sil680.o vmkdrivers/src_9/drivers/ata/pata_sil680.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/xge_mdio.o vmkdrivers/src_9/drivers/net/nx_nic/xge_mdio.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-vmklnx.o vmkdrivers/src_92/drivers/ata/libata-vmklnx.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_upt.o vmkdrivers/src_9/drivers/net/enic/enic_upt.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2100_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2100_fw.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_manage.o vmkdrivers/src_9/drivers/net/igb/e1000_manage.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_hw.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_hw.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_security.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_security.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -w -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_SMP -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"vmxnet3\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.3.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/vmxnet3 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_drv.o vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_drv.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_attrs.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_attrs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_svw\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_svw -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_svw -DLINUX_MODULE_VERSION=\"2.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_svw -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_svw-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_svw.o vmkdrivers/src_9/drivers/ata/sata_svw.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_rq.o vmkdrivers/src_9/drivers/net/enic/vnic_rq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_mbx.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_mbx.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_nic_minidump.o vmkdrivers/src_9/drivers/net/nx_nic/nx_nic_minidump.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_fcoe.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_fcoe.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_els.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_els.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_phy.o vmkdrivers/src_9/drivers/net/igb/e1000_phy.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/port.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/port.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/cq.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib/cq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_hpt3x2n\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_hpt3x2n -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_hpt3x2n -DLINUX_MODULE_VERSION=\"0.3.4\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_hpt3x2n -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_hpt3x2n-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_hpt3x2n.o vmkdrivers/src_9/drivers/ata/pata_hpt3x2n.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfcoe_92-CUR/release/vmkernel64/libfcoe_92 --whole-archive BLD/build/vmkdriver-libfcoe_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe.o BLD/build/vmkdriver-libfcoe_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_iocb.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_iocb.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_init.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_init.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_mbx.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_mbx.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_char.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_char.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_sp.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_sp.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82541.o vmkdrivers/src_9/drivers/net/e1000/e1000_82541.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_procfs.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_procfs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_res.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_res.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_procfs.o vmkdrivers/src_9/drivers/net/igb/igb_procfs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptspi\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=1 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptspi/mptspi.o vmkdrivers/src_9/drivers/scsi/mpt/mptspi/mptspi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_ctl.o vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_ctl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_sup.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_sup.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_selftest.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_selftest.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_nportdisc.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_nportdisc.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-sata_svw-CUR/release/vmkernel64/sata_svw --whole-archive BLD/build/vmkdriver-sata_svw-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_svw.o BLD/build/vmkdriver-sata_svw-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o $LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_sil680-CUR/release/vmkernel64/pata_sil680 --whole-archive BLD/build/vmkdriver-pata_sil680-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_sil680.o BLD/build/vmkdriver-pata_sil680-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_dev.o vmkdrivers/src_9/drivers/net/enic/vnic_dev.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_menlo.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_menlo.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/comminit.o vmkdrivers/src_9/drivers/scsi/aacraid2/comminit.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FORCEDETH_NAPI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"forcedeth\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_forcedeth -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_forcedeth -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"0.61\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/forcedeth -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-forcedeth-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_mid.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_mid.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_disc.o vmkdrivers/src_92/drivers/scsi/libfc/fc_disc.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=40*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_VERSION=\"5.34\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMKLNX_VMKSGARRAY_SUPPORTED -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid_sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas_fp.o vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas_fp.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/dpcsup.o vmkdrivers/src_9/drivers/scsi/aacraid2/dpcsup.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_attr.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_attr.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptspi\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_ethtool.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_nic_vmk.o vmkdrivers/src_9/drivers/net/nx_nic/nx_nic_vmk.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_82599.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_82599.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_npiv.o vmkdrivers/src_92/drivers/scsi/libfc/fc_npiv.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_pci.o vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_pci.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2i\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_VERSION=\"2.72.11.v55.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2i -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2i -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_hwi.o vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_hwi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/kcompat.o vmkdrivers/src_9/drivers/net/e1000/kcompat.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_api.o vmkdrivers/src_9/drivers/net/igb/e1000_api.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_resources.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_resources.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_hpt3x2n-CUR/release/vmkernel64/pata_hpt3x2n --whole-archive BLD/build/vmkdriver-pata_hpt3x2n-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_hpt3x2n.o BLD/build/vmkdriver-pata_hpt3x2n-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_dbg.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_dbg.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx_linear.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx_linear.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCNIC_INBOX -DCNIC_ISCSI_OOO_SUPPORT=1 -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_BOOL=1 -DHAVE_DEV_PRINTK=1 -DKBUILD_MODNAME=\"cnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cnic -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_cnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.52.v55.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/cnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/cnic.o vmkdrivers/src_9/drivers/net/bnx2/cnic.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-core.o vmkdrivers/src_92/drivers/ata/libata-core.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_si_drv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/char/openipmi/includes -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_si_drv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_bt_sm.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_bt_sm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_ethtool.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_pdc2027x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_pdc2027x -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_pdc2027x -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_pdc2027x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_pdc2027x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_pdc2027x.o vmkdrivers/src_9/drivers/ata/pata_pdc2027x.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_sil\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_sil -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_sil -DLINUX_MODULE_VERSION=\"2.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_sil -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_sil-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_sil.o vmkdrivers/src_9/drivers/ata/sata_sil.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_ethtool.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/csmi.o vmkdrivers/src_9/drivers/scsi/aacraid2/csmi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/82571.o vmkdrivers/src_9/drivers/net/e1000e/82571.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_serverworks\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_serverworks -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_serverworks -DLINUX_MODULE_VERSION=\"0.4.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_serverworks -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_serverworks-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_serverworks.o vmkdrivers/src_9/drivers/ata/pata_serverworks.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_nvm.o vmkdrivers/src_9/drivers/net/e1000/e1000_nvm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_rport.o vmkdrivers/src_92/drivers/scsi/libfc/fc_rport.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_scsi.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_scsi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_ioctl.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_ioctl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_main.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_main.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/eq.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/eq.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-forcedeth-CUR/release/vmkernel64/forcedeth --whole-archive BLD/build/vmkdriver-forcedeth-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/forcedeth/forcedeth.o BLD/build/vmkdriver-forcedeth-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid2\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid2 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid2 -DLINUX_MODULE_VERSION=\"2.00.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_si_drv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/char/openipmi/includes -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_si_drv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_kcs_sm.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_kcs_sm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_param.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_param.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"cnic_register\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cnic_register -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=16*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_cnic_register -DLINUX_MODULE_VERSION=\"1.72.1.v50.1i\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/cnic_register -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cnic_register-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/cnic_register.o vmkdrivers/src_9/drivers/net/bnx2/cnic_register.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/niu.o vmkdrivers/src_9/drivers/net/nx_nic/niu.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pd.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pd.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_isr.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_isr.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptsas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ips\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ips -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=10*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ips -DLINUX_MODULE_VERSION=\"7.12.05\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/ips -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ips-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pkey.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pkey.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_main.o vmkdrivers/src_9/drivers/net/e1000/e1000_main.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_api.o vmkdrivers/src_9/drivers/net/e1000/e1000_api.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_hwi.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_hwi.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_serverworks-CUR/release/vmkernel64/pata_serverworks --whole-archive BLD/build/vmkdriver-pata_serverworks-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_serverworks.o BLD/build/vmkdriver-pata_serverworks-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o $LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_pdc2027x-CUR/release/vmkernel64/pata_pdc2027x --whole-archive BLD/build/vmkdriver-pata_pdc2027x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_pdc2027x.o BLD/build/vmkdriver-pata_pdc2027x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-sata_sil-CUR/release/vmkernel64/sata_sil --whole-archive BLD/build/vmkdriver-sata_sil-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_sil.o BLD/build/vmkdriver-sata_sil-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptspi\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/mpu.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib/mpu.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -w -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_SMP -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"vmxnet3\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.3.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/vmxnet3 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_netif.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_netif.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dbg.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dbg.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_init.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_init.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_fcoe.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_fcoe.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/commsup.o vmkdrivers/src_9/drivers/scsi/aacraid2/commsup.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_nv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_nv -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_nv -DLINUX_MODULE_VERSION=\"3.5\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_nv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_nv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_nv.o vmkdrivers/src_9/drivers/ata/sata_nv.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_tool.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_tool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/rx.o vmkdrivers/src_9/drivers/scsi/aacraid2/rx.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_hash_table.o vmkdrivers/src_9/drivers/net/nx_nic/nx_hash_table.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_mbox\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_VERSION=\"2.20.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/megaraid_mbox -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mm.o vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=40*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_VERSION=\"5.34\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMKLNX_VMKSGARRAY_SUPPORTED -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid_sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_intr.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_intr.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_cmd64x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_cmd64x -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_cmd64x -DLINUX_MODULE_VERSION=\"0.2.5\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_cmd64x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_cmd64x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_cmd64x.o vmkdrivers/src_9/drivers/ata/pata_cmd64x.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_82599.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_82599.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_ethtool.o vmkdrivers/src_9/drivers/net/e1000/e1000_ethtool.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-ips-CUR/release/vmkernel64/ips --whole-archive BLD/build/vmkdriver-ips-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/ips/ips.o BLD/build/vmkdriver-ips-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-cnic_register-CUR/release/vmkernel64/cnic_register --whole-archive BLD/build/vmkdriver-cnic_register-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/cnic_register.o BLD/build/vmkdriver-cnic_register-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/adp94xx --whole-archive BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_discover.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_osm.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_hwi.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_seq.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_ioctl.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_sata.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_vic.o vmkdrivers/src_9/drivers/net/enic/vnic_vic.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid2\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid2 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid2 -DLINUX_MODULE_VERSION=\"2.00.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid2/megaraid.o vmkdrivers/src_9/drivers/scsi/megaraid2/megaraid.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptsas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_init.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_init.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_core.o vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_core.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_main.o vmkdrivers/src_9/drivers/net/igb/igb_main.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_isr.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_isr.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_esx.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_esx.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/eth.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib/eth.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_port.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_port.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_rq.o vmkdrivers/src_9/drivers/scsi/fnic/vnic_rq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"hpsa\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_hpsa -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_hpsa -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/hpsa -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-hpsa-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wno-sign-compare -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"random\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_random -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_random -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/random -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/random -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/sha1.o vmkdrivers/src_9/drivers/char/random/sha1.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2_INBOX=1 -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_BOOL=1 -DHAVE_DEV_ERR=1 -DKBUILD_MODNAME=\"bnx2\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2 -DLINUX_MODULE_HEAP_DMA_WIDTH=40 -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"2.2.3d.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/bnx2.o vmkdrivers/src_9/drivers/net/bnx2/bnx2.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_procfs.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_procfs.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/megaraid_mbox --whole-archive BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mm.o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mbox.o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_cmd64x-CUR/release/vmkernel64/pata_cmd64x --whole-archive BLD/build/vmkdriver-pata_cmd64x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_cmd64x.o BLD/build/vmkdriver-pata_cmd64x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-sata_nv-CUR/release/vmkernel64/sata_nv --whole-archive BLD/build/vmkdriver-sata_nv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_nv.o BLD/build/vmkdriver-sata_nv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/mptspi --whole-archive BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptspi/mptspi.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-cnic-CUR/release/vmkernel64/cnic --whole-archive BLD/build/vmkdriver-cnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/cnic.o BLD/build/vmkdriver-cnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/vmxnet3 --whole-archive BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_drv.o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_ethtool.o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_common.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_common.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ioctl.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ioctl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_dbg.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_dbg.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2i\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_VERSION=\"2.72.11.v55.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2i -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2i -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_init.o vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_init.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_scsih.o vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_scsih.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/icm.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/icm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"tg3\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_tg3 -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_tg3 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.123c.v55.5\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DTG3_INBOX -DTG3_VMWARE_NETQ_DISABLE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/tg3 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/tg3 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-tg3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/tg3/tg3.o vmkdrivers/src_9/drivers/net/tg3/tg3.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_xioct.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_xioct.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_intr.o vmkdrivers/src_9/drivers/net/enic/vnic_intr.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/ethtool.o vmkdrivers/src_9/drivers/net/e1000e/ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2300_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2300_fw.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mr.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mr.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_devintf\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_devintf -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_devintf -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_devintf -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_devintf -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_devintf-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_devintf/ipmi_devintf.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_devintf/ipmi_devintf.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mcg.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mcg.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FNIC_MQ -DCONFIG_FNIC_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"fnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_fnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.5.0.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/fnic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/fnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_fcs.o vmkdrivers/src_9/drivers/scsi/fnic/fnic_fcs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_mac.o vmkdrivers/src_9/drivers/net/igb/e1000_mac.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_param.o vmkdrivers/src_9/drivers/net/igb/igb_param.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_sriov.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_sriov.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_cq.o vmkdrivers/src_9/drivers/net/enic/vnic_cq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/kcompat_ethtool.o vmkdrivers/src_9/drivers/net/e1000e/kcompat_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_nvram.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_nvram.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_msghandler\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_msghandler -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_msghandler -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_msghandler -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_msghandler -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_msghandler-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_msghandler/ipmi_msghandler.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_msghandler/ipmi_msghandler.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-hpsa-CUR/release/vmkernel64/hpsa --whole-archive BLD/build/vmkdriver-hpsa-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/hpsa/hpsa.o BLD/build/vmkdriver-hpsa-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-random-CUR/release/vmkernel64/random --whole-archive BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/random.o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/halfmd4.o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/sha1.o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82542.o vmkdrivers/src_9/drivers/net/e1000/e1000_82542.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_init.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_init.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_scsi.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_scsi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sdtest_ioctl.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sdtest_ioctl.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/ich8lan.o vmkdrivers/src_9/drivers/net/e1000e/ich8lan.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/80003es2lan.o vmkdrivers/src_9/drivers/net/e1000e/80003es2lan.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/cdbc.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/cdbc.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ahci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ahci -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ahci -DLINUX_MODULE_VERSION=\"3.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ahci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ahci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/ahci.o vmkdrivers/src_9/drivers/ata/ahci.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_vport.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_vport.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm_pci.o vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm_pci.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_main.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_main.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptsas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptsas -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=128*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_ethtool.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ct.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ct.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-ipmi_devintf-CUR/release/vmkernel64/ipmi_devintf --whole-archive BLD/build/vmkdriver-ipmi_devintf-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_devintf/ipmi_devintf.o BLD/build/vmkdriver-ipmi_devintf-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/bnx2fc --whole-archive BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_els.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_fcoe.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_hwi.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_io.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_tgt.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_procfs.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-megaraid2-CUR/release/vmkernel64/megaraid2 --whole-archive BLD/build/vmkdriver-megaraid2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid2/megaraid.o BLD/build/vmkdriver-megaraid2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netq.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/kcompat_ethtool.o vmkdrivers/src_9/drivers/net/e1000/kcompat_ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ata_piix\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ata_piix -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ata_piix -DLINUX_MODULE_VERSION=\"2.12\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ata_piix -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ata_piix-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/ata_piix.o vmkdrivers/src_9/drivers/ata/ata_piix.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_os.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_os.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mem.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mem.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_int.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_int.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_exch.o vmkdrivers/src_92/drivers/scsi/libfc/fc_exch.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_mem_pool.o vmkdrivers/src_9/drivers/net/nx_nic/nx_mem_pool.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/fnic --whole-archive BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_attrs.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_fcs.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_isr.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_kcompat.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_main.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_res.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_scsi.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_tag_map.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/fnic_procfs.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_cq.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_dev.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_intr.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_rq.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/fnic/vnic_wq_copy.o BLD/build/vmkdriver-fnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbadisc.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbadisc.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2400_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2400_fw.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2X_INBOX -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2x\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096*2 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2x -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=256*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.56.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2x -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2x -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1h.o vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1h.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_amd\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_amd -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_amd -DLINUX_MODULE_VERSION=\"0.3.10\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_amd -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_amd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_amd.o vmkdrivers/src_9/drivers/ata/pata_amd.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_mbx.o vmkdrivers/src_9/drivers/net/igb/e1000_mbx.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FCOE_MQ -DCONFIG_FCOE_VMDQ -DCONFIG_INET_LRO -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"fcoe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_fcoe -DLINUX_MODULE_HEAP_INITIAL=4*1024*100 -DLINUX_MODULE_HEAP_MAX=10*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_fcoe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.29.9.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/fcoe -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-fcoe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/fcoe.o vmkdrivers/src_92/drivers/scsi/fcoe/fcoe.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/main.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/main.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/kcompat.o vmkdrivers/src_9/drivers/net/igb/kcompat.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=40*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_VERSION=\"5.34\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMKLNX_VMKSGARRAY_SUPPORTED -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid_sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas_fusion.o vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas_fusion.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_E1000_DISABLE_PACKET_SPLIT -DCONFIG_E1000_NAPI -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000 -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"8.0.3.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_phy.o vmkdrivers/src_9/drivers/net/e1000/e1000_phy.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/mptsas --whole-archive BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o BLD/build/vmkdriver-mptsas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptsas/mptsas.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/qla4xxx --whole-archive BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_dbg.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_init.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_iocb.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_isr.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_mbx.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_nvram.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_os.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dbg.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dump.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_ioctl.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_os.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/enic --whole-archive BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_main.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_upt.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_res.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_dev.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_wq.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_rq.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_cq.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_intr.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_vic.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/catas.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/catas.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"pata_atiixp\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_pata_atiixp -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_pata_atiixp -DLINUX_MODULE_VERSION=\"0.4.6\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/pata_atiixp -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-pata_atiixp-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_atiixp.o vmkdrivers/src_9/drivers/ata/pata_atiixp.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_inioct.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_inioct.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/aachba.o vmkdrivers/src_9/drivers/scsi/aacraid2/aachba.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_fcp.o vmkdrivers/src_92/drivers/scsi/libfc/fc_fcp.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/nvm.o vmkdrivers/src_9/drivers/net/e1000e/nvm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"3.2.2.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/param.o vmkdrivers/src_9/drivers/net/e1000e/param.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2i\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2i -DLINUX_MODULE_VERSION=\"2.72.11.v55.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2i -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2i -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_sysfs.o vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_sysfs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_main.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_main.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nxhal.o vmkdrivers/src_9/drivers/net/nx_nic/nxhal.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"libata_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_libata_92 -DLINUX_MODULE_VERSION=\"3.00.9.2\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libata_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-eh.o vmkdrivers/src_92/drivers/ata/libata-eh.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_LIBFC_MQ -DCONFIG_LIBFC_VMDQ -DCONFIG_PCI_MSI -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_92\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_HEAP_INITIAL=1*1024*4096 -DLINUX_MODULE_HEAP_MAX=20*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_libfc_92 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0.40.9.3\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_92 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_libfc.o vmkdrivers/src_92/drivers/scsi/libfc/fc_libfc.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/qp.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/qp.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_si_drv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/char/openipmi/includes -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_si_drv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_si_intf.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_si_intf.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_promise\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_promise -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_promise -DLINUX_MODULE_VERSION=\"2.12\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_promise -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_promise-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_promise.o vmkdrivers/src_9/drivers/ata/sata_promise.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/ff-core.o vmkdrivers/src_92/vmklinux_92/linux/drivers/input/ff-core.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/mm/mempool.o vmkdrivers/src_92/vmklinux_92/linux/mm/mempool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_efi.o vmkdrivers/src_92/vmklinux_92/vmware/linux_efi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/wait.o vmkdrivers/src_92/vmklinux_92/linux/kernel/wait.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-bnx2-CUR/release/vmkernel64/bnx2 --whole-archive BLD/build/vmkdriver-bnx2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/bnx2.o BLD/build/vmkdriver-bnx2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o $LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_amd-CUR/release/vmkernel64/pata_amd --whole-archive BLD/build/vmkdriver-pata_amd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_amd.o BLD/build/vmkdriver-pata_amd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/igb --whole-archive BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_82575.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_api.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_mac.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_manage.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_nvm.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_phy.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_i210.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_ethtool.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_main.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_vmdq.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_param.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_procfs.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/kcompat.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/kcompat_ethtool.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_mbx.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/mpt2sas --whole-archive BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_base.o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_config.o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_ctl.o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_scsih.o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_transport.o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-ata_piix-CUR/release/vmkernel64/ata_piix --whole-archive BLD/build/vmkdriver-ata_piix-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/ata_piix.o BLD/build/vmkdriver-ata_piix-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o $LD $LD_OPTS -r -o BLD/build/vmkdriver-ahci-CUR/release/vmkernel64/ahci --whole-archive BLD/build/vmkdriver-ahci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/ahci.o BLD/build/vmkdriver-ahci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_serverworks-CUR/release/vmkernel64/pata_serverworks --whole-archive BLD/build/vmkdriver-pata_serverworks-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_serverworks.o BLD/build/vmkdriver-pata_serverworks-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_svw\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_svw -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_svw -DLINUX_MODULE_VERSION=\"2.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_svw -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_svw-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_sil24\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_VERSION=\"1.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_sil24 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_sil\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_sil -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_sil -DLINUX_MODULE_VERSION=\"2.3\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_sil -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_sil-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_promise\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_promise -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_promise -DLINUX_MODULE_VERSION=\"2.12\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_promise -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_promise-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/bnx2i --whole-archive BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_init.o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_iscsi.o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_hwi.o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_sysfs.o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_82599.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_82599.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_x540.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_x540.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_mbx.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_mbx.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_api.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_api.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_cna.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_cna.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_common.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_common.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_82598.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_82598.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_82599.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_82599.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_nl.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_nl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_ethtool.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_fcoe.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_fcoe.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_main.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_main.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-cciss-CUR/release/vmkernel64/cciss --whole-archive BLD/build/vmkdriver-cciss-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/block/cciss/cciss.o BLD/build/vmkdriver-cciss-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_param.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_param.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_phy.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_phy.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_sriov.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_sriov.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_vmdq.o vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_vmdq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/kcompat.o vmkdrivers/src_9/drivers/net/ixgbe/kcompat.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/kcompat_ethtool.o vmkdrivers/src_9/drivers/net/ixgbe/kcompat_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_DCB -DCONFIG_FCOE -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_IOV -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IXGBE -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_DCBNL_OPS_GETAPP -DHAVE_IPLINK_VF_CONFIG -DIXGBE_ESX_CNA -DIXGBE_MQ -DIXGBE_NO_LRO -DIXGBE_VMDQ -DKBUILD_MODNAME=\"ixgbe\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_ixgbe -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"3.7.13.7.14iov\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMKNETDDI_QUEUEOPS__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/ixgbe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_attr.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_attr.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth_access.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth_access.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ct.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ct.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debugfs.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debugfs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_els.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_els.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbadisc.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbadisc.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-sata_promise-CUR/release/vmkernel64/sata_promise --whole-archive BLD/build/vmkdriver-sata_promise-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_promise.o BLD/build/vmkdriver-sata_promise-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-sata_sil-CUR/release/vmkernel64/sata_sil --whole-archive BLD/build/vmkdriver-sata_sil-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_sil.o BLD/build/vmkdriver-sata_sil-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/sata_sil24 --whole-archive BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_sil24.o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-sata_svw-CUR/release/vmkernel64/sata_svw --whole-archive BLD/build/vmkdriver-sata_svw-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_svw.o BLD/build/vmkdriver-sata_svw-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_init.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_init.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ioctl.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ioctl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mbox.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mbox.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mem.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mem.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_nportdisc.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_nportdisc.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_scsi.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_scsi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_security.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_security.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sli.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sli.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_vport.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_vport.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_menlo.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_menlo.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debug_ioctl.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debug_ioctl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbaapi_ioctl.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbaapi_ioctl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sdtest_ioctl.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sdtest_ioctl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mgmt.o vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mgmt.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"lpfc820\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_lpfc820 -DLINUX_MODULE_VERSION=\"8.2.3.1\" -DMODULE -DNETLINK_FCTRANSPORT=19 -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/lpfc820 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_base.o vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_base.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_config.o vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_config.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_ctl.o vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_ctl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_scsih.o vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_scsih.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_transport.o vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_transport.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_SCSI_MPT2SAS_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mpt2sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=120*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mpt2sas -DLINUX_MODULE_VERSION=\"14.00.00.00\" -DMODULE -DNO_FLOATING_POINT -DSAS_TRANSPORT_SUPPORT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt2sas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_main.o vmkdrivers/src_9/drivers/net/enic/enic_main.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_upt.o vmkdrivers/src_9/drivers/net/enic/enic_upt.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_res.o vmkdrivers/src_9/drivers/net/enic/enic_res.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_dev.o vmkdrivers/src_9/drivers/net/enic/vnic_dev.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_wq.o vmkdrivers/src_9/drivers/net/enic/vnic_wq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_rq.o vmkdrivers/src_9/drivers/net/enic/vnic_rq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_cq.o vmkdrivers/src_9/drivers/net/enic/vnic_cq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_intr.o vmkdrivers/src_9/drivers/net/enic/vnic_intr.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-ipmi_msghandler-CUR/release/vmkernel64/ipmi_msghandler --whole-archive BLD/build/vmkdriver-ipmi_msghandler-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_msghandler/ipmi_msghandler.o BLD/build/vmkdriver-ipmi_msghandler-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_block.o vmkdrivers/src_92/vmklinux_92/vmware/linux_block.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dma.o vmkdrivers/src_92/vmklinux_92/vmware/linux_dma.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/mousedev.o vmkdrivers/src_92/vmklinux_92/linux/drivers/input/mousedev.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate.o vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-pata_atiixp-CUR/release/vmkernel64/pata_atiixp --whole-archive BLD/build/vmkdriver-pata_atiixp-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/pata_atiixp.o BLD/build/vmkdriver-pata_atiixp-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/e1000 --whole-archive BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82540.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82541.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82542.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_82543.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_api.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_ethtool.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_mac.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_main.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_manage.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_nvm.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_param.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/e1000_phy.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/kcompat.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000/kcompat_ethtool.o BLD/build/vmkdriver-e1000-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o $LD $LD_OPTS -r -o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/ixgbe --whole-archive BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_82598.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_82599.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_x540.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_mbx.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_api.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_cna.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_common.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_82598.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_82599.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb_nl.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_dcb.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_ethtool.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_fcoe.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_main.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_param.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_phy.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_sriov.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/ixgbe_vmdq.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/kcompat.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/ixgbe/kcompat_ethtool.o BLD/build/vmkdriver-ixgbe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_vic.o vmkdrivers/src_9/drivers/net/enic/vnic_vic.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"enic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_HEAP_DMA_WIDTH=48 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=4*1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_enic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=768*768*128*1.5 -DLINUX_MODULE_SKB_HEAP_MAX=768*1280*128*1.5 -DLINUX_MODULE_VERSION=\"1.4.2.15a\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/enic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FORCEDETH_NAPI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"forcedeth\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_forcedeth -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_forcedeth -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"0.61\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/forcedeth -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-forcedeth-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/forcedeth/forcedeth.o vmkdrivers/src_9/drivers/net/forcedeth/forcedeth.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FORCEDETH_NAPI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"forcedeth\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_forcedeth -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_forcedeth -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"0.61\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/forcedeth -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-forcedeth-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_82575.o vmkdrivers/src_9/drivers/net/igb/e1000_82575.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_api.o vmkdrivers/src_9/drivers/net/igb/e1000_api.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_mac.o vmkdrivers/src_9/drivers/net/igb/e1000_mac.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_manage.o vmkdrivers/src_9/drivers/net/igb/e1000_manage.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_nvm.o vmkdrivers/src_9/drivers/net/igb/e1000_nvm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_phy.o vmkdrivers/src_9/drivers/net/igb/e1000_phy.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_i210.o vmkdrivers/src_9/drivers/net/igb/e1000_i210.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_ethtool.o vmkdrivers/src_9/drivers/net/igb/igb_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_main.o vmkdrivers/src_9/drivers/net/igb/igb_main.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_vmdq.o vmkdrivers/src_9/drivers/net/igb/igb_vmdq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_param.o vmkdrivers/src_9/drivers/net/igb/igb_param.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_procfs.o vmkdrivers/src_9/drivers/net/igb/igb_procfs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/kcompat.o vmkdrivers/src_9/drivers/net/igb/kcompat.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/kcompat_ethtool.o vmkdrivers/src_9/drivers/net/igb/kcompat_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_mbx.o vmkdrivers/src_9/drivers/net/igb/e1000_mbx.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_IGB_DISABLE_PACKET_SPLIT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_IGB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"igb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_igb -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.5.1.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/igb -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_init.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_init.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_int.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_int.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_netif.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_netif.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_ethtool.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_proc.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_proc.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_char.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_char.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/mpt2sas --whole-archive BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_base.o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_config.o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_ctl.o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_scsih.o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt2sas/mpt2sas_transport.o BLD/build/vmkdriver-mpt2sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/lpfc820 --whole-archive BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_attr.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth_access.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ct.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debugfs.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_els.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbadisc.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_init.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ioctl.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mbox.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mem.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_nportdisc.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_scsi.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_security.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sli.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_vport.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_menlo.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debug_ioctl.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbaapi_ioctl.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sdtest_ioctl.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mgmt.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/enic --whole-archive BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_main.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_upt.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/enic_res.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_dev.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_wq.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_rq.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_cq.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_intr.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/enic/vnic_vic.o BLD/build/vmkdriver-enic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/cdbc.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/cdbc.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/funcobj.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib/funcobj.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/cq.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib/cq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/eq.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib/eq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/mpu.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib/mpu.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/eth.o vmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib/eth.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wno-unknown-pragmas -DLINUX_OS -DEXPORT_SYMTAB -DGPLED_CODE -DNET_DRIVER -DSG_BMAP_UNION -DBUILD_CHIPIF -D_CONSOLE -DHOST -DSG_ATTRIBUTE_PACK -DUSE_ISR -DKERNEL_DOT_ORG -DCONFIG_PROC_FS -DSMP_CAPABLE_VMK_DRIVER -DMEM_ALLOC_CHNG -DFUNCTION_NIC -DCONFIG_PCI_IOV -DHAVE_IPLINK_VF_CONFIG -DUSE_NAPI -DVXLAN_OFFLOAD -DSH_A0_OVLAN_FIX -O2 -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_INET_LRO -DCONFIG_NETDEVICES_MULTIQUEUE -DCONFIG_PCI_MSI -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DDISABLE_PACKET_SPLIT -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"be2net\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=1024*1024*20 -DLINUX_MODULE_HEAP_NAME=vmklnx_be2net -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"4.6.100.0v\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/hwlib -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/amap -Ivmkdrivers/src_9/private_drivers/ServerEngines/be2net/fw/bmap -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_els.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_els.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_fcoe.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_fcoe.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_hwi.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_hwi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_io.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_io.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_tgt.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_tgt.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_procfs.o vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_procfs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2FC_ESX -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRV_MODULE_NAME=\"bnx2fc\" -DGPLED_CODE -DKBUILD_MODNAME=\"bnx2fc\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2fc -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.53.v55.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__FCOE_CNA_QUEUE_CLEANUP__ -D__FCOE_IF_RESTART_WQ__ -D__FIP_VLAN_DISC_CMPL__ -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/bnx2fc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2fc -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-forcedeth-CUR/release/vmkernel64/forcedeth --whole-archive BLD/build/vmkdriver-forcedeth-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/forcedeth/forcedeth.o BLD/build/vmkdriver-forcedeth-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -w -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_SMP -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"vmxnet3\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.3.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/vmxnet3 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_drv.o vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_drv.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -w -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_SMP -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"vmxnet3\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.3.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/vmxnet3 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_ethtool.o vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -w -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_SMP -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"vmxnet3\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_vmxnet3 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.3.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/vmxnet3 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"hpsa\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_hpsa -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_hpsa -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/hpsa -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-hpsa-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/hpsa/hpsa.o vmkdrivers/src_9/drivers/scsi/hpsa/hpsa.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"hpsa\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_hpsa -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_hpsa -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/hpsa -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-hpsa-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_dbg.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_dbg.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_init.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_init.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_iocb.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_iocb.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_isr.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_isr.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_mbx.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_mbx.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_nvram.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_nvram.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_os.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_os.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dbg.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dbg.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dump.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dump.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_ioctl.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_ioctl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_os.o vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_os.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/aachba.o vmkdrivers/src_9/drivers/scsi/aacraid2/aachba.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/commctrl.o vmkdrivers/src_9/drivers/scsi/aacraid2/commctrl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla4xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla4xxx -DLINUX_MODULE_VERSION=\"5.01.03.2\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla4xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/qla4xxx -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/bnx2fc --whole-archive BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_els.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_fcoe.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_hwi.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_io.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_tgt.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2fc/bnx2fc_procfs.o BLD/build/vmkdriver-bnx2fc-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o $LD $LD_OPTS -r -o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/be2net --whole-archive BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_init.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_int.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_netif.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_ethtool.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_proc.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/be_char.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/cdbc.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/funcobj.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/cq.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/eq.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/mpu.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/private_drivers/ServerEngines/be2net/eth.o BLD/build/vmkdriver-be2net-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/igb --whole-archive BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_82575.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_api.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_mac.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_manage.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_nvm.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_phy.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_i210.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_ethtool.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_main.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_vmdq.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_param.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/igb_procfs.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/kcompat.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/kcompat_ethtool.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/igb/e1000_mbx.o BLD/build/vmkdriver-igb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/comminit.o vmkdrivers/src_9/drivers/scsi/aacraid2/comminit.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/commsup.o vmkdrivers/src_9/drivers/scsi/aacraid2/commsup.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/csmi.o vmkdrivers/src_9/drivers/scsi/aacraid2/csmi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/dpcsup.o vmkdrivers/src_9/drivers/scsi/aacraid2/dpcsup.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/rkt.o vmkdrivers/src_9/drivers/scsi/aacraid2/rkt.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/rx.o vmkdrivers/src_9/drivers/scsi/aacraid2/rx.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/linit.o vmkdrivers/src_9/drivers/scsi/aacraid2/linit.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/sa.o vmkdrivers/src_9/drivers/scsi/aacraid2/sa.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/nark.o vmkdrivers/src_9/drivers/scsi/aacraid2/nark.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"aacraid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_HEAP_INITIAL=1024*100 -DLINUX_MODULE_HEAP_MAX=1024*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_aacraid -DLINUX_MODULE_VERSION=\"1.1.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aacraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=40*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_VERSION=\"5.34\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMKLNX_VMKSGARRAY_SUPPORTED -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid_sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas_fusion.o vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas_fusion.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=40*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_VERSION=\"5.34\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMKLNX_VMKSGARRAY_SUPPORTED -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid_sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas.o vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-hpsa-CUR/release/vmkernel64/hpsa --whole-archive BLD/build/vmkdriver-hpsa-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/hpsa/hpsa.o BLD/build/vmkdriver-hpsa-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/vmxnet3 --whole-archive BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_drv.o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_ethtool.o BLD/build/vmkdriver-vmxnet3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=40*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_VERSION=\"5.34\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMKLNX_VMKSGARRAY_SUPPORTED -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid_sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas_fp.o vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas_fp.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_sas\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=40*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_sas -DLINUX_MODULE_VERSION=\"5.34\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMKLNX_VMKSGARRAY_SUPPORTED -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid_sas -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid2\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid2 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid2 -DLINUX_MODULE_VERSION=\"2.00.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid2/megaraid.o vmkdrivers/src_9/drivers/scsi/megaraid2/megaraid.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid2\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid2 -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid2 -DLINUX_MODULE_VERSION=\"2.00.4\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_mbox\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_VERSION=\"2.20.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/megaraid_mbox -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mm.o vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_mbox\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_VERSION=\"2.20.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/megaraid_mbox -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mbox.o vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mbox.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_core.o vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_core.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm.o vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm_pci.o vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm_pci.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_pci.o vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_pci.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_proc.o vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_proc.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"aic79xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=360*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_aic79xx -DLINUX_MODULE_VERSION=\"3.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/aic79xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_discover.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_discover.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_osm.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_osm.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/aacraid --whole-archive BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/aachba.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/commctrl.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/comminit.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/commsup.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/csmi.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/dpcsup.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/rkt.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/rx.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/linit.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/sa.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/nark.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/qla4xxx --whole-archive BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_dbg.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_init.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_iocb.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_isr.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_mbx.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_nvram.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4_os.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dbg.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_dump.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_ioctl.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla4xxx/ql4im_os.o BLD/build/vmkdriver-qla4xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"megaraid_mbox\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_HEAP_INITIAL=8*1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_megaraid_mbox -DLINUX_MODULE_VERSION=\"2.20.5.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/megaraid -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/megaraid_mbox -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_hwi.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_hwi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_seq.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_seq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_ioctl.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_ioctl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_sata.o vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_sata.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"adp94xx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_HEAP_INITIAL=128*1024 -DLINUX_MODULE_HEAP_MAX=3*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_adp94xx -DLINUX_MODULE_VERSION=\"1.0.8.12\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DSEQUENCER_UPDATE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/adp94xx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ips\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ips -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=10*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ips -DLINUX_MODULE_VERSION=\"7.12.05\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/ips -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ips-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/ips/ips.o vmkdrivers/src_9/drivers/scsi/ips/ips.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ips\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ips -DLINUX_MODULE_HEAP_INITIAL=2*1024*1024 -DLINUX_MODULE_HEAP_MAX=10*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ips -DLINUX_MODULE_VERSION=\"7.12.05\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/ips -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ips-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/alloc.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/alloc.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/catas.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/catas.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cmd.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cmd.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cq.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/eq.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/eq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/fw.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/fw.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/icm.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/icm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/intf.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/intf.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/main.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/main.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mcg.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mcg.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mr.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mr.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/megaraid_mbox --whole-archive BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mm.o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid/megaraid_mbox.o BLD/build/vmkdriver-megaraid_mbox-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_signal.o vmkdrivers/src_92/vmklinux_92/vmware/linux_signal.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_task.o vmkdrivers/src_92/vmklinux_92/vmware/linux_task.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/scsi_error.o vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/scsi_error.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/string.o vmkdrivers/src_92/vmklinux_92/linux/lib/string.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/class.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/class.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/idr.o vmkdrivers/src_92/vmklinux_92/linux/lib/idr.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/vmklinux_9_2_0_0 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_scsi.o vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_scsi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/input.o vmkdrivers/src_92/vmklinux_92/linux/drivers/input/input.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_transport.o vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_transport.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/e1000e --whole-archive BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/80003es2lan.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/82571.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/ich8lan.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/mac.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/manage.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/nvm.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/phy.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/ethtool.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/kcompat.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/kcompat_ethtool.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/netdev.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/param.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-fcoe-CUR/release/vmkernel64/fcoe --whole-archive BLD/build/vmkdriver-fcoe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/fcoe.o BLD/build/vmkdriver-fcoe-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/bnx2i --whole-archive BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_init.o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_iscsi.o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_hwi.o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/bnx2i/bnx2i_sysfs.o BLD/build/vmkdriver-bnx2i-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o $LD $LD_OPTS -r -o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/megaraid_sas --whole-archive BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas_fusion.o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas.o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid_sas/megaraid_sas_fp.o BLD/build/vmkdriver-megaraid_sas-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-megaraid2-CUR/release/vmkernel64/megaraid2 --whole-archive BLD/build/vmkdriver-megaraid2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/megaraid2/megaraid.o BLD/build/vmkdriver-megaraid2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pd.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pd.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/port.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/port.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/profile.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/profile.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/qp.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/qp.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/reset.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/reset.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/sense.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/sense.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/srq.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/srq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pkey.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pkey.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/resource_tracker.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/resource_tracker.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.o vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_hw.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_hw.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_main.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_main.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_init.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_init.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_ethtool.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_core\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=512*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_core -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_core -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_core -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/aic79xx --whole-archive BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_core.o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm.o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm_pci.o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_pci.o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_proc.o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-ips-CUR/release/vmkernel64/ips --whole-archive BLD/build/vmkdriver-ips-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/ips/ips.o BLD/build/vmkdriver-ips-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_lro.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_lro.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_procfs.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_procfs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_tool.o vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_tool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_nic_minidump.o vmkdrivers/src_9/drivers/net/nx_nic/nx_nic_minidump.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_nic_vmk.o vmkdrivers/src_9/drivers/net/nx_nic/nx_nic_vmk.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nxhal.o vmkdrivers/src_9/drivers/net/nx_nic/nxhal.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_mem_pool.o vmkdrivers/src_9/drivers/net/nx_nic/nx_mem_pool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_hash_table.o vmkdrivers/src_9/drivers/net/nx_nic/nx_hash_table.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/xge_mdio.o vmkdrivers/src_9/drivers/net/nx_nic/xge_mdio.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/niu.o vmkdrivers/src_9/drivers/net/nx_nic/niu.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wno-sign-compare -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"random\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_random -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_random -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/random -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/random -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/random.o vmkdrivers/src_9/drivers/char/random/random.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wno-sign-compare -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"random\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_random -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_random -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/random -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/random -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/halfmd4.o vmkdrivers/src_9/drivers/char/random/halfmd4.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wno-sign-compare -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"random\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_random -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_random -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/random -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/random -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/sha1.o vmkdrivers/src_9/drivers/char/random/sha1.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2_INBOX=1 -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_BOOL=1 -DHAVE_DEV_ERR=1 -DKBUILD_MODNAME=\"bnx2\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2 -DLINUX_MODULE_HEAP_DMA_WIDTH=40 -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"2.2.3d.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/bnx2.o vmkdrivers/src_9/drivers/net/bnx2/bnx2.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wno-sign-compare -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"random\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_random -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_random -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/random -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/random -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"nx_nic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_HEAP_DMA_WIDTH=64 -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=32*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_nx_nic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=64*1024*1024 -DLINUX_MODULE_VERSION=\"5.0.621\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DPEGNET_NIC -DUNM_CONF_OS=UNM_CONF_LINUX -DUNM_CONF_PROCESSOR=UNM_CONF_X86 -DUNM_HAL_NATIVE -DUNM_X_HARDWARE=UNM_X_ASIC -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/nx_nic -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/nx_nic/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/nx_nic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/mlx4_core --whole-archive BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/alloc.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/catas.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cmd.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cq.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/eq.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/fw.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/icm.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/intf.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/main.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mcg.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mr.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pd.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/port.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/profile.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/qp.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/reset.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/sense.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/srq.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pkey.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/resource_tracker.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/adp94xx --whole-archive BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_discover.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_osm.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_hwi.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_seq.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_ioctl.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/adp94xx/adp94xx_sata.o BLD/build/vmkdriver-adp94xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_main.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_main.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_tx.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_tx.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx_linear.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx_linear.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_ethtool.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_port.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_port.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_cq.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_cq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_resources.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_resources.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netdev.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netdev.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_selftest.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_selftest.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netq.o vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netq.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.o vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_devintf\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_devintf -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_devintf -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_devintf -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_devintf -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_devintf-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_devintf/ipmi_devintf.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_devintf/ipmi_devintf.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_msghandler\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_msghandler -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_msghandler -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_msghandler -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_msghandler -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_msghandler-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_msghandler/ipmi_msghandler.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_msghandler/ipmi_msghandler.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/infutil.o vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/infutil.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-lg.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-lg.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dump.o vmkdrivers/src_92/vmklinux_92/vmware/linux_dump.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inffast.o vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inffast.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-ezkey.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-ezkey.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_notifier.o vmkdrivers/src_92/vmklinux_92/vmware/linux_notifier.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/devres.o vmkdrivers/src_92/vmklinux_92/linux/lib/devres.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_vmk_if.o vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_vmk_if.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/inet_lro.o vmkdrivers/src_92/vmklinux_92/linux/net/inet_lro.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/driver.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/driver.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_cna.o vmkdrivers/src_92/vmklinux_92/vmware/linux_cna.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-tg3-CUR/release/vmkernel64/tg3 --whole-archive BLD/build/vmkdriver-tg3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/tg3/tg3.o BLD/build/vmkdriver-tg3-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o $LD $LD_OPTS -r -o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/nx_nic --whole-archive BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_hw.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_main.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_init.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_ethtool.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_lro.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_procfs.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_tool.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_nic_minidump.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_nic_vmk.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nxhal.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_mem_pool.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/nx_hash_table.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/xge_mdio.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/nx_nic/niu.o BLD/build/vmkdriver-nx_nic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_msghandler\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_msghandler -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_msghandler -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_msghandler -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_msghandler -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_msghandler-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_devintf\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_devintf -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_devintf -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_devintf -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_devintf -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_devintf-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -D__VMKERNEL_MLX4_EN_SUPPORT__ -Wall -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"mlx4_en\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=2*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mlx4_en -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.9.7.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/mlnx/mlx4_en -Ivmkdrivers/src_9/drivers/net/mlnx/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/net/mlnx/include -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/mlx4_en -include vmkdrivers/src_92/include/linux/autoconf.h -include vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.h -c -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBNX2_INBOX=1 -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_BOOL=1 -DHAVE_DEV_ERR=1 -DKBUILD_MODNAME=\"bnx2\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_bnx2 -DLINUX_MODULE_HEAP_DMA_WIDTH=40 -DLINUX_MODULE_HEAP_INITIAL=4096*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_bnx2 -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=36*1024*1024 -DLINUX_MODULE_VERSION=\"2.2.3d.v55.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/bnx2 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-bnx2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_si_drv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/char/openipmi/includes -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_si_drv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_si_intf.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_si_intf.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_si_drv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/char/openipmi/includes -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_si_drv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_kcs_sm.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_kcs_sm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_si_drv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/char/openipmi/includes -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_si_drv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_smic_sm.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_smic_sm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_si_drv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/char/openipmi/includes -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_si_drv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_bt_sm.o vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_bt_sm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptspi\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptspi\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptspi\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.o vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptspi\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCONFIG_FUSION_LOGGING -DCPQ_CIM -DCPU=x86-64 -DDEBUG_STUB -DDIAG_BUFFER_SUPPORT -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"mptspi\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_mptspi -DLINUX_MODULE_VERSION=\"4.23.01.00\" -DLP6000 -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DUSE_THIS_MODULE_VERSION=1 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/mpt/mptcommon -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/scsi/mpt/mptsas -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptspi/mptspi.o vmkdrivers/src_9/drivers/scsi/mpt/mptspi/mptspi.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCNIC_INBOX -DCNIC_ISCSI_OOO_SUPPORT=1 -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_BOOL=1 -DHAVE_DEV_PRINTK=1 -DKBUILD_MODNAME=\"cnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cnic -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_cnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.52.v55.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/cnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/cnic.o vmkdrivers/src_9/drivers/net/bnx2/cnic.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wno-error -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCHAR_DRIVER -DCONFIG_COMPAT -DCONFIG_PROC_FS -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DHP_G6_SUPPORT -DKBUILD_MODNAME=\"ipmi_si_drv\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_HEAP_INITIAL=16*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ipmi_si_drv -DLINUX_MODULE_VERSION=\"39.1\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_9/drivers/char/openipmi/includes -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/ipmi_si_drv -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-random-CUR/release/vmkernel64/random --whole-archive BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/random.o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/halfmd4.o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/random/sha1.o BLD/build/vmkdriver-random-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.o vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_82571.o vmkdrivers/src_9/drivers/net/e1000e/e1000_82571.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_ich8lan.o vmkdrivers/src_9/drivers/net/e1000e/e1000_ich8lan.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_mac.o vmkdrivers/src_9/drivers/net/e1000e/e1000_mac.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_manage.o vmkdrivers/src_9/drivers/net/e1000e/e1000_manage.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_nvm.o vmkdrivers/src_9/drivers/net/e1000e/e1000_nvm.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_phy.o vmkdrivers/src_9/drivers/net/e1000e/e1000_phy.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/ethtool.o vmkdrivers/src_9/drivers/net/e1000e/ethtool.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/kcompat.o vmkdrivers/src_9/drivers/net/e1000e/kcompat.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/kcompat_ethtool.o vmkdrivers/src_9/drivers/net/e1000e/kcompat_ethtool.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-ipmi_msghandler-CUR/release/vmkernel64/ipmi_msghandler --whole-archive BLD/build/vmkdriver-ipmi_msghandler-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_msghandler/ipmi_msghandler.o BLD/build/vmkdriver-ipmi_msghandler-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-bnx2-CUR/release/vmkernel64/bnx2 --whole-archive BLD/build/vmkdriver-bnx2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/bnx2.o BLD/build/vmkdriver-bnx2-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/mlx4_en --whole-archive BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_main.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_tx.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx_linear.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_ethtool.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_port.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_cq.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_resources.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netdev.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_selftest.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netq.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-ipmi_devintf-CUR/release/vmkernel64/ipmi_devintf --whole-archive BLD/build/vmkdriver-ipmi_devintf-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_devintf/ipmi_devintf.o BLD/build/vmkdriver-ipmi_devintf-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCNIC_INBOX -DCNIC_ISCSI_OOO_SUPPORT=1 -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DHAVE_BOOL=1 -DHAVE_DEV_PRINTK=1 -DKBUILD_MODNAME=\"cnic\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cnic -DLINUX_MODULE_HEAP_INITIAL=1024*1024 -DLINUX_MODULE_HEAP_MAX=16384*4096 -DLINUX_MODULE_HEAP_NAME=vmklnx_cnic -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.72.52.v55.1\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMWARE_ESX_DDK_VERSION=55000 -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/bnx2 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/cnic -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/netdev.o vmkdrivers/src_9/drivers/net/e1000e/netdev.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/param.o vmkdrivers/src_9/drivers/net/e1000e/param.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Werror -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DDRIVER_E1000E -DESX3_NETWORKING_NOT_DONE_YET -DGPLED_CODE -DKBUILD_MODNAME=\"e1000e\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_HEAP_INITIAL=100*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_e1000e -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.1.2\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/net/e1000e -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2100_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2100_fw.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2200_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2200_fw.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2300_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2300_fw.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2322_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2322_fw.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2400_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2400_fw.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2500_fw.o vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2500_fw.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_attr.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_attr.c $LD $LD_OPTS -r -o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/ipmi_si_drv --whole-archive BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_si_intf.o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_kcs_sm.o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_smic_sm.o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/char/openipmi/ipmi_si_drv/ipmi_bt_sm.o BLD/build/vmkdriver-ipmi_si_drv-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_dbg.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_dbg.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_gs.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_gs.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_inioct.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_inioct.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_init.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_init.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_iocb.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_iocb.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_isr.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_isr.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_mbx.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_mbx.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_mid.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_mid.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_os.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_os.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_sup.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_sup.c -$LD $LD_OPTS -r -o BLD/build/vmkdriver-cnic-CUR/release/vmkernel64/cnic --whole-archive BLD/build/vmkdriver-cnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2/cnic.o BLD/build/vmkdriver-cnic-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/e1000e --whole-archive BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_82571.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_ich8lan.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_mac.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_manage.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_nvm.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/e1000_phy.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/ethtool.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/kcompat.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/kcompat_ethtool.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/netdev.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/e1000e/param.o BLD/build/vmkdriver-e1000e-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o -$LD $LD_OPTS -r -o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/mptspi --whole-archive BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptbase.o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptctl.o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptcommon/mptscsih.o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o BLD/build/vmkdriver-mptspi-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/mpt/mptspi/mptspi.o -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_xioct.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_xioct.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_nx.o vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_nx.c -$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_mcampi -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"qla2xxx\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_HEAP_INITIAL=4*1024*1024 -DLINUX_MODULE_HEAP_MAX=35*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_qla2xxx -DLINUX_MODULE_VERSION=\"902.k1.1\" -DMODULE -DNO_FLOATING_POINT -DSCSI_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/scsi/qla2xxx -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/include/scsi/drivers -Ivmkdrivers/src_92/include/scsi -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/libata_92 --whole-archive BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-core.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-eh.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-pmp.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-scsi.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-sff.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/ata/libata-vmklnx.o BLD/build/vmkdriver-libata_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/lpfc820 --whole-archive BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_attr.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth_access.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_auth.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ct.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debugfs.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_els.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbadisc.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_init.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_ioctl.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mbox.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mem.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_nportdisc.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_scsi.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_security.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sli.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_vport.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_menlo.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_debug_ioctl.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_hbaapi_ioctl.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_sdtest_ioctl.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/lpfc820/lpfc_mgmt.o BLD/build/vmkdriver-lpfc820-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/aic79xx --whole-archive BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_core.o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm.o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_osm_pci.o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_pci.o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aic79xx/aic79xx_proc.o BLD/build/vmkdriver-aic79xx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-sata_promise-CUR/release/vmkernel64/sata_promise --whole-archive BLD/build/vmkdriver-sata_promise-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_promise.o BLD/build/vmkdriver-sata_promise-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/mlx4_en --whole-archive BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_main.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_tx.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_rx_linear.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_ethtool.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_port.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_cq.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_resources.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netdev.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_selftest.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_en/en_netq.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.o BLD/build/vmkdriver-mlx4_en-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/libfc_92 --whole-archive BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_disc.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_elsct.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_exch.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_fcp.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_frame.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_libfc.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_lport.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_npiv.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/fc_rport.o BLD/build/vmkdriver-libfc_92-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/aacraid --whole-archive BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/aachba.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/commctrl.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/comminit.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/commsup.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/csmi.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/dpcsup.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/rkt.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/rx.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/linit.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/sa.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/aacraid2/nark.o BLD/build/vmkdriver-aacraid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o $LD $LD_OPTS -r -o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/qla2xxx --whole-archive BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2100_fw.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2200_fw.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2300_fw.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2322_fw.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2400_fw.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/ql2500_fw.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_attr.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_dbg.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_gs.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_inioct.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_init.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_iocb.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_isr.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_mbx.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_mid.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_os.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_sup.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_xioct.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/scsi/qla2xxx/qla_nx.o BLD/build/vmkdriver-qla2xxx-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/mlx4_core --whole-archive BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/alloc.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/catas.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cmd.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/cq.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/eq.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/fw.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/icm.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/intf.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/main.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mcg.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/mr.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pd.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/port.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/profile.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/qp.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/reset.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/sense.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/srq.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/pkey.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/mlx4_core/resource_tracker.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/mlnx/compat/mlnx_compat.o BLD/build/vmkdriver-mlx4_core-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/proc.o vmkdrivers/src_92/vmklinux_92/linux/pci/proc.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/firmware/dmi_scan.o vmkdrivers/src_92/vmklinux_92/linux/drivers/firmware/dmi_scan.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/fs/seq_file.o vmkdrivers/src_92/vmklinux_92/linux/fs/seq_file.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/search.o vmkdrivers/src_92/vmklinux_92/linux/pci/search.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-input.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-input.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/pci.o vmkdrivers/src_92/vmklinux_92/linux/pci/pci.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_kthread.o vmkdrivers/src_92/vmklinux_92/vmware/linux_kthread.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/kref.o vmkdrivers/src_92/vmklinux_92/linux/lib/kref.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_heap.o vmkdrivers/src_92/vmklinux_92/vmware/linux_heap.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/defkeymap.o vmkdrivers/src_92/vmklinux_92/linux/drivers/char/defkeymap.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_iodm.o vmkdrivers/src_92/vmklinux_92/vmware/linux_iodm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_stress.o vmkdrivers/src_92/vmklinux_92/vmware/linux_stress.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -DBUILT_BY_aurva -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmkplexer\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/vmkplexer/src -Ivmkdrivers/vmkplexer/src/base -IBLD/build/HEADERS/CUR-0-vmkdrivers-namespace/vmkernel64/release/vmkplexer -c -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_entropy.o vmkdrivers/vmkplexer/src/base/vmkplexer_entropy.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_workqueue.o vmkdrivers/src_92/vmklinux_92/vmware/linux_workqueue.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-kye.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-kye.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_waitqueue.o vmkdrivers/src_92/vmklinux_92/vmware/linux_waitqueue.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_proc.o vmkdrivers/src_92/vmklinux_92/vmware/linux_proc.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-apple.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-apple.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_usb.o vmkdrivers/src_92/vmklinux_92/vmware/linux_usb.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/scsi/scsi_proc.o vmkdrivers/src_92/vmklinux_92/linux/scsi/scsi_proc.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-core.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-core.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cherry.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cherry.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/vmklinux_9_2_0_0 -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_pm.o vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_pm.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/devres.o vmkdrivers/src_92/vmklinux_92/linux/kernel/irq/devres.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dcb.o vmkdrivers/src_92/vmklinux_92/vmware/linux_dcb.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/msi.o vmkdrivers/src_92/vmklinux_92/linux/pci/msi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/consolemap.o vmkdrivers/src_92/vmklinux_92/linux/drivers/char/consolemap.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/core.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/core.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_net.o vmkdrivers/src_92/vmklinux_92/vmware/linux_net.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -DBUILT_BY_aurva -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmkplexer\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/vmkplexer/src -Ivmkdrivers/vmkplexer/src/base -IBLD/build/HEADERS/CUR-0-vmkdrivers-namespace/vmkernel64/release/vmkplexer -c -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/scsi/vmkplexer_scsi.o vmkdrivers/vmkplexer/src/scsi/vmkplexer_scsi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_lld_if.o vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_lld_if.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_char.o vmkdrivers/src_92/vmklinux_92/vmware/linux_char.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/sort.o vmkdrivers/src_92/vmklinux_92/linux/lib/sort.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/constants.o vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/constants.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-belkin.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-belkin.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/softirq.o vmkdrivers/src_92/vmklinux_92/linux/kernel/softirq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_ctype.o vmkdrivers/src_92/vmklinux_92/vmware/linux_ctype.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/keyboard.o vmkdrivers/src_92/vmklinux_92/linux/drivers/char/keyboard.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inftrees.o vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inftrees.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate_syms.o vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate_syms.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/hweight.o vmkdrivers/src_92/vmklinux_92/linux/lib/hweight.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.o vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_hashtab.o vmkdrivers/src_92/vmklinux_92/vmware/linux_hashtab.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/vmklinux_9_2_0_0 --whole-archive BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_scsi.o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0.o BLD/build/vmkdriver-vmklinux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_9_2_0_0/vmklinux_9_2_0_0_pm.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/bnx2x --whole-archive BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_link.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_cmn.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_main.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_esx.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_dcb.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_ethtool.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_stats.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e1h.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_init_values_e2.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_sp.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/net/bnx2x/bnx2x_self_test.o BLD/build/vmkdriver-bnx2x-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-microsoft.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-microsoft.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi.o vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dd.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dd.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_rcu.o vmkdrivers/src_92/vmklinux_92/vmware/linux_rcu.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -DBUILT_BY_aurva -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmkplexer\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/vmkplexer/src -Ivmkdrivers/vmkplexer/src/base -IBLD/build/HEADERS/CUR-0-vmkdrivers-namespace/vmkernel64/release/vmkplexer -c -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_procfs.o vmkdrivers/vmkplexer/src/base/vmkplexer_procfs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/vsprintf.o vmkdrivers/src_92/vmklinux_92/linux/lib/vsprintf.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/semaphore-sleepers.o vmkdrivers/src_92/vmklinux_92/linux/lib/semaphore-sleepers.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/klist.o vmkdrivers/src_92/vmklinux_92/linux/lib/klist.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -DBUILT_BY_aurva -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmkplexer\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/vmkplexer/src -Ivmkdrivers/vmkplexer/src/base -IBLD/build/HEADERS/CUR-0-vmkdrivers-namespace/vmkernel64/release/vmkplexer -c -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/vmkplexer.o vmkdrivers/vmkplexer/src/vmkplexer.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/bus.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/bus.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/devres.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/devres.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/ethtool.o vmkdrivers/src_92/vmklinux_92/linux/net/ethtool.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_input.o vmkdrivers/src_92/vmklinux_92/vmware/linux_input.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/skbuff.o vmkdrivers/src_92/vmklinux_92/linux/net/skbuff.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_time.o vmkdrivers/src_92/vmklinux_92/vmware/linux_time.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-wrappers.o vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-wrappers.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/platform.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/platform.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dma-mapping.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dma-mapping.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-partial.o vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-partial.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_irq.o vmkdrivers/src_92/vmklinux_92/vmware/linux_irq.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -DBUILT_BY_aurva -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmkplexer\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/vmkplexer/src -Ivmkdrivers/vmkplexer/src/base -IBLD/build/HEADERS/CUR-0-vmkdrivers-namespace/vmkernel64/release/vmkplexer -c -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_chardevs.o vmkdrivers/vmkplexer/src/base/vmkplexer_chardevs.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/runtime.o vmkdrivers/src_92/vmklinux_92/linux/drivers/base/power/runtime.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"vmklinux_9\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_vmklinux_9 -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=20*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklinux_9 -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMKLINUX -DVMKLINUX_MODULE_HEAP_ANY_MEM -DVMKLINUX_MODULE_HEAP_PHYS_ANY_CONTIGUITY -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_MPP -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_NPIV -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release -Ivmkdrivers/vmkplexer/include -Ivmkdrivers/src_92/vmklinux_92/vmware -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/linux -Ivmkdrivers/src_92/include/vmklinux_9 -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/scsi -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/vmklinux_9 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cypress.o vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cypress.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hcd-pci.o vmkdrivers/src_92/drivers/usb/core/hcd-pci.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/buffer.o vmkdrivers/src_92/drivers/usb/core/buffer.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/config.o vmkdrivers/src_92/drivers/usb/core/config.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libfcoe_9_2_1_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfcoe_9_2_1_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfcoe_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_1_0.o vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_1_0.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libfcoe_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/fcoe -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfcoe_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfcoe_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_0_0.o vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_0_0.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"libfc_9_2_1_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/libfc -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/libfc_9_2_1_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-libfc_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_1_0.o vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_1_0.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/devices.o vmkdrivers/src_92/drivers/usb/core/devices.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/devio.o vmkdrivers/src_92/drivers/usb/core/devio.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/driver.o vmkdrivers/src_92/drivers/usb/core/driver.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/generic.o vmkdrivers/src_92/drivers/usb/core/generic.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hcd.o vmkdrivers/src_92/drivers/usb/core/hcd.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hub.o vmkdrivers/src_92/drivers/usb/core/hub.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/message.o vmkdrivers/src_92/drivers/usb/core/message.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/notify.o vmkdrivers/src_92/drivers/usb/core/notify.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/passthrough.o vmkdrivers/src_92/drivers/usb/core/passthrough.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/pci-quirks.o vmkdrivers/src_92/drivers/usb/core/pci-quirks.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/quirks.o vmkdrivers/src_92/drivers/usb/core/quirks.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/urb.o vmkdrivers/src_92/drivers/usb/core/urb.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/usb.o vmkdrivers/src_92/drivers/usb/core/usb.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"hid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=512*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/input -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/hid -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/hid -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/input/hid-core.o vmkdrivers/src_92/drivers/usb/input/hid-core.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"hid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=512*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/input -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/hid -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/hid -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/input/hid-quirks.o vmkdrivers/src_92/drivers/usb/input/hid-quirks.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/scsiglue.o vmkdrivers/src_92/drivers/usb/storage/scsiglue.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/protocol.o vmkdrivers/src_92/drivers/usb/storage/protocol.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/transport.o vmkdrivers/src_92/drivers/usb/storage/transport.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/usb.o vmkdrivers/src_92/drivers/usb/storage/usb.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/initializers.o vmkdrivers/src_92/drivers/usb/storage/initializers.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/option_ms.o vmkdrivers/src_92/drivers/usb/storage/option_ms.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/usual-tables.o vmkdrivers/src_92/drivers/usb/storage/usual-tables.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/debug.o vmkdrivers/src_92/drivers/usb/storage/debug.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-storage\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_storage -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/storage -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-storage -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfc_9_2_1_0-CUR/release/vmkernel64/libfc_9_2_1_0 --whole-archive BLD/build/vmkdriver-libfc_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_1_0.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"hid\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=512*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_hid -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/input -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/vmklinux_92/linux/drivers/hid -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/hid -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfcoe_9_2_0_0-CUR/release/vmkernel64/libfcoe_9_2_0_0 --whole-archive BLD/build/vmkdriver-libfcoe_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_0_0.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-libfcoe_9_2_1_0-CUR/release/vmkernel64/libfcoe_9_2_1_0 --whole-archive BLD/build/vmkdriver-libfcoe_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/fcoe/libfcoe_9_2_1_0.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/vmklinux_9 --whole-archive BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/softirq.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/wait.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/kernel/devres.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/klist.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/kref.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/sort.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/vsprintf.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/string.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/idr.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/hweight.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/devres.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/semaphore-sleepers.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inftrees.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inffast.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/inflate_syms.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/lib/zlib_inflate/infutil.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/mm/mempool.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/ethtool.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/skbuff.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/net/inet_lro.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/pci.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/search.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/msi.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/pci/proc.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/fs/seq_file.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/scsi/scsi_proc.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/core.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/bus.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dd.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/driver.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/class.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/devres.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/platform.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/dma-mapping.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/runtime.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/keyboard.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/defkeymap.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/char/consolemap.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/input.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/ff-core.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/input/mousedev.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-apple.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-belkin.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cherry.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-core.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-cypress.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-ezkey.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-input.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-kye.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-lg.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/hid/hid-microsoft.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/constants.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/scsi_error.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/drivers/firmware/dmi_scan.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-partial.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/csum-wrappers.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/linux/arch/x86_64/lib/thunk.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_block.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_char.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_ctype.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dma.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_hashtab.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_heap.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_irq.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_net.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_proc.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_rcu.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_lld_if.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_transport.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi_vmk_if.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_signal.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_stress.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_task.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_time.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_usb.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_waitqueue.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_workqueue.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_notifier.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_kthread.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_input.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_cna.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dcb.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_iodm.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_dump.o BLD/build/vmkdriver-vmklinux_9-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/vmklinux_92/vmware/linux_efi.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/vmkplexer --whole-archive BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/vmkplexer.o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_chardevs.o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_procfs.o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/base/vmkplexer_entropy.o BLD/build/vmkdriver-vmkplexer-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/vmkplexer/src/scsi/vmkplexer_scsi.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"xhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/xhci -Ivmkdrivers/src_92/drivers/usb/host/xhci/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci.o vmkdrivers/src_92/drivers/usb/host/xhci/xhci.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"xhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/xhci -Ivmkdrivers/src_92/drivers/usb/host/xhci/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-mem.o vmkdrivers/src_92/drivers/usb/host/xhci/xhci-mem.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"xhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/xhci -Ivmkdrivers/src_92/drivers/usb/host/xhci/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-pci.o vmkdrivers/src_92/drivers/usb/host/xhci/xhci-pci.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"xhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/xhci -Ivmkdrivers/src_92/drivers/usb/host/xhci/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-ring.o vmkdrivers/src_92/drivers/usb/host/xhci/xhci-ring.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"xhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/xhci -Ivmkdrivers/src_92/drivers/usb/host/xhci/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-hub.o vmkdrivers/src_92/drivers/usb/host/xhci/xhci-hub.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"xhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/xhci -Ivmkdrivers/src_92/drivers/usb/host/xhci/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-dbg.o vmkdrivers/src_92/drivers/usb/host/xhci/xhci-dbg.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"xhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/xhci -Ivmkdrivers/src_92/drivers/usb/host/xhci/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/compat/xhci_compat.o vmkdrivers/src_92/drivers/usb/host/xhci/compat/xhci_compat.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ehci-hcd\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ehci_hcd -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ehci_hcd -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_2GB_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/ehci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/ehci-hcd -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ehci-hcd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/ehci/ehci-hcd.o vmkdrivers/src_92/drivers/usb/host/ehci/ehci-hcd.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-ohci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_ohci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_ohci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/ohci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-ohci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-ohci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/ohci/ohci-hcd.o vmkdrivers/src_92/drivers/usb/host/ohci/ohci-hcd.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-uhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_uhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_uhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/uhci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-uhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-uhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/uhci/uhci-hcd.o vmkdrivers/src_92/drivers/usb/host/uhci/uhci-hcd.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usbnet\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usbnet -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/usbnet.o vmkdrivers/src_92/drivers/usb/net/usbnet.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usbnet\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usbnet -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/mii.o vmkdrivers/src_92/drivers/usb/net/mii.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"cdc_ether\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cdc_ether -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_cdc_ether -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/cdc_ether -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cdc_ether-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/cdc_ether.o vmkdrivers/src_92/drivers/usb/net/cdc_ether.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"iscsi_linux_9_2_1_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/iscsi_linux -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/iscsi_linux_9_2_1_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-iscsi_linux_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_1_0.o vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_1_0.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DGPLED_CODE -DKBUILD_MODNAME=\"iscsi_linux_9_2_0_0\" -DLINUX_MODULE_VERSION=\"5.5.0\" -DMODULE -DNO_FLOATING_POINT -DPRODUCT_VERSION=5.5.0 -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/scsi/iscsi_linux -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/iscsi_linux_9_2_0_0 -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-iscsi_linux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_0_0.o vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_0_0.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"cdc_ether\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_cdc_ether -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_cdc_ether -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/cdc_ether -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-cdc_ether-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/usb --whole-archive BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hcd-pci.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/buffer.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/config.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/devices.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/devio.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/driver.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/generic.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hcd.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/hub.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/message.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/notify.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/passthrough.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/pci-quirks.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/quirks.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/urb.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/core/usb.o BLD/build/vmkdriver-usb-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/usb-storage --whole-archive BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/scsiglue.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/protocol.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/transport.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/usb.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/initializers.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/option_ms.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/usual-tables.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/storage/debug.o BLD/build/vmkdriver-usb-storage-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DESX3_NETWORKING_NOT_DONE_YET -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usbnet\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usbnet -DLINUX_MODULE_SKB_HEAP -DLINUX_MODULE_SKB_HEAP_INITIAL=512*1024 -DLINUX_MODULE_SKB_HEAP_MAX=22*1024*1024 -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNET_DRIVER -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/net -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -Ivmkdrivers/src_92/drivers/net -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usbnet -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/hid --whole-archive BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/input/hid-core.o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/input/hid-quirks.o BLD/build/vmkdriver-hid-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-uhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_uhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_uhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/uhci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-uhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-uhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"usb-ohci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_usb_ohci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_usb_ohci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/ohci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/usb-ohci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-usb-ohci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"ehci-hcd\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_ehci_hcd -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_ehci_hcd -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMKLINUX_MODULE_HEAP_2GB_MEM -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/ehci -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/ehci-hcd -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-ehci-hcd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$CC -fwrapv -pipe -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -mcld -mcmodel=smallhigh -Wall -Werror -Wstrict-prototypes -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib -mno-mmx -mno-3dnow -mno-sse -mno-sse2 --sysroot=/nowhere -Wno-array-bounds -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DBUILT_BY_aurva -DCONFIG_COMPAT -DCONFIG_PM -DCONFIG_PM_RUNTIME -DCONFIG_USB_SUSPEND -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"xhci\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_HEAP_INITIAL=256*1024 -DLINUX_MODULE_HEAP_MAX=4*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_xhci -DLINUX_MODULE_VERSION=\"1.0\" -DMODULE -DNO_FLOATING_POINT -DUSB_DRIVER -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_92/drivers/usb/host/xhci -Ivmkdrivers/src_92/drivers/usb/host/xhci/compat -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_92/include -Ivmkdrivers/src_92/include/vmklinux_92 -IBLD/build/HEADERS/CUR-92-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -Ivmkdrivers/src_92/drivers/usb/core -IBLD/build/HEADERS/CUR-92-vmkdrivers-namespace/vmkernel64/release/xhci -include vmkdrivers/src_92/include/linux/autoconf.h -c -o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o vmkdrivers/src_92/common/vmklinux_module.c +$LD $LD_OPTS -r -o BLD/build/vmkdriver-iscsi_linux_9_2_1_0-CUR/release/vmkernel64/iscsi_linux_9_2_1_0 --whole-archive BLD/build/vmkdriver-iscsi_linux_9_2_1_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_1_0.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-iscsi_linux_9_2_0_0-CUR/release/vmkernel64/iscsi_linux_9_2_0_0 --whole-archive BLD/build/vmkdriver-iscsi_linux_9_2_0_0-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/scsi/iscsi_linux/iscsi_linux_9_2_0_0.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-cdc_ether-CUR/release/vmkernel64/cdc_ether --whole-archive BLD/build/vmkdriver-cdc_ether-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/cdc_ether.o BLD/build/vmkdriver-cdc_ether-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/xhci --whole-archive BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci.o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-mem.o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-pci.o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-ring.o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-hub.o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-dbg.o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/xhci/compat/xhci_compat.o BLD/build/vmkdriver-xhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/usbnet --whole-archive BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/usbnet.o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/net/mii.o BLD/build/vmkdriver-usbnet-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-usb-ohci-CUR/release/vmkernel64/usb-ohci --whole-archive BLD/build/vmkdriver-usb-ohci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/ohci/ohci-hcd.o BLD/build/vmkdriver-usb-ohci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-usb-uhci-CUR/release/vmkernel64/usb-uhci --whole-archive BLD/build/vmkdriver-usb-uhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/uhci/uhci-hcd.o BLD/build/vmkdriver-usb-uhci-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o +$LD $LD_OPTS -r -o BLD/build/vmkdriver-ehci-hcd-CUR/release/vmkernel64/ehci-hcd --whole-archive BLD/build/vmkdriver-ehci-hcd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/drivers/usb/host/ehci/ehci-hcd.o BLD/build/vmkdriver-ehci-hcd-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_92/common/vmklinux_module.o diff --git a/vmkdrivers/src_9/drivers/ata/ahci.c b/vmkdrivers/src_9/drivers/ata/ahci.c index c20faa2997b3edc5ea087a3fda7e853c5e6b6176..e3876eccfa0f083128ba1739558317104d7050e5 100644 --- a/vmkdrivers/src_9/drivers/ata/ahci.c +++ b/vmkdrivers/src_9/drivers/ata/ahci.c @@ -54,7 +54,7 @@ #endif #define DRV_NAME "ahci" -#define DRV_VERSION "3.0-20vmw" +#define DRV_VERSION "3.0-22vmw" #if defined(__VMKLNX__) static int ahci_skip_host_reset = 0; @@ -651,7 +651,16 @@ static const struct pci_device_id ahci_pci_tbl[] = { { PCI_VDEVICE(INTEL, 0x8d64), board_ahci }, /* Wellsburg RAID */ { PCI_VDEVICE(INTEL, 0x8d66), board_ahci }, /* Wellsburg RAID */ { PCI_VDEVICE(INTEL, 0x8d6e), board_ahci }, /* Wellsburg RAID */ - { PCI_VDEVICE(INTEL, 0x23a3), board_ahci }, /* Coleto Creek AHCI */ + { PCI_VDEVICE(INTEL, 0x23a3), board_ahci }, /* Coleto Creek AHCI */ + { PCI_VDEVICE(INTEL, 0x9d03), board_ahci }, /* Sunrise Point-LP AHCI */ + { PCI_VDEVICE(INTEL, 0x9d05), board_ahci }, /* Sunrise Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0x9d07), board_ahci }, /* Sunrise Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0xa102), board_ahci }, /* Sunrise Point-H AHCI */ + { PCI_VDEVICE(INTEL, 0xa103), board_ahci }, /* Sunrise Point-H AHCI */ + { PCI_VDEVICE(INTEL, 0xa105), board_ahci }, /* Sunrise Point-H RAID */ + { PCI_VDEVICE(INTEL, 0xa106), board_ahci }, /* Sunrise Point-H RAID */ + { PCI_VDEVICE(INTEL, 0xa107), board_ahci }, /* Sunrise Point-H RAID */ + { PCI_VDEVICE(INTEL, 0xa10f), board_ahci }, /* Sunrise Point-H RAID */ #endif /* defined(__VMKLNX__) */ /* JMicron 360/1/3/5/6, match class to avoid IDE function */ @@ -762,6 +771,9 @@ static const struct pci_device_id ahci_pci_tbl[] = { { PCI_VDEVICE(SEAMICRO, 0x2923), board_ahci }, /* 2923 */ #endif /* defined(__VMKLNX__) */ + /* Samsung */ + { PCI_VDEVICE(SAMSUNG, 0x1600), board_ahci }, /* Samsung PCIe SSD */ + /* Generic, PCI class code for AHCI */ { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci }, diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.c b/vmkdrivers/src_9/drivers/net/e1000e/80003es2lan.c similarity index 57% rename from vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.c rename to vmkdrivers/src_9/drivers/net/e1000e/80003es2lan.c index 1aceb32d187cf2bb0bd96f6e9a57ffcc971ef2a9..b81ff34df0e60f6857ec72b91b9e613ba6cd2466 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/80003es2lan.c @@ -1,86 +1,55 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - /* - * 80003ES2LAN Gigabit Ethernet Controller (Copper) + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +/* 80003ES2LAN Gigabit Ethernet Controller (Copper) * 80003ES2LAN Gigabit Ethernet Controller (Serdes) */ #include "e1000.h" -static s32 e1000_init_phy_params_80003es2lan(struct e1000_hw *hw); -static s32 e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw); -static s32 e1000_init_mac_params_80003es2lan(struct e1000_hw *hw); -static s32 e1000_acquire_phy_80003es2lan(struct e1000_hw *hw); -static void e1000_release_phy_80003es2lan(struct e1000_hw *hw); -static s32 e1000_acquire_nvm_80003es2lan(struct e1000_hw *hw); -static void e1000_release_nvm_80003es2lan(struct e1000_hw *hw); -static s32 e1000_read_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, - u32 offset, - u16 *data); -static s32 e1000_write_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, - u32 offset, - u16 data); -static s32 e1000_write_nvm_80003es2lan(struct e1000_hw *hw, u16 offset, - u16 words, u16 *data); -static s32 e1000_get_cfg_done_80003es2lan(struct e1000_hw *hw); -static s32 e1000_phy_force_speed_duplex_80003es2lan(struct e1000_hw *hw); -static s32 e1000_get_cable_length_80003es2lan(struct e1000_hw *hw); -static s32 e1000_get_link_up_info_80003es2lan(struct e1000_hw *hw, u16 *speed, - u16 *duplex); -static s32 e1000_reset_hw_80003es2lan(struct e1000_hw *hw); -static s32 e1000_init_hw_80003es2lan(struct e1000_hw *hw); -static s32 e1000_setup_copper_link_80003es2lan(struct e1000_hw *hw); -static void e1000_clear_hw_cntrs_80003es2lan(struct e1000_hw *hw); -static s32 e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask); -static s32 e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw, u16 duplex); -static s32 e1000_cfg_kmrn_1000_80003es2lan(struct e1000_hw *hw); -static s32 e1000_cfg_on_link_up_80003es2lan(struct e1000_hw *hw); -static s32 e1000_read_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, - u16 *data); -static s32 e1000_write_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, - u16 data); -static s32 e1000_copper_link_setup_gg82563_80003es2lan(struct e1000_hw *hw); -static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw); -static void e1000_release_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask); -static s32 e1000_read_mac_addr_80003es2lan(struct e1000_hw *hw); -static void e1000_power_down_phy_copper_80003es2lan(struct e1000_hw *hw); - -/* - * A table for the GG82563 cable length where the range is defined +/* A table for the GG82563 cable length where the range is defined * with a lower bound at "index" and the upper bound at * "index + 5". */ -static const u16 e1000_gg82563_cable_length_table[] = - { 0, 60, 115, 150, 150, 60, 115, 150, 180, 180, 0xFF }; +static const u16 e1000_gg82563_cable_length_table[] = { + 0, 60, 115, 150, 150, 60, 115, 150, 180, 180, 0xFF +}; + #define GG82563_CABLE_LENGTH_TABLE_SIZE \ - (sizeof(e1000_gg82563_cable_length_table) / \ - sizeof(e1000_gg82563_cable_length_table[0])) + (sizeof(e1000_gg82563_cable_length_table) / \ + sizeof(e1000_gg82563_cable_length_table[0])) + +static s32 e1000_setup_copper_link_80003es2lan(struct e1000_hw *hw); +static s32 e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask); +static void e1000_release_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask); +static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw); +static void e1000_clear_hw_cntrs_80003es2lan(struct e1000_hw *hw); +static s32 e1000_cfg_kmrn_1000_80003es2lan(struct e1000_hw *hw); +static s32 e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw, u16 duplex); +static s32 e1000_read_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, + u16 *data); +static s32 e1000_write_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, + u16 data); +static void e1000_power_down_phy_copper_80003es2lan(struct e1000_hw *hw); /** * e1000_init_phy_params_80003es2lan - Init ESB2 PHY func ptrs. @@ -89,48 +58,28 @@ static const u16 e1000_gg82563_cable_length_table[] = static s32 e1000_init_phy_params_80003es2lan(struct e1000_hw *hw) { struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; if (hw->phy.media_type != e1000_media_type_copper) { - phy->type = e1000_phy_none; - goto out; + phy->type = e1000_phy_none; + return 0; } else { phy->ops.power_up = e1000_power_up_phy_copper; phy->ops.power_down = e1000_power_down_phy_copper_80003es2lan; } - phy->addr = 1; - phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; - phy->reset_delay_us = 100; - phy->type = e1000_phy_gg82563; - - phy->ops.acquire = e1000_acquire_phy_80003es2lan; - phy->ops.check_polarity = e1000_check_polarity_m88; - phy->ops.check_reset_block = e1000e_check_reset_block_generic; - phy->ops.commit = e1000e_phy_sw_reset; - phy->ops.get_cfg_done = e1000_get_cfg_done_80003es2lan; - phy->ops.get_info = e1000e_get_phy_info_m88; - phy->ops.release = e1000_release_phy_80003es2lan; - phy->ops.reset = e1000e_phy_hw_reset_generic; - phy->ops.set_d3_lplu_state = e1000e_set_d3_lplu_state; - - phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_80003es2lan; - phy->ops.get_cable_length = e1000_get_cable_length_80003es2lan; - phy->ops.read_reg = e1000_read_phy_reg_gg82563_80003es2lan; - phy->ops.write_reg = e1000_write_phy_reg_gg82563_80003es2lan; - - phy->ops.cfg_on_link_up = e1000_cfg_on_link_up_80003es2lan; + phy->addr = 1; + phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; + phy->reset_delay_us = 100; + phy->type = e1000_phy_gg82563; /* This can only be done after all function pointers are setup. */ ret_val = e1000e_get_phy_id(hw); /* Verify phy id */ - if (phy->id != GG82563_E_PHY_ID) { - ret_val = -E1000_ERR_PHY; - goto out; - } + if (phy->id != GG82563_E_PHY_ID) + return -E1000_ERR_PHY; -out: return ret_val; } @@ -144,30 +93,29 @@ static s32 e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw) u32 eecd = er32(EECD); u16 size; - nvm->opcode_bits = 8; - nvm->delay_usec = 1; + nvm->opcode_bits = 8; + nvm->delay_usec = 1; switch (nvm->override) { case e1000_nvm_override_spi_large: - nvm->page_size = 32; + nvm->page_size = 32; nvm->address_bits = 16; break; case e1000_nvm_override_spi_small: - nvm->page_size = 8; + nvm->page_size = 8; nvm->address_bits = 8; break; default: - nvm->page_size = eecd & E1000_EECD_ADDR_BITS ? 32 : 8; + nvm->page_size = eecd & E1000_EECD_ADDR_BITS ? 32 : 8; nvm->address_bits = eecd & E1000_EECD_ADDR_BITS ? 16 : 8; break; } - nvm->type = e1000_nvm_eeprom_spi; + nvm->type = e1000_nvm_eeprom_spi; size = (u16)((eecd & E1000_EECD_SIZE_EX_MASK) >> - E1000_EECD_SIZE_EX_SHIFT); + E1000_EECD_SIZE_EX_SHIFT); - /* - * Added to a constant, "size" becomes the left-shift value + /* Added to a constant, "size" becomes the left-shift value * for setting word_size. */ size += NVM_WORD_SIZE_BASE_SHIFT; @@ -175,18 +123,9 @@ static s32 e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw) /* EEPROM access above 16k is unsupported */ if (size > 14) size = 14; - nvm->word_size = 1 << size; - - /* Function Pointers */ - nvm->ops.acquire = e1000_acquire_nvm_80003es2lan; - nvm->ops.read = e1000e_read_nvm_eerd; - nvm->ops.release = e1000_release_nvm_80003es2lan; - nvm->ops.update = e1000e_update_nvm_checksum_generic; - nvm->ops.valid_led_default = e1000e_valid_led_default; - nvm->ops.validate = e1000e_validate_nvm_checksum_generic; - nvm->ops.write = e1000_write_nvm_80003es2lan; - - return E1000_SUCCESS; + nvm->word_size = 1 << size; + + return 0; } /** @@ -196,15 +135,20 @@ static s32 e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw) static s32 e1000_init_mac_params_80003es2lan(struct e1000_hw *hw) { struct e1000_mac_info *mac = &hw->mac; - s32 ret_val = E1000_SUCCESS; - /* Set media type */ - switch (hw->device_id) { + /* Set media type and media-dependent function pointers */ + switch (hw->adapter->pdev->device) { case E1000_DEV_ID_80003ES2LAN_SERDES_DPT: hw->phy.media_type = e1000_media_type_internal_serdes; + mac->ops.check_for_link = e1000e_check_for_serdes_link; + mac->ops.setup_physical_interface = + e1000e_setup_fiber_serdes_link; break; default: hw->phy.media_type = e1000_media_type_copper; + mac->ops.check_for_link = e1000e_check_for_copper_link; + mac->ops.setup_physical_interface = + e1000_setup_copper_link_80003es2lan; break; } @@ -212,92 +156,37 @@ static s32 e1000_init_mac_params_80003es2lan(struct e1000_hw *hw) mac->mta_reg_count = 128; /* Set rar entry count */ mac->rar_entry_count = E1000_RAR_ENTRIES; - /* Set if part includes ASF firmware */ - mac->asf_firmware_present = true; - /* Set if manageability features are enabled. */ - mac->arc_subsystem_valid = - (er32(FWSM) & E1000_FWSM_MODE_MASK) - ? true : false; - - /* Function pointers */ - - /* bus type/speed/width */ - mac->ops.get_bus_info = e1000e_get_bus_info_pcie; - /* reset */ - mac->ops.reset_hw = e1000_reset_hw_80003es2lan; - /* hw initialization */ - mac->ops.init_hw = e1000_init_hw_80003es2lan; - /* link setup */ - mac->ops.setup_link = e1000e_setup_link; - /* physical interface link setup */ - mac->ops.setup_physical_interface = - (hw->phy.media_type == e1000_media_type_copper) - ? e1000_setup_copper_link_80003es2lan - : e1000e_setup_fiber_serdes_link; - /* check for link */ - switch (hw->phy.media_type) { - case e1000_media_type_copper: - mac->ops.check_for_link = e1000e_check_for_copper_link; - break; - case e1000_media_type_fiber: - mac->ops.check_for_link = e1000e_check_for_fiber_link; - break; - case e1000_media_type_internal_serdes: - mac->ops.check_for_link = e1000e_check_for_serdes_link; - break; - default: - ret_val = -E1000_ERR_CONFIG; - goto out; - break; - } - /* check management mode */ - mac->ops.check_mng_mode = e1000_check_mng_mode_generic; - /* multicast address update */ - mac->ops.update_mc_addr_list = e1000e_update_mc_addr_list_generic; - /* writing VFTA */ - mac->ops.write_vfta = e1000e_write_vfta_generic; - /* clearing VFTA */ - mac->ops.clear_vfta = e1000e_clear_vfta_generic; - /* setting MTA */ - mac->ops.mta_set = e1000_mta_set_generic; - /* read mac address */ - mac->ops.read_mac_addr = e1000_read_mac_addr_80003es2lan; - /* ID LED init */ - mac->ops.id_led_init = e1000e_id_led_init; - /* blink LED */ - mac->ops.blink_led = e1000e_blink_led; - /* setup LED */ - mac->ops.setup_led = e1000_setup_led_generic; - /* cleanup LED */ - mac->ops.cleanup_led = e1000e_cleanup_led_generic; - /* turn on/off LED */ - mac->ops.led_on = e1000e_led_on_generic; - mac->ops.led_off = e1000e_led_off_generic; - /* clear hardware counters */ - mac->ops.clear_hw_cntrs = e1000_clear_hw_cntrs_80003es2lan; - /* link info */ - mac->ops.get_link_up_info = e1000_get_link_up_info_80003es2lan; + /* FWSM register */ + mac->has_fwsm = true; + /* ARC supported; valid only if manageability features are enabled. */ + mac->arc_subsystem_valid = !!(er32(FWSM) & E1000_FWSM_MODE_MASK); + /* Adaptive IFS not supported */ + mac->adaptive_ifs = false; /* set lan id for port to determine which phy lock to use */ hw->mac.ops.set_lan_id(hw); -out: - return ret_val; + return 0; } -/** - * e1000_init_function_pointers_80003es2lan - Init ESB2 func ptrs. - * @hw: pointer to the HW structure - * - * Called to initialize all function pointers and parameters. - **/ -void e1000_init_function_pointers_80003es2lan(struct e1000_hw *hw) +static s32 e1000_get_variants_80003es2lan(struct e1000_adapter *adapter) { - e1000_init_mac_ops_generic(hw); - e1000_init_nvm_ops_generic(hw); - hw->mac.ops.init_params = e1000_init_mac_params_80003es2lan; - hw->nvm.ops.init_params = e1000_init_nvm_params_80003es2lan; - hw->phy.ops.init_params = e1000_init_phy_params_80003es2lan; + struct e1000_hw *hw = &adapter->hw; + s32 rc; + + rc = e1000_init_mac_params_80003es2lan(hw); + if (rc) + return rc; + + rc = e1000_init_nvm_params_80003es2lan(hw); + if (rc) + return rc; + + rc = e1000_init_phy_params_80003es2lan(hw); + if (rc) + return rc; + + return 0; } /** @@ -328,9 +217,8 @@ static void e1000_release_phy_80003es2lan(struct e1000_hw *hw) e1000_release_swfw_sync_80003es2lan(hw, mask); } - /** - * e1000_acquire_mac_csr_80003es2lan - Acquire rights to access Kumeran register + * e1000_acquire_mac_csr_80003es2lan - Acquire right to access Kumeran register * @hw: pointer to the HW structure * * Acquire the semaphore to access the Kumeran interface. @@ -346,7 +234,7 @@ static s32 e1000_acquire_mac_csr_80003es2lan(struct e1000_hw *hw) } /** - * e1000_release_mac_csr_80003es2lan - Release rights to access Kumeran Register + * e1000_release_mac_csr_80003es2lan - Release right to access Kumeran Register * @hw: pointer to the HW structure * * Release the semaphore used to access the Kumeran interface @@ -372,14 +260,13 @@ static s32 e1000_acquire_nvm_80003es2lan(struct e1000_hw *hw) ret_val = e1000_acquire_swfw_sync_80003es2lan(hw, E1000_SWFW_EEP_SM); if (ret_val) - goto out; + return ret_val; ret_val = e1000e_acquire_nvm(hw); if (ret_val) e1000_release_swfw_sync_80003es2lan(hw, E1000_SWFW_EEP_SM); -out: return ret_val; } @@ -408,21 +295,18 @@ static s32 e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask) u32 swfw_sync; u32 swmask = mask; u32 fwmask = mask << 16; - s32 ret_val = E1000_SUCCESS; - s32 i = 0, timeout = 50; + s32 i = 0; + s32 timeout = 50; while (i < timeout) { - if (e1000e_get_hw_semaphore(hw)) { - ret_val = -E1000_ERR_SWFW_SYNC; - goto out; - } + if (e1000e_get_hw_semaphore(hw)) + return -E1000_ERR_SWFW_SYNC; swfw_sync = er32(SW_FW_SYNC); if (!(swfw_sync & (fwmask | swmask))) break; - /* - * Firmware currently using resource (fwmask) + /* Firmware currently using resource (fwmask) * or other software thread using resource (swmask) */ e1000e_put_hw_semaphore(hw); @@ -432,8 +316,7 @@ static s32 e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask) if (i == timeout) { e_dbg("Driver can't access resource, SW_FW_SYNC timeout.\n"); - ret_val = -E1000_ERR_SWFW_SYNC; - goto out; + return -E1000_ERR_SWFW_SYNC; } swfw_sync |= swmask; @@ -441,8 +324,7 @@ static s32 e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask) e1000e_put_hw_semaphore(hw); -out: - return ret_val; + return 0; } /** @@ -457,7 +339,7 @@ static void e1000_release_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask) { u32 swfw_sync; - while (e1000e_get_hw_semaphore(hw) != E1000_SUCCESS) + while (e1000e_get_hw_semaphore(hw) != 0) ; /* Empty */ swfw_sync = er32(SW_FW_SYNC); @@ -476,7 +358,7 @@ static void e1000_release_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask) * Read the GG82563 PHY register. **/ static s32 e1000_read_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, - u32 offset, u16 *data) + u32 offset, u16 *data) { s32 ret_val; u32 page_select; @@ -484,14 +366,13 @@ static s32 e1000_read_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, ret_val = e1000_acquire_phy_80003es2lan(hw); if (ret_val) - goto out; + return ret_val; /* Select Configuration Page */ if ((offset & MAX_PHY_REG_ADDRESS) < GG82563_MIN_ALT_REG) { page_select = GG82563_PHY_PAGE_SELECT; } else { - /* - * Use Alternative Page Select register to access + /* Use Alternative Page Select register to access * registers 30 and 31 */ page_select = GG82563_PHY_PAGE_SELECT_ALT; @@ -501,41 +382,39 @@ static s32 e1000_read_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, ret_val = e1000e_write_phy_reg_mdic(hw, page_select, temp); if (ret_val) { e1000_release_phy_80003es2lan(hw); - goto out; + return ret_val; } - if (hw->dev_spec._80003es2lan.mdic_wa_enable == true) { - /* - * The "ready" bit in the MDIC register may be incorrectly set + if (hw->dev_spec.e80003es2lan.mdic_wa_enable) { + /* The "ready" bit in the MDIC register may be incorrectly set * before the device has completed the "Page Select" MDI * transaction. So we wait 200us after each MDI command... */ - udelay(200); + usleep_range(200, 400); /* ...and verify the command was successful. */ ret_val = e1000e_read_phy_reg_mdic(hw, page_select, &temp); if (((u16)offset >> GG82563_PAGE_SHIFT) != temp) { - ret_val = -E1000_ERR_PHY; e1000_release_phy_80003es2lan(hw); - goto out; + return -E1000_ERR_PHY; } - udelay(200); + usleep_range(200, 400); ret_val = e1000e_read_phy_reg_mdic(hw, - MAX_PHY_REG_ADDRESS & offset, - data); + MAX_PHY_REG_ADDRESS & offset, + data); - udelay(200); - } else + usleep_range(200, 400); + } else { ret_val = e1000e_read_phy_reg_mdic(hw, - MAX_PHY_REG_ADDRESS & offset, - data); + MAX_PHY_REG_ADDRESS & offset, + data); + } e1000_release_phy_80003es2lan(hw); -out: return ret_val; } @@ -548,7 +427,7 @@ out: * Write to the GG82563 PHY register. **/ static s32 e1000_write_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, - u32 offset, u16 data) + u32 offset, u16 data) { s32 ret_val; u32 page_select; @@ -556,14 +435,13 @@ static s32 e1000_write_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, ret_val = e1000_acquire_phy_80003es2lan(hw); if (ret_val) - goto out; + return ret_val; /* Select Configuration Page */ if ((offset & MAX_PHY_REG_ADDRESS) < GG82563_MIN_ALT_REG) { page_select = GG82563_PHY_PAGE_SELECT; } else { - /* - * Use Alternative Page Select register to access + /* Use Alternative Page Select register to access * registers 30 and 31 */ page_select = GG82563_PHY_PAGE_SELECT_ALT; @@ -573,41 +451,39 @@ static s32 e1000_write_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, ret_val = e1000e_write_phy_reg_mdic(hw, page_select, temp); if (ret_val) { e1000_release_phy_80003es2lan(hw); - goto out; + return ret_val; } - if (hw->dev_spec._80003es2lan.mdic_wa_enable == true) { - /* - * The "ready" bit in the MDIC register may be incorrectly set + if (hw->dev_spec.e80003es2lan.mdic_wa_enable) { + /* The "ready" bit in the MDIC register may be incorrectly set * before the device has completed the "Page Select" MDI * transaction. So we wait 200us after each MDI command... */ - udelay(200); + usleep_range(200, 400); /* ...and verify the command was successful. */ ret_val = e1000e_read_phy_reg_mdic(hw, page_select, &temp); if (((u16)offset >> GG82563_PAGE_SHIFT) != temp) { - ret_val = -E1000_ERR_PHY; e1000_release_phy_80003es2lan(hw); - goto out; + return -E1000_ERR_PHY; } - udelay(200); + usleep_range(200, 400); ret_val = e1000e_write_phy_reg_mdic(hw, - MAX_PHY_REG_ADDRESS & offset, - data); + MAX_PHY_REG_ADDRESS & + offset, data); - udelay(200); - } else + usleep_range(200, 400); + } else { ret_val = e1000e_write_phy_reg_mdic(hw, - MAX_PHY_REG_ADDRESS & offset, - data); + MAX_PHY_REG_ADDRESS & + offset, data); + } e1000_release_phy_80003es2lan(hw); -out: return ret_val; } @@ -621,7 +497,7 @@ out: * Write "words" of data to the ESB2 NVM. **/ static s32 e1000_write_nvm_80003es2lan(struct e1000_hw *hw, u16 offset, - u16 words, u16 *data) + u16 words, u16 *data) { return e1000e_write_nvm_spi(hw, offset, words, data); } @@ -636,7 +512,6 @@ static s32 e1000_write_nvm_80003es2lan(struct e1000_hw *hw, u16 offset, static s32 e1000_get_cfg_done_80003es2lan(struct e1000_hw *hw) { s32 timeout = PHY_CFG_TIMEOUT; - s32 ret_val = E1000_SUCCESS; u32 mask = E1000_NVM_CFG_DONE_PORT_0; if (hw->bus.func == 1) @@ -645,17 +520,15 @@ static s32 e1000_get_cfg_done_80003es2lan(struct e1000_hw *hw) while (timeout) { if (er32(EEMNGCTL) & mask) break; - msleep(1); + usleep_range(1000, 2000); timeout--; } if (!timeout) { e_dbg("MNG configuration cycle has not completed.\n"); - ret_val = -E1000_ERR_RESET; - goto out; + return -E1000_ERR_RESET; } -out: - return ret_val; + return 0; } /** @@ -667,75 +540,68 @@ out: **/ static s32 e1000_phy_force_speed_duplex_80003es2lan(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 phy_data; bool link; - if (!(hw->phy.ops.read_reg)) - goto out; - - /* - * Clear Auto-Crossover to force MDI manually. M88E1000 requires MDI + /* Clear Auto-Crossover to force MDI manually. M88E1000 requires MDI * forced whenever speed and duplex are forced. */ ret_val = e1e_rphy(hw, M88E1000_PHY_SPEC_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; phy_data &= ~GG82563_PSCR_CROSSOVER_MODE_AUTO; ret_val = e1e_wphy(hw, GG82563_PHY_SPEC_CTRL, phy_data); if (ret_val) - goto out; + return ret_val; e_dbg("GG82563 PSCR: %X\n", phy_data); - ret_val = e1e_rphy(hw, PHY_CONTROL, &phy_data); + ret_val = e1e_rphy(hw, MII_BMCR, &phy_data); if (ret_val) - goto out; + return ret_val; e1000e_phy_force_speed_duplex_setup(hw, &phy_data); /* Reset the phy to commit changes. */ - phy_data |= MII_CR_RESET; + phy_data |= BMCR_RESET; - ret_val = e1e_wphy(hw, PHY_CONTROL, phy_data); + ret_val = e1e_wphy(hw, MII_BMCR, phy_data); if (ret_val) - goto out; + return ret_val; udelay(1); if (hw->phy.autoneg_wait_to_complete) { - e_dbg("Waiting for forced speed/duplex link " - "on GG82563 phy.\n"); + e_dbg("Waiting for forced speed/duplex link on GG82563 phy.\n"); ret_val = e1000e_phy_has_link_generic(hw, PHY_FORCE_LIMIT, - 100000, &link); + 100000, &link); if (ret_val) - goto out; + return ret_val; if (!link) { - /* - * We didn't get link. + /* We didn't get link. * Reset the DSP and cross our fingers. */ ret_val = e1000e_phy_reset_dsp(hw); if (ret_val) - goto out; + return ret_val; } /* Try once more */ ret_val = e1000e_phy_has_link_generic(hw, PHY_FORCE_LIMIT, - 100000, &link); + 100000, &link); if (ret_val) - goto out; + return ret_val; } ret_val = e1e_rphy(hw, GG82563_PHY_MAC_SPEC_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; - /* - * Resetting the phy means we need to verify the TX_CLK corresponds + /* Resetting the phy means we need to verify the TX_CLK corresponds * to the link speed. 10Mbps -> 2.5MHz, else 25MHz. */ phy_data &= ~GG82563_MSCR_TX_CLK_MASK; @@ -744,14 +610,12 @@ static s32 e1000_phy_force_speed_duplex_80003es2lan(struct e1000_hw *hw) else phy_data |= GG82563_MSCR_TX_CLK_100MBPS_25; - /* - * In addition, we must re-enable CRS on Tx for both half and full + /* In addition, we must re-enable CRS on Tx for both half and full * duplex. */ phy_data |= GG82563_MSCR_ASSERT_CRS_ON_TX; ret_val = e1e_wphy(hw, GG82563_PHY_MAC_SPEC_CTRL, phy_data); -out: return ret_val; } @@ -765,30 +629,24 @@ out: static s32 e1000_get_cable_length_80003es2lan(struct e1000_hw *hw) { struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 phy_data, index; - if (!(hw->phy.ops.read_reg)) - goto out; - ret_val = e1e_rphy(hw, GG82563_PHY_DSP_DISTANCE, &phy_data); if (ret_val) - goto out; + return ret_val; index = phy_data & GG82563_DSPD_CABLE_LENGTH; - if (index >= GG82563_CABLE_LENGTH_TABLE_SIZE - 5) { - ret_val = -E1000_ERR_PHY; - goto out; - } + if (index >= GG82563_CABLE_LENGTH_TABLE_SIZE - 5) + return -E1000_ERR_PHY; phy->min_cable_length = e1000_gg82563_cable_length_table[index]; phy->max_cable_length = e1000_gg82563_cable_length_table[index + 5]; phy->cable_length = (phy->min_cable_length + phy->max_cable_length) / 2; -out: - return ret_val; + return 0; } /** @@ -800,19 +658,17 @@ out: * Retrieve the current speed and duplex configuration. **/ static s32 e1000_get_link_up_info_80003es2lan(struct e1000_hw *hw, u16 *speed, - u16 *duplex) + u16 *duplex) { s32 ret_val; if (hw->phy.media_type == e1000_media_type_copper) { - ret_val = e1000e_get_speed_and_duplex_copper(hw, - speed, - duplex); + ret_val = e1000e_get_speed_and_duplex_copper(hw, speed, duplex); hw->phy.ops.cfg_on_link_up(hw); } else { ret_val = e1000e_get_speed_and_duplex_fiber_serdes(hw, - speed, - duplex); + speed, + duplex); } return ret_val; @@ -826,11 +682,11 @@ static s32 e1000_get_link_up_info_80003es2lan(struct e1000_hw *hw, u16 *speed, **/ static s32 e1000_reset_hw_80003es2lan(struct e1000_hw *hw) { - u32 ctrl, icr; + u32 ctrl; s32 ret_val; + u16 kum_reg_data; - /* - * Prevent the PCI-E bus from sticking if there is no TLP connection + /* Prevent the PCI-E bus from sticking if there is no TLP connection * on the last TLP read/write transaction when MAC is reset. */ ret_val = e1000e_disable_pcie_master(hw); @@ -844,28 +700,42 @@ static s32 e1000_reset_hw_80003es2lan(struct e1000_hw *hw) ew32(TCTL, E1000_TCTL_PSP); e1e_flush(); - msleep(10); + usleep_range(10000, 20000); ctrl = er32(CTRL); ret_val = e1000_acquire_phy_80003es2lan(hw); + if (ret_val) + return ret_val; + e_dbg("Issuing a global reset to MAC\n"); ew32(CTRL, ctrl | E1000_CTRL_RST); e1000_release_phy_80003es2lan(hw); + /* Disable IBIST slave mode (far-end loopback) */ + ret_val = e1000_read_kmrn_reg_80003es2lan(hw, + E1000_KMRNCTRLSTA_INBAND_PARAM, + &kum_reg_data); + if (!ret_val) { + kum_reg_data |= E1000_KMRNCTRLSTA_IBIST_DISABLE; + ret_val = e1000_write_kmrn_reg_80003es2lan(hw, + E1000_KMRNCTRLSTA_INBAND_PARAM, + kum_reg_data); + if (ret_val) + e_dbg("Error disabling far-end loopback\n"); + } else + e_dbg("Error disabling far-end loopback\n"); + ret_val = e1000e_get_auto_rd_done(hw); if (ret_val) /* We don't want to continue accessing MAC registers. */ - goto out; + return ret_val; /* Clear any pending interrupt events. */ ew32(IMC, 0xffffffff); - icr = er32(ICR); + er32(ICR); - ret_val = e1000_check_alt_mac_addr_generic(hw); - -out: - return ret_val; + return e1000_check_alt_mac_addr_generic(hw); } /** @@ -879,20 +749,20 @@ static s32 e1000_init_hw_80003es2lan(struct e1000_hw *hw) struct e1000_mac_info *mac = &hw->mac; u32 reg_data; s32 ret_val; + u16 kum_reg_data; u16 i; e1000_initialize_hw_bits_80003es2lan(hw); /* Initialize identification LED */ ret_val = mac->ops.id_led_init(hw); - if (ret_val) { + /* An error is not fatal and we should not stop init due to this */ + if (ret_val) e_dbg("Error initializing identification LED\n"); - /* This is not fatal and we should not stop init due to this */ - } /* Disabling VLAN filtering */ e_dbg("Initializing the IEEE VLAN\n"); - e1000e_clear_vfta(hw); + mac->ops.clear_vfta(hw); /* Setup the receive address. */ e1000e_init_rx_addrs(hw, mac->rar_entry_count); @@ -904,17 +774,33 @@ static s32 e1000_init_hw_80003es2lan(struct e1000_hw *hw) /* Setup link and flow control */ ret_val = mac->ops.setup_link(hw); + if (ret_val) + return ret_val; + + /* Disable IBIST slave mode (far-end loopback) */ + ret_val = + e1000_read_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM, + &kum_reg_data); + if (!ret_val) { + kum_reg_data |= E1000_KMRNCTRLSTA_IBIST_DISABLE; + ret_val = e1000_write_kmrn_reg_80003es2lan(hw, + E1000_KMRNCTRLSTA_INBAND_PARAM, + kum_reg_data); + if (ret_val) + e_dbg("Error disabling far-end loopback\n"); + } else + e_dbg("Error disabling far-end loopback\n"); /* Set the transmit descriptor write-back policy */ reg_data = er32(TXDCTL(0)); - reg_data = (reg_data & ~E1000_TXDCTL_WTHRESH) | - E1000_TXDCTL_FULL_TX_DESC_WB | E1000_TXDCTL_COUNT_DESC; + reg_data = ((reg_data & ~E1000_TXDCTL_WTHRESH) | + E1000_TXDCTL_FULL_TX_DESC_WB | E1000_TXDCTL_COUNT_DESC); ew32(TXDCTL(0), reg_data); /* ...for both queues. */ reg_data = er32(TXDCTL(1)); - reg_data = (reg_data & ~E1000_TXDCTL_WTHRESH) | - E1000_TXDCTL_FULL_TX_DESC_WB | E1000_TXDCTL_COUNT_DESC; + reg_data = ((reg_data & ~E1000_TXDCTL_WTHRESH) | + E1000_TXDCTL_FULL_TX_DESC_WB | E1000_TXDCTL_COUNT_DESC); ew32(TXDCTL(1), reg_data); /* Enable retransmit on late collisions */ @@ -939,20 +825,18 @@ static s32 e1000_init_hw_80003es2lan(struct e1000_hw *hw) E1000_WRITE_REG_ARRAY(hw, E1000_FFLT, 0x0001, reg_data); /* default to true to enable the MDIC W/A */ - hw->dev_spec._80003es2lan.mdic_wa_enable = true; + hw->dev_spec.e80003es2lan.mdic_wa_enable = true; - ret_val = e1000_read_kmrn_reg_80003es2lan(hw, - E1000_KMRNCTRLSTA_OFFSET >> - E1000_KMRNCTRLSTA_OFFSET_SHIFT, - &i); + ret_val = + e1000_read_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_OFFSET >> + E1000_KMRNCTRLSTA_OFFSET_SHIFT, &i); if (!ret_val) { if ((i & E1000_KMRNCTRLSTA_OPMODE_MASK) == - E1000_KMRNCTRLSTA_OPMODE_INBAND_MDIO) - hw->dev_spec._80003es2lan.mdic_wa_enable = false; + E1000_KMRNCTRLSTA_OPMODE_INBAND_MDIO) + hw->dev_spec.e80003es2lan.mdic_wa_enable = false; } - /* - * Clear all of the statistics registers (clear on read). It is + /* Clear all of the statistics registers (clear on read). It is * important that we do this after we have tried to establish link * because the symbol error count will increment wildly if there * is no link. @@ -984,7 +868,7 @@ static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw) /* Transmit Arbitration Control 0 */ reg = er32(TARC(0)); - reg &= ~(0xF << 27); /* 30:27 */ + reg &= ~(0xF << 27); /* 30:27 */ if (hw->phy.media_type != e1000_media_type_copper) reg &= ~(1 << 20); ew32(TARC(0), reg); @@ -997,15 +881,12 @@ static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw) reg |= (1 << 28); ew32(TARC(1), reg); - /* - * Disable IPv6 extension header parsing because some malformed + /* Disable IPv6 extension header parsing because some malformed * IPv6 headers can hang the Rx. */ reg = er32(RFCTL); reg |= (E1000_RFCTL_IPV6_EX_DIS | E1000_RFCTL_NEW_IPV6_EXT_DIS); ew32(RFCTL, reg); - - return; } /** @@ -1018,152 +899,136 @@ static s32 e1000_copper_link_setup_gg82563_80003es2lan(struct e1000_hw *hw) { struct e1000_phy_info *phy = &hw->phy; s32 ret_val; - u32 ctrl_ext; + u32 reg; u16 data; - if (!phy->reset_disable) { - ret_val = e1e_rphy(hw, GG82563_PHY_MAC_SPEC_CTRL, - &data); - if (ret_val) - goto out; + ret_val = e1e_rphy(hw, GG82563_PHY_MAC_SPEC_CTRL, &data); + if (ret_val) + return ret_val; - data |= GG82563_MSCR_ASSERT_CRS_ON_TX; - /* Use 25MHz for both link down and 1000Base-T for Tx clock. */ - data |= GG82563_MSCR_TX_CLK_1000MBPS_25; + data |= GG82563_MSCR_ASSERT_CRS_ON_TX; + /* Use 25MHz for both link down and 1000Base-T for Tx clock. */ + data |= GG82563_MSCR_TX_CLK_1000MBPS_25; - ret_val = e1e_wphy(hw, GG82563_PHY_MAC_SPEC_CTRL, - data); - if (ret_val) - goto out; - - /* - * Options: - * MDI/MDI-X = 0 (default) - * 0 - Auto for all speeds - * 1 - MDI mode - * 2 - MDI-X mode - * 3 - Auto for 1000Base-T only (MDI-X for 10/100Base-T modes) - */ - ret_val = e1e_rphy(hw, GG82563_PHY_SPEC_CTRL, &data); - if (ret_val) - goto out; - - data &= ~GG82563_PSCR_CROSSOVER_MODE_MASK; + ret_val = e1e_wphy(hw, GG82563_PHY_MAC_SPEC_CTRL, data); + if (ret_val) + return ret_val; + + /* Options: + * MDI/MDI-X = 0 (default) + * 0 - Auto for all speeds + * 1 - MDI mode + * 2 - MDI-X mode + * 3 - Auto for 1000Base-T only (MDI-X for 10/100Base-T modes) + */ + ret_val = e1e_rphy(hw, GG82563_PHY_SPEC_CTRL, &data); + if (ret_val) + return ret_val; - switch (phy->mdix) { - case 1: - data |= GG82563_PSCR_CROSSOVER_MODE_MDI; - break; - case 2: - data |= GG82563_PSCR_CROSSOVER_MODE_MDIX; - break; - case 0: - default: - data |= GG82563_PSCR_CROSSOVER_MODE_AUTO; - break; - } + data &= ~GG82563_PSCR_CROSSOVER_MODE_MASK; - /* - * Options: - * disable_polarity_correction = 0 (default) - * Automatic Correction for Reversed Cable Polarity - * 0 - Disabled - * 1 - Enabled - */ - data &= ~GG82563_PSCR_POLARITY_REVERSAL_DISABLE; - if (phy->disable_polarity_correction) - data |= GG82563_PSCR_POLARITY_REVERSAL_DISABLE; + switch (phy->mdix) { + case 1: + data |= GG82563_PSCR_CROSSOVER_MODE_MDI; + break; + case 2: + data |= GG82563_PSCR_CROSSOVER_MODE_MDIX; + break; + case 0: + default: + data |= GG82563_PSCR_CROSSOVER_MODE_AUTO; + break; + } - ret_val = e1e_wphy(hw, GG82563_PHY_SPEC_CTRL, data); - if (ret_val) - goto out; + /* Options: + * disable_polarity_correction = 0 (default) + * Automatic Correction for Reversed Cable Polarity + * 0 - Disabled + * 1 - Enabled + */ + data &= ~GG82563_PSCR_POLARITY_REVERSAL_DISABLE; + if (phy->disable_polarity_correction) + data |= GG82563_PSCR_POLARITY_REVERSAL_DISABLE; - /* SW Reset the PHY so all changes take effect */ - ret_val = e1000e_commit_phy(hw); - if (ret_val) { - e_dbg("Error Resetting the PHY\n"); - goto out; - } + ret_val = e1e_wphy(hw, GG82563_PHY_SPEC_CTRL, data); + if (ret_val) + return ret_val; + /* SW Reset the PHY so all changes take effect */ + ret_val = hw->phy.ops.commit(hw); + if (ret_val) { + e_dbg("Error Resetting the PHY\n"); + return ret_val; } /* Bypass Rx and Tx FIFO's */ - ret_val = e1000_write_kmrn_reg_80003es2lan(hw, - E1000_KMRNCTRLSTA_OFFSET_FIFO_CTRL, - E1000_KMRNCTRLSTA_FIFO_CTRL_RX_BYPASS | - E1000_KMRNCTRLSTA_FIFO_CTRL_TX_BYPASS); + reg = E1000_KMRNCTRLSTA_OFFSET_FIFO_CTRL; + data = (E1000_KMRNCTRLSTA_FIFO_CTRL_RX_BYPASS | + E1000_KMRNCTRLSTA_FIFO_CTRL_TX_BYPASS); + ret_val = e1000_write_kmrn_reg_80003es2lan(hw, reg, data); if (ret_val) - goto out; + return ret_val; - ret_val = e1000_read_kmrn_reg_80003es2lan(hw, - E1000_KMRNCTRLSTA_OFFSET_MAC2PHY_OPMODE, - &data); + reg = E1000_KMRNCTRLSTA_OFFSET_MAC2PHY_OPMODE; + ret_val = e1000_read_kmrn_reg_80003es2lan(hw, reg, &data); if (ret_val) - goto out; + return ret_val; data |= E1000_KMRNCTRLSTA_OPMODE_E_IDLE; - ret_val = e1000_write_kmrn_reg_80003es2lan(hw, - E1000_KMRNCTRLSTA_OFFSET_MAC2PHY_OPMODE, - data); + ret_val = e1000_write_kmrn_reg_80003es2lan(hw, reg, data); if (ret_val) - goto out; + return ret_val; ret_val = e1e_rphy(hw, GG82563_PHY_SPEC_CTRL_2, &data); if (ret_val) - goto out; + return ret_val; data &= ~GG82563_PSCR2_REVERSE_AUTO_NEG; ret_val = e1e_wphy(hw, GG82563_PHY_SPEC_CTRL_2, data); if (ret_val) - goto out; + return ret_val; - ctrl_ext = er32(CTRL_EXT); - ctrl_ext &= ~(E1000_CTRL_EXT_LINK_MODE_MASK); - ew32(CTRL_EXT, ctrl_ext); + reg = er32(CTRL_EXT); + reg &= ~E1000_CTRL_EXT_LINK_MODE_MASK; + ew32(CTRL_EXT, reg); ret_val = e1e_rphy(hw, GG82563_PHY_PWR_MGMT_CTRL, &data); if (ret_val) - goto out; + return ret_val; - /* - * Do not init these registers when the HW is in IAMT mode, since the + /* Do not init these registers when the HW is in IAMT mode, since the * firmware will have already initialized them. We only initialize * them if the HW is not in IAMT mode. */ - if (!(hw->mac.ops.check_mng_mode(hw))) { + if (!hw->mac.ops.check_mng_mode(hw)) { /* Enable Electrical Idle on the PHY */ data |= GG82563_PMCR_ENABLE_ELECTRICAL_IDLE; - ret_val = e1e_wphy(hw, GG82563_PHY_PWR_MGMT_CTRL, - data); + ret_val = e1e_wphy(hw, GG82563_PHY_PWR_MGMT_CTRL, data); if (ret_val) - goto out; + return ret_val; - ret_val = e1e_rphy(hw, GG82563_PHY_KMRN_MODE_CTRL, - &data); + ret_val = e1e_rphy(hw, GG82563_PHY_KMRN_MODE_CTRL, &data); if (ret_val) - goto out; + return ret_val; data &= ~GG82563_KMCR_PASS_FALSE_CARRIER; - ret_val = e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, - data); + ret_val = e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, data); if (ret_val) - goto out; + return ret_val; } - /* - * Workaround: Disable padding in Kumeran interface in the MAC + /* Workaround: Disable padding in Kumeran interface in the MAC * and in the PHY to avoid CRC errors. */ ret_val = e1e_rphy(hw, GG82563_PHY_INBAND_CTRL, &data); if (ret_val) - goto out; + return ret_val; data |= GG82563_ICR_DIS_PADDING; ret_val = e1e_wphy(hw, GG82563_PHY_INBAND_CTRL, data); if (ret_val) - goto out; + return ret_val; -out: - return ret_val; + return 0; } /** @@ -1184,44 +1049,42 @@ static s32 e1000_setup_copper_link_80003es2lan(struct e1000_hw *hw) ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX); ew32(CTRL, ctrl); - /* - * Set the mac to wait the maximum time between each + /* Set the mac to wait the maximum time between each * iteration and increase the max iterations when * polling the phy; this fixes erroneous timeouts at 10Mbps. */ ret_val = e1000_write_kmrn_reg_80003es2lan(hw, GG82563_REG(0x34, 4), - 0xFFFF); + 0xFFFF); if (ret_val) - goto out; + return ret_val; ret_val = e1000_read_kmrn_reg_80003es2lan(hw, GG82563_REG(0x34, 9), - ®_data); + ®_data); if (ret_val) - goto out; + return ret_val; reg_data |= 0x3F; ret_val = e1000_write_kmrn_reg_80003es2lan(hw, GG82563_REG(0x34, 9), - reg_data); + reg_data); if (ret_val) - goto out; - ret_val = e1000_read_kmrn_reg_80003es2lan(hw, - E1000_KMRNCTRLSTA_OFFSET_INB_CTRL, - ®_data); + return ret_val; + ret_val = + e1000_read_kmrn_reg_80003es2lan(hw, + E1000_KMRNCTRLSTA_OFFSET_INB_CTRL, + ®_data); if (ret_val) - goto out; + return ret_val; reg_data |= E1000_KMRNCTRLSTA_INB_CTRL_DIS_PADDING; - ret_val = e1000_write_kmrn_reg_80003es2lan(hw, - E1000_KMRNCTRLSTA_OFFSET_INB_CTRL, - reg_data); + ret_val = + e1000_write_kmrn_reg_80003es2lan(hw, + E1000_KMRNCTRLSTA_OFFSET_INB_CTRL, + reg_data); if (ret_val) - goto out; + return ret_val; ret_val = e1000_copper_link_setup_gg82563_80003es2lan(hw); if (ret_val) - goto out; - - ret_val = e1000e_setup_copper_link(hw); + return ret_val; -out: - return ret_val; + return e1000e_setup_copper_link(hw); } /** @@ -1234,16 +1097,15 @@ out: **/ static s32 e1000_cfg_on_link_up_80003es2lan(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val = 0; u16 speed; u16 duplex; if (hw->phy.media_type == e1000_media_type_copper) { - ret_val = e1000e_get_speed_and_duplex_copper(hw, - &speed, - &duplex); + ret_val = e1000e_get_speed_and_duplex_copper(hw, &speed, + &duplex); if (ret_val) - goto out; + return ret_val; if (speed == SPEED_1000) ret_val = e1000_cfg_kmrn_1000_80003es2lan(hw); @@ -1251,7 +1113,6 @@ static s32 e1000_cfg_on_link_up_80003es2lan(struct e1000_hw *hw) ret_val = e1000_cfg_kmrn_10_100_80003es2lan(hw, duplex); } -out: return ret_val; } @@ -1265,17 +1126,18 @@ out: **/ static s32 e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw, u16 duplex) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u32 tipg; u32 i = 0; u16 reg_data, reg_data2; reg_data = E1000_KMRNCTRLSTA_HD_CTRL_10_100_DEFAULT; - ret_val = e1000_write_kmrn_reg_80003es2lan(hw, - E1000_KMRNCTRLSTA_OFFSET_HD_CTRL, - reg_data); + ret_val = + e1000_write_kmrn_reg_80003es2lan(hw, + E1000_KMRNCTRLSTA_OFFSET_HD_CTRL, + reg_data); if (ret_val) - goto out; + return ret_val; /* Configure Transmit Inter-Packet Gap */ tipg = er32(TIPG); @@ -1283,17 +1145,14 @@ static s32 e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw, u16 duplex) tipg |= DEFAULT_TIPG_IPGT_10_100_80003ES2LAN; ew32(TIPG, tipg); - do { - ret_val = e1e_rphy(hw, GG82563_PHY_KMRN_MODE_CTRL, - ®_data); + ret_val = e1e_rphy(hw, GG82563_PHY_KMRN_MODE_CTRL, ®_data); if (ret_val) - goto out; + return ret_val; - ret_val = e1e_rphy(hw, GG82563_PHY_KMRN_MODE_CTRL, - ®_data2); + ret_val = e1e_rphy(hw, GG82563_PHY_KMRN_MODE_CTRL, ®_data2); if (ret_val) - goto out; + return ret_val; i++; } while ((reg_data != reg_data2) && (i < GG82563_MAX_KMRN_RETRY)); @@ -1302,10 +1161,7 @@ static s32 e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw, u16 duplex) else reg_data &= ~GG82563_KMCR_PASS_FALSE_CARRIER; - ret_val = e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, reg_data); - -out: - return ret_val; + return e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, reg_data); } /** @@ -1317,17 +1173,18 @@ out: **/ static s32 e1000_cfg_kmrn_1000_80003es2lan(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 reg_data, reg_data2; u32 tipg; u32 i = 0; reg_data = E1000_KMRNCTRLSTA_HD_CTRL_1000_DEFAULT; - ret_val = e1000_write_kmrn_reg_80003es2lan(hw, - E1000_KMRNCTRLSTA_OFFSET_HD_CTRL, - reg_data); + ret_val = + e1000_write_kmrn_reg_80003es2lan(hw, + E1000_KMRNCTRLSTA_OFFSET_HD_CTRL, + reg_data); if (ret_val) - goto out; + return ret_val; /* Configure Transmit Inter-Packet Gap */ tipg = er32(TIPG); @@ -1335,25 +1192,20 @@ static s32 e1000_cfg_kmrn_1000_80003es2lan(struct e1000_hw *hw) tipg |= DEFAULT_TIPG_IPGT_1000_80003ES2LAN; ew32(TIPG, tipg); - do { - ret_val = e1e_rphy(hw, GG82563_PHY_KMRN_MODE_CTRL, - ®_data); + ret_val = e1e_rphy(hw, GG82563_PHY_KMRN_MODE_CTRL, ®_data); if (ret_val) - goto out; + return ret_val; - ret_val = e1e_rphy(hw, GG82563_PHY_KMRN_MODE_CTRL, - ®_data2); + ret_val = e1e_rphy(hw, GG82563_PHY_KMRN_MODE_CTRL, ®_data2); if (ret_val) - goto out; + return ret_val; i++; } while ((reg_data != reg_data2) && (i < GG82563_MAX_KMRN_RETRY)); reg_data &= ~GG82563_KMCR_PASS_FALSE_CARRIER; - ret_val = e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, reg_data); -out: - return ret_val; + return e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, reg_data); } /** @@ -1367,18 +1219,19 @@ out: * Release the semaphore before exiting. **/ static s32 e1000_read_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, - u16 *data) + u16 *data) { u32 kmrnctrlsta; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; ret_val = e1000_acquire_mac_csr_80003es2lan(hw); if (ret_val) - goto out; + return ret_val; kmrnctrlsta = ((offset << E1000_KMRNCTRLSTA_OFFSET_SHIFT) & - E1000_KMRNCTRLSTA_OFFSET) | E1000_KMRNCTRLSTA_REN; + E1000_KMRNCTRLSTA_OFFSET) | E1000_KMRNCTRLSTA_REN; ew32(KMRNCTRLSTA, kmrnctrlsta); + e1e_flush(); udelay(2); @@ -1387,7 +1240,6 @@ static s32 e1000_read_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, e1000_release_mac_csr_80003es2lan(hw); -out: return ret_val; } @@ -1402,24 +1254,24 @@ out: * before exiting. **/ static s32 e1000_write_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, - u16 data) + u16 data) { u32 kmrnctrlsta; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; ret_val = e1000_acquire_mac_csr_80003es2lan(hw); if (ret_val) - goto out; + return ret_val; kmrnctrlsta = ((offset << E1000_KMRNCTRLSTA_OFFSET_SHIFT) & - E1000_KMRNCTRLSTA_OFFSET) | data; + E1000_KMRNCTRLSTA_OFFSET) | data; ew32(KMRNCTRLSTA, kmrnctrlsta); + e1e_flush(); udelay(2); e1000_release_mac_csr_80003es2lan(hw); -out: return ret_val; } @@ -1429,21 +1281,17 @@ out: **/ static s32 e1000_read_mac_addr_80003es2lan(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val; - /* - * If there's an alternate MAC address place it in RAR0 + /* If there's an alternate MAC address place it in RAR0 * so that it will override the Si installed default perm * address. */ ret_val = e1000_check_alt_mac_addr_generic(hw); if (ret_val) - goto out; + return ret_val; - ret_val = e1000e_read_mac_addr_generic(hw); - -out: - return ret_val; + return e1000_read_mac_addr_generic(hw); } /** @@ -1457,10 +1305,8 @@ static void e1000_power_down_phy_copper_80003es2lan(struct e1000_hw *hw) { /* If the management interface is not enabled, then power down */ if (!(hw->mac.ops.check_mng_mode(hw) || - e1000_check_reset_block(hw))) + hw->phy.ops.check_reset_block(hw))) e1000_power_down_phy_copper(hw); - - return; } /** @@ -1508,3 +1354,82 @@ static void e1000_clear_hw_cntrs_80003es2lan(struct e1000_hw *hw) er32(ICTXQMTC); er32(ICRXDMTC); } + +static const struct e1000_mac_operations es2_mac_ops = { + .read_mac_addr = e1000_read_mac_addr_80003es2lan, + .id_led_init = e1000e_id_led_init_generic, + .blink_led = e1000e_blink_led_generic, + .check_mng_mode = e1000e_check_mng_mode_generic, + /* check_for_link dependent on media type */ + .cleanup_led = e1000e_cleanup_led_generic, + .clear_hw_cntrs = e1000_clear_hw_cntrs_80003es2lan, + .get_bus_info = e1000e_get_bus_info_pcie, + .set_lan_id = e1000_set_lan_id_multi_port_pcie, + .get_link_up_info = e1000_get_link_up_info_80003es2lan, + .led_on = e1000e_led_on_generic, + .led_off = e1000e_led_off_generic, + .update_mc_addr_list = e1000e_update_mc_addr_list_generic, + .write_vfta = e1000_write_vfta_generic, + .clear_vfta = e1000_clear_vfta_generic, + .reset_hw = e1000_reset_hw_80003es2lan, + .init_hw = e1000_init_hw_80003es2lan, + .setup_link = e1000e_setup_link_generic, + /* setup_physical_interface dependent on media type */ + .setup_led = e1000e_setup_led_generic, + .config_collision_dist = e1000e_config_collision_dist_generic, + .rar_set = e1000e_rar_set_generic, + .rar_get_count = e1000e_rar_get_count_generic, + .validate_mdi_setting = e1000e_validate_mdi_setting_generic, +}; + +static const struct e1000_phy_operations es2_phy_ops = { + .acquire = e1000_acquire_phy_80003es2lan, + .check_polarity = e1000_check_polarity_m88, + .check_reset_block = e1000e_check_reset_block_generic, + .commit = e1000e_phy_sw_reset, + .force_speed_duplex = e1000_phy_force_speed_duplex_80003es2lan, + .get_cfg_done = e1000_get_cfg_done_80003es2lan, + .get_cable_length = e1000_get_cable_length_80003es2lan, + .get_info = e1000e_get_phy_info_m88, + .read_reg = e1000_read_phy_reg_gg82563_80003es2lan, + .release = e1000_release_phy_80003es2lan, + .reset = e1000e_phy_hw_reset_generic, + .set_d0_lplu_state = NULL, + .set_d3_lplu_state = e1000e_set_d3_lplu_state, + .write_reg = e1000_write_phy_reg_gg82563_80003es2lan, + .cfg_on_link_up = e1000_cfg_on_link_up_80003es2lan, +}; + +static const struct e1000_nvm_operations es2_nvm_ops = { + .acquire = e1000_acquire_nvm_80003es2lan, + .read = e1000e_read_nvm_eerd, + .release = e1000_release_nvm_80003es2lan, + .reload = e1000e_reload_nvm_generic, + .update = e1000e_update_nvm_checksum_generic, + .valid_led_default = e1000e_valid_led_default, + .validate = e1000e_validate_nvm_checksum_generic, + .write = e1000_write_nvm_80003es2lan, +}; + +const struct e1000_info e1000_es2_info = { + .mac = e1000_80003es2lan, + .flags = FLAG_HAS_HW_VLAN_FILTER + | FLAG_HAS_JUMBO_FRAMES + | FLAG_HAS_WOL + | FLAG_APME_IN_CTRL3 +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_RX_NEEDS_RESTART /* errata */ + | FLAG_TARC_SET_BIT_ZERO /* errata */ + | FLAG_APME_CHECK_PORT_B + | FLAG_DISABLE_FC_PAUSE_TIME, /* errata */ + .flags2 = FLAG2_DMA_BURST, + .pba = 38, + .max_hw_frame_size = DEFAULT_JUMBO, + .get_variants = e1000_get_variants_80003es2lan, + .mac_ops = &es2_mac_ops, + .phy_ops = &es2_phy_ops, + .nvm_ops = &es2_nvm_ops, +}; diff --git a/vmkdrivers/src_9/drivers/net/e1000e/80003es2lan.h b/vmkdrivers/src_9/drivers/net/e1000e/80003es2lan.h new file mode 100644 index 0000000000000000000000000000000000000000..1cc100f720a42cb5b377d26d59b30e3154e010f2 --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/80003es2lan.h @@ -0,0 +1,89 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +#ifndef _E1000E_80003ES2LAN_H_ +#define _E1000E_80003ES2LAN_H_ + +#define E1000_KMRNCTRLSTA_OFFSET_FIFO_CTRL 0x00 +#define E1000_KMRNCTRLSTA_OFFSET_INB_CTRL 0x02 +#define E1000_KMRNCTRLSTA_OFFSET_HD_CTRL 0x10 +#define E1000_KMRNCTRLSTA_OFFSET_MAC2PHY_OPMODE 0x1F + +#define E1000_KMRNCTRLSTA_FIFO_CTRL_RX_BYPASS 0x0008 +#define E1000_KMRNCTRLSTA_FIFO_CTRL_TX_BYPASS 0x0800 +#define E1000_KMRNCTRLSTA_INB_CTRL_DIS_PADDING 0x0010 + +#define E1000_KMRNCTRLSTA_HD_CTRL_10_100_DEFAULT 0x0004 +#define E1000_KMRNCTRLSTA_HD_CTRL_1000_DEFAULT 0x0000 +#define E1000_KMRNCTRLSTA_OPMODE_E_IDLE 0x2000 + +#define E1000_KMRNCTRLSTA_OPMODE_MASK 0x000C +#define E1000_KMRNCTRLSTA_OPMODE_INBAND_MDIO 0x0004 + +#define E1000_TCTL_EXT_GCEX_MASK 0x000FFC00 /* Gig Carry Extend Padding */ +#define DEFAULT_TCTL_EXT_GCEX_80003ES2LAN 0x00010000 + +#define DEFAULT_TIPG_IPGT_1000_80003ES2LAN 0x8 +#define DEFAULT_TIPG_IPGT_10_100_80003ES2LAN 0x9 + +/* GG82563 PHY Specific Status Register (Page 0, Register 16 */ +#define GG82563_PSCR_POLARITY_REVERSAL_DISABLE 0x0002 /* 1=Reversal Dis */ +#define GG82563_PSCR_CROSSOVER_MODE_MASK 0x0060 +#define GG82563_PSCR_CROSSOVER_MODE_MDI 0x0000 /* 00=Manual MDI */ +#define GG82563_PSCR_CROSSOVER_MODE_MDIX 0x0020 /* 01=Manual MDIX */ +#define GG82563_PSCR_CROSSOVER_MODE_AUTO 0x0060 /* 11=Auto crossover */ + +/* PHY Specific Control Register 2 (Page 0, Register 26) */ +#define GG82563_PSCR2_REVERSE_AUTO_NEG 0x2000 /* 1=Reverse Auto-Neg */ + +/* MAC Specific Control Register (Page 2, Register 21) */ +/* Tx clock speed for Link Down and 1000BASE-T for the following speeds */ +#define GG82563_MSCR_TX_CLK_MASK 0x0007 +#define GG82563_MSCR_TX_CLK_10MBPS_2_5 0x0004 +#define GG82563_MSCR_TX_CLK_100MBPS_25 0x0005 +#define GG82563_MSCR_TX_CLK_1000MBPS_25 0x0007 + +#define GG82563_MSCR_ASSERT_CRS_ON_TX 0x0010 /* 1=Assert */ + +/* DSP Distance Register (Page 5, Register 26) + * 0 = <50M + * 1 = 50-80M + * 2 = 80-100M + * 3 = 110-140M + * 4 = >140M + */ +#define GG82563_DSPD_CABLE_LENGTH 0x0007 + +/* Kumeran Mode Control Register (Page 193, Register 16) */ +#define GG82563_KMCR_PASS_FALSE_CARRIER 0x0800 + +/* Max number of times Kumeran read/write should be validated */ +#define GG82563_MAX_KMRN_RETRY 0x5 + +/* Power Management Control Register (Page 193, Register 20) */ +/* 1=Enable SERDES Electrical Idle */ +#define GG82563_PMCR_ENABLE_ELECTRICAL_IDLE 0x0001 + +/* In-Band Control Register (Page 194, Register 18) */ +#define GG82563_ICR_DIS_PADDING 0x0010 /* Disable Padding */ + +#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_82571.c b/vmkdrivers/src_9/drivers/net/e1000e/82571.c similarity index 55% rename from vmkdrivers/src_9/drivers/net/e1000e/e1000_82571.c rename to vmkdrivers/src_9/drivers/net/e1000e/82571.c index 7b7b13ab4590e4229f609fe18ff79a32e4def982..38e4943d7c4afcf4f17d5f0f9f6c2fd3959e4d8e 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_82571.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/82571.c @@ -1,33 +1,26 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - /* - * 82571EB Gigabit Ethernet Controller + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +/* 82571EB Gigabit Ethernet Controller * 82571EB Gigabit Ethernet Controller (Copper) * 82571EB Gigabit Ethernet Controller (Fiber) * 82571EB Dual Port Gigabit Mezzanine Adapter @@ -40,44 +33,29 @@ * 82573E Gigabit Ethernet Controller (Copper) * 82573L Gigabit Ethernet Controller * 82574L Gigabit Network Connection - * 82574L Gigabit Network Connection * 82583V Gigabit Network Connection */ #include "e1000.h" -static s32 e1000_init_phy_params_82571(struct e1000_hw *hw); -static s32 e1000_init_nvm_params_82571(struct e1000_hw *hw); -static s32 e1000_init_mac_params_82571(struct e1000_hw *hw); -static s32 e1000_acquire_nvm_82571(struct e1000_hw *hw); -static void e1000_release_nvm_82571(struct e1000_hw *hw); -static s32 e1000_write_nvm_82571(struct e1000_hw *hw, u16 offset, - u16 words, u16 *data); -static s32 e1000_update_nvm_checksum_82571(struct e1000_hw *hw); -static s32 e1000_validate_nvm_checksum_82571(struct e1000_hw *hw); -static s32 e1000_get_cfg_done_82571(struct e1000_hw *hw); -static s32 e1000_set_d0_lplu_state_82571(struct e1000_hw *hw, - bool active); -static s32 e1000_reset_hw_82571(struct e1000_hw *hw); -static s32 e1000_init_hw_82571(struct e1000_hw *hw); -static void e1000_clear_vfta_82571(struct e1000_hw *hw); +static s32 e1000_get_phy_id_82571(struct e1000_hw *hw); +static s32 e1000_setup_copper_link_82571(struct e1000_hw *hw); +static s32 e1000_setup_fiber_serdes_link_82571(struct e1000_hw *hw); +static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw); +static s32 e1000_write_nvm_eewr_82571(struct e1000_hw *hw, u16 offset, + u16 words, u16 *data); +static s32 e1000_fix_nvm_checksum_82571(struct e1000_hw *hw); +static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw); +static void e1000_clear_hw_cntrs_82571(struct e1000_hw *hw); static bool e1000_check_mng_mode_82574(struct e1000_hw *hw); static s32 e1000_led_on_82574(struct e1000_hw *hw); -static s32 e1000_setup_link_82571(struct e1000_hw *hw); -static s32 e1000_setup_copper_link_82571(struct e1000_hw *hw); -static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw); -static s32 e1000_setup_fiber_serdes_link_82571(struct e1000_hw *hw); -static s32 e1000_valid_led_default_82571(struct e1000_hw *hw, u16 *data); -static void e1000_clear_hw_cntrs_82571(struct e1000_hw *hw); -static s32 e1000_get_hw_semaphore_82571(struct e1000_hw *hw); -static s32 e1000_fix_nvm_checksum_82571(struct e1000_hw *hw); -static s32 e1000_get_phy_id_82571(struct e1000_hw *hw); static void e1000_put_hw_semaphore_82571(struct e1000_hw *hw); -static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw); -static s32 e1000_write_nvm_eewr_82571(struct e1000_hw *hw, u16 offset, - u16 words, u16 *data); -static s32 e1000_read_mac_addr_82571(struct e1000_hw *hw); static void e1000_power_down_phy_copper_82571(struct e1000_hw *hw); +static void e1000_put_hw_semaphore_82573(struct e1000_hw *hw); +static s32 e1000_get_hw_semaphore_82574(struct e1000_hw *hw); +static void e1000_put_hw_semaphore_82574(struct e1000_hw *hw); +static s32 e1000_set_d0_lplu_state_82574(struct e1000_hw *hw, bool active); +static s32 e1000_set_d3_lplu_state_82574(struct e1000_hw *hw, bool active); /** * e1000_init_phy_params_82571 - Init PHY func ptrs. @@ -86,94 +64,72 @@ static void e1000_power_down_phy_copper_82571(struct e1000_hw *hw); static s32 e1000_init_phy_params_82571(struct e1000_hw *hw) { struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; if (hw->phy.media_type != e1000_media_type_copper) { phy->type = e1000_phy_none; - goto out; + return 0; } - phy->addr = 1; - phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; - phy->reset_delay_us = 100; + phy->addr = 1; + phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; + phy->reset_delay_us = 100; - phy->ops.acquire = e1000_get_hw_semaphore_82571; - phy->ops.check_polarity = e1000_check_polarity_igp; - phy->ops.check_reset_block = e1000e_check_reset_block_generic; - phy->ops.release = e1000_put_hw_semaphore_82571; - phy->ops.reset = e1000e_phy_hw_reset_generic; - phy->ops.set_d0_lplu_state = e1000_set_d0_lplu_state_82571; - phy->ops.set_d3_lplu_state = e1000e_set_d3_lplu_state; - phy->ops.power_up = e1000_power_up_phy_copper; - phy->ops.power_down = e1000_power_down_phy_copper_82571; + phy->ops.power_up = e1000_power_up_phy_copper; + phy->ops.power_down = e1000_power_down_phy_copper_82571; switch (hw->mac.type) { case e1000_82571: case e1000_82572: - phy->type = e1000_phy_igp_2; - phy->ops.get_cfg_done = e1000_get_cfg_done_82571; - phy->ops.get_info = e1000e_get_phy_info_igp; - phy->ops.force_speed_duplex = e1000e_phy_force_speed_duplex_igp; - phy->ops.get_cable_length = e1000e_get_cable_length_igp_2; - phy->ops.read_reg = e1000e_read_phy_reg_igp; - phy->ops.write_reg = e1000e_write_phy_reg_igp; - - /* This uses above function pointers */ - ret_val = e1000_get_phy_id_82571(hw); - - /* Verify PHY ID */ - if (phy->id != IGP01E1000_I_PHY_ID) { + phy->type = e1000_phy_igp_2; + break; + case e1000_82573: + phy->type = e1000_phy_m88; + break; + case e1000_82574: + case e1000_82583: + phy->type = e1000_phy_bm; + phy->ops.acquire = e1000_get_hw_semaphore_82574; + phy->ops.release = e1000_put_hw_semaphore_82574; + phy->ops.set_d0_lplu_state = e1000_set_d0_lplu_state_82574; + phy->ops.set_d3_lplu_state = e1000_set_d3_lplu_state_82574; + break; + default: + return -E1000_ERR_PHY; + break; + } + + /* This can only be done after all function pointers are setup. */ + ret_val = e1000_get_phy_id_82571(hw); + if (ret_val) { + e_dbg("Error getting PHY ID\n"); + return ret_val; + } + + /* Verify phy id */ + switch (hw->mac.type) { + case e1000_82571: + case e1000_82572: + if (phy->id != IGP01E1000_I_PHY_ID) ret_val = -E1000_ERR_PHY; - goto out; - } break; case e1000_82573: - phy->type = e1000_phy_m88; - phy->ops.get_cfg_done = e1000e_get_cfg_done; - phy->ops.get_info = e1000e_get_phy_info_m88; - phy->ops.commit = e1000e_phy_sw_reset; - phy->ops.force_speed_duplex = e1000e_phy_force_speed_duplex_m88; - phy->ops.get_cable_length = e1000e_get_cable_length_m88; - phy->ops.read_reg = e1000e_read_phy_reg_m88; - phy->ops.write_reg = e1000e_write_phy_reg_m88; - - /* This uses above function pointers */ - ret_val = e1000_get_phy_id_82571(hw); - - /* Verify PHY ID */ - if (phy->id != M88E1111_I_PHY_ID) { + if (phy->id != M88E1111_I_PHY_ID) ret_val = -E1000_ERR_PHY; - e_dbg("PHY ID unknown: type = 0x%08x\n", phy->id); - goto out; - } break; - case e1000_82583: case e1000_82574: - phy->type = e1000_phy_bm; - phy->ops.get_cfg_done = e1000e_get_cfg_done; - phy->ops.get_info = e1000e_get_phy_info_m88; - phy->ops.commit = e1000e_phy_sw_reset; - phy->ops.force_speed_duplex = e1000e_phy_force_speed_duplex_m88; - phy->ops.get_cable_length = e1000e_get_cable_length_m88; - phy->ops.read_reg = e1000e_read_phy_reg_bm2; - phy->ops.write_reg = e1000e_write_phy_reg_bm2; - - /* This uses above function pointers */ - ret_val = e1000_get_phy_id_82571(hw); - /* Verify PHY ID */ - if (phy->id != BME1000_E_PHY_ID_R2) { + case e1000_82583: + if (phy->id != BME1000_E_PHY_ID_R2) ret_val = -E1000_ERR_PHY; - e_dbg("PHY ID unknown: type = 0x%08x\n", phy->id); - goto out; - } break; default: ret_val = -E1000_ERR_PHY; - goto out; break; } -out: + if (ret_val) + e_dbg("PHY ID unknown: type = 0x%08x\n", phy->id); + return ret_val; } @@ -211,8 +167,7 @@ static s32 e1000_init_nvm_params_82571(struct e1000_hw *hw) if (((eecd >> 15) & 0x3) == 0x3) { nvm->type = e1000_nvm_flash_hw; nvm->word_size = 2048; - /* - * Autonomous Flash update bit must be cleared due + /* Autonomous Flash update bit must be cleared due * to Flash update issue. */ eecd &= ~E1000_EECD_AUPDEN; @@ -223,9 +178,8 @@ static s32 e1000_init_nvm_params_82571(struct e1000_hw *hw) default: nvm->type = e1000_nvm_eeprom_spi; size = (u16)((eecd & E1000_EECD_SIZE_EX_MASK) >> - E1000_EECD_SIZE_EX_SHIFT); - /* - * Added to a constant, "size" becomes the left-shift value + E1000_EECD_SIZE_EX_SHIFT); + /* Added to a constant, "size" becomes the left-shift value * for setting word_size. */ size += NVM_WORD_SIZE_BASE_SHIFT; @@ -233,20 +187,22 @@ static s32 e1000_init_nvm_params_82571(struct e1000_hw *hw) /* EEPROM access above 16k is unsupported */ if (size > 14) size = 14; - nvm->word_size = 1 << size; + nvm->word_size = 1 << size; break; } /* Function Pointers */ - nvm->ops.acquire = e1000_acquire_nvm_82571; - nvm->ops.read = e1000e_read_nvm_eerd; - nvm->ops.release = e1000_release_nvm_82571; - nvm->ops.update = e1000_update_nvm_checksum_82571; - nvm->ops.validate = e1000_validate_nvm_checksum_82571; - nvm->ops.valid_led_default = e1000_valid_led_default_82571; - nvm->ops.write = e1000_write_nvm_82571; - - return E1000_SUCCESS; + switch (hw->mac.type) { + case e1000_82574: + case e1000_82583: + nvm->ops.acquire = e1000_get_hw_semaphore_82574; + nvm->ops.release = e1000_put_hw_semaphore_82574; + break; + default: + break; + } + + return 0; } /** @@ -256,26 +212,39 @@ static s32 e1000_init_nvm_params_82571(struct e1000_hw *hw) static s32 e1000_init_mac_params_82571(struct e1000_hw *hw) { struct e1000_mac_info *mac = &hw->mac; - s32 ret_val = E1000_SUCCESS; u32 swsm = 0; u32 swsm2 = 0; bool force_clear_smbi = false; - /* Set media type */ - switch (hw->device_id) { + /* Set media type and media-dependent function pointers */ + switch (hw->adapter->pdev->device) { case E1000_DEV_ID_82571EB_FIBER: case E1000_DEV_ID_82572EI_FIBER: case E1000_DEV_ID_82571EB_QUAD_FIBER: hw->phy.media_type = e1000_media_type_fiber; + mac->ops.setup_physical_interface = + e1000_setup_fiber_serdes_link_82571; + mac->ops.check_for_link = e1000e_check_for_fiber_link; + mac->ops.get_link_up_info = + e1000e_get_speed_and_duplex_fiber_serdes; break; case E1000_DEV_ID_82571EB_SERDES: case E1000_DEV_ID_82571EB_SERDES_DUAL: case E1000_DEV_ID_82571EB_SERDES_QUAD: case E1000_DEV_ID_82572EI_SERDES: hw->phy.media_type = e1000_media_type_internal_serdes; + mac->ops.setup_physical_interface = + e1000_setup_fiber_serdes_link_82571; + mac->ops.check_for_link = e1000_check_for_serdes_link_82571; + mac->ops.get_link_up_info = + e1000e_get_speed_and_duplex_fiber_serdes; break; default: hw->phy.media_type = e1000_media_type_copper; + mac->ops.setup_physical_interface = + e1000_setup_copper_link_82571; + mac->ops.check_for_link = e1000e_check_for_copper_link; + mac->ops.get_link_up_info = e1000e_get_speed_and_duplex_copper; break; } @@ -283,105 +252,43 @@ static s32 e1000_init_mac_params_82571(struct e1000_hw *hw) mac->mta_reg_count = 128; /* Set rar entry count */ mac->rar_entry_count = E1000_RAR_ENTRIES; - /* Set if part includes ASF firmware */ - mac->asf_firmware_present = true; - /* Set if manageability features are enabled. */ - mac->arc_subsystem_valid = - (er32(FWSM) & E1000_FWSM_MODE_MASK) - ? true : false; - - /* Function pointers */ - - /* bus type/speed/width */ - mac->ops.get_bus_info = e1000e_get_bus_info_pcie; - /* function id */ + /* Adaptive IFS supported */ + mac->adaptive_ifs = true; + + /* MAC-specific function pointers */ switch (hw->mac.type) { case e1000_82573: - case e1000_82574: - case e1000_82583: mac->ops.set_lan_id = e1000_set_lan_id_single_port; + mac->ops.check_mng_mode = e1000e_check_mng_mode_generic; + mac->ops.led_on = e1000e_led_on_generic; + mac->ops.blink_led = e1000e_blink_led_generic; + + /* FWSM register */ + mac->has_fwsm = true; + /* ARC supported; valid only if manageability features are + * enabled. + */ + mac->arc_subsystem_valid = !!(er32(FWSM) & + E1000_FWSM_MODE_MASK); break; - default: - break; - } - /* reset */ - mac->ops.reset_hw = e1000_reset_hw_82571; - /* hw initialization */ - mac->ops.init_hw = e1000_init_hw_82571; - /* link setup */ - mac->ops.setup_link = e1000_setup_link_82571; - /* physical interface link setup */ - mac->ops.setup_physical_interface = - (hw->phy.media_type == e1000_media_type_copper) - ? e1000_setup_copper_link_82571 - : e1000_setup_fiber_serdes_link_82571; - /* check for link */ - switch (hw->phy.media_type) { - case e1000_media_type_copper: - mac->ops.check_for_link = e1000e_check_for_copper_link; - break; - case e1000_media_type_fiber: - mac->ops.check_for_link = e1000e_check_for_fiber_link; - break; - case e1000_media_type_internal_serdes: - mac->ops.check_for_link = e1000_check_for_serdes_link_82571; - break; - default: - ret_val = -E1000_ERR_CONFIG; - goto out; - break; - } - /* check management mode */ - switch (hw->mac.type) { case e1000_82574: case e1000_82583: + mac->ops.set_lan_id = e1000_set_lan_id_single_port; mac->ops.check_mng_mode = e1000_check_mng_mode_82574; - break; - default: - mac->ops.check_mng_mode = e1000_check_mng_mode_generic; - break; - } - - /* multicast address update */ - mac->ops.update_mc_addr_list = e1000e_update_mc_addr_list_generic; - /* writing VFTA */ - mac->ops.write_vfta = e1000e_write_vfta_generic; - /* clearing VFTA */ - mac->ops.clear_vfta = e1000_clear_vfta_82571; - /* setting MTA */ - mac->ops.mta_set = e1000_mta_set_generic; - /* read mac address */ - mac->ops.read_mac_addr = e1000_read_mac_addr_82571; - /* ID LED init */ - mac->ops.id_led_init = e1000e_id_led_init; - /* blink LED */ - mac->ops.blink_led = e1000e_blink_led; - /* setup LED */ - mac->ops.setup_led = e1000_setup_led_generic; - /* cleanup LED */ - mac->ops.cleanup_led = e1000e_cleanup_led_generic; - /* turn on/off LED */ - switch (hw->mac.type) { - case e1000_82574: - case e1000_82583: mac->ops.led_on = e1000_led_on_82574; break; default: + mac->ops.check_mng_mode = e1000e_check_mng_mode_generic; mac->ops.led_on = e1000e_led_on_generic; + mac->ops.blink_led = e1000e_blink_led_generic; + + /* FWSM register */ + mac->has_fwsm = true; break; } - mac->ops.led_off = e1000e_led_off_generic; - /* clear hardware counters */ - mac->ops.clear_hw_cntrs = e1000_clear_hw_cntrs_82571; - /* link info */ - mac->ops.get_link_up_info = - (hw->phy.media_type == e1000_media_type_copper) - ? e1000e_get_speed_and_duplex_copper - : e1000e_get_speed_and_duplex_fiber_serdes; - - /* - * Ensure that the inter-port SWSM.SMBI lock bit is clear before - * first NVM or PHY acess. This should be done for single-port + + /* Ensure that the inter-port SWSM.SMBI lock bit is clear before + * first NVM or PHY access. This should be done for single-port * devices, and for one port only on dual-port devices so that * for those devices we can still use the SMBI lock to synchronize * inter-port accesses to the PHY & NVM. @@ -393,11 +300,11 @@ static s32 e1000_init_mac_params_82571(struct e1000_hw *hw) if (!(swsm2 & E1000_SWSM2_LOCK)) { /* Only do this for the first interface on this card */ - ew32(SWSM2, - swsm2 | E1000_SWSM2_LOCK); + ew32(SWSM2, swsm2 | E1000_SWSM2_LOCK); force_clear_smbi = true; - } else + } else { force_clear_smbi = false; + } break; default: force_clear_smbi = true; @@ -417,29 +324,78 @@ static s32 e1000_init_mac_params_82571(struct e1000_hw *hw) ew32(SWSM, swsm & ~E1000_SWSM_SMBI); } - /* - * Initialze device specific counter of SMBI acquisition - * timeouts. - */ - hw->dev_spec._82571.smb_counter = 0; + /* Initialize device specific counter of SMBI acquisition timeouts. */ + hw->dev_spec.e82571.smb_counter = 0; -out: - return ret_val; + return 0; } -/** - * e1000_init_function_pointers_82571 - Init func ptrs. - * @hw: pointer to the HW structure - * - * Called to initialize all function pointers and parameters. - **/ -void e1000_init_function_pointers_82571(struct e1000_hw *hw) +static s32 e1000_get_variants_82571(struct e1000_adapter *adapter) { - e1000_init_mac_ops_generic(hw); - e1000_init_nvm_ops_generic(hw); - hw->mac.ops.init_params = e1000_init_mac_params_82571; - hw->nvm.ops.init_params = e1000_init_nvm_params_82571; - hw->phy.ops.init_params = e1000_init_phy_params_82571; + struct e1000_hw *hw = &adapter->hw; + static int global_quad_port_a; /* global port a indication */ + struct pci_dev *pdev = adapter->pdev; + int is_port_b = er32(STATUS) & E1000_STATUS_FUNC_1; + s32 rc; + + rc = e1000_init_mac_params_82571(hw); + if (rc) + return rc; + + rc = e1000_init_nvm_params_82571(hw); + if (rc) + return rc; + + rc = e1000_init_phy_params_82571(hw); + if (rc) + return rc; + + /* tag quad port adapters first, it's used below */ + switch (pdev->device) { + case E1000_DEV_ID_82571EB_QUAD_COPPER: + case E1000_DEV_ID_82571EB_QUAD_FIBER: + case E1000_DEV_ID_82571EB_QUAD_COPPER_LP: + case E1000_DEV_ID_82571PT_QUAD_COPPER: + adapter->flags |= FLAG_IS_QUAD_PORT; + /* mark the first port */ + if (global_quad_port_a == 0) + adapter->flags |= FLAG_IS_QUAD_PORT_A; + /* Reset for multiple quad port adapters */ + global_quad_port_a++; + if (global_quad_port_a == 4) + global_quad_port_a = 0; + break; + default: + break; + } + + switch (adapter->hw.mac.type) { + case e1000_82571: + /* these dual ports don't have WoL on port B at all */ + if (((pdev->device == E1000_DEV_ID_82571EB_FIBER) || + (pdev->device == E1000_DEV_ID_82571EB_SERDES) || + (pdev->device == E1000_DEV_ID_82571EB_COPPER)) && + (is_port_b)) + adapter->flags &= ~FLAG_HAS_WOL; + /* quad ports only support WoL on port A */ + if (adapter->flags & FLAG_IS_QUAD_PORT && + (!(adapter->flags & FLAG_IS_QUAD_PORT_A))) + adapter->flags &= ~FLAG_HAS_WOL; + /* Does not support WoL on any port */ + if (pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD) + adapter->flags &= ~FLAG_HAS_WOL; + break; + case e1000_82573: + if (pdev->device == E1000_DEV_ID_82573L) { + adapter->flags |= FLAG_HAS_JUMBO_FRAMES; + adapter->max_hw_frame_size = DEFAULT_JUMBO; + } + break; + default: + break; + } + + return 0; } /** @@ -452,14 +408,13 @@ void e1000_init_function_pointers_82571(struct e1000_hw *hw) static s32 e1000_get_phy_id_82571(struct e1000_hw *hw) { struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 phy_id = 0; switch (hw->mac.type) { case e1000_82571: case e1000_82572: - /* - * The 82571 firmware may still be configuring the PHY. + /* The 82571 firmware may still be configuring the PHY. * In this case, we cannot access the PHY until the * configuration is done. So we explicitly set the * PHY ID. @@ -467,29 +422,29 @@ static s32 e1000_get_phy_id_82571(struct e1000_hw *hw) phy->id = IGP01E1000_I_PHY_ID; break; case e1000_82573: - ret_val = e1000e_get_phy_id(hw); + return e1000e_get_phy_id(hw); break; case e1000_82574: case e1000_82583: - ret_val = e1e_rphy(hw, PHY_ID1, &phy_id); + ret_val = e1e_rphy(hw, MII_PHYSID1, &phy_id); if (ret_val) - goto out; + return ret_val; phy->id = (u32)(phy_id << 16); - udelay(20); - ret_val = e1e_rphy(hw, PHY_ID2, &phy_id); + usleep_range(20, 40); + ret_val = e1e_rphy(hw, MII_PHYSID2, &phy_id); if (ret_val) - goto out; + return ret_val; phy->id |= (u32)(phy_id); phy->revision = (u32)(phy_id & ~PHY_REVISION_MASK); break; default: - ret_val = -E1000_ERR_PHY; + return -E1000_ERR_PHY; break; } -out: - return ret_val; + + return 0; } /** @@ -498,23 +453,21 @@ out: * * Acquire the HW semaphore to access the PHY or NVM **/ -s32 e1000_get_hw_semaphore_82571(struct e1000_hw *hw) +static s32 e1000_get_hw_semaphore_82571(struct e1000_hw *hw) { u32 swsm; - s32 ret_val = E1000_SUCCESS; s32 sw_timeout = hw->nvm.word_size + 1; s32 fw_timeout = hw->nvm.word_size + 1; s32 i = 0; - /* - * If we have timedout 3 times on trying to acquire + /* If we have timedout 3 times on trying to acquire * the inter-port SMBI semaphore, there is old code * operating on the other port, and it is not * releasing SMBI. Modify the number of times that * we try for the semaphore to interwork with this * older code. */ - if (hw->dev_spec._82571.smb_counter > 2) + if (hw->dev_spec.e82571.smb_counter > 2) sw_timeout = 1; /* Get the SW semaphore */ @@ -523,13 +476,13 @@ s32 e1000_get_hw_semaphore_82571(struct e1000_hw *hw) if (!(swsm & E1000_SWSM_SMBI)) break; - udelay(50); + usleep_range(50, 100); i++; } if (i == sw_timeout) { e_dbg("Driver can't access device - SMBI bit is set.\n"); - hw->dev_spec._82571.smb_counter++; + hw->dev_spec.e82571.smb_counter++; } /* Get the FW semaphore. */ for (i = 0; i < fw_timeout; i++) { @@ -540,19 +493,17 @@ s32 e1000_get_hw_semaphore_82571(struct e1000_hw *hw) if (er32(SWSM) & E1000_SWSM_SWESMBI) break; - udelay(50); + usleep_range(50, 100); } if (i == fw_timeout) { /* Release semaphores */ e1000_put_hw_semaphore_82571(hw); e_dbg("Driver can't access the NVM\n"); - ret_val = -E1000_ERR_NVM; - goto out; + return -E1000_ERR_NVM; } -out: - return ret_val; + return 0; } /** @@ -561,7 +512,7 @@ out: * * Release hardware semaphore used to access the PHY or NVM **/ -void e1000_put_hw_semaphore_82571(struct e1000_hw *hw) +static void e1000_put_hw_semaphore_82571(struct e1000_hw *hw) { u32 swsm; @@ -569,6 +520,143 @@ void e1000_put_hw_semaphore_82571(struct e1000_hw *hw) swsm &= ~(E1000_SWSM_SMBI | E1000_SWSM_SWESMBI); ew32(SWSM, swsm); } + +/** + * e1000_get_hw_semaphore_82573 - Acquire hardware semaphore + * @hw: pointer to the HW structure + * + * Acquire the HW semaphore during reset. + * + **/ +static s32 e1000_get_hw_semaphore_82573(struct e1000_hw *hw) +{ + u32 extcnf_ctrl; + s32 i = 0; + + extcnf_ctrl = er32(EXTCNF_CTRL); + do { + extcnf_ctrl |= E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP; + ew32(EXTCNF_CTRL, extcnf_ctrl); + extcnf_ctrl = er32(EXTCNF_CTRL); + + if (extcnf_ctrl & E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP) + break; + + usleep_range(2000, 4000); + i++; + } while (i < MDIO_OWNERSHIP_TIMEOUT); + + if (i == MDIO_OWNERSHIP_TIMEOUT) { + /* Release semaphores */ + e1000_put_hw_semaphore_82573(hw); + e_dbg("Driver can't access the PHY\n"); + return -E1000_ERR_PHY; + } + + return 0; +} + +/** + * e1000_put_hw_semaphore_82573 - Release hardware semaphore + * @hw: pointer to the HW structure + * + * Release hardware semaphore used during reset. + * + **/ +static void e1000_put_hw_semaphore_82573(struct e1000_hw *hw) +{ + u32 extcnf_ctrl; + + extcnf_ctrl = er32(EXTCNF_CTRL); + extcnf_ctrl &= ~E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP; + ew32(EXTCNF_CTRL, extcnf_ctrl); +} + +static DEFINE_MUTEX(swflag_mutex); + +/** + * e1000_get_hw_semaphore_82574 - Acquire hardware semaphore + * @hw: pointer to the HW structure + * + * Acquire the HW semaphore to access the PHY or NVM. + * + **/ +static s32 e1000_get_hw_semaphore_82574(struct e1000_hw *hw) +{ + s32 ret_val; + + mutex_lock(&swflag_mutex); + ret_val = e1000_get_hw_semaphore_82573(hw); + if (ret_val) + mutex_unlock(&swflag_mutex); + return ret_val; +} + +/** + * e1000_put_hw_semaphore_82574 - Release hardware semaphore + * @hw: pointer to the HW structure + * + * Release hardware semaphore used to access the PHY or NVM + * + **/ +static void e1000_put_hw_semaphore_82574(struct e1000_hw *hw) +{ + e1000_put_hw_semaphore_82573(hw); + mutex_unlock(&swflag_mutex); +} + +/** + * e1000_set_d0_lplu_state_82574 - Set Low Power Linkup D0 state + * @hw: pointer to the HW structure + * @active: true to enable LPLU, false to disable + * + * Sets the LPLU D0 state according to the active flag. + * LPLU will not be activated unless the + * device autonegotiation advertisement meets standards of + * either 10 or 10/100 or 10/100/1000 at all duplexes. + * This is a function pointer entry point only called by + * PHY setup routines. + **/ +static s32 e1000_set_d0_lplu_state_82574(struct e1000_hw *hw, bool active) +{ + u32 data = er32(POEMB); + + if (active) + data |= E1000_PHY_CTRL_D0A_LPLU; + else + data &= ~E1000_PHY_CTRL_D0A_LPLU; + + ew32(POEMB, data); + return 0; +} + +/** + * e1000_set_d3_lplu_state_82574 - Sets low power link up state for D3 + * @hw: pointer to the HW structure + * @active: boolean used to enable/disable lplu + * + * The low power link up (lplu) state is set to the power management level D3 + * when active is true, else clear lplu for D3. LPLU + * is used during Dx states where the power conservation is most important. + * During driver activity, SmartSpeed should be enabled so performance is + * maintained. + **/ +static s32 e1000_set_d3_lplu_state_82574(struct e1000_hw *hw, bool active) +{ + u32 data = er32(POEMB); + + if (!active) { + data &= ~E1000_PHY_CTRL_NOND0A_LPLU; + } else if ((hw->phy.autoneg_advertised == E1000_ALL_SPEED_DUPLEX) || + (hw->phy.autoneg_advertised == E1000_ALL_NOT_GIG) || + (hw->phy.autoneg_advertised == E1000_ALL_10_SPEED)) { + data |= E1000_PHY_CTRL_NOND0A_LPLU; + } + + ew32(POEMB, data); + return 0; +} + /** * e1000_acquire_nvm_82571 - Request for access to the EEPROM * @hw: pointer to the HW structure @@ -584,11 +672,9 @@ static s32 e1000_acquire_nvm_82571(struct e1000_hw *hw) ret_val = e1000_get_hw_semaphore_82571(hw); if (ret_val) - goto out; + return ret_val; switch (hw->mac.type) { - case e1000_82574: - case e1000_82583: case e1000_82573: break; default: @@ -599,7 +685,6 @@ static s32 e1000_acquire_nvm_82571(struct e1000_hw *hw) if (ret_val) e1000_put_hw_semaphore_82571(hw); -out: return ret_val; } @@ -624,13 +709,13 @@ static void e1000_release_nvm_82571(struct e1000_hw *hw) * * For non-82573 silicon, write data to EEPROM at offset using SPI interface. * - * If e1000_update_nvm_checksum is not called after this function, the + * If e1000e_update_nvm_checksum is not called after this function, the * EEPROM will most likely contain an invalid checksum. **/ static s32 e1000_write_nvm_82571(struct e1000_hw *hw, u16 offset, u16 words, - u16 *data) + u16 *data) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val; switch (hw->mac.type) { case e1000_82573: @@ -666,31 +751,27 @@ static s32 e1000_update_nvm_checksum_82571(struct e1000_hw *hw) ret_val = e1000e_update_nvm_checksum_generic(hw); if (ret_val) - goto out; + return ret_val; - /* - * If our nvm is an EEPROM, then we're done + /* If our nvm is an EEPROM, then we're done * otherwise, commit the checksum to the flash NVM. */ if (hw->nvm.type != e1000_nvm_flash_hw) - goto out; + return 0; /* Check for pending operations. */ for (i = 0; i < E1000_FLASH_UPDATES; i++) { - msleep(1); - if ((er32(EECD) & E1000_EECD_FLUPD) == 0) + usleep_range(1000, 2000); + if (!(er32(EECD) & E1000_EECD_FLUPD)) break; } - if (i == E1000_FLASH_UPDATES) { - ret_val = -E1000_ERR_NVM; - goto out; - } + if (i == E1000_FLASH_UPDATES) + return -E1000_ERR_NVM; /* Reset the firmware if using STM opcode. */ if ((er32(FLOP) & 0xFF00) == E1000_STM_OPCODE) { - /* - * The enabling of and the actual reset must be done + /* The enabling of and the actual reset must be done * in two write cycles. */ ew32(HICR, E1000_HICR_FW_RESET_ENABLE); @@ -703,18 +784,15 @@ static s32 e1000_update_nvm_checksum_82571(struct e1000_hw *hw) ew32(EECD, eecd); for (i = 0; i < E1000_FLASH_UPDATES; i++) { - msleep(1); - if ((er32(EECD) & E1000_EECD_FLUPD) == 0) + usleep_range(1000, 2000); + if (!(er32(EECD) & E1000_EECD_FLUPD)) break; } - if (i == E1000_FLASH_UPDATES) { - ret_val = -E1000_ERR_NVM; - goto out; - } + if (i == E1000_FLASH_UPDATES) + return -E1000_ERR_NVM; -out: - return ret_val; + return 0; } /** @@ -743,31 +821,29 @@ static s32 e1000_validate_nvm_checksum_82571(struct e1000_hw *hw) * command has completed before trying to write the next word. After write * poll for completion. * - * If e1000_update_nvm_checksum is not called after this function, the + * If e1000e_update_nvm_checksum is not called after this function, the * EEPROM will most likely contain an invalid checksum. **/ static s32 e1000_write_nvm_eewr_82571(struct e1000_hw *hw, u16 offset, - u16 words, u16 *data) + u16 words, u16 *data) { struct e1000_nvm_info *nvm = &hw->nvm; u32 i, eewr = 0; s32 ret_val = 0; - /* - * A check for invalid values: offset too large, too many words, + /* A check for invalid values: offset too large, too many words, * and not enough words. */ if ((offset >= nvm->word_size) || (words > (nvm->word_size - offset)) || (words == 0)) { e_dbg("nvm parameter(s) out of bounds\n"); - ret_val = -E1000_ERR_NVM; - goto out; + return -E1000_ERR_NVM; } for (i = 0; i < words; i++) { - eewr = (data[i] << E1000_NVM_RW_REG_DATA) | - ((offset+i) << E1000_NVM_RW_ADDR_SHIFT) | - E1000_NVM_RW_REG_START; + eewr = ((data[i] << E1000_NVM_RW_REG_DATA) | + ((offset + i) << E1000_NVM_RW_ADDR_SHIFT) | + E1000_NVM_RW_REG_START); ret_val = e1000e_poll_eerd_eewr_done(hw, E1000_NVM_POLL_WRITE); if (ret_val) @@ -780,7 +856,6 @@ static s32 e1000_write_nvm_eewr_82571(struct e1000_hw *hw, u16 offset, break; } -out: return ret_val; } @@ -793,22 +868,19 @@ out: static s32 e1000_get_cfg_done_82571(struct e1000_hw *hw) { s32 timeout = PHY_CFG_TIMEOUT; - s32 ret_val = E1000_SUCCESS; while (timeout) { if (er32(EEMNGCTL) & E1000_NVM_CFG_DONE_PORT_0) break; - msleep(1); + usleep_range(1000, 2000); timeout--; } if (!timeout) { e_dbg("MNG configuration cycle has not completed.\n"); - ret_val = -E1000_ERR_RESET; - goto out; + return -E1000_ERR_RESET; } -out: - return ret_val; + return 0; } /** @@ -825,72 +897,61 @@ out: static s32 e1000_set_d0_lplu_state_82571(struct e1000_hw *hw, bool active) { struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 data; - if (!(phy->ops.read_reg)) - goto out; - ret_val = e1e_rphy(hw, IGP02E1000_PHY_POWER_MGMT, &data); if (ret_val) - goto out; + return ret_val; if (active) { data |= IGP02E1000_PM_D0_LPLU; - ret_val = e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, - data); + ret_val = e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, data); if (ret_val) - goto out; + return ret_val; /* When LPLU is enabled, we should disable SmartSpeed */ - ret_val = e1e_rphy(hw, IGP01E1000_PHY_PORT_CONFIG, - &data); + ret_val = e1e_rphy(hw, IGP01E1000_PHY_PORT_CONFIG, &data); + if (ret_val) + return ret_val; data &= ~IGP01E1000_PSCFR_SMART_SPEED; - ret_val = e1e_wphy(hw, IGP01E1000_PHY_PORT_CONFIG, - data); + ret_val = e1e_wphy(hw, IGP01E1000_PHY_PORT_CONFIG, data); if (ret_val) - goto out; + return ret_val; } else { data &= ~IGP02E1000_PM_D0_LPLU; - ret_val = e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, - data); - /* - * LPLU and SmartSpeed are mutually exclusive. LPLU is used + ret_val = e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, data); + /* LPLU and SmartSpeed are mutually exclusive. LPLU is used * during Dx states where the power conservation is most * important. During driver activity we should enable * SmartSpeed, so performance is maintained. */ if (phy->smart_speed == e1000_smart_speed_on) { ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); + IGP01E1000_PHY_PORT_CONFIG, &data); if (ret_val) - goto out; + return ret_val; data |= IGP01E1000_PSCFR_SMART_SPEED; ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); + IGP01E1000_PHY_PORT_CONFIG, data); if (ret_val) - goto out; + return ret_val; } else if (phy->smart_speed == e1000_smart_speed_off) { ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); + IGP01E1000_PHY_PORT_CONFIG, &data); if (ret_val) - goto out; + return ret_val; data &= ~IGP01E1000_PSCFR_SMART_SPEED; ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); + IGP01E1000_PHY_PORT_CONFIG, data); if (ret_val) - goto out; + return ret_val; } } -out: - return ret_val; + return 0; } /** @@ -901,12 +962,10 @@ out: **/ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) { - u32 ctrl, extcnf_ctrl, ctrl_ext, icr; + u32 ctrl, ctrl_ext, eecd, tctl; s32 ret_val; - u16 i = 0; - /* - * Prevent the PCI-E bus from sticking if there is no TLP connection + /* Prevent the PCI-E bus from sticking if there is no TLP connection * on the last TLP read/write transaction when MAC is reset. */ ret_val = e1000e_disable_pcie_master(hw); @@ -917,34 +976,23 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) ew32(IMC, 0xffffffff); ew32(RCTL, 0); - ew32(TCTL, E1000_TCTL_PSP); + tctl = er32(TCTL); + tctl &= ~E1000_TCTL_EN; + ew32(TCTL, tctl); e1e_flush(); - msleep(10); + usleep_range(10000, 20000); - /* - * Must acquire the MDIO ownership before MAC reset. + /* Must acquire the MDIO ownership before MAC reset. * Ownership defaults to firmware after a reset. */ switch (hw->mac.type) { + case e1000_82573: + ret_val = e1000_get_hw_semaphore_82573(hw); + break; case e1000_82574: case e1000_82583: - case e1000_82573: - extcnf_ctrl = er32(EXTCNF_CTRL); - extcnf_ctrl |= E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP; - - do { - ew32(EXTCNF_CTRL, extcnf_ctrl); - extcnf_ctrl = er32(EXTCNF_CTRL); - - if (extcnf_ctrl & E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP) - break; - - extcnf_ctrl |= E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP; - - msleep(2); - i++; - } while (i < MDIO_OWNERSHIP_TIMEOUT); + ret_val = e1000_get_hw_semaphore_82574(hw); break; default: break; @@ -955,8 +1003,25 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) e_dbg("Issuing a global reset to MAC\n"); ew32(CTRL, ctrl | E1000_CTRL_RST); + /* Must release MDIO ownership and mutex after MAC reset. */ + switch (hw->mac.type) { + case e1000_82573: + /* Release mutex only if the hw semaphore is acquired */ + if (!ret_val) + e1000_put_hw_semaphore_82573(hw); + break; + case e1000_82574: + case e1000_82583: + /* Release mutex only if the hw semaphore is acquired */ + if (!ret_val) + e1000_put_hw_semaphore_82574(hw); + break; + default: + break; + } + if (hw->nvm.type == e1000_nvm_flash_hw) { - udelay(10); + usleep_range(10, 20); ctrl_ext = er32(CTRL_EXT); ctrl_ext |= E1000_CTRL_EXT_EE_RST; ew32(CTRL_EXT, ctrl_ext); @@ -966,18 +1031,26 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) ret_val = e1000e_get_auto_rd_done(hw); if (ret_val) /* We don't want to continue accessing MAC registers. */ - goto out; + return ret_val; - /* - * Phy configuration from NVM just starts after EECD_AUTO_RD is set. + /* Phy configuration from NVM just starts after EECD_AUTO_RD is set. * Need to wait for Phy configuration completion before accessing * NVM and Phy. */ switch (hw->mac.type) { + case e1000_82571: + case e1000_82572: + /* REQ and GNT bits need to be cleared when using AUTO_RD + * to access the EEPROM. + */ + eecd = er32(EECD); + eecd &= ~(E1000_EECD_REQ | E1000_EECD_GNT); + ew32(EECD, eecd); + break; + case e1000_82573: case e1000_82574: case e1000_82583: - case e1000_82573: msleep(25); break; default: @@ -986,24 +1059,22 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) /* Clear any pending interrupt events. */ ew32(IMC, 0xffffffff); - icr = er32(ICR); + er32(ICR); if (hw->mac.type == e1000_82571) { /* Install any alternate MAC address into RAR0 */ ret_val = e1000_check_alt_mac_addr_generic(hw); if (ret_val) return ret_val; - + e1000e_set_laa_state_82571(hw, true); } - /* Reinitialize the 82571 serdes link state machine */ if (hw->phy.media_type == e1000_media_type_internal_serdes) hw->mac.serdes_link_state = e1000_serdes_link_down; -out: - return ret_val; + return 0; } /** @@ -1023,17 +1094,15 @@ static s32 e1000_init_hw_82571(struct e1000_hw *hw) /* Initialize identification LED */ ret_val = mac->ops.id_led_init(hw); - if (ret_val) { + /* An error is not fatal and we should not stop init due to this */ + if (ret_val) e_dbg("Error initializing identification LED\n"); - /* This is not fatal and we should not stop init due to this */ - } /* Disabling VLAN filtering */ e_dbg("Initializing the IEEE VLAN\n"); - e1000e_clear_vfta(hw); + mac->ops.clear_vfta(hw); - /* Setup the receive address. */ - /* + /* Setup the receive address. * If, however, a locally administered address was assigned to the * 82571, we must reserve a RAR for it to work around an issue where * resetting one port will reload the MAC on the other port. @@ -1052,32 +1121,31 @@ static s32 e1000_init_hw_82571(struct e1000_hw *hw) /* Set the transmit descriptor write-back policy */ reg_data = er32(TXDCTL(0)); - reg_data = (reg_data & ~E1000_TXDCTL_WTHRESH) | - E1000_TXDCTL_FULL_TX_DESC_WB | - E1000_TXDCTL_COUNT_DESC; + reg_data = ((reg_data & ~E1000_TXDCTL_WTHRESH) | + E1000_TXDCTL_FULL_TX_DESC_WB | E1000_TXDCTL_COUNT_DESC); ew32(TXDCTL(0), reg_data); /* ...for both queues. */ switch (mac->type) { - case e1000_82574: - case e1000_82583: case e1000_82573: e1000e_enable_tx_pkt_filtering(hw); + /* fall through */ + case e1000_82574: + case e1000_82583: reg_data = er32(GCR); reg_data |= E1000_GCR_L1_ACT_WITHOUT_L0S_RX; ew32(GCR, reg_data); break; default: reg_data = er32(TXDCTL(1)); - reg_data = (reg_data & ~E1000_TXDCTL_WTHRESH) | - E1000_TXDCTL_FULL_TX_DESC_WB | - E1000_TXDCTL_COUNT_DESC; + reg_data = ((reg_data & ~E1000_TXDCTL_WTHRESH) | + E1000_TXDCTL_FULL_TX_DESC_WB | + E1000_TXDCTL_COUNT_DESC); ew32(TXDCTL(1), reg_data); break; } - /* - * Clear all of the statistics registers (clear on read). It is + /* Clear all of the statistics registers (clear on read). It is * important that we do this after we have tried to establish link * because the symbol error count will increment wildly if there * is no link. @@ -1109,12 +1177,16 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw) /* Transmit Arbitration Control 0 */ reg = er32(TARC(0)); - reg &= ~(0xF << 27); /* 30:27 */ + reg &= ~(0xF << 27); /* 30:27 */ switch (hw->mac.type) { case e1000_82571: case e1000_82572: reg |= (1 << 23) | (1 << 24) | (1 << 25) | (1 << 26); break; + case e1000_82574: + case e1000_82583: + reg |= (1 << 26); + break; default: break; } @@ -1138,11 +1210,10 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw) } /* Device Control */ - switch (hw->mac.type) { + case e1000_82573: case e1000_82574: case e1000_82583: - case e1000_82573: reg = er32(CTRL); reg &= ~(1 << 29); ew32(CTRL, reg); @@ -1153,9 +1224,9 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw) /* Extended Device Control */ switch (hw->mac.type) { + case e1000_82573: case e1000_82574: case e1000_82583: - case e1000_82573: reg = er32(CTRL_EXT); reg &= ~(1 << 23); reg |= (1 << 22); @@ -1165,27 +1236,22 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw) break; } - if (hw->mac.type == e1000_82571) { reg = er32(PBA_ECC); reg |= E1000_PBA_ECC_CORR_EN; ew32(PBA_ECC, reg); } - /* - * Workaround for hardware errata. + /* Workaround for hardware errata. * Ensure that DMA Dynamic Clock gating is disabled on 82571 and 82572 */ - - if ((hw->mac.type == e1000_82571) || - (hw->mac.type == e1000_82572)) { + if ((hw->mac.type == e1000_82571) || (hw->mac.type == e1000_82572)) { reg = er32(CTRL_EXT); reg &= ~E1000_CTRL_EXT_DMA_DYN_CLK_EN; ew32(CTRL_EXT, reg); } - /* - * Disable IPv6 extension header parsing because some malformed + /* Disable IPv6 extension header parsing because some malformed * IPv6 headers can hang the Rx. */ if (hw->mac.type <= e1000_82573) { @@ -1195,19 +1261,18 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw) } /* PCI-Ex Control Registers */ - switch (hw->mac.type) { case e1000_82574: case e1000_82583: reg = er32(GCR); reg |= (1 << 22); ew32(GCR, reg); - /* - * Workaround for hardware errata. + + /* Workaround for hardware errata. * apply workaround for hardware errata documented in errata * docs Fixes issue where some error prone or unreliable PCIe * completions are occurring, particularly with ASPM enabled. - * Without fix, issue can cause tx timeouts. + * Without fix, issue can cause Tx timeouts. */ reg = er32(GCR2); reg |= 1; @@ -1216,7 +1281,6 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw) default: break; } - return; } /** @@ -1234,39 +1298,36 @@ static void e1000_clear_vfta_82571(struct e1000_hw *hw) u32 vfta_bit_in_reg = 0; switch (hw->mac.type) { + case e1000_82573: case e1000_82574: case e1000_82583: - case e1000_82573: if (hw->mng_cookie.vlan_id != 0) { - /* - *The VFTA is a 4096b bit-field, each identifying - *a single VLAN ID. The following operations - *determine which 32b entry (i.e. offset) into the - *array we want to set the VLAN ID (i.e. bit) of - *the manageability unit. - */ + /* The VFTA is a 4096b bit-field, each identifying + * a single VLAN ID. The following operations + * determine which 32b entry (i.e. offset) into the + * array we want to set the VLAN ID (i.e. bit) of + * the manageability unit. + */ vfta_offset = (hw->mng_cookie.vlan_id >> - E1000_VFTA_ENTRY_SHIFT) & E1000_VFTA_ENTRY_MASK; - vfta_bit_in_reg = 1 << (hw->mng_cookie.vlan_id & - E1000_VFTA_ENTRY_BIT_SHIFT_MASK); - } - - for (offset = 0; offset < E1000_VLAN_FILTER_TBL_SIZE; offset++) { - /* - *If the offset we want to clear is the same offset of - *the manageability VLAN ID, then clear all bits except - *that of the manageability unit - */ - vfta_value = (offset == vfta_offset) ? - vfta_bit_in_reg : 0; - E1000_WRITE_REG_ARRAY(hw, E1000_VFTA, offset, - vfta_value); - e1e_flush(); + E1000_VFTA_ENTRY_SHIFT) & + E1000_VFTA_ENTRY_MASK; + vfta_bit_in_reg = + 1 << (hw->mng_cookie.vlan_id & + E1000_VFTA_ENTRY_BIT_SHIFT_MASK); } break; default: break; } + for (offset = 0; offset < E1000_VLAN_FILTER_TBL_SIZE; offset++) { + /* If the offset we want to clear is the same offset of the + * manageability VLAN ID, then clear all bits except that of + * the manageability unit. + */ + vfta_value = (offset == vfta_offset) ? vfta_bit_in_reg : 0; + E1000_WRITE_REG_ARRAY(hw, E1000_VFTA, offset, vfta_value); + e1e_flush(); + } } /** @@ -1279,8 +1340,12 @@ static void e1000_clear_vfta_82571(struct e1000_hw *hw) static bool e1000_check_mng_mode_82574(struct e1000_hw *hw) { u16 data; + s32 ret_val; + + ret_val = e1000_read_nvm(hw, NVM_INIT_CONTROL2_REG, 1, &data); + if (ret_val) + return false; - e1000_read_nvm(hw, NVM_INIT_CONTROL2_REG, 1, &data); return (data & E1000_NVM_INIT_CTRL2_MNGM) != 0; } @@ -1297,8 +1362,7 @@ static s32 e1000_led_on_82574(struct e1000_hw *hw) ctrl = hw->mac.ledctl_mode2; if (!(E1000_STATUS_LU & er32(STATUS))) { - /* - * If no link, then turn LED on by setting the invert bit + /* If no link, then turn LED on by setting the invert bit * for each LED that's "on" (0x0E) in ledctl_mode2. */ for (i = 0; i < 4; i++) @@ -1308,9 +1372,38 @@ static s32 e1000_led_on_82574(struct e1000_hw *hw) } ew32(LEDCTL, ctrl); - return E1000_SUCCESS; + return 0; } +/** + * e1000_check_phy_82574 - check 82574 phy hung state + * @hw: pointer to the HW structure + * + * Returns whether phy is hung or not + **/ +bool e1000_check_phy_82574(struct e1000_hw *hw) +{ + u16 status_1kbt = 0; + u16 receive_errors = 0; + s32 ret_val; + + /* Read PHY Receive Error counter first, if its is max - all F's then + * read the Base1000T status register If both are max then PHY is hung. + */ + ret_val = e1e_rphy(hw, E1000_RECEIVE_ERROR_COUNTER, &receive_errors); + if (ret_val) + return false; + if (receive_errors == E1000_RECEIVE_ERROR_MAX) { + ret_val = e1e_rphy(hw, E1000_BASE1000T_STATUS, &status_1kbt); + if (ret_val) + return false; + if ((status_1kbt & E1000_IDLE_ERROR_COUNT_MASK) == + E1000_IDLE_ERROR_COUNT_MASK) + return true; + } + + return false; +} /** * e1000_setup_link_82571 - Setup flow control and link settings @@ -1324,22 +1417,22 @@ static s32 e1000_led_on_82574(struct e1000_hw *hw) **/ static s32 e1000_setup_link_82571(struct e1000_hw *hw) { - /* - * 82573 does not have a word in the NVM to determine + /* 82573 does not have a word in the NVM to determine * the default flow control setting, so we explicitly * set it to full. */ switch (hw->mac.type) { + case e1000_82573: case e1000_82574: case e1000_82583: - case e1000_82573: if (hw->fc.requested_mode == e1000_fc_default) hw->fc.requested_mode = e1000_fc_full; break; default: break; } - return e1000e_setup_link(hw); + + return e1000e_setup_link_generic(hw); } /** @@ -1353,7 +1446,7 @@ static s32 e1000_setup_link_82571(struct e1000_hw *hw) static s32 e1000_setup_copper_link_82571(struct e1000_hw *hw) { u32 ctrl; - s32 ret_val; + s32 ret_val; ctrl = er32(CTRL); ctrl |= E1000_CTRL_SLU; @@ -1369,17 +1462,14 @@ static s32 e1000_setup_copper_link_82571(struct e1000_hw *hw) ret_val = e1000e_copper_link_setup_igp(hw); break; default: - ret_val = -E1000_ERR_PHY; + return -E1000_ERR_PHY; break; } if (ret_val) - goto out; - - ret_val = e1000e_setup_copper_link(hw); + return ret_val; -out: - return ret_val; + return e1000e_setup_copper_link(hw); } /** @@ -1394,8 +1484,7 @@ static s32 e1000_setup_fiber_serdes_link_82571(struct e1000_hw *hw) switch (hw->mac.type) { case e1000_82571: case e1000_82572: - /* - * If SerDes loopback mode is entered, there is no form + /* If SerDes loopback mode is entered, there is no form * of reset to take the adapter out of that mode. So we * have to explicitly take the adapter out of loopback * mode. This prevents drivers from twiddling their thumbs @@ -1417,7 +1506,7 @@ static s32 e1000_setup_fiber_serdes_link_82571(struct e1000_hw *hw) * Reports the link state as up or down. * * If autonegotiation is supported by the link partner, the link state is - * determined by the result of autongotiation. This is the most likely case. + * determined by the result of autonegotiation. This is the most likely case. * If autonegotiation is not supported by the link partner, and the link * has a valid signal, force the link up. * @@ -1425,30 +1514,33 @@ static s32 e1000_setup_fiber_serdes_link_82571(struct e1000_hw *hw) * * 1) down * 2) autoneg_progress - * 3) autoneg_complete (the link sucessfully autonegotiated) + * 3) autoneg_complete (the link successfully autonegotiated) * 4) forced_up (the link has been forced up, it did not autonegotiate) * **/ -s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw) +static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw) { struct e1000_mac_info *mac = &hw->mac; u32 rxcw; u32 ctrl; u32 status; - s32 ret_val = E1000_SUCCESS; + u32 txcw; + u32 i; + s32 ret_val = 0; ctrl = er32(CTRL); status = er32(STATUS); + er32(RXCW); + /* SYNCH bit and IV bit are sticky */ + usleep_range(10, 20); rxcw = er32(RXCW); if ((rxcw & E1000_RXCW_SYNCH) && !(rxcw & E1000_RXCW_IV)) { - /* Receiver is synchronized with no invalid bits. */ switch (mac->serdes_link_state) { case e1000_serdes_link_autoneg_complete: if (!(status & E1000_STATUS_LU)) { - /* - * We have lost link, retry autoneg before + /* We have lost link, retry autoneg before * reporting link failure */ mac->serdes_link_state = @@ -1458,11 +1550,10 @@ s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw) } else { mac->serdes_has_link = true; } - break; + break; case e1000_serdes_link_forced_up: - /* - * If we are receiving /C/ ordered sets, re-enable + /* If we are receiving /C/ ordered sets, re-enable * auto-negotiation in the TXCW register and disable * forced link in the Device Control register in an * attempt to auto-negotiate with our link partner. @@ -1470,8 +1561,7 @@ s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw) if (rxcw & E1000_RXCW_C) { /* Enable autoneg, and unforce link up */ ew32(TXCW, mac->txcw); - ew32(CTRL, - (ctrl & ~E1000_CTRL_SLU)); + ew32(CTRL, (ctrl & ~E1000_CTRL_SLU)); mac->serdes_link_state = e1000_serdes_link_autoneg_progress; mac->serdes_has_link = false; @@ -1485,7 +1575,7 @@ s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw) if (rxcw & E1000_RXCW_C) { /* We received /C/ ordered sets, meaning the * link partner has autonegotiated, and we can - * trust the Link Up (LU) status bit + * trust the Link Up (LU) status bit. */ if (status & E1000_STATUS_LU) { mac->serdes_link_state = @@ -1493,7 +1583,7 @@ s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw) e_dbg("AN_PROG -> AN_UP\n"); mac->serdes_has_link = true; } else { - /* Autoneg completed, but failed */ + /* Autoneg completed, but failed. */ mac->serdes_link_state = e1000_serdes_link_down; e_dbg("AN_PROG -> DOWN\n"); @@ -1503,20 +1593,18 @@ s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw) * Force link up and full duplex, and change * state to forced. */ - ew32(TXCW, - (mac->txcw & ~E1000_TXCW_ANE)); + ew32(TXCW, (mac->txcw & ~E1000_TXCW_ANE)); ctrl |= (E1000_CTRL_SLU | E1000_CTRL_FD); ew32(CTRL, ctrl); /* Configure Flow Control after link up. */ - ret_val = - e1000e_config_fc_after_link_up(hw); + ret_val = e1000e_config_fc_after_link_up(hw); if (ret_val) { e_dbg("Error config flow control\n"); break; } mac->serdes_link_state = - e1000_serdes_link_forced_up; + e1000_serdes_link_forced_up; mac->serdes_has_link = true; e_dbg("AN_PROG -> FORCED_UP\n"); } @@ -1526,10 +1614,10 @@ s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw) default: /* The link was down but the receiver has now gained * valid sync, so lets see if we can bring the link - * up. */ + * up. + */ ew32(TXCW, mac->txcw); - ew32(CTRL, - (ctrl & ~E1000_CTRL_SLU)); + ew32(CTRL, (ctrl & ~E1000_CTRL_SLU)); mac->serdes_link_state = e1000_serdes_link_autoneg_progress; mac->serdes_has_link = false; @@ -1542,17 +1630,34 @@ s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw) mac->serdes_link_state = e1000_serdes_link_down; e_dbg("ANYSTATE -> DOWN\n"); } else { - /* - * We have sync, and can tolerate one - * invalid (IV) codeword before declaring - * link down, so reread to look again + /* Check several times, if SYNCH bit and CONFIG + * bit both are consistently 1 then simply ignore + * the IV bit and restart Autoneg */ - udelay(10); - rxcw = er32(RXCW); - if (rxcw & E1000_RXCW_IV) { - mac->serdes_link_state = e1000_serdes_link_down; + for (i = 0; i < AN_RETRY_COUNT; i++) { + usleep_range(10, 20); + rxcw = er32(RXCW); + if ((rxcw & E1000_RXCW_SYNCH) && + (rxcw & E1000_RXCW_C)) + continue; + + if (rxcw & E1000_RXCW_IV) { + mac->serdes_has_link = false; + mac->serdes_link_state = + e1000_serdes_link_down; + e_dbg("ANYSTATE -> DOWN\n"); + break; + } + } + + if (i == AN_RETRY_COUNT) { + txcw = er32(TXCW); + txcw |= E1000_TXCW_ANE; + ew32(TXCW, txcw); + mac->serdes_link_state = + e1000_serdes_link_autoneg_progress; mac->serdes_has_link = false; - e_dbg("ANYSTATE -> DOWN\n"); + e_dbg("ANYSTATE -> AN_PROG\n"); } } } @@ -1575,25 +1680,24 @@ static s32 e1000_valid_led_default_82571(struct e1000_hw *hw, u16 *data) ret_val = e1000_read_nvm(hw, NVM_ID_LED_SETTINGS, 1, data); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } switch (hw->mac.type) { + case e1000_82573: case e1000_82574: case e1000_82583: - case e1000_82573: - if(*data == ID_LED_RESERVED_F746) + if (*data == ID_LED_RESERVED_F746) *data = ID_LED_DEFAULT_82573; break; default: if (*data == ID_LED_RESERVED_0000 || - *data == ID_LED_RESERVED_FFFF) + *data == ID_LED_RESERVED_FFFF) *data = ID_LED_DEFAULT; break; } -out: - return ret_val; + return 0; } /** @@ -1607,7 +1711,7 @@ bool e1000e_get_laa_state_82571(struct e1000_hw *hw) if (hw->mac.type != e1000_82571) return false; - return hw->dev_spec._82571.laa_is_present; + return hw->dev_spec.e82571.laa_is_present; } /** @@ -1622,20 +1726,18 @@ void e1000e_set_laa_state_82571(struct e1000_hw *hw, bool state) if (hw->mac.type != e1000_82571) return; - hw->dev_spec._82571.laa_is_present = state; + hw->dev_spec.e82571.laa_is_present = state; /* If workaround is activated... */ if (state) - /* - * Hold a copy of the LAA in RAR[14] This is done so that + /* Hold a copy of the LAA in RAR[14] This is done so that * between the time RAR[0] gets clobbered and the time it * gets fixed, the actual LAA is in one of the RARs and no * incoming packets directed to this port are dropped. * Eventually the LAA will be in RAR[0] and RAR[14]. */ - e1000e_rar_set(hw, hw->mac.addr, - hw->mac.rar_entry_count - 1); - return; + hw->mac.ops.rar_set(hw, hw->mac.addr, + hw->mac.rar_entry_count - 1); } /** @@ -1651,23 +1753,21 @@ void e1000e_set_laa_state_82571(struct e1000_hw *hw, bool state) static s32 e1000_fix_nvm_checksum_82571(struct e1000_hw *hw) { struct e1000_nvm_info *nvm = &hw->nvm; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 data; if (nvm->type != e1000_nvm_flash_hw) - goto out; + return 0; - /* - * Check bit 4 of word 10h. If it is 0, firmware is done updating + /* Check bit 4 of word 10h. If it is 0, firmware is done updating * 10h-12h. Checksum may need to be fixed. */ ret_val = e1000_read_nvm(hw, 0x10, 1, &data); if (ret_val) - goto out; + return ret_val; if (!(data & 0x10)) { - /* - * Read 0x23 and check bit 15. This bit is a 1 + /* Read 0x23 and check bit 15. This bit is a 1 * when the checksum has already been fixed. If * the checksum is still wrong and this bit is a * 1, we need to return bad checksum. Otherwise, @@ -1676,45 +1776,41 @@ static s32 e1000_fix_nvm_checksum_82571(struct e1000_hw *hw) */ ret_val = e1000_read_nvm(hw, 0x23, 1, &data); if (ret_val) - goto out; + return ret_val; if (!(data & 0x8000)) { data |= 0x8000; ret_val = e1000_write_nvm(hw, 0x23, 1, &data); if (ret_val) - goto out; + return ret_val; ret_val = e1000e_update_nvm_checksum(hw); + if (ret_val) + return ret_val; } } -out: - return ret_val; + return 0; } - /** * e1000_read_mac_addr_82571 - Read device MAC address * @hw: pointer to the HW structure **/ static s32 e1000_read_mac_addr_82571(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; - if (hw->mac.type == e1000_82571) { - /* - * If there's an alternate MAC address place it in RAR0 + s32 ret_val; + + /* If there's an alternate MAC address place it in RAR0 * so that it will override the Si installed default perm * address. */ ret_val = e1000_check_alt_mac_addr_generic(hw); if (ret_val) - goto out; + return ret_val; } - ret_val = e1000e_read_mac_addr_generic(hw); - -out: - return ret_val; + return e1000_read_mac_addr_generic(hw); } /** @@ -1729,14 +1825,12 @@ static void e1000_power_down_phy_copper_82571(struct e1000_hw *hw) struct e1000_phy_info *phy = &hw->phy; struct e1000_mac_info *mac = &hw->mac; - if (!(phy->ops.check_reset_block)) + if (!phy->ops.check_reset_block) return; /* If the management interface is not enabled, then power down */ - if (!(mac->ops.check_mng_mode(hw) || e1000_check_reset_block(hw))) + if (!(mac->ops.check_mng_mode(hw) || phy->ops.check_reset_block(hw))) e1000_power_down_phy_copper(hw); - - return; } /** @@ -1784,3 +1878,211 @@ static void e1000_clear_hw_cntrs_82571(struct e1000_hw *hw) er32(ICTXQMTC); er32(ICRXDMTC); } + +static const struct e1000_mac_operations e82571_mac_ops = { + /* .check_mng_mode: mac type dependent */ + /* .check_for_link: media type dependent */ + .id_led_init = e1000e_id_led_init_generic, + .cleanup_led = e1000e_cleanup_led_generic, + .clear_hw_cntrs = e1000_clear_hw_cntrs_82571, + .get_bus_info = e1000e_get_bus_info_pcie, + .set_lan_id = e1000_set_lan_id_multi_port_pcie, + /* .get_link_up_info: media type dependent */ + /* .led_on: mac type dependent */ + .led_off = e1000e_led_off_generic, + .update_mc_addr_list = e1000e_update_mc_addr_list_generic, + .write_vfta = e1000_write_vfta_generic, + .clear_vfta = e1000_clear_vfta_82571, + .reset_hw = e1000_reset_hw_82571, + .init_hw = e1000_init_hw_82571, + .setup_link = e1000_setup_link_82571, + /* .setup_physical_interface: media type dependent */ + .setup_led = e1000e_setup_led_generic, + .config_collision_dist = e1000e_config_collision_dist_generic, + .read_mac_addr = e1000_read_mac_addr_82571, + .rar_set = e1000e_rar_set_generic, + .rar_get_count = e1000e_rar_get_count_generic, + .validate_mdi_setting = e1000e_validate_mdi_setting_generic, +}; + +static const struct e1000_phy_operations e82_phy_ops_igp = { + .acquire = e1000_get_hw_semaphore_82571, + .check_polarity = e1000_check_polarity_igp, + .check_reset_block = e1000e_check_reset_block_generic, + .commit = NULL, + .force_speed_duplex = e1000e_phy_force_speed_duplex_igp, + .get_cfg_done = e1000_get_cfg_done_82571, + .get_cable_length = e1000e_get_cable_length_igp_2, + .get_info = e1000e_get_phy_info_igp, + .read_reg = e1000e_read_phy_reg_igp, + .release = e1000_put_hw_semaphore_82571, + .reset = e1000e_phy_hw_reset_generic, + .set_d0_lplu_state = e1000_set_d0_lplu_state_82571, + .set_d3_lplu_state = e1000e_set_d3_lplu_state, + .write_reg = e1000e_write_phy_reg_igp, + .cfg_on_link_up = NULL, +}; + +static const struct e1000_phy_operations e82_phy_ops_m88 = { + .acquire = e1000_get_hw_semaphore_82571, + .check_polarity = e1000_check_polarity_m88, + .check_reset_block = e1000e_check_reset_block_generic, + .commit = e1000e_phy_sw_reset, + .force_speed_duplex = e1000e_phy_force_speed_duplex_m88, + .get_cfg_done = e1000e_get_cfg_done_generic, + .get_cable_length = e1000e_get_cable_length_m88, + .get_info = e1000e_get_phy_info_m88, + .read_reg = e1000e_read_phy_reg_m88, + .release = e1000_put_hw_semaphore_82571, + .reset = e1000e_phy_hw_reset_generic, + .set_d0_lplu_state = e1000_set_d0_lplu_state_82571, + .set_d3_lplu_state = e1000e_set_d3_lplu_state, + .write_reg = e1000e_write_phy_reg_m88, + .cfg_on_link_up = NULL, +}; + +static const struct e1000_phy_operations e82_phy_ops_bm = { + .acquire = e1000_get_hw_semaphore_82571, + .check_polarity = e1000_check_polarity_m88, + .check_reset_block = e1000e_check_reset_block_generic, + .commit = e1000e_phy_sw_reset, + .force_speed_duplex = e1000e_phy_force_speed_duplex_m88, + .get_cfg_done = e1000e_get_cfg_done_generic, + .get_cable_length = e1000e_get_cable_length_m88, + .get_info = e1000e_get_phy_info_m88, + .read_reg = e1000e_read_phy_reg_bm2, + .release = e1000_put_hw_semaphore_82571, + .reset = e1000e_phy_hw_reset_generic, + .set_d0_lplu_state = e1000_set_d0_lplu_state_82571, + .set_d3_lplu_state = e1000e_set_d3_lplu_state, + .write_reg = e1000e_write_phy_reg_bm2, + .cfg_on_link_up = NULL, +}; + +static const struct e1000_nvm_operations e82571_nvm_ops = { + .acquire = e1000_acquire_nvm_82571, + .read = e1000e_read_nvm_eerd, + .release = e1000_release_nvm_82571, + .reload = e1000e_reload_nvm_generic, + .update = e1000_update_nvm_checksum_82571, + .valid_led_default = e1000_valid_led_default_82571, + .validate = e1000_validate_nvm_checksum_82571, + .write = e1000_write_nvm_82571, +}; + +const struct e1000_info e1000_82571_info = { + .mac = e1000_82571, + .flags = FLAG_HAS_HW_VLAN_FILTER + | FLAG_HAS_JUMBO_FRAMES + | FLAG_HAS_WOL + | FLAG_APME_IN_CTRL3 +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_HAS_SMART_POWER_DOWN + | FLAG_RESET_OVERWRITES_LAA /* errata */ + | FLAG_TARC_SPEED_MODE_BIT /* errata */ + | FLAG_APME_CHECK_PORT_B, + .flags2 = FLAG2_DISABLE_ASPM_L1 /* errata 13 */ + | FLAG2_DMA_BURST, + .pba = 38, + .max_hw_frame_size = DEFAULT_JUMBO, + .get_variants = e1000_get_variants_82571, + .mac_ops = &e82571_mac_ops, + .phy_ops = &e82_phy_ops_igp, + .nvm_ops = &e82571_nvm_ops, +}; + +const struct e1000_info e1000_82572_info = { + .mac = e1000_82572, + .flags = FLAG_HAS_HW_VLAN_FILTER + | FLAG_HAS_JUMBO_FRAMES + | FLAG_HAS_WOL + | FLAG_APME_IN_CTRL3 +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_TARC_SPEED_MODE_BIT, /* errata */ + .flags2 = FLAG2_DISABLE_ASPM_L1 /* errata 13 */ + | FLAG2_DMA_BURST, + .pba = 38, + .max_hw_frame_size = DEFAULT_JUMBO, + .get_variants = e1000_get_variants_82571, + .mac_ops = &e82571_mac_ops, + .phy_ops = &e82_phy_ops_igp, + .nvm_ops = &e82571_nvm_ops, +}; + +const struct e1000_info e1000_82573_info = { + .mac = e1000_82573, + .flags = FLAG_HAS_HW_VLAN_FILTER + | FLAG_HAS_WOL + | FLAG_APME_IN_CTRL3 +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_SMART_POWER_DOWN + | FLAG_HAS_AMT + | FLAG_HAS_SWSM_ON_LOAD, + .flags2 = FLAG2_DISABLE_ASPM_L1 + | FLAG2_DISABLE_ASPM_L0S, + .pba = 20, + .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN, + .get_variants = e1000_get_variants_82571, + .mac_ops = &e82571_mac_ops, + .phy_ops = &e82_phy_ops_m88, + .nvm_ops = &e82571_nvm_ops, +}; + +const struct e1000_info e1000_82574_info = { + .mac = e1000_82574, + .flags = FLAG_HAS_HW_VLAN_FILTER + | FLAG_HAS_MSIX + | FLAG_HAS_JUMBO_FRAMES + | FLAG_HAS_WOL + | FLAG_HAS_HW_TIMESTAMP + | FLAG_APME_IN_CTRL3 +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_SMART_POWER_DOWN + | FLAG_HAS_AMT + | FLAG_HAS_CTRLEXT_ON_LOAD, + .flags2 = FLAG2_CHECK_PHY_HANG + | FLAG2_DISABLE_ASPM_L0S + | FLAG2_DISABLE_ASPM_L1 + | FLAG2_NO_DISABLE_RX + | FLAG2_DMA_BURST, + .pba = 32, + .max_hw_frame_size = DEFAULT_JUMBO, + .get_variants = e1000_get_variants_82571, + .mac_ops = &e82571_mac_ops, + .phy_ops = &e82_phy_ops_bm, + .nvm_ops = &e82571_nvm_ops, +}; + +const struct e1000_info e1000_82583_info = { + .mac = e1000_82583, + .flags = FLAG_HAS_HW_VLAN_FILTER + | FLAG_HAS_WOL + | FLAG_HAS_HW_TIMESTAMP + | FLAG_APME_IN_CTRL3 +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_SMART_POWER_DOWN + | FLAG_HAS_AMT + | FLAG_HAS_JUMBO_FRAMES + | FLAG_HAS_CTRLEXT_ON_LOAD, + .flags2 = FLAG2_DISABLE_ASPM_L0S + | FLAG2_DISABLE_ASPM_L1 + | FLAG2_NO_DISABLE_RX, + .pba = 32, + .max_hw_frame_size = DEFAULT_JUMBO, + .get_variants = e1000_get_variants_82571, + .mac_ops = &e82571_mac_ops, + .phy_ops = &e82_phy_ops_bm, + .nvm_ops = &e82571_nvm_ops, +}; diff --git a/vmkdrivers/src_9/drivers/net/e1000e/82571.h b/vmkdrivers/src_9/drivers/net/e1000e/82571.h new file mode 100644 index 0000000000000000000000000000000000000000..1fabc9ec236cbb486b4ff16376f192c7fe40f876 --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/82571.h @@ -0,0 +1,54 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +#ifndef _E1000E_82571_H_ +#define _E1000E_82571_H_ + +#define ID_LED_RESERVED_F746 0xF746 +#define ID_LED_DEFAULT_82573 ((ID_LED_DEF1_DEF2 << 12) | \ + (ID_LED_OFF1_ON2 << 8) | \ + (ID_LED_DEF1_DEF2 << 4) | \ + (ID_LED_DEF1_DEF2)) + +#define E1000_GCR_L1_ACT_WITHOUT_L0S_RX 0x08000000 +#define AN_RETRY_COUNT 5 /* Autoneg Retry Count value */ + +/* Intr Throttling - RW */ +#define E1000_EITR_82574(_n) (0x000E8 + (0x4 * (_n))) + +#define E1000_EIAC_82574 0x000DC /* Ext. Interrupt Auto Clear - RW */ +#define E1000_EIAC_MASK_82574 0x01F00000 + +#define E1000_IVAR_INT_ALLOC_VALID 0x8 + +/* Manageability Operation Mode mask */ +#define E1000_NVM_INIT_CTRL2_MNGM 0x6000 + +#define E1000_BASE1000T_STATUS 10 +#define E1000_IDLE_ERROR_COUNT_MASK 0xFF +#define E1000_RECEIVE_ERROR_COUNTER 21 +#define E1000_RECEIVE_ERROR_MAX 0xFFFF +bool e1000_check_phy_82574(struct e1000_hw *hw); +bool e1000e_get_laa_state_82571(struct e1000_hw *hw); +void e1000e_set_laa_state_82571(struct e1000_hw *hw, bool state); + +#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/defines.h b/vmkdrivers/src_9/drivers/net/e1000e/defines.h new file mode 100644 index 0000000000000000000000000000000000000000..64cf0b2010f3fdf26c4ac2e1a0cfb64437f1b28b --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/defines.h @@ -0,0 +1,805 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +#ifndef _E1000E_DEFINES_H_ +#define _E1000E_DEFINES_H_ + +/* Number of Transmit and Receive Descriptors must be a multiple of 8 */ +#define REQ_TX_DESCRIPTOR_MULTIPLE 8 +#define REQ_RX_DESCRIPTOR_MULTIPLE 8 + +/* Definitions for power management and wakeup registers */ +/* Wake Up Control */ +#define E1000_WUC_APME 0x00000001 /* APM Enable */ +#define E1000_WUC_PME_EN 0x00000002 /* PME Enable */ +#define E1000_WUC_PME_STATUS 0x00000004 /* PME Status */ +#define E1000_WUC_APMPME 0x00000008 /* Assert PME on APM Wakeup */ +#define E1000_WUC_PHY_WAKE 0x00000100 /* if PHY supports wakeup */ + +/* Wake Up Filter Control */ +#define E1000_WUFC_LNKC 0x00000001 /* Link Status Change Wakeup Enable */ +#define E1000_WUFC_MAG 0x00000002 /* Magic Packet Wakeup Enable */ +#define E1000_WUFC_EX 0x00000004 /* Directed Exact Wakeup Enable */ +#define E1000_WUFC_MC 0x00000008 /* Directed Multicast Wakeup Enable */ +#define E1000_WUFC_BC 0x00000010 /* Broadcast Wakeup Enable */ +#define E1000_WUFC_ARP 0x00000020 /* ARP Request Packet Wakeup Enable */ + +/* Wake Up Status */ +#define E1000_WUS_LNKC E1000_WUFC_LNKC +#define E1000_WUS_MAG E1000_WUFC_MAG +#define E1000_WUS_EX E1000_WUFC_EX +#define E1000_WUS_MC E1000_WUFC_MC +#define E1000_WUS_BC E1000_WUFC_BC + +/* Extended Device Control */ +#define E1000_CTRL_EXT_LPCD 0x00000004 /* LCD Power Cycle Done */ +#define E1000_CTRL_EXT_SDP3_DATA 0x00000080 /* SW Definable Pin 3 data */ +#define E1000_CTRL_EXT_FORCE_SMBUS 0x00000800 /* Force SMBus mode */ +#define E1000_CTRL_EXT_EE_RST 0x00002000 /* Reinitialize from EEPROM */ +#define E1000_CTRL_EXT_SPD_BYPS 0x00008000 /* Speed Select Bypass */ +#define E1000_CTRL_EXT_RO_DIS 0x00020000 /* Relaxed Ordering disable */ +#define E1000_CTRL_EXT_DMA_DYN_CLK_EN 0x00080000 /* DMA Dynamic Clk Gating */ +#define E1000_CTRL_EXT_LINK_MODE_MASK 0x00C00000 +#define E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES 0x00C00000 +#define E1000_CTRL_EXT_EIAME 0x01000000 +#define E1000_CTRL_EXT_DRV_LOAD 0x10000000 /* Drv loaded bit for FW */ +#define E1000_CTRL_EXT_IAME 0x08000000 /* Int ACK Auto-mask */ +#define E1000_CTRL_EXT_PBA_CLR 0x80000000 /* PBA Clear */ +#define E1000_CTRL_EXT_LSECCK 0x00001000 +#define E1000_CTRL_EXT_PHYPDEN 0x00100000 + +/* Receive Descriptor bit definitions */ +#define E1000_RXD_STAT_DD 0x01 /* Descriptor Done */ +#define E1000_RXD_STAT_EOP 0x02 /* End of Packet */ +#define E1000_RXD_STAT_IXSM 0x04 /* Ignore checksum */ +#define E1000_RXD_STAT_VP 0x08 /* IEEE VLAN Packet */ +#define E1000_RXD_STAT_UDPCS 0x10 /* UDP xsum calculated */ +#define E1000_RXD_STAT_TCPCS 0x20 /* TCP xsum calculated */ +#define E1000_RXD_ERR_CE 0x01 /* CRC Error */ +#define E1000_RXD_ERR_SE 0x02 /* Symbol Error */ +#define E1000_RXD_ERR_SEQ 0x04 /* Sequence Error */ +#define E1000_RXD_ERR_CXE 0x10 /* Carrier Extension Error */ +#define E1000_RXD_ERR_TCPE 0x20 /* TCP/UDP Checksum Error */ +#define E1000_RXD_ERR_IPE 0x40 /* IP Checksum Error */ +#define E1000_RXD_ERR_RXE 0x80 /* Rx Data Error */ +#define E1000_RXD_SPC_VLAN_MASK 0x0FFF /* VLAN ID is in lower 12 bits */ + +#define E1000_RXDEXT_STATERR_TST 0x00000100 /* Time Stamp taken */ +#define E1000_RXDEXT_STATERR_CE 0x01000000 +#define E1000_RXDEXT_STATERR_SE 0x02000000 +#define E1000_RXDEXT_STATERR_SEQ 0x04000000 +#define E1000_RXDEXT_STATERR_CXE 0x10000000 +#define E1000_RXDEXT_STATERR_RXE 0x80000000 + +/* mask to determine if packets should be dropped due to frame errors */ +#define E1000_RXD_ERR_FRAME_ERR_MASK ( \ + E1000_RXD_ERR_CE | \ + E1000_RXD_ERR_SE | \ + E1000_RXD_ERR_SEQ | \ + E1000_RXD_ERR_CXE | \ + E1000_RXD_ERR_RXE) + +/* Same mask, but for extended and packet split descriptors */ +#define E1000_RXDEXT_ERR_FRAME_ERR_MASK ( \ + E1000_RXDEXT_STATERR_CE | \ + E1000_RXDEXT_STATERR_SE | \ + E1000_RXDEXT_STATERR_SEQ | \ + E1000_RXDEXT_STATERR_CXE | \ + E1000_RXDEXT_STATERR_RXE) + +#define E1000_MRQC_RSS_FIELD_MASK 0xFFFF0000 +#define E1000_MRQC_RSS_FIELD_IPV4_TCP 0x00010000 +#define E1000_MRQC_RSS_FIELD_IPV4 0x00020000 +#define E1000_MRQC_RSS_FIELD_IPV6_TCP_EX 0x00040000 +#define E1000_MRQC_RSS_FIELD_IPV6 0x00100000 +#define E1000_MRQC_RSS_FIELD_IPV6_TCP 0x00200000 + +#define E1000_RXDPS_HDRSTAT_HDRSP 0x00008000 + +/* Management Control */ +#define E1000_MANC_SMBUS_EN 0x00000001 /* SMBus Enabled - RO */ +#define E1000_MANC_ASF_EN 0x00000002 /* ASF Enabled - RO */ +#define E1000_MANC_ARP_EN 0x00002000 /* Enable ARP Request Filtering */ +#define E1000_MANC_RCV_TCO_EN 0x00020000 /* Receive TCO Packets Enabled */ +#define E1000_MANC_BLK_PHY_RST_ON_IDE 0x00040000 /* Block phy resets */ +/* Enable MAC address filtering */ +#define E1000_MANC_EN_MAC_ADDR_FILTER 0x00100000 +/* Enable MNG packets to host memory */ +#define E1000_MANC_EN_MNG2HOST 0x00200000 + +#define E1000_MANC2H_PORT_623 0x00000020 /* Port 0x26f */ +#define E1000_MANC2H_PORT_664 0x00000040 /* Port 0x298 */ +#define E1000_MDEF_PORT_623 0x00000800 /* Port 0x26f */ +#define E1000_MDEF_PORT_664 0x00000400 /* Port 0x298 */ + +/* Receive Control */ +#define E1000_RCTL_EN 0x00000002 /* enable */ +#define E1000_RCTL_SBP 0x00000004 /* store bad packet */ +#define E1000_RCTL_UPE 0x00000008 /* unicast promisc enable */ +#define E1000_RCTL_MPE 0x00000010 /* multicast promisc enable */ +#define E1000_RCTL_LPE 0x00000020 /* long packet enable */ +#define E1000_RCTL_LBM_NO 0x00000000 /* no loopback mode */ +#define E1000_RCTL_LBM_MAC 0x00000040 /* MAC loopback mode */ +#define E1000_RCTL_LBM_TCVR 0x000000C0 /* tcvr loopback mode */ +#define E1000_RCTL_DTYP_PS 0x00000400 /* Packet Split descriptor */ +#define E1000_RCTL_RDMTS_HALF 0x00000000 /* Rx desc min thresh size */ +#define E1000_RCTL_RDMTS_HEX 0x00010000 +#define E1000_RCTL_MO_SHIFT 12 /* multicast offset shift */ +#define E1000_RCTL_MO_3 0x00003000 /* multicast offset 15:4 */ +#define E1000_RCTL_BAM 0x00008000 /* broadcast enable */ +/* these buffer sizes are valid if E1000_RCTL_BSEX is 0 */ +#define E1000_RCTL_SZ_2048 0x00000000 /* Rx buffer size 2048 */ +#define E1000_RCTL_SZ_1024 0x00010000 /* Rx buffer size 1024 */ +#define E1000_RCTL_SZ_512 0x00020000 /* Rx buffer size 512 */ +#define E1000_RCTL_SZ_256 0x00030000 /* Rx buffer size 256 */ +/* these buffer sizes are valid if E1000_RCTL_BSEX is 1 */ +#define E1000_RCTL_SZ_16384 0x00010000 /* Rx buffer size 16384 */ +#define E1000_RCTL_SZ_8192 0x00020000 /* Rx buffer size 8192 */ +#define E1000_RCTL_SZ_4096 0x00030000 /* Rx buffer size 4096 */ +#define E1000_RCTL_VFE 0x00040000 /* vlan filter enable */ +#define E1000_RCTL_CFIEN 0x00080000 /* canonical form enable */ +#define E1000_RCTL_CFI 0x00100000 /* canonical form indicator */ +#define E1000_RCTL_DPF 0x00400000 /* discard pause frames */ +#define E1000_RCTL_PMCF 0x00800000 /* pass MAC control frames */ +#define E1000_RCTL_BSEX 0x02000000 /* Buffer size extension */ +#define E1000_RCTL_SECRC 0x04000000 /* Strip Ethernet CRC */ + +/* Use byte values for the following shift parameters + * Usage: + * psrctl |= (((ROUNDUP(value0, 128) >> E1000_PSRCTL_BSIZE0_SHIFT) & + * E1000_PSRCTL_BSIZE0_MASK) | + * ((ROUNDUP(value1, 1024) >> E1000_PSRCTL_BSIZE1_SHIFT) & + * E1000_PSRCTL_BSIZE1_MASK) | + * ((ROUNDUP(value2, 1024) << E1000_PSRCTL_BSIZE2_SHIFT) & + * E1000_PSRCTL_BSIZE2_MASK) | + * ((ROUNDUP(value3, 1024) << E1000_PSRCTL_BSIZE3_SHIFT) |; + * E1000_PSRCTL_BSIZE3_MASK)) + * where value0 = [128..16256], default=256 + * value1 = [1024..64512], default=4096 + * value2 = [0..64512], default=4096 + * value3 = [0..64512], default=0 + */ + +#define E1000_PSRCTL_BSIZE0_MASK 0x0000007F +#define E1000_PSRCTL_BSIZE1_MASK 0x00003F00 +#define E1000_PSRCTL_BSIZE2_MASK 0x003F0000 +#define E1000_PSRCTL_BSIZE3_MASK 0x3F000000 + +#define E1000_PSRCTL_BSIZE0_SHIFT 7 /* Shift _right_ 7 */ +#define E1000_PSRCTL_BSIZE1_SHIFT 2 /* Shift _right_ 2 */ +#define E1000_PSRCTL_BSIZE2_SHIFT 6 /* Shift _left_ 6 */ +#define E1000_PSRCTL_BSIZE3_SHIFT 14 /* Shift _left_ 14 */ + +/* SWFW_SYNC Definitions */ +#define E1000_SWFW_EEP_SM 0x01 +#define E1000_SWFW_PHY0_SM 0x02 +#define E1000_SWFW_PHY1_SM 0x04 +#define E1000_SWFW_CSR_SM 0x08 + +/* Device Control */ +#define E1000_CTRL_FD 0x00000001 /* Full duplex.0=half; 1=full */ +#define E1000_CTRL_GIO_MASTER_DISABLE 0x00000004 /*Blocks new Master reqs */ +#define E1000_CTRL_LRST 0x00000008 /* Link reset. 0=normal,1=reset */ +#define E1000_CTRL_ASDE 0x00000020 /* Auto-speed detect enable */ +#define E1000_CTRL_SLU 0x00000040 /* Set link up (Force Link) */ +#define E1000_CTRL_ILOS 0x00000080 /* Invert Loss-Of Signal */ +#define E1000_CTRL_SPD_SEL 0x00000300 /* Speed Select Mask */ +#define E1000_CTRL_SPD_10 0x00000000 /* Force 10Mb */ +#define E1000_CTRL_SPD_100 0x00000100 /* Force 100Mb */ +#define E1000_CTRL_SPD_1000 0x00000200 /* Force 1Gb */ +#define E1000_CTRL_FRCSPD 0x00000800 /* Force Speed */ +#define E1000_CTRL_FRCDPX 0x00001000 /* Force Duplex */ +#define E1000_CTRL_LANPHYPC_OVERRIDE 0x00010000 /* SW control of LANPHYPC */ +#define E1000_CTRL_LANPHYPC_VALUE 0x00020000 /* SW value of LANPHYPC */ +#define E1000_CTRL_MEHE 0x00080000 /* Memory Error Handling Enable */ +#define E1000_CTRL_SWDPIN0 0x00040000 /* SWDPIN 0 value */ +#define E1000_CTRL_SWDPIN1 0x00080000 /* SWDPIN 1 value */ +#define E1000_CTRL_ADVD3WUC 0x00100000 /* D3 WUC */ +#define E1000_CTRL_EN_PHY_PWR_MGMT 0x00200000 /* PHY PM enable */ +#define E1000_CTRL_SWDPIO0 0x00400000 /* SWDPIN 0 Input or output */ +#define E1000_CTRL_RST 0x04000000 /* Global reset */ +#define E1000_CTRL_RFCE 0x08000000 /* Receive Flow Control enable */ +#define E1000_CTRL_TFCE 0x10000000 /* Transmit flow control enable */ +#define E1000_CTRL_VME 0x40000000 /* IEEE VLAN mode enable */ +#define E1000_CTRL_PHY_RST 0x80000000 /* PHY Reset */ + +#define E1000_PCS_LCTL_FORCE_FCTRL 0x80 + +#define E1000_PCS_LSTS_AN_COMPLETE 0x10000 + +/* Device Status */ +#define E1000_STATUS_FD 0x00000001 /* Duplex 0=half 1=full */ +#define E1000_STATUS_LU 0x00000002 /* Link up.0=no,1=link */ +#define E1000_STATUS_FUNC_MASK 0x0000000C /* PCI Function Mask */ +#define E1000_STATUS_FUNC_SHIFT 2 +#define E1000_STATUS_FUNC_1 0x00000004 /* Function 1 */ +#define E1000_STATUS_TXOFF 0x00000010 /* transmission paused */ +#define E1000_STATUS_SPEED_MASK 0x000000C0 +#define E1000_STATUS_SPEED_10 0x00000000 /* Speed 10Mb/s */ +#define E1000_STATUS_SPEED_100 0x00000040 /* Speed 100Mb/s */ +#define E1000_STATUS_SPEED_1000 0x00000080 /* Speed 1000Mb/s */ +#define E1000_STATUS_LAN_INIT_DONE 0x00000200 /* Lan Init Compltn by NVM */ +#define E1000_STATUS_PHYRA 0x00000400 /* PHY Reset Asserted */ +#define E1000_STATUS_GIO_MASTER_ENABLE 0x00080000 /* Master request status */ + +#define HALF_DUPLEX 1 +#define FULL_DUPLEX 2 + +#define ADVERTISE_10_HALF 0x0001 +#define ADVERTISE_10_FULL 0x0002 +#define ADVERTISE_100_HALF 0x0004 +#define ADVERTISE_100_FULL 0x0008 +#define ADVERTISE_1000_HALF 0x0010 /* Not used, just FYI */ +#define ADVERTISE_1000_FULL 0x0020 + +/* 1000/H is not supported, nor spec-compliant. */ +#define E1000_ALL_SPEED_DUPLEX ( \ + ADVERTISE_10_HALF | ADVERTISE_10_FULL | ADVERTISE_100_HALF | \ + ADVERTISE_100_FULL | ADVERTISE_1000_FULL) +#define E1000_ALL_NOT_GIG ( \ + ADVERTISE_10_HALF | ADVERTISE_10_FULL | ADVERTISE_100_HALF | \ + ADVERTISE_100_FULL) +#define E1000_ALL_100_SPEED (ADVERTISE_100_HALF | ADVERTISE_100_FULL) +#define E1000_ALL_10_SPEED (ADVERTISE_10_HALF | ADVERTISE_10_FULL) +#define E1000_ALL_HALF_DUPLEX (ADVERTISE_10_HALF | ADVERTISE_100_HALF) + +#define AUTONEG_ADVERTISE_SPEED_DEFAULT E1000_ALL_SPEED_DUPLEX + +/* LED Control */ +#define E1000_PHY_LED0_MODE_MASK 0x00000007 +#define E1000_PHY_LED0_IVRT 0x00000008 +#define E1000_PHY_LED0_MASK 0x0000001F + +#define E1000_LEDCTL_LED0_MODE_MASK 0x0000000F +#define E1000_LEDCTL_LED0_MODE_SHIFT 0 +#define E1000_LEDCTL_LED0_IVRT 0x00000040 +#define E1000_LEDCTL_LED0_BLINK 0x00000080 + +#define E1000_LEDCTL_MODE_LINK_UP 0x2 +#define E1000_LEDCTL_MODE_LED_ON 0xE +#define E1000_LEDCTL_MODE_LED_OFF 0xF + +/* Transmit Descriptor bit definitions */ +#define E1000_TXD_DTYP_D 0x00100000 /* Data Descriptor */ +#define E1000_TXD_POPTS_IXSM 0x01 /* Insert IP checksum */ +#define E1000_TXD_POPTS_TXSM 0x02 /* Insert TCP/UDP checksum */ +#define E1000_TXD_CMD_EOP 0x01000000 /* End of Packet */ +#define E1000_TXD_CMD_IFCS 0x02000000 /* Insert FCS (Ethernet CRC) */ +#define E1000_TXD_CMD_IC 0x04000000 /* Insert Checksum */ +#define E1000_TXD_CMD_RS 0x08000000 /* Report Status */ +#define E1000_TXD_CMD_RPS 0x10000000 /* Report Packet Sent */ +#define E1000_TXD_CMD_DEXT 0x20000000 /* Desc extension (0 = legacy) */ +#define E1000_TXD_CMD_VLE 0x40000000 /* Add VLAN tag */ +#define E1000_TXD_CMD_IDE 0x80000000 /* Enable Tidv register */ +#define E1000_TXD_STAT_DD 0x00000001 /* Descriptor Done */ +#define E1000_TXD_STAT_EC 0x00000002 /* Excess Collisions */ +#define E1000_TXD_STAT_LC 0x00000004 /* Late Collisions */ +#define E1000_TXD_STAT_TU 0x00000008 /* Transmit underrun */ +#define E1000_TXD_CMD_TCP 0x01000000 /* TCP packet */ +#define E1000_TXD_CMD_IP 0x02000000 /* IP packet */ +#define E1000_TXD_CMD_TSE 0x04000000 /* TCP Seg enable */ +#define E1000_TXD_STAT_TC 0x00000004 /* Tx Underrun */ +#define E1000_TXD_EXTCMD_TSTAMP 0x00000010 /* IEEE1588 Timestamp packet */ + +/* Transmit Control */ +#define E1000_TCTL_EN 0x00000002 /* enable Tx */ +#define E1000_TCTL_PSP 0x00000008 /* pad short packets */ +#define E1000_TCTL_CT 0x00000ff0 /* collision threshold */ +#define E1000_TCTL_COLD 0x003ff000 /* collision distance */ +#define E1000_TCTL_RTLC 0x01000000 /* Re-transmit on late collision */ +#define E1000_TCTL_MULR 0x10000000 /* Multiple request support */ + +/* SerDes Control */ +#define E1000_SCTL_DISABLE_SERDES_LOOPBACK 0x0400 +#define E1000_SCTL_ENABLE_SERDES_LOOPBACK 0x0410 + +/* Receive Checksum Control */ +#define E1000_RXCSUM_TUOFL 0x00000200 /* TCP / UDP checksum offload */ +#define E1000_RXCSUM_IPPCSE 0x00001000 /* IP payload checksum enable */ +#define E1000_RXCSUM_PCSD 0x00002000 /* packet checksum disabled */ + +/* Header split receive */ +#define E1000_RFCTL_NFSW_DIS 0x00000040 +#define E1000_RFCTL_NFSR_DIS 0x00000080 +#define E1000_RFCTL_ACK_DIS 0x00001000 +#define E1000_RFCTL_EXTEN 0x00008000 +#define E1000_RFCTL_IPV6_EX_DIS 0x00010000 +#define E1000_RFCTL_NEW_IPV6_EXT_DIS 0x00020000 + +/* Collision related configuration parameters */ +#define E1000_COLLISION_THRESHOLD 15 +#define E1000_CT_SHIFT 4 +#define E1000_COLLISION_DISTANCE 63 +#define E1000_COLD_SHIFT 12 + +/* Default values for the transmit IPG register */ +#define DEFAULT_82543_TIPG_IPGT_COPPER 8 + +#define E1000_TIPG_IPGT_MASK 0x000003FF + +#define DEFAULT_82543_TIPG_IPGR1 8 +#define E1000_TIPG_IPGR1_SHIFT 10 + +#define DEFAULT_82543_TIPG_IPGR2 6 +#define DEFAULT_80003ES2LAN_TIPG_IPGR2 7 +#define E1000_TIPG_IPGR2_SHIFT 20 + +#define MAX_JUMBO_FRAME_SIZE 0x3F00 +#define E1000_TX_PTR_GAP 0x1F + +/* Extended Configuration Control and Size */ +#define E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP 0x00000020 +#define E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE 0x00000001 +#define E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE 0x00000008 +#define E1000_EXTCNF_CTRL_SWFLAG 0x00000020 +#define E1000_EXTCNF_CTRL_GATE_PHY_CFG 0x00000080 +#define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK 0x00FF0000 +#define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT 16 +#define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK 0x0FFF0000 +#define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT 16 + +#define E1000_PHY_CTRL_D0A_LPLU 0x00000002 +#define E1000_PHY_CTRL_NOND0A_LPLU 0x00000004 +#define E1000_PHY_CTRL_NOND0A_GBE_DISABLE 0x00000008 +#define E1000_PHY_CTRL_GBE_DISABLE 0x00000040 + +#define E1000_KABGTXD_BGSQLBIAS 0x00050000 + +/* Low Power IDLE Control */ +#define E1000_LPIC_LPIET_SHIFT 24 /* Low Power Idle Entry Time */ + +/* PBA constants */ +#define E1000_PBA_8K 0x0008 /* 8KB */ +#define E1000_PBA_16K 0x0010 /* 16KB */ + +#define E1000_PBA_RXA_MASK 0xFFFF + +#define E1000_PBS_16K E1000_PBA_16K + +/* Uncorrectable/correctable ECC Error counts and enable bits */ +#define E1000_PBECCSTS_CORR_ERR_CNT_MASK 0x000000FF +#define E1000_PBECCSTS_UNCORR_ERR_CNT_MASK 0x0000FF00 +#define E1000_PBECCSTS_UNCORR_ERR_CNT_SHIFT 8 +#define E1000_PBECCSTS_ECC_ENABLE 0x00010000 + +#define IFS_MAX 80 +#define IFS_MIN 40 +#define IFS_RATIO 4 +#define IFS_STEP 10 +#define MIN_NUM_XMITS 1000 + +/* SW Semaphore Register */ +#define E1000_SWSM_SMBI 0x00000001 /* Driver Semaphore bit */ +#define E1000_SWSM_SWESMBI 0x00000002 /* FW Semaphore bit */ +#define E1000_SWSM_DRV_LOAD 0x00000008 /* Driver Loaded Bit */ + +#define E1000_SWSM2_LOCK 0x00000002 /* Secondary driver semaphore bit */ + +/* Interrupt Cause Read */ +#define E1000_ICR_TXDW 0x00000001 /* Transmit desc written back */ +#define E1000_ICR_LSC 0x00000004 /* Link Status Change */ +#define E1000_ICR_RXSEQ 0x00000008 /* Rx sequence error */ +#define E1000_ICR_RXDMT0 0x00000010 /* Rx desc min. threshold (0) */ +#define E1000_ICR_RXT0 0x00000080 /* Rx timer intr (ring 0) */ +#define E1000_ICR_ECCER 0x00400000 /* Uncorrectable ECC Error */ +/* If this bit asserted, the driver should claim the interrupt */ +#define E1000_ICR_INT_ASSERTED 0x80000000 +#define E1000_ICR_RXQ0 0x00100000 /* Rx Queue 0 Interrupt */ +#define E1000_ICR_RXQ1 0x00200000 /* Rx Queue 1 Interrupt */ +#define E1000_ICR_TXQ0 0x00400000 /* Tx Queue 0 Interrupt */ +#define E1000_ICR_TXQ1 0x00800000 /* Tx Queue 1 Interrupt */ +#define E1000_ICR_OTHER 0x01000000 /* Other Interrupts */ + +/* PBA ECC Register */ +#define E1000_PBA_ECC_COUNTER_MASK 0xFFF00000 /* ECC counter mask */ +#define E1000_PBA_ECC_COUNTER_SHIFT 20 /* ECC counter shift value */ +#define E1000_PBA_ECC_CORR_EN 0x00000001 /* Enable ECC error correction */ +#define E1000_PBA_ECC_STAT_CLR 0x00000002 /* Clear ECC error counter */ +#define E1000_PBA_ECC_INT_EN 0x00000004 /* Enable ICR bit 5 on ECC error */ + +/* This defines the bits that are set in the Interrupt Mask + * Set/Read Register. Each bit is documented below: + * o RXT0 = Receiver Timer Interrupt (ring 0) + * o TXDW = Transmit Descriptor Written Back + * o RXDMT0 = Receive Descriptor Minimum Threshold hit (ring 0) + * o RXSEQ = Receive Sequence Error + * o LSC = Link Status Change + */ +#define IMS_ENABLE_MASK ( \ + E1000_IMS_RXT0 | \ + E1000_IMS_TXDW | \ + E1000_IMS_RXDMT0 | \ + E1000_IMS_RXSEQ | \ + E1000_IMS_LSC) + +/* Interrupt Mask Set */ +#define E1000_IMS_TXDW E1000_ICR_TXDW /* Tx desc written back */ +#define E1000_IMS_LSC E1000_ICR_LSC /* Link Status Change */ +#define E1000_IMS_RXSEQ E1000_ICR_RXSEQ /* Rx sequence error */ +#define E1000_IMS_RXDMT0 E1000_ICR_RXDMT0 /* Rx desc min. threshold */ +#define E1000_IMS_RXT0 E1000_ICR_RXT0 /* Rx timer intr */ +#define E1000_IMS_ECCER E1000_ICR_ECCER /* Uncorrectable ECC Error */ +#define E1000_IMS_RXQ0 E1000_ICR_RXQ0 /* Rx Queue 0 Interrupt */ +#define E1000_IMS_RXQ1 E1000_ICR_RXQ1 /* Rx Queue 1 Interrupt */ +#define E1000_IMS_TXQ0 E1000_ICR_TXQ0 /* Tx Queue 0 Interrupt */ +#define E1000_IMS_TXQ1 E1000_ICR_TXQ1 /* Tx Queue 1 Interrupt */ +#define E1000_IMS_OTHER E1000_ICR_OTHER /* Other Interrupts */ + +/* Interrupt Cause Set */ +#define E1000_ICS_LSC E1000_ICR_LSC /* Link Status Change */ +#define E1000_ICS_RXSEQ E1000_ICR_RXSEQ /* Rx sequence error */ +#define E1000_ICS_RXDMT0 E1000_ICR_RXDMT0 /* Rx desc min. threshold */ + +/* Transmit Descriptor Control */ +#define E1000_TXDCTL_PTHRESH 0x0000003F /* TXDCTL Prefetch Threshold */ +#define E1000_TXDCTL_HTHRESH 0x00003F00 /* TXDCTL Host Threshold */ +#define E1000_TXDCTL_WTHRESH 0x003F0000 /* TXDCTL Writeback Threshold */ +#define E1000_TXDCTL_GRAN 0x01000000 /* TXDCTL Granularity */ +#define E1000_TXDCTL_FULL_TX_DESC_WB 0x01010000 /* GRAN=1, WTHRESH=1 */ +#define E1000_TXDCTL_MAX_TX_DESC_PREFETCH 0x0100001F /* GRAN=1, PTHRESH=31 */ +/* Enable the counting of descriptors still to be processed. */ +#define E1000_TXDCTL_COUNT_DESC 0x00400000 + +/* Flow Control Constants */ +#define FLOW_CONTROL_ADDRESS_LOW 0x00C28001 +#define FLOW_CONTROL_ADDRESS_HIGH 0x00000100 +#define FLOW_CONTROL_TYPE 0x8808 + +/* 802.1q VLAN Packet Size */ +#define E1000_VLAN_FILTER_TBL_SIZE 128 /* VLAN Filter Table (4096 bits) */ + +/* Receive Address + * Number of high/low register pairs in the RAR. The RAR (Receive Address + * Registers) holds the directed and multicast addresses that we monitor. + * Technically, we have 16 spots. However, we reserve one of these spots + * (RAR[15]) for our directed address used by controllers with + * manageability enabled, allowing us room for 15 multicast addresses. + */ +#define E1000_RAR_ENTRIES 15 +#define E1000_RAH_AV 0x80000000 /* Receive descriptor valid */ +#define E1000_RAL_MAC_ADDR_LEN 4 +#define E1000_RAH_MAC_ADDR_LEN 2 + +/* Error Codes */ +#define E1000_ERR_NVM 1 +#define E1000_ERR_PHY 2 +#define E1000_ERR_CONFIG 3 +#define E1000_ERR_PARAM 4 +#define E1000_ERR_MAC_INIT 5 +#define E1000_ERR_PHY_TYPE 6 +#define E1000_ERR_RESET 9 +#define E1000_ERR_MASTER_REQUESTS_PENDING 10 +#define E1000_ERR_HOST_INTERFACE_COMMAND 11 +#define E1000_BLK_PHY_RESET 12 +#define E1000_ERR_SWFW_SYNC 13 +#define E1000_NOT_IMPLEMENTED 14 +#define E1000_ERR_INVALID_ARGUMENT 16 +#define E1000_ERR_NO_SPACE 17 +#define E1000_ERR_NVM_PBA_SECTION 18 + +/* Loop limit on how long we wait for auto-negotiation to complete */ +#define FIBER_LINK_UP_LIMIT 50 +#define COPPER_LINK_UP_LIMIT 10 +#define PHY_AUTO_NEG_LIMIT 45 +#define PHY_FORCE_LIMIT 20 +/* Number of 100 microseconds we wait for PCI Express master disable */ +#define MASTER_DISABLE_TIMEOUT 800 +/* Number of milliseconds we wait for PHY configuration done after MAC reset */ +#define PHY_CFG_TIMEOUT 100 +/* Number of 2 milliseconds we wait for acquiring MDIO ownership. */ +#define MDIO_OWNERSHIP_TIMEOUT 10 +/* Number of milliseconds for NVM auto read done after MAC reset. */ +#define AUTO_READ_DONE_TIMEOUT 10 + +/* Flow Control */ +#define E1000_FCRTH_RTH 0x0000FFF8 /* Mask Bits[15:3] for RTH */ +#define E1000_FCRTL_RTL 0x0000FFF8 /* Mask Bits[15:3] for RTL */ +#define E1000_FCRTL_XONE 0x80000000 /* Enable XON frame transmission */ + +/* Transmit Configuration Word */ +#define E1000_TXCW_FD 0x00000020 /* TXCW full duplex */ +#define E1000_TXCW_PAUSE 0x00000080 /* TXCW sym pause request */ +#define E1000_TXCW_ASM_DIR 0x00000100 /* TXCW astm pause direction */ +#define E1000_TXCW_PAUSE_MASK 0x00000180 /* TXCW pause request mask */ +#define E1000_TXCW_ANE 0x80000000 /* Auto-neg enable */ + +/* Receive Configuration Word */ +#define E1000_RXCW_CW 0x0000ffff /* RxConfigWord mask */ +#define E1000_RXCW_IV 0x08000000 /* Receive config invalid */ +#define E1000_RXCW_C 0x20000000 /* Receive config */ +#define E1000_RXCW_SYNCH 0x40000000 /* Receive config synch */ + +#define E1000_TSYNCTXCTL_VALID 0x00000001 /* Tx timestamp valid */ +#define E1000_TSYNCTXCTL_ENABLED 0x00000010 /* enable Tx timestamping */ + +/* HH Time Sync */ +#define E1000_TSYNCTXCTL_MAX_ALLOWED_DLY_MASK 0x0000F000 /* max delay */ +#define E1000_TSYNCTXCTL_SYNC_COMP_ERR 0x20000000 /* sync err */ +#define E1000_TSYNCTXCTL_SYNC_COMP 0x40000000 /* sync complete */ +#define E1000_TSYNCTXCTL_START_SYNC 0x80000000 /* initiate sync */ + +#define E1000_TSYNCRXCTL_VALID 0x00000001 /* Rx timestamp valid */ +#define E1000_TSYNCRXCTL_TYPE_MASK 0x0000000E /* Rx type mask */ +#define E1000_TSYNCRXCTL_TYPE_L2_V2 0x00 +#define E1000_TSYNCRXCTL_TYPE_L4_V1 0x02 +#define E1000_TSYNCRXCTL_TYPE_L2_L4_V2 0x04 +#define E1000_TSYNCRXCTL_TYPE_ALL 0x08 +#define E1000_TSYNCRXCTL_TYPE_EVENT_V2 0x0A +#define E1000_TSYNCRXCTL_ENABLED 0x00000010 /* enable Rx timestamping */ +#define E1000_TSYNCRXCTL_SYSCFI 0x00000020 /* Sys clock frequency */ + +#define E1000_RXMTRL_PTP_V1_SYNC_MESSAGE 0x00000000 +#define E1000_RXMTRL_PTP_V1_DELAY_REQ_MESSAGE 0x00010000 + +#define E1000_RXMTRL_PTP_V2_SYNC_MESSAGE 0x00000000 +#define E1000_RXMTRL_PTP_V2_DELAY_REQ_MESSAGE 0x01000000 + +#define E1000_TIMINCA_INCPERIOD_SHIFT 24 +#define E1000_TIMINCA_INCVALUE_MASK 0x00FFFFFF + +/* PCI Express Control */ +#define E1000_GCR_RXD_NO_SNOOP 0x00000001 +#define E1000_GCR_RXDSCW_NO_SNOOP 0x00000002 +#define E1000_GCR_RXDSCR_NO_SNOOP 0x00000004 +#define E1000_GCR_TXD_NO_SNOOP 0x00000008 +#define E1000_GCR_TXDSCW_NO_SNOOP 0x00000010 +#define E1000_GCR_TXDSCR_NO_SNOOP 0x00000020 + +#define PCIE_NO_SNOOP_ALL (E1000_GCR_RXD_NO_SNOOP | \ + E1000_GCR_RXDSCW_NO_SNOOP | \ + E1000_GCR_RXDSCR_NO_SNOOP | \ + E1000_GCR_TXD_NO_SNOOP | \ + E1000_GCR_TXDSCW_NO_SNOOP | \ + E1000_GCR_TXDSCR_NO_SNOOP) + +/* NVM Control */ +#define E1000_EECD_SK 0x00000001 /* NVM Clock */ +#define E1000_EECD_CS 0x00000002 /* NVM Chip Select */ +#define E1000_EECD_DI 0x00000004 /* NVM Data In */ +#define E1000_EECD_DO 0x00000008 /* NVM Data Out */ +#define E1000_EECD_REQ 0x00000040 /* NVM Access Request */ +#define E1000_EECD_GNT 0x00000080 /* NVM Access Grant */ +#define E1000_EECD_PRES 0x00000100 /* NVM Present */ +#define E1000_EECD_SIZE 0x00000200 /* NVM Size (0=64 word 1=256 word) */ +/* NVM Addressing bits based on type 0=small, 1=large */ +#define E1000_EECD_ADDR_BITS 0x00000400 +#define E1000_NVM_GRANT_ATTEMPTS 1000 /* NVM # attempts to gain grant */ +#define E1000_EECD_AUTO_RD 0x00000200 /* NVM Auto Read done */ +#define E1000_EECD_SIZE_EX_MASK 0x00007800 /* NVM Size */ +#define E1000_EECD_SIZE_EX_SHIFT 11 +#define E1000_EECD_FLUPD 0x00080000 /* Update FLASH */ +#define E1000_EECD_AUPDEN 0x00100000 /* Ena Auto FLASH update */ +#define E1000_EECD_SEC1VAL 0x00400000 /* Sector One Valid */ +#define E1000_EECD_SEC1VAL_VALID_MASK (E1000_EECD_AUTO_RD | E1000_EECD_PRES) + +#define E1000_NVM_RW_REG_DATA 16 /* Offset to data in NVM read/write regs */ +#define E1000_NVM_RW_REG_DONE 2 /* Offset to READ/WRITE done bit */ +#define E1000_NVM_RW_REG_START 1 /* Start operation */ +#define E1000_NVM_RW_ADDR_SHIFT 2 /* Shift to the address bits */ +#define E1000_NVM_POLL_WRITE 1 /* Flag for polling for write complete */ +#define E1000_NVM_POLL_READ 0 /* Flag for polling for read complete */ +#define E1000_FLASH_UPDATES 2000 + +/* NVM Word Offsets */ +#define NVM_COMPAT 0x0003 +#define NVM_ID_LED_SETTINGS 0x0004 +#define NVM_FUTURE_INIT_WORD1 0x0019 +#define NVM_COMPAT_VALID_CSUM 0x0001 +#define NVM_FUTURE_INIT_WORD1_VALID_CSUM 0x0040 + +#define NVM_INIT_CONTROL2_REG 0x000F +#define NVM_INIT_CONTROL3_PORT_B 0x0014 +#define NVM_INIT_3GIO_3 0x001A +#define NVM_INIT_CONTROL3_PORT_A 0x0024 +#define NVM_CFG 0x0012 +#define NVM_ALT_MAC_ADDR_PTR 0x0037 +#define NVM_CHECKSUM_REG 0x003F + +#define E1000_NVM_CFG_DONE_PORT_0 0x040000 /* MNG config cycle done */ +#define E1000_NVM_CFG_DONE_PORT_1 0x080000 /* ...for second port */ + +/* Mask bits for fields in Word 0x0f of the NVM */ +#define NVM_WORD0F_PAUSE_MASK 0x3000 +#define NVM_WORD0F_PAUSE 0x1000 +#define NVM_WORD0F_ASM_DIR 0x2000 + +/* Mask bits for fields in Word 0x1a of the NVM */ +#define NVM_WORD1A_ASPM_MASK 0x000C + +/* Mask bits for fields in Word 0x03 of the EEPROM */ +#define NVM_COMPAT_LOM 0x0800 + +/* length of string needed to store PBA number */ +#define E1000_PBANUM_LENGTH 11 + +/* For checksumming, the sum of all words in the NVM should equal 0xBABA. */ +#define NVM_SUM 0xBABA + +/* PBA (printed board assembly) number words */ +#define NVM_PBA_OFFSET_0 8 +#define NVM_PBA_OFFSET_1 9 +#define NVM_PBA_PTR_GUARD 0xFAFA +#define NVM_WORD_SIZE_BASE_SHIFT 6 + +/* NVM Commands - SPI */ +#define NVM_MAX_RETRY_SPI 5000 /* Max wait of 5ms, for RDY signal */ +#define NVM_READ_OPCODE_SPI 0x03 /* NVM read opcode */ +#define NVM_WRITE_OPCODE_SPI 0x02 /* NVM write opcode */ +#define NVM_A8_OPCODE_SPI 0x08 /* opcode bit-3 = address bit-8 */ +#define NVM_WREN_OPCODE_SPI 0x06 /* NVM set Write Enable latch */ +#define NVM_RDSR_OPCODE_SPI 0x05 /* NVM read Status register */ + +/* SPI NVM Status Register */ +#define NVM_STATUS_RDY_SPI 0x01 + +/* Word definitions for ID LED Settings */ +#define ID_LED_RESERVED_0000 0x0000 +#define ID_LED_RESERVED_FFFF 0xFFFF +#define ID_LED_DEFAULT ((ID_LED_OFF1_ON2 << 12) | \ + (ID_LED_OFF1_OFF2 << 8) | \ + (ID_LED_DEF1_DEF2 << 4) | \ + (ID_LED_DEF1_DEF2)) +#define ID_LED_DEF1_DEF2 0x1 +#define ID_LED_DEF1_ON2 0x2 +#define ID_LED_DEF1_OFF2 0x3 +#define ID_LED_ON1_DEF2 0x4 +#define ID_LED_ON1_ON2 0x5 +#define ID_LED_ON1_OFF2 0x6 +#define ID_LED_OFF1_DEF2 0x7 +#define ID_LED_OFF1_ON2 0x8 +#define ID_LED_OFF1_OFF2 0x9 + +#define IGP_ACTIVITY_LED_MASK 0xFFFFF0FF +#define IGP_ACTIVITY_LED_ENABLE 0x0300 +#define IGP_LED3_MODE 0x07000000 + +/* PCI/PCI-X/PCI-EX Config space */ +#define PCI_HEADER_TYPE_REGISTER 0x0E +#define PCIE_LINK_STATUS 0x12 + +#define PCI_HEADER_TYPE_MULTIFUNC 0x80 +#define PCIE_LINK_WIDTH_MASK 0x3F0 +#define PCIE_LINK_WIDTH_SHIFT 4 + +#define PHY_REVISION_MASK 0xFFFFFFF0 +#define MAX_PHY_REG_ADDRESS 0x1F /* 5 bit address bus (0-0x1F) */ +#define MAX_PHY_MULTI_PAGE_REG 0xF + +/* Bit definitions for valid PHY IDs. + * I = Integrated + * E = External + */ +#define M88E1000_E_PHY_ID 0x01410C50 +#define M88E1000_I_PHY_ID 0x01410C30 +#define M88E1011_I_PHY_ID 0x01410C20 +#define IGP01E1000_I_PHY_ID 0x02A80380 +#define M88E1111_I_PHY_ID 0x01410CC0 +#define GG82563_E_PHY_ID 0x01410CA0 +#define IGP03E1000_E_PHY_ID 0x02A80390 +#define IFE_E_PHY_ID 0x02A80330 +#define IFE_PLUS_E_PHY_ID 0x02A80320 +#define IFE_C_E_PHY_ID 0x02A80310 +#define BME1000_E_PHY_ID 0x01410CB0 +#define BME1000_E_PHY_ID_R2 0x01410CB1 +#define I82577_E_PHY_ID 0x01540050 +#define I82578_E_PHY_ID 0x004DD040 +#define I82579_E_PHY_ID 0x01540090 +#define I217_E_PHY_ID 0x015400A0 + +/* M88E1000 Specific Registers */ +#define M88E1000_PHY_SPEC_CTRL 0x10 /* PHY Specific Control Reg */ +#define M88E1000_PHY_SPEC_STATUS 0x11 /* PHY Specific Status Reg */ +#define M88E1000_EXT_PHY_SPEC_CTRL 0x14 /* Extended PHY Specific Cntrl */ + +#define M88E1000_PHY_PAGE_SELECT 0x1D /* Reg 29 for pg number setting */ +#define M88E1000_PHY_GEN_CONTROL 0x1E /* meaning depends on reg 29 */ + +/* M88E1000 PHY Specific Control Register */ +#define M88E1000_PSCR_POLARITY_REVERSAL 0x0002 /* 1=Polarity Reverse enabled */ +/* MDI Crossover Mode bits 6:5 Manual MDI configuration */ +#define M88E1000_PSCR_MDI_MANUAL_MODE 0x0000 +#define M88E1000_PSCR_MDIX_MANUAL_MODE 0x0020 /* Manual MDIX configuration */ +/* 1000BASE-T: Auto crossover, 100BASE-TX/10BASE-T: MDI Mode */ +#define M88E1000_PSCR_AUTO_X_1000T 0x0040 +/* Auto crossover enabled all speeds */ +#define M88E1000_PSCR_AUTO_X_MODE 0x0060 +#define M88E1000_PSCR_ASSERT_CRS_ON_TX 0x0800 /* 1=Assert CRS on Tx */ + +/* M88E1000 PHY Specific Status Register */ +#define M88E1000_PSSR_REV_POLARITY 0x0002 /* 1=Polarity reversed */ +#define M88E1000_PSSR_DOWNSHIFT 0x0020 /* 1=Downshifted */ +#define M88E1000_PSSR_MDIX 0x0040 /* 1=MDIX; 0=MDI */ +/* 0 = <50M + * 1 = 50-80M + * 2 = 80-110M + * 3 = 110-140M + * 4 = >140M + */ +#define M88E1000_PSSR_CABLE_LENGTH 0x0380 +#define M88E1000_PSSR_SPEED 0xC000 /* Speed, bits 14:15 */ +#define M88E1000_PSSR_1000MBS 0x8000 /* 10=1000Mbs */ + +#define M88E1000_PSSR_CABLE_LENGTH_SHIFT 7 + +/* Number of times we will attempt to autonegotiate before downshifting if we + * are the master + */ +#define M88E1000_EPSCR_MASTER_DOWNSHIFT_MASK 0x0C00 +#define M88E1000_EPSCR_MASTER_DOWNSHIFT_1X 0x0000 +/* Number of times we will attempt to autonegotiate before downshifting if we + * are the slave + */ +#define M88E1000_EPSCR_SLAVE_DOWNSHIFT_MASK 0x0300 +#define M88E1000_EPSCR_SLAVE_DOWNSHIFT_1X 0x0100 +#define M88E1000_EPSCR_TX_CLK_25 0x0070 /* 25 MHz TX_CLK */ + +/* M88EC018 Rev 2 specific DownShift settings */ +#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_MASK 0x0E00 +#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_5X 0x0800 + +#define I82578_EPSCR_DOWNSHIFT_ENABLE 0x0020 +#define I82578_EPSCR_DOWNSHIFT_COUNTER_MASK 0x001C + +/* BME1000 PHY Specific Control Register */ +#define BME1000_PSCR_ENABLE_DOWNSHIFT 0x0800 /* 1 = enable downshift */ + +/* Bits... + * 15-5: page + * 4-0: register offset + */ +#define GG82563_PAGE_SHIFT 5 +#define GG82563_REG(page, reg) \ + (((page) << GG82563_PAGE_SHIFT) | ((reg) & MAX_PHY_REG_ADDRESS)) +#define GG82563_MIN_ALT_REG 30 + +/* GG82563 Specific Registers */ +#define GG82563_PHY_SPEC_CTRL GG82563_REG(0, 16) /* PHY Spec Cntrl */ +#define GG82563_PHY_PAGE_SELECT GG82563_REG(0, 22) /* Page Select */ +#define GG82563_PHY_SPEC_CTRL_2 GG82563_REG(0, 26) /* PHY Spec Cntrl2 */ +#define GG82563_PHY_PAGE_SELECT_ALT GG82563_REG(0, 29) /* Alt Page Select */ + +/* MAC Specific Control Register */ +#define GG82563_PHY_MAC_SPEC_CTRL GG82563_REG(2, 21) + +#define GG82563_PHY_DSP_DISTANCE GG82563_REG(5, 26) /* DSP Distance */ + +/* Page 193 - Port Control Registers */ +/* Kumeran Mode Control */ +#define GG82563_PHY_KMRN_MODE_CTRL GG82563_REG(193, 16) +#define GG82563_PHY_PWR_MGMT_CTRL GG82563_REG(193, 20) /* Pwr Mgt Ctrl */ + +/* Page 194 - KMRN Registers */ +#define GG82563_PHY_INBAND_CTRL GG82563_REG(194, 18) /* Inband Ctrl */ + +/* MDI Control */ +#define E1000_MDIC_REG_MASK 0x001F0000 +#define E1000_MDIC_REG_SHIFT 16 +#define E1000_MDIC_PHY_SHIFT 21 +#define E1000_MDIC_OP_WRITE 0x04000000 +#define E1000_MDIC_OP_READ 0x08000000 +#define E1000_MDIC_READY 0x10000000 +#define E1000_MDIC_ERROR 0x40000000 + +/* SerDes Control */ +#define E1000_GEN_POLL_TIMEOUT 640 + +#endif /* _E1000E_DEFINES_H_ */ diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000.h index 2b8978f1bf6798ec6b199d114270bb8d135427d0..bd225b8245bf3c1c198e9268c5a1c29b7a67f313 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000.h +++ b/vmkdrivers/src_9/drivers/net/e1000e/e1000.h @@ -1,76 +1,68 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ /* Linux PRO/1000 Ethernet Driver main header file */ #ifndef _E1000_H_ #define _E1000_H_ +#include #include -#include -#include #include #include - +#include #include "kcompat.h" +#ifdef HAVE_HW_TIME_STAMP +#include +#include +#endif +#ifdef HAVE_PTP_1588_CLOCK +#include +#include +#endif +#include +#ifdef ETHTOOL_GEEE +#include +#endif #include "hw.h" struct e1000_info; -#define e_printk(level, adapter, format, arg...) \ - printk(level "%s: %s: " format, pci_name(adapter->pdev), \ - (strchr(adapter->netdev->name, '%') ? "" : \ - adapter->netdev->name), ## arg) - -#ifdef DEBUG #define e_dbg(format, arg...) \ - e_printk(KERN_DEBUG, hw->adapter, format, ## arg) -#else -#define e_dbg(format, arg...) do { (void)(hw); } while (0) -#endif - + netdev_dbg(hw->adapter->netdev, format, ## arg) #define e_err(format, arg...) \ - e_printk(KERN_ERR, adapter, format, ## arg) + netdev_err(adapter->netdev, format, ## arg) #define e_info(format, arg...) \ - e_printk(KERN_INFO, adapter, format, ## arg) + netdev_info(adapter->netdev, format, ## arg) #define e_warn(format, arg...) \ - e_printk(KERN_WARNING, adapter, format, ## arg) + netdev_warn(adapter->netdev, format, ## arg) #define e_notice(format, arg...) \ - e_printk(KERN_NOTICE, adapter, format, ## arg) + netdev_notice(adapter->netdev, format, ## arg) - -#ifdef CONFIG_E1000E_MSIX -/* Interrupt modes, as used by the IntMode paramter */ +/* Interrupt modes, as used by the IntMode parameter */ #define E1000E_INT_MODE_LEGACY 0 #define E1000E_INT_MODE_MSI 1 #define E1000E_INT_MODE_MSIX 2 -#endif /* CONFIG_E1000E_MSIX */ #ifndef CONFIG_E1000E_NAPI #define E1000_MAX_INTR 10 @@ -87,9 +79,6 @@ struct e1000_info; #define E1000_MIN_ITR_USECS 10 /* 100000 irq/sec */ #define E1000_MAX_ITR_USECS 10000 /* 100 irq/sec */ -/* Early Receive defines */ -#define E1000_ERT_2048 0x100 - #define E1000_FC_PAUSE_TIME 0x0680 /* 858 usec */ /* How many Tx Descriptors do we need to call netif_wake_queue ? */ @@ -101,27 +90,56 @@ struct e1000_info; #define E1000_MNG_VLAN_NONE (-1) -/* Number of packet split data buffers (not including the header buffer) */ -#define PS_PAGE_BUFFERS (MAX_PS_BUFFERS - 1) - #define DEFAULT_JUMBO 9234 +/* Time to wait before putting the device into D3 if there's no link (in ms). */ +#define LINK_TIMEOUT 100 + +/* Count for polling __E1000_RESET condition every 10-20msec. + * Experimentation has shown the reset can take approximately 210msec. + */ +#define E1000_CHECK_RESET_COUNT 25 + +#define DEFAULT_RDTR 0 +#define DEFAULT_RADV 8 +#define BURST_RDTR 0x20 +#define BURST_RADV 0x20 + +/* in the case of WTHRESH, it appears at least the 82571/2 hardware + * writes back 4 descriptors when WTHRESH=5, and 3 descriptors when + * WTHRESH=4, so a setting of 5 gives the most efficient bus + * utilization but to avoid possible Tx stalls, set it to 1 + */ +#define E1000_TXDCTL_DMA_BURST_ENABLE \ + (E1000_TXDCTL_GRAN | /* set descriptor granularity */ \ + E1000_TXDCTL_COUNT_DESC | \ + (1 << 16) | /* wthresh must be +1 more than desired */\ + (1 << 8) | /* hthresh */ \ + 0x1f) /* pthresh */ + +#define E1000_RXDCTL_DMA_BURST_ENABLE \ + (0x01000000 | /* set descriptor granularity */ \ + (4 << 16) | /* set writeback threshold */ \ + (4 << 8) | /* set prefetch threshold */ \ + 0x20) /* set hthresh */ + +#define E1000_TIDV_FPD (1 << 31) +#define E1000_RDTR_FPD (1 << 31) + enum e1000_boards { board_82571, board_82572, board_82573, board_82574, + board_82583, board_80003es2lan, board_ich8lan, board_ich9lan, board_ich10lan, board_pchlan, - board_82583, -}; - -struct e1000_queue_stats { - u64 packets; - u64 bytes; + board_pch2lan, + board_pch_lpt, + board_pch_spt }; struct e1000_ps_page { @@ -129,8 +147,7 @@ struct e1000_ps_page { u64 dma; /* must be u64 - written to hw */ }; -/* - * wrappers around a pointer to a socket buffer, +/* wrappers around a pointer to a socket buffer, * so a DMA handle can be stored along with the buffer */ struct e1000_buffer { @@ -142,15 +159,21 @@ struct e1000_buffer { unsigned long time_stamp; u16 length; u16 next_to_watch; + unsigned int segs; + unsigned int bytecount; + u16 mapped_as_page; }; /* Rx */ - /* arrays of page information for packet split */ - struct e1000_ps_page *ps_pages; + struct { + /* arrays of page information for packet split */ + struct e1000_ps_page *ps_pages; + struct page *page; + }; }; - struct page *page; }; struct e1000_ring { + struct e1000_adapter *adapter; /* back pointer to adapter */ void *desc; /* pointer to ring memory */ dma_addr_t dma; /* phys address of ring */ unsigned int size; /* length of ring in bytes */ @@ -159,23 +182,19 @@ struct e1000_ring { u16 next_to_use; u16 next_to_clean; - u16 head; - u16 tail; + void __iomem *head; + void __iomem *tail; /* array of buffer information structs */ struct e1000_buffer *buffer_info; -#ifdef CONFIG_E1000E_MSIX char name[IFNAMSIZ + 5]; u32 ims_val; u32 itr_val; - u16 itr_register; + void __iomem *itr_register; int set_itr; -#endif /* CONFIG_E1000E_MSIX */ struct sk_buff *rx_skb_top; - - struct e1000_queue_stats stats; }; #ifdef SIOCGMIIPHY @@ -203,7 +222,11 @@ struct e1000_adapter { const struct e1000_info *ei; +#ifdef HAVE_VLAN_RX_REGISTER struct vlan_group *vlgrp; +#else + unsigned long active_vlans[BITS_TO_LONGS(VLAN_N_VID)]; +#endif u32 bd_number; u32 rx_buffer_len; u16 mng_vlan_id; @@ -220,21 +243,21 @@ struct e1000_adapter { u16 tx_itr; u16 rx_itr; - /* - * Tx - */ - struct e1000_ring *tx_ring /* One per active queue */ - ____cacheline_aligned_in_smp; + /* Tx - one ring per active queue */ + struct e1000_ring *tx_ring ____cacheline_aligned_in_smp; + u32 tx_fifo_limit; #ifdef CONFIG_E1000E_NAPI struct napi_struct napi; #endif - unsigned long tx_queue_len; + unsigned int uncorr_errors; /* uncorrectable ECC errors */ + unsigned int corr_errors; /* correctable ECC errors */ unsigned int restart_queue; u32 txd_cmd; bool detect_tx_hung; + bool tx_hang_recheck; u8 tx_timeout_factor; u32 tx_int_delay; @@ -255,20 +278,17 @@ struct e1000_adapter { u32 tx_head_addr; u32 tx_fifo_size; u32 tx_dma_failed; + u32 tx_hwtstamp_timeouts; - /* - * Rx - */ + /* Rx */ #ifdef CONFIG_E1000E_NAPI - bool (*clean_rx) (struct e1000_adapter *adapter, - int *work_done, int work_to_do) - ____cacheline_aligned_in_smp; + bool (*clean_rx)(struct e1000_ring *ring, int *work_done, + int work_to_do) ____cacheline_aligned_in_smp; #else - bool (*clean_rx) (struct e1000_adapter *adapter) - ____cacheline_aligned_in_smp; + bool (*clean_rx)(struct e1000_ring *ring) ____cacheline_aligned_in_smp; #endif - void (*alloc_rx_buf) (struct e1000_adapter *adapter, - int cleaned_count); + void (*alloc_rx_buf)(struct e1000_ring *ring, int cleaned_count, + gfp_t gfp); struct e1000_ring *rx_ring; u32 rx_int_delay; @@ -282,6 +302,15 @@ struct e1000_adapter { u64 gorc_old; u32 alloc_rx_buff_failed; u32 rx_dma_failed; +#ifdef HAVE_HW_TIME_STAMP + u32 rx_hwtstamp_cleared; +#endif +#ifdef DYNAMIC_LTR_SUPPORT + u64 c10_mpc_count; /* frequently updated MPC count */ + u64 c10_rx_bytes; /* frequently updated RX bytes count */ + u32 c10_pba_bytes; /* current PBA RXA converted to bytes*/ + bool c10_demote_ltr; /* is/should LTR be demoted */ +#endif /* DYNAMIC_LTR_SUPPORT */ unsigned int rx_ps_pages; u16 rx_ps_bsize0; @@ -294,11 +323,16 @@ struct e1000_adapter { /* OS defined structs */ struct net_device *netdev; struct pci_dev *pdev; +#ifndef HAVE_NETDEV_STATS_IN_NETDEV struct net_device_stats net_stats; +#endif /* structs defined in e1000_hw.h */ struct e1000_hw hw; +#ifdef HAVE_NDO_GET_STATS64 + spinlock_t stats64_lock; /* protects statistics counters */ +#endif struct e1000_hw_stats stats; struct e1000_phy_info phy_info; struct e1000_phy_stats phy_stats; @@ -313,11 +347,10 @@ struct e1000_adapter { u32 test_icr; u32 msg_enable; -#ifdef CONFIG_E1000E_MSIX + unsigned int num_vectors; struct msix_entry *msix_entries; int int_mode; u32 eiac_mask; -#endif /* CONFIG_E1000E_MSIX */ u32 eeprom_wol; u32 wol; @@ -326,20 +359,52 @@ struct e1000_adapter { bool fc_autoneg; +#ifndef HAVE_ETHTOOL_SET_PHYS_ID unsigned long led_status; +#endif unsigned int flags; + #if defined(__VMKLNX__) unsigned int flags1; + enum { + hw_hang_on_unknown = 0, + hw_hang_on_tso + } hw_hang_reason; #endif /* defined(__VMKLNX__) */ + unsigned int flags2; struct work_struct downshift_task; struct work_struct update_phy_task; +#ifndef HAVE_ETHTOOL_SET_PHYS_ID struct work_struct led_blink_task; +#endif struct work_struct print_hang_task; u32 *config_space; - bool discarding; + int node; /* store the node to allocate memory on */ + int phy_hang_count; + + u16 tx_ring_count; + u16 rx_ring_count; + u8 revision_id; + +#ifdef HAVE_HW_TIME_STAMP + struct hwtstamp_config hwtstamp_config; + struct delayed_work systim_overflow_work; + struct sk_buff *tx_hwtstamp_skb; + unsigned long tx_hwtstamp_start; + struct work_struct tx_hwtstamp_work; + spinlock_t systim_lock; /* protects SYSTIML/H regsters */ + struct cyclecounter cc; + struct timecounter tc; +#endif +#ifdef HAVE_PTP_1588_CLOCK + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; +#endif + + u16 eee_advert; }; struct e1000_info { @@ -349,26 +414,67 @@ struct e1000_info { u32 pba; u32 max_hw_frame_size; s32 (*get_variants)(struct e1000_adapter *); - void (*init_ops)(struct e1000_hw *); + const struct e1000_mac_operations *mac_ops; + const struct e1000_phy_operations *phy_ops; + const struct e1000_nvm_operations *nvm_ops; }; +#ifdef HAVE_HW_TIME_STAMP +#ifdef HAVE_PTP_1588_CLOCK +s32 e1000e_get_base_timinca(struct e1000_adapter *adapter, u32 *timinca); +#endif + +/* The system time is maintained by a 64-bit counter comprised of the 32-bit + * SYSTIMH and SYSTIML registers. How the counter increments (and therefore + * its resolution) is based on the contents of the TIMINCA register - it + * increments every incperiod (bits 31:24) clock ticks by incvalue (bits 23:0). + * For the best accuracy, the incperiod should be as small as possible. The + * incvalue is scaled by a factor as large as possible (while still fitting + * in bits 23:0) so that relatively small clock corrections can be made. + * + * As a result, a shift of INCVALUE_SHIFT_n is used to fit a value of + * INCVALUE_n into the TIMINCA register allowing 32+8+(24-INCVALUE_SHIFT_n) + * bits to count nanoseconds leaving the rest for fractional nonseconds. + */ +#define INCVALUE_96MHz 125 +#define INCVALUE_SHIFT_96MHz 17 +#define INCPERIOD_SHIFT_96MHz 2 +#define INCPERIOD_96MHz (12 >> INCPERIOD_SHIFT_96MHz) + +#define INCVALUE_25MHz 40 +#define INCVALUE_SHIFT_25MHz 18 +#define INCPERIOD_25MHz 1 + +/* Another drawback of scaling the incvalue by a large factor is the + * 64-bit SYSTIM register overflows more quickly. This is dealt with + * by simply reading the clock before it overflows. + * + * Clock ns bits Overflows after + * ~~~~~~ ~~~~~~~ ~~~~~~~~~~~~~~~ + * 96MHz 47-bit 2^(47-INCPERIOD_SHIFT_96MHz) / 10^9 / 3600 = 9.77 hrs + * 25MHz 46-bit 2^46 / 10^9 / 3600 = 19.55 hours + */ +#define E1000_SYSTIM_OVERFLOW_PERIOD (HZ * 60 * 60 * 4) +#define E1000_MAX_82574_SYSTIM_REREADS 50 +#define E1000_82574_SYSTIM_EPSILON (1ULL << 35ULL) +#endif /* HAVE_HW_TIME_STAMP */ + /* hardware capability, feature, and workaround flags */ #define FLAG_HAS_AMT (1 << 0) #define FLAG_HAS_FLASH (1 << 1) #define FLAG_HAS_HW_VLAN_FILTER (1 << 2) #define FLAG_HAS_WOL (1 << 3) -#define FLAG_HAS_ERT (1 << 4) +/* reserved bit4 */ #define FLAG_HAS_CTRLEXT_ON_LOAD (1 << 5) #define FLAG_HAS_SWSM_ON_LOAD (1 << 6) #define FLAG_HAS_JUMBO_FRAMES (1 << 7) +/* reserved bit8 */ #define FLAG_IS_ICH (1 << 9) -#ifdef CONFIG_E1000E_MSIX #define FLAG_HAS_MSIX (1 << 10) -#endif #define FLAG_HAS_SMART_POWER_DOWN (1 << 11) #define FLAG_IS_QUAD_PORT_A (1 << 12) #define FLAG_IS_QUAD_PORT (1 << 13) -#define FLAG_TIPG_MEDIUM_FOR_80003ESLAN (1 << 14) +#define FLAG_HAS_HW_TIMESTAMP (1 << 14) #define FLAG_APME_IN_WUC (1 << 15) #define FLAG_APME_IN_CTRL3 (1 << 16) #define FLAG_APME_CHECK_PORT_B (1 << 17) @@ -382,29 +488,55 @@ struct e1000_info { #define FLAG_LSC_GIG_SPEED_DROP (1 << 25) #define FLAG_SMART_POWER_DOWN (1 << 26) #define FLAG_MSI_ENABLED (1 << 27) +#ifndef HAVE_NDO_SET_FEATURES #define FLAG_RX_CSUM_ENABLED (1 << 28) +#else +/* reserved (1 << 28) */ +#endif #define FLAG_TSO_FORCE (1 << 29) -#define FLAG_RX_RESTART_NOW (1 << 30) +#define FLAG_RESTART_NOW (1 << 30) #define FLAG_MSI_TEST_FAILED (1 << 31) #if defined(__VMKLNX__) #define FLAG_READ_ONLY_NVM (1 << 0) #endif /* defined(__VMKLNX__) */ -/* CRC Stripping defines */ #define FLAG2_CRC_STRIPPING (1 << 0) #define FLAG2_HAS_PHY_WAKEUP (1 << 1) +#define FLAG2_IS_DISCARDING (1 << 2) +#define FLAG2_DISABLE_ASPM_L1 (1 << 3) +#define FLAG2_HAS_PHY_STATS (1 << 4) +#define FLAG2_HAS_EEE (1 << 5) +#ifdef __VMKLNX__ +/* DMA burst in VMKlinux always introduce performance issue, even if + * it's threshold is reduced to 1 a slight performance regression is + * still observed. Disable it totally in VMKLinux. + */ +#define FLAG2_DMA_BURST 0 +#else +#define FLAG2_DMA_BURST (1 << 6) +#endif /* __VMKLNX__ */ +#define FLAG2_DISABLE_ASPM_L0S (1 << 7) +#define FLAG2_DISABLE_AIM (1 << 8) +#define FLAG2_CHECK_PHY_HANG (1 << 9) +#define FLAG2_NO_DISABLE_RX (1 << 10) +#define FLAG2_PCIM2PCI_ARBITER_WA (1 << 11) +#define FLAG2_DFLT_CRC_STRIPPING (1 << 12) +#define FLAG2_CHECK_RX_HWTSTAMP (1 << 13) #define E1000_RX_DESC_PS(R, i) \ (&(((union e1000_rx_desc_packet_split *)((R).desc))[i])) +#define E1000_RX_DESC_EXT(R, i) \ + (&(((union e1000_rx_desc_extended *)((R).desc))[i])) #define E1000_GET_DESC(R, i, type) (&(((struct type *)((R).desc))[i])) -#define E1000_RX_DESC(R, i) E1000_GET_DESC(R, i, e1000_rx_desc) #define E1000_TX_DESC(R, i) E1000_GET_DESC(R, i, e1000_tx_desc) #define E1000_CONTEXT_DESC(R, i) E1000_GET_DESC(R, i, e1000_context_desc) enum e1000_state_t { + __E1000_OBFF_DISABLED, __E1000_TESTING, __E1000_RESETTING, + __E1000_ACCESS_SHARED_RESOURCE, __E1000_DOWN }; @@ -420,184 +552,95 @@ extern const char e1000e_driver_version[]; extern void e1000e_check_options(struct e1000_adapter *adapter); extern void e1000e_set_ethtool_ops(struct net_device *netdev); +#ifndef HAVE_ETHTOOL_SET_PHYS_ID +extern void e1000e_led_blink_task(struct work_struct *work); +#endif #ifdef ETHTOOL_OPS_COMPAT extern int ethtool_ioctl(struct ifreq *ifr); #endif extern int e1000e_up(struct e1000_adapter *adapter); -extern void e1000e_down(struct e1000_adapter *adapter); +extern void e1000e_down(struct e1000_adapter *adapter, bool reset); extern void e1000e_reinit_locked(struct e1000_adapter *adapter); extern void e1000e_reset(struct e1000_adapter *adapter); extern void e1000e_power_up_phy(struct e1000_adapter *adapter); -extern int e1000e_setup_rx_resources(struct e1000_adapter *adapter); -extern int e1000e_setup_tx_resources(struct e1000_adapter *adapter); -extern void e1000e_free_rx_resources(struct e1000_adapter *adapter); -extern void e1000e_free_tx_resources(struct e1000_adapter *adapter); +extern int e1000e_setup_rx_resources(struct e1000_ring *ring); +extern int e1000e_setup_tx_resources(struct e1000_ring *ring); +extern void e1000e_free_rx_resources(struct e1000_ring *ring); +extern void e1000e_free_tx_resources(struct e1000_ring *ring); +#ifdef HAVE_NDO_GET_STATS64 +extern struct rtnl_link_stats64 *e1000e_get_stats64(struct net_device *netdev, + struct rtnl_link_stats64 + *stats); +#else /* HAVE_NDO_GET_STATS64 */ extern void e1000e_update_stats(struct e1000_adapter *adapter); -extern bool e1000_has_link(struct e1000_adapter *adapter); -#ifdef CONFIG_E1000E_MSIX +#endif /* HAVE_NDO_GET_STATS64 */ extern void e1000e_set_interrupt_capability(struct e1000_adapter *adapter); extern void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter); -#endif +extern void e1000e_get_hw_control(struct e1000_adapter *adapter); +extern void e1000e_release_hw_control(struct e1000_adapter *adapter); +extern void e1000e_write_itr(struct e1000_adapter *adapter, u32 itr); -#if defined(__VMKLNX__) +#ifdef __VMKLNX__ extern void e1000e_write_protect_nvm_ich8lan(struct e1000_hw *hw); -#endif /* defined(__VMKLNX__) */ +#endif /* __VMKLNX__ */ extern unsigned int copybreak; -extern void e1000_init_function_pointers_82571(struct e1000_hw *hw); -extern void e1000_init_function_pointers_80003es2lan(struct e1000_hw *hw); -extern void e1000_init_function_pointers_ich8lan(struct e1000_hw *hw); - -extern s32 e1000e_read_pba_num(struct e1000_hw *hw, u32 *pba_num); - -static inline s32 e1000e_commit_phy(struct e1000_hw *hw) -{ - if (hw->phy.ops.commit) - return hw->phy.ops.commit(hw); - - return 0; -} - -extern bool e1000e_enable_mng_pass_thru(struct e1000_hw *hw); - -extern bool e1000e_get_laa_state_82571(struct e1000_hw *hw); -extern void e1000e_set_laa_state_82571(struct e1000_hw *hw, bool state); - -extern void e1000e_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw, - bool state); -extern void e1000e_igp3_phy_powerdown_workaround_ich8lan(struct e1000_hw *hw); -extern void e1000e_gig_downshift_workaround_ich8lan(struct e1000_hw *hw); -extern void e1000e_disable_gig_wol_ich8lan(struct e1000_hw *hw); - -extern s32 e1000e_check_for_copper_link(struct e1000_hw *hw); -extern s32 e1000e_check_for_fiber_link(struct e1000_hw *hw); -extern s32 e1000e_check_for_serdes_link(struct e1000_hw *hw); -extern s32 e1000e_cleanup_led_generic(struct e1000_hw *hw); -extern s32 e1000e_led_on_generic(struct e1000_hw *hw); -extern s32 e1000e_led_off_generic(struct e1000_hw *hw); -extern s32 e1000e_get_bus_info_pcie(struct e1000_hw *hw); -extern s32 e1000e_get_speed_and_duplex_copper(struct e1000_hw *hw, u16 *speed, u16 *duplex); -extern s32 e1000e_get_speed_and_duplex_fiber_serdes(struct e1000_hw *hw, u16 *speed, u16 *duplex); -extern s32 e1000e_disable_pcie_master(struct e1000_hw *hw); -extern s32 e1000e_get_auto_rd_done(struct e1000_hw *hw); -extern s32 e1000e_id_led_init(struct e1000_hw *hw); -extern void e1000e_clear_hw_cntrs_base(struct e1000_hw *hw); -extern s32 e1000e_setup_fiber_serdes_link(struct e1000_hw *hw); -extern s32 e1000e_copper_link_setup_m88(struct e1000_hw *hw); -extern s32 e1000e_copper_link_setup_igp(struct e1000_hw *hw); -extern s32 e1000e_setup_link(struct e1000_hw *hw); -static inline void e1000e_clear_vfta(struct e1000_hw *hw) -{ - hw->mac.ops.clear_vfta(hw); -} -extern void e1000e_init_rx_addrs(struct e1000_hw *hw, u16 rar_count); -extern void e1000e_update_mc_addr_list_generic(struct e1000_hw *hw, - u8 *mc_addr_list, - u32 mc_addr_count); -extern void e1000e_rar_set(struct e1000_hw *hw, u8 *addr, u32 index); -extern s32 e1000e_set_fc_watermarks(struct e1000_hw *hw); -extern void e1000e_set_pcie_no_snoop(struct e1000_hw *hw, u32 no_snoop); -extern s32 e1000e_get_hw_semaphore(struct e1000_hw *hw); -extern s32 e1000e_valid_led_default(struct e1000_hw *hw, u16 *data); -extern void e1000e_config_collision_dist(struct e1000_hw *hw); -extern s32 e1000e_config_fc_after_link_up(struct e1000_hw *hw); -extern s32 e1000e_force_mac_fc(struct e1000_hw *hw); -extern s32 e1000e_blink_led(struct e1000_hw *hw); -extern void e1000e_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value); -static inline void e1000e_write_vfta(struct e1000_hw *hw, u32 offset, u32 value) -{ - if (hw->mac.ops.write_vfta) - hw->mac.ops.write_vfta(hw, offset, value); -} -extern void e1000e_reset_adaptive(struct e1000_hw *hw); -extern void e1000e_update_adaptive(struct e1000_hw *hw); - -extern s32 e1000e_setup_copper_link(struct e1000_hw *hw); -extern void e1000e_put_hw_semaphore(struct e1000_hw *hw); -extern s32 e1000e_check_reset_block_generic(struct e1000_hw *hw); -extern s32 e1000e_phy_force_speed_duplex_igp(struct e1000_hw *hw); -extern s32 e1000e_get_cable_length_igp_2(struct e1000_hw *hw); -extern s32 e1000e_get_phy_info_igp(struct e1000_hw *hw); -extern s32 e1000e_read_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 *data); -extern s32 e1000e_phy_hw_reset_generic(struct e1000_hw *hw); -extern s32 e1000e_set_d3_lplu_state(struct e1000_hw *hw, bool active); -extern s32 e1000e_write_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 data); -extern s32 e1000e_phy_sw_reset(struct e1000_hw *hw); -extern s32 e1000e_phy_force_speed_duplex_m88(struct e1000_hw *hw); -extern s32 e1000e_get_cfg_done(struct e1000_hw *hw); -extern s32 e1000e_get_cable_length_m88(struct e1000_hw *hw); -extern s32 e1000e_get_phy_info_m88(struct e1000_hw *hw); -extern s32 e1000e_read_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 *data); -extern s32 e1000e_write_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 data); -extern enum e1000_phy_type e1000e_get_phy_type_from_id(u32 phy_id); -extern s32 e1000e_determine_phy_address(struct e1000_hw *hw); -extern s32 e1000e_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data); -extern s32 e1000e_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data); -extern void e1000e_phy_force_speed_duplex_setup(struct e1000_hw *hw, u16 *phy_ctrl); -extern s32 e1000e_write_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 data); -extern s32 e1000e_read_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 *data); -extern s32 e1000e_phy_has_link_generic(struct e1000_hw *hw, u32 iterations, - u32 usec_interval, bool *success); -extern s32 e1000e_phy_reset_dsp(struct e1000_hw *hw); -extern s32 e1000e_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data); -extern s32 e1000e_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data); -extern s32 e1000e_check_downshift(struct e1000_hw *hw); +extern const struct e1000_info e1000_82571_info; +extern const struct e1000_info e1000_82572_info; +extern const struct e1000_info e1000_82573_info; +extern const struct e1000_info e1000_82574_info; +extern const struct e1000_info e1000_82583_info; +extern const struct e1000_info e1000_ich8_info; +extern const struct e1000_info e1000_ich9_info; +extern const struct e1000_info e1000_ich10_info; +extern const struct e1000_info e1000_pch_info; +extern const struct e1000_info e1000_pch2_info; +extern const struct e1000_info e1000_pch_lpt_info; +extern const struct e1000_info e1000_pch_spt_info; +extern const struct e1000_info e1000_es2_info; + +#ifdef HAVE_PTP_1588_CLOCK +extern void e1000e_ptp_init(struct e1000_adapter *adapter); +extern void e1000e_ptp_remove(struct e1000_adapter *adapter); +#else +#define e1000e_ptp_init(adapter) do {} while (0) +#define e1000e_ptp_remove(adapter) do {} while (0) +#endif static inline s32 e1000_phy_hw_reset(struct e1000_hw *hw) { - if (hw->phy.ops.reset) - return hw->phy.ops.reset(hw); - - return 0; + return hw->phy.ops.reset(hw); } -static inline s32 e1000_check_reset_block(struct e1000_hw *hw) +static inline s32 e1e_rphy(struct e1000_hw *hw, u32 offset, u16 *data) { - if (hw->phy.ops.check_reset_block) - return hw->phy.ops.check_reset_block(hw); - - return 0; + return hw->phy.ops.read_reg(hw, offset, data); } -static inline s32 e1e_rphy(struct e1000_hw *hw, u32 offset, u16 *data) +static inline s32 e1e_rphy_locked(struct e1000_hw *hw, u32 offset, u16 *data) { - if (hw->phy.ops.read_reg) - return hw->phy.ops.read_reg(hw, offset, data); - - return 0; + return hw->phy.ops.read_reg_locked(hw, offset, data); } static inline s32 e1e_wphy(struct e1000_hw *hw, u32 offset, u16 data) { - if (hw->phy.ops.write_reg) - return hw->phy.ops.write_reg(hw, offset, data); - - return 0; + return hw->phy.ops.write_reg(hw, offset, data); } -static inline s32 e1000_get_cable_length(struct e1000_hw *hw) +static inline s32 e1e_wphy_locked(struct e1000_hw *hw, u32 offset, u16 data) { - if (hw->phy.ops.get_cable_length) - return hw->phy.ops.get_cable_length(hw); - - return 0; + return hw->phy.ops.write_reg_locked(hw, offset, data); } -extern s32 e1000e_acquire_nvm(struct e1000_hw *hw); -extern s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); -extern s32 e1000e_update_nvm_checksum_generic(struct e1000_hw *hw); -extern s32 e1000e_poll_eerd_eewr_done(struct e1000_hw *hw, int ee_reg); -extern s32 e1000e_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); -extern s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw); -extern void e1000e_release_nvm(struct e1000_hw *hw); +extern void e1000e_reload_nvm_generic(struct e1000_hw *hw); static inline s32 e1000e_read_mac_addr(struct e1000_hw *hw) { - if (hw->mac.ops.read_mac_addr) - return hw->mac.ops.read_mac_addr(hw); + if (hw->mac.ops.read_mac_addr) + return hw->mac.ops.read_mac_addr(hw); - return e1000e_read_mac_addr_generic(hw); + return e1000_read_mac_addr_generic(hw); } static inline s32 e1000_validate_nvm_checksum(struct e1000_hw *hw) @@ -610,78 +653,68 @@ static inline s32 e1000e_update_nvm_checksum(struct e1000_hw *hw) return hw->nvm.ops.update(hw); } -static inline s32 e1000_read_nvm(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) +static inline s32 e1000_read_nvm(struct e1000_hw *hw, u16 offset, u16 words, + u16 *data) { return hw->nvm.ops.read(hw, offset, words, data); } -static inline s32 e1000_write_nvm(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) +static inline s32 e1000_write_nvm(struct e1000_hw *hw, u16 offset, u16 words, + u16 *data) { return hw->nvm.ops.write(hw, offset, words, data); } static inline s32 e1000_get_phy_info(struct e1000_hw *hw) { - if (hw->phy.ops.get_info) - return hw->phy.ops.get_info(hw); - - return 0; + return hw->phy.ops.get_info(hw); } -extern bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw); -extern s32 e1000e_mng_write_dhcp_info(struct e1000_hw *hw, u8 *buffer, u16 length); - static inline u32 __er32(struct e1000_hw *hw, unsigned long reg) { return readl(hw->hw_addr + reg); } -static inline void __ew32(struct e1000_hw *hw, unsigned long reg, u32 val) -{ - writel(val, hw->hw_addr + reg); -} - #define er32(reg) __er32(hw, E1000_##reg) -#define ew32(reg, val) __ew32(hw, E1000_##reg, (val)) -#define e1e_flush() er32(STATUS) - -#define E1000_WRITE_REG(a, reg, value) ( \ - writel((value), ((a)->hw_addr + reg))) - -#define E1000_READ_REG(a, reg) (readl((a)->hw_addr + reg)) -#define E1000_WRITE_REG_ARRAY(a, reg, offset, value) ( \ - writel((value), ((a)->hw_addr + reg + ((offset) << 2)))) - -#define E1000_READ_REG_ARRAY(a, reg, offset) ( \ - readl((a)->hw_addr + reg + ((offset) << 2))) +/** + * __ew32_prepare - prepare to write to MAC CSR register on certain parts + * @hw: pointer to the HW structure + * + * When updating the MAC CSR registers, the Manageability Engine (ME) could + * be accessing the registers at the same time. Normally, this is handled in + * h/w by an arbiter but on some parts there is a bug that acknowledges Host + * accesses later than it should which could result in the register to have + * an incorrect value. Workaround this by checking the FWSM register which + * has bit 24 set while ME is accessing MAC CSR registers, wait if it is set + * and try again a number of times. + **/ +static inline s32 __ew32_prepare(struct e1000_hw *hw) +{ + s32 i = E1000_ICH_FWSM_PCIM2PCI_COUNT; -#define E1000_READ_REG_ARRAY_DWORD E1000_READ_REG_ARRAY -#define E1000_WRITE_REG_ARRAY_DWORD E1000_WRITE_REG_ARRAY + while ((er32(FWSM) & E1000_ICH_FWSM_PCIM2PCI) && --i) + udelay(50); -static inline u16 __er16flash(struct e1000_hw *hw, unsigned long reg) -{ - return readw(hw->flash_address + reg); + return i; } -static inline u32 __er32flash(struct e1000_hw *hw, unsigned long reg) +static inline void __ew32(struct e1000_hw *hw, unsigned long reg, u32 val) { - return readl(hw->flash_address + reg); -} + if (hw->adapter->flags2 & FLAG2_PCIM2PCI_ARBITER_WA) + __ew32_prepare(hw); -static inline void __ew16flash(struct e1000_hw *hw, unsigned long reg, u16 val) -{ - writew(val, hw->flash_address + reg); + writel(val, hw->hw_addr + reg); } -static inline void __ew32flash(struct e1000_hw *hw, unsigned long reg, u32 val) -{ - writel(val, hw->flash_address + reg); -} +#define ew32(reg, val) __ew32(hw, E1000_##reg, (val)) + +#define e1e_flush() er32(STATUS) + +#define E1000_WRITE_REG_ARRAY(a, reg, offset, value) \ + (__ew32((a), (reg + ((offset) << 2)), (value))) -#define er16flash(reg) __er16flash(hw, (reg)) -#define er32flash(reg) __er32flash(hw, (reg)) -#define ew16flash(reg, val) __ew16flash(hw, (reg), (val)) -#define ew32flash(reg, val) __ew32flash(hw, (reg), (val)) +#define E1000_READ_REG_ARRAY(a, reg, offset) \ + (readl((a)->hw_addr + reg + ((offset) << 2))) #endif /* _E1000_H_ */ diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.h deleted file mode 100644 index 10412b70426cdad1bca1f99ece1341473fc12d59..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_80003es2lan.h +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -#ifndef _E1000_80003ES2LAN_H_ -#define _E1000_80003ES2LAN_H_ - -#define E1000_KMRNCTRLSTA_OFFSET_FIFO_CTRL 0x00 -#define E1000_KMRNCTRLSTA_OFFSET_INB_CTRL 0x02 -#define E1000_KMRNCTRLSTA_OFFSET_HD_CTRL 0x10 -#define E1000_KMRNCTRLSTA_OFFSET_MAC2PHY_OPMODE 0x1F - -#define E1000_KMRNCTRLSTA_FIFO_CTRL_RX_BYPASS 0x0008 -#define E1000_KMRNCTRLSTA_FIFO_CTRL_TX_BYPASS 0x0800 -#define E1000_KMRNCTRLSTA_INB_CTRL_DIS_PADDING 0x0010 - -#define E1000_KMRNCTRLSTA_HD_CTRL_10_100_DEFAULT 0x0004 -#define E1000_KMRNCTRLSTA_HD_CTRL_1000_DEFAULT 0x0000 -#define E1000_KMRNCTRLSTA_OPMODE_E_IDLE 0x2000 - -#define E1000_KMRNCTRLSTA_OPMODE_MASK 0x000C -#define E1000_KMRNCTRLSTA_OPMODE_INBAND_MDIO 0x0004 - -#define E1000_TCTL_EXT_GCEX_MASK 0x000FFC00 /* Gigabit Carry Extend Padding */ -#define DEFAULT_TCTL_EXT_GCEX_80003ES2LAN 0x00010000 - -#define DEFAULT_TIPG_IPGT_1000_80003ES2LAN 0x8 -#define DEFAULT_TIPG_IPGT_10_100_80003ES2LAN 0x9 - -/* GG82563 PHY Specific Status Register (Page 0, Register 16 */ -#define GG82563_PSCR_POLARITY_REVERSAL_DISABLE 0x0002 /* 1=Reversal Disabled */ -#define GG82563_PSCR_CROSSOVER_MODE_MASK 0x0060 -#define GG82563_PSCR_CROSSOVER_MODE_MDI 0x0000 /* 00=Manual MDI */ -#define GG82563_PSCR_CROSSOVER_MODE_MDIX 0x0020 /* 01=Manual MDIX */ -#define GG82563_PSCR_CROSSOVER_MODE_AUTO 0x0060 /* 11=Auto crossover */ - -/* PHY Specific Control Register 2 (Page 0, Register 26) */ -#define GG82563_PSCR2_REVERSE_AUTO_NEG 0x2000 - /* 1=Reverse Auto-Negotiation */ - -/* MAC Specific Control Register (Page 2, Register 21) */ -/* Tx clock speed for Link Down and 1000BASE-T for the following speeds */ -#define GG82563_MSCR_TX_CLK_MASK 0x0007 -#define GG82563_MSCR_TX_CLK_10MBPS_2_5 0x0004 -#define GG82563_MSCR_TX_CLK_100MBPS_25 0x0005 -#define GG82563_MSCR_TX_CLK_1000MBPS_2_5 0x0006 -#define GG82563_MSCR_TX_CLK_1000MBPS_25 0x0007 - -#define GG82563_MSCR_ASSERT_CRS_ON_TX 0x0010 /* 1=Assert */ - -/* DSP Distance Register (Page 5, Register 26) */ -/* - * 0 = <50M - * 1 = 50-80M - * 2 = 80-100M - * 3 = 110-140M - * 4 = >140M - */ -#define GG82563_DSPD_CABLE_LENGTH 0x0007 - -/* Kumeran Mode Control Register (Page 193, Register 16) */ -#define GG82563_KMCR_PASS_FALSE_CARRIER 0x0800 - -/* Max number of times Kumeran read/write should be validated */ -#define GG82563_MAX_KMRN_RETRY 0x5 - -/* Power Management Control Register (Page 193, Register 20) */ -#define GG82563_PMCR_ENABLE_ELECTRICAL_IDLE 0x0001 - /* 1=Enable SERDES Electrical Idle */ - -/* In-Band Control Register (Page 194, Register 18) */ -#define GG82563_ICR_DIS_PADDING 0x0010 /* Disable Padding */ - -#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_82571.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000_82571.h deleted file mode 100644 index c6443b9736ebd358ddc3df123b4c1671391dcebd..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_82571.h +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -#ifndef _E1000_82571_H_ -#define _E1000_82571_H_ - -#define ID_LED_RESERVED_F746 0xF746 -#define ID_LED_DEFAULT_82573 ((ID_LED_DEF1_DEF2 << 12) | \ - (ID_LED_OFF1_ON2 << 8) | \ - (ID_LED_DEF1_DEF2 << 4) | \ - (ID_LED_DEF1_DEF2)) - -#define E1000_GCR_L1_ACT_WITHOUT_L0S_RX 0x08000000 - -/* Intr Throttling - RW */ -#define E1000_EITR_82574(_n) (0x000E8 + (0x4 * (_n))) - -#define E1000_EIAC_82574 0x000DC /* Ext. Interrupt Auto Clear - RW */ -#define E1000_EIAC_MASK_82574 0x01F00000 - -#define E1000_NVM_INIT_CTRL2_MNGM 0x6000 /* Manageability Operation Mode mask */ - -#define E1000_RXCFGL 0x0B634 /* TimeSync Rx EtherType & Msg Type Reg - RW */ - -bool e1000e_get_laa_state_82571(struct e1000_hw *hw); -void e1000e_set_laa_state_82571(struct e1000_hw *hw, bool state); - -#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_defines.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000_defines.h deleted file mode 100644 index ad90110fb277abbaa58c03bff99069587b522ecd..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_defines.h +++ /dev/null @@ -1,1474 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -#ifndef _E1000_DEFINES_H_ -#define _E1000_DEFINES_H_ - -/* Number of Transmit and Receive Descriptors must be a multiple of 8 */ -#define REQ_TX_DESCRIPTOR_MULTIPLE 8 -#define REQ_RX_DESCRIPTOR_MULTIPLE 8 - -/* Definitions for power management and wakeup registers */ -/* Wake Up Control */ -#define E1000_WUC_APME 0x00000001 /* APM Enable */ -#define E1000_WUC_PME_EN 0x00000002 /* PME Enable */ -#define E1000_WUC_PME_STATUS 0x00000004 /* PME Status */ -#define E1000_WUC_APMPME 0x00000008 /* Assert PME on APM Wakeup */ -#define E1000_WUC_LSCWE 0x00000010 /* Link Status wake up enable */ -#define E1000_WUC_LSCWO 0x00000020 /* Link Status wake up override */ -#define E1000_WUC_SPM 0x80000000 /* Enable SPM */ -#define E1000_WUC_PHY_WAKE 0x00000100 /* if PHY supports wakeup */ - -/* Wake Up Filter Control */ -#define E1000_WUFC_LNKC 0x00000001 /* Link Status Change Wakeup Enable */ -#define E1000_WUFC_MAG 0x00000002 /* Magic Packet Wakeup Enable */ -#define E1000_WUFC_EX 0x00000004 /* Directed Exact Wakeup Enable */ -#define E1000_WUFC_MC 0x00000008 /* Directed Multicast Wakeup Enable */ -#define E1000_WUFC_BC 0x00000010 /* Broadcast Wakeup Enable */ -#define E1000_WUFC_ARP 0x00000020 /* ARP Request Packet Wakeup Enable */ -#define E1000_WUFC_IPV4 0x00000040 /* Directed IPv4 Packet Wakeup Enable */ -#define E1000_WUFC_IPV6 0x00000080 /* Directed IPv6 Packet Wakeup Enable */ -#define E1000_WUFC_IGNORE_TCO_PHY 0x00000800 /* Ignore WakeOn TCO packets */ -#define E1000_WUFC_FLX0_PHY 0x00001000 /* Flexible Filter 0 Enable */ -#define E1000_WUFC_FLX1_PHY 0x00002000 /* Flexible Filter 1 Enable */ -#define E1000_WUFC_FLX2_PHY 0x00004000 /* Flexible Filter 2 Enable */ -#define E1000_WUFC_FLX3_PHY 0x00008000 /* Flexible Filter 3 Enable */ -#define E1000_WUFC_FLX4_PHY 0x00000200 /* Flexible Filter 4 Enable */ -#define E1000_WUFC_FLX5_PHY 0x00000400 /* Flexible Filter 5 Enable */ -#define E1000_WUFC_IGNORE_TCO 0x00008000 /* Ignore WakeOn TCO packets */ -#define E1000_WUFC_FLX0 0x00010000 /* Flexible Filter 0 Enable */ -#define E1000_WUFC_FLX1 0x00020000 /* Flexible Filter 1 Enable */ -#define E1000_WUFC_FLX2 0x00040000 /* Flexible Filter 2 Enable */ -#define E1000_WUFC_FLX3 0x00080000 /* Flexible Filter 3 Enable */ -#define E1000_WUFC_FLX4 0x00100000 /* Flexible Filter 4 Enable */ -#define E1000_WUFC_FLX5 0x00200000 /* Flexible Filter 5 Enable */ -#define E1000_WUFC_ALL_FILTERS_PHY_4 0x0000F0FF /*Mask for all wakeup filters*/ -#define E1000_WUFC_FLX_OFFSET_PHY 12 /* Offset to the Flexible Filters bits */ -#define E1000_WUFC_FLX_FILTERS_PHY_4 0x0000F000 /*Mask for 4 flexible filters*/ -#define E1000_WUFC_ALL_FILTERS_PHY_6 0x0000F6FF /*Mask for 6 wakeup filters */ -#define E1000_WUFC_FLX_FILTERS_PHY_6 0x0000F600 /*Mask for 6 flexible filters*/ -#define E1000_WUFC_ALL_FILTERS 0x000F00FF /* Mask for all wakeup filters */ -#define E1000_WUFC_ALL_FILTERS_6 0x003F00FF /* Mask for all 6 wakeup filters*/ -#define E1000_WUFC_FLX_OFFSET 16 /* Offset to the Flexible Filters bits */ -#define E1000_WUFC_FLX_FILTERS 0x000F0000 /*Mask for the 4 flexible filters */ -#define E1000_WUFC_FLX_FILTERS_6 0x003F0000 /* Mask for 6 flexible filters */ - -/* Wake Up Status */ -#define E1000_WUS_LNKC E1000_WUFC_LNKC -#define E1000_WUS_MAG E1000_WUFC_MAG -#define E1000_WUS_EX E1000_WUFC_EX -#define E1000_WUS_MC E1000_WUFC_MC -#define E1000_WUS_BC E1000_WUFC_BC -#define E1000_WUS_ARP E1000_WUFC_ARP -#define E1000_WUS_IPV4 E1000_WUFC_IPV4 -#define E1000_WUS_IPV6 E1000_WUFC_IPV6 -#define E1000_WUS_FLX0_PHY E1000_WUFC_FLX0_PHY -#define E1000_WUS_FLX1_PHY E1000_WUFC_FLX1_PHY -#define E1000_WUS_FLX2_PHY E1000_WUFC_FLX2_PHY -#define E1000_WUS_FLX3_PHY E1000_WUFC_FLX3_PHY -#define E1000_WUS_FLX_FILTERS_PHY_4 E1000_WUFC_FLX_FILTERS_PHY_4 -#define E1000_WUS_FLX0 E1000_WUFC_FLX0 -#define E1000_WUS_FLX1 E1000_WUFC_FLX1 -#define E1000_WUS_FLX2 E1000_WUFC_FLX2 -#define E1000_WUS_FLX3 E1000_WUFC_FLX3 -#define E1000_WUS_FLX4 E1000_WUFC_FLX4 -#define E1000_WUS_FLX5 E1000_WUFC_FLX5 -#define E1000_WUS_FLX4_PHY E1000_WUFC_FLX4_PHY -#define E1000_WUS_FLX5_PHY E1000_WUFC_FLX5_PHY -#define E1000_WUS_FLX_FILTERS E1000_WUFC_FLX_FILTERS -#define E1000_WUS_FLX_FILTERS_6 E1000_WUFC_FLX_FILTERS_6 -#define E1000_WUS_FLX_FILTERS_PHY_6 E1000_WUFC_FLX_FILTERS_PHY_6 - -/* Wake Up Packet Length */ -#define E1000_WUPL_LENGTH_MASK 0x0FFF /* Only the lower 12 bits are valid */ - -/* Four Flexible Filters are supported */ -#define E1000_FLEXIBLE_FILTER_COUNT_MAX 4 -/* Six Flexible Filters are supported */ -#define E1000_FLEXIBLE_FILTER_COUNT_MAX_6 6 - -/* Each Flexible Filter is at most 128 (0x80) bytes in length */ -#define E1000_FLEXIBLE_FILTER_SIZE_MAX 128 - -#define E1000_FFLT_SIZE E1000_FLEXIBLE_FILTER_COUNT_MAX -#define E1000_FFLT_SIZE_6 E1000_FLEXIBLE_FILTER_COUNT_MAX_6 -#define E1000_FFMT_SIZE E1000_FLEXIBLE_FILTER_SIZE_MAX -#define E1000_FFVT_SIZE E1000_FLEXIBLE_FILTER_SIZE_MAX - -/* Extended Device Control */ -#define E1000_CTRL_EXT_GPI0_EN 0x00000001 /* Maps SDP4 to GPI0 */ -#define E1000_CTRL_EXT_GPI1_EN 0x00000002 /* Maps SDP5 to GPI1 */ -#define E1000_CTRL_EXT_PHYINT_EN E1000_CTRL_EXT_GPI1_EN -#define E1000_CTRL_EXT_GPI2_EN 0x00000004 /* Maps SDP6 to GPI2 */ -#define E1000_CTRL_EXT_GPI3_EN 0x00000008 /* Maps SDP7 to GPI3 */ -/* Reserved (bits 4,5) in >= 82575 */ -#define E1000_CTRL_EXT_SDP4_DATA 0x00000010 /* Value of SW Definable Pin 4 */ -#define E1000_CTRL_EXT_SDP5_DATA 0x00000020 /* Value of SW Definable Pin 5 */ -#define E1000_CTRL_EXT_PHY_INT E1000_CTRL_EXT_SDP5_DATA -#define E1000_CTRL_EXT_SDP6_DATA 0x00000040 /* Value of SW Definable Pin 6 */ -#define E1000_CTRL_EXT_SDP3_DATA 0x00000080 /* Value of SW Definable Pin 3 */ -/* SDP 4/5 (bits 8,9) are reserved in >= 82575 */ -#define E1000_CTRL_EXT_SDP4_DIR 0x00000100 /* Direction of SDP4 0=in 1=out */ -#define E1000_CTRL_EXT_SDP5_DIR 0x00000200 /* Direction of SDP5 0=in 1=out */ -#define E1000_CTRL_EXT_SDP6_DIR 0x00000400 /* Direction of SDP6 0=in 1=out */ -#define E1000_CTRL_EXT_SDP3_DIR 0x00000800 /* Direction of SDP3 0=in 1=out */ -#define E1000_CTRL_EXT_ASDCHK 0x00001000 /* Initiate an ASD sequence */ -#define E1000_CTRL_EXT_EE_RST 0x00002000 /* Reinitialize from EEPROM */ -#define E1000_CTRL_EXT_IPS 0x00004000 /* Invert Power State */ -#define E1000_CTRL_EXT_SPD_BYPS 0x00008000 /* Speed Select Bypass */ -#define E1000_CTRL_EXT_RO_DIS 0x00020000 /* Relaxed Ordering disable */ -#define E1000_CTRL_EXT_DMA_DYN_CLK_EN 0x00080000 /* DMA Dynamic Clock Gating */ -#define E1000_CTRL_EXT_LINK_MODE_MASK 0x00C00000 -#define E1000_CTRL_EXT_LINK_MODE_GMII 0x00000000 -#define E1000_CTRL_EXT_LINK_MODE_TBI 0x00C00000 -#define E1000_CTRL_EXT_LINK_MODE_KMRN 0x00000000 -#define E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES 0x00C00000 -#define E1000_CTRL_EXT_LINK_MODE_PCIX_SERDES 0x00800000 -#define E1000_CTRL_EXT_LINK_MODE_SGMII 0x00800000 -#define E1000_CTRL_EXT_EIAME 0x01000000 -#define E1000_CTRL_EXT_IRCA 0x00000001 -#define E1000_CTRL_EXT_WR_WMARK_MASK 0x03000000 -#define E1000_CTRL_EXT_WR_WMARK_256 0x00000000 -#define E1000_CTRL_EXT_WR_WMARK_320 0x01000000 -#define E1000_CTRL_EXT_WR_WMARK_384 0x02000000 -#define E1000_CTRL_EXT_WR_WMARK_448 0x03000000 -#define E1000_CTRL_EXT_CANC 0x04000000 /* Int delay cancellation */ -#define E1000_CTRL_EXT_DRV_LOAD 0x10000000 /* Driver loaded bit for FW */ -/* IAME enable bit (27) was removed in >= 82575 */ -#define E1000_CTRL_EXT_IAME 0x08000000 /* Int acknowledge Auto-mask */ -#if defined(__VMKLNX__) -/* PR 555248 */ -#define E1000_CTRL_EXT_INT_TIMER_CLR 0x20000000 /* Clear Interrupt timers after IMS clear */ -#endif /* defined(__VMKLNX__) */ -#define E1000_CRTL_EXT_PB_PAREN 0x01000000 /* packet buffer parity error - * detection enabled */ -#define E1000_CTRL_EXT_DF_PAREN 0x02000000 /* descriptor FIFO parity - * error detection enable */ -#define E1000_CTRL_EXT_GHOST_PAREN 0x40000000 -#define E1000_CTRL_EXT_PBA_CLR 0x80000000 /* PBA Clear */ -#define E1000_CTRL_EXT_LSECCK 0x00001000 -#define E1000_CTRL_EXT_PHYPDEN 0x00100000 -#define E1000_I2CCMD_REG_ADDR_SHIFT 16 -#define E1000_I2CCMD_REG_ADDR 0x00FF0000 -#define E1000_I2CCMD_PHY_ADDR_SHIFT 24 -#define E1000_I2CCMD_PHY_ADDR 0x07000000 -#define E1000_I2CCMD_OPCODE_READ 0x08000000 -#define E1000_I2CCMD_OPCODE_WRITE 0x00000000 -#define E1000_I2CCMD_RESET 0x10000000 -#define E1000_I2CCMD_READY 0x20000000 -#define E1000_I2CCMD_INTERRUPT_ENA 0x40000000 -#define E1000_I2CCMD_ERROR 0x80000000 -#define E1000_MAX_SGMII_PHY_REG_ADDR 255 -#define E1000_I2CCMD_PHY_TIMEOUT 200 - -/* Receive Descriptor bit definitions */ -#define E1000_RXD_STAT_DD 0x01 /* Descriptor Done */ -#define E1000_RXD_STAT_EOP 0x02 /* End of Packet */ -#define E1000_RXD_STAT_IXSM 0x04 /* Ignore checksum */ -#define E1000_RXD_STAT_VP 0x08 /* IEEE VLAN Packet */ -#define E1000_RXD_STAT_UDPCS 0x10 /* UDP xsum calculated */ -#define E1000_RXD_STAT_TCPCS 0x20 /* TCP xsum calculated */ -#define E1000_RXD_STAT_IPCS 0x40 /* IP xsum calculated */ -#define E1000_RXD_STAT_PIF 0x80 /* passed in-exact filter */ -#define E1000_RXD_STAT_CRCV 0x100 /* Speculative CRC Valid */ -#define E1000_RXD_STAT_IPIDV 0x200 /* IP identification valid */ -#define E1000_RXD_STAT_UDPV 0x400 /* Valid UDP checksum */ -#define E1000_RXD_STAT_DYNINT 0x800 /* Pkt caused INT via DYNINT */ -#define E1000_RXD_STAT_ACK 0x8000 /* ACK Packet indication */ -#define E1000_RXD_ERR_CE 0x01 /* CRC Error */ -#define E1000_RXD_ERR_SE 0x02 /* Symbol Error */ -#define E1000_RXD_ERR_SEQ 0x04 /* Sequence Error */ -#define E1000_RXD_ERR_CXE 0x10 /* Carrier Extension Error */ -#define E1000_RXD_ERR_TCPE 0x20 /* TCP/UDP Checksum Error */ -#define E1000_RXD_ERR_IPE 0x40 /* IP Checksum Error */ -#define E1000_RXD_ERR_RXE 0x80 /* Rx Data Error */ -#define E1000_RXD_SPC_VLAN_MASK 0x0FFF /* VLAN ID is in lower 12 bits */ -#define E1000_RXD_SPC_PRI_MASK 0xE000 /* Priority is in upper 3 bits */ -#define E1000_RXD_SPC_PRI_SHIFT 13 -#define E1000_RXD_SPC_CFI_MASK 0x1000 /* CFI is bit 12 */ -#define E1000_RXD_SPC_CFI_SHIFT 12 - -#define E1000_RXDEXT_STATERR_CE 0x01000000 -#define E1000_RXDEXT_STATERR_SE 0x02000000 -#define E1000_RXDEXT_STATERR_SEQ 0x04000000 -#define E1000_RXDEXT_STATERR_CXE 0x10000000 -#define E1000_RXDEXT_STATERR_TCPE 0x20000000 -#define E1000_RXDEXT_STATERR_IPE 0x40000000 -#define E1000_RXDEXT_STATERR_RXE 0x80000000 - -#define E1000_RXDEXT_LSECH 0x01000000 -#define E1000_RXDEXT_LSECE_MASK 0x60000000 -#define E1000_RXDEXT_LSECE_NO_ERROR 0x00000000 -#define E1000_RXDEXT_LSECE_NO_SA_MATCH 0x20000000 -#define E1000_RXDEXT_LSECE_REPLAY_DETECT 0x40000000 -#define E1000_RXDEXT_LSECE_BAD_SIG 0x60000000 - -/* mask to determine if packets should be dropped due to frame errors */ -#define E1000_RXD_ERR_FRAME_ERR_MASK ( \ - E1000_RXD_ERR_CE | \ - E1000_RXD_ERR_SE | \ - E1000_RXD_ERR_SEQ | \ - E1000_RXD_ERR_CXE | \ - E1000_RXD_ERR_RXE) - -/* Same mask, but for extended and packet split descriptors */ -#define E1000_RXDEXT_ERR_FRAME_ERR_MASK ( \ - E1000_RXDEXT_STATERR_CE | \ - E1000_RXDEXT_STATERR_SE | \ - E1000_RXDEXT_STATERR_SEQ | \ - E1000_RXDEXT_STATERR_CXE | \ - E1000_RXDEXT_STATERR_RXE) - -#define E1000_MRQC_ENABLE_MASK 0x00000007 -#define E1000_MRQC_ENABLE_RSS_2Q 0x00000001 -#define E1000_MRQC_ENABLE_RSS_INT 0x00000004 -#define E1000_MRQC_RSS_FIELD_MASK 0xFFFF0000 -#define E1000_MRQC_RSS_FIELD_IPV4_TCP 0x00010000 -#define E1000_MRQC_RSS_FIELD_IPV4 0x00020000 -#define E1000_MRQC_RSS_FIELD_IPV6_TCP_EX 0x00040000 -#define E1000_MRQC_RSS_FIELD_IPV6_EX 0x00080000 -#define E1000_MRQC_RSS_FIELD_IPV6 0x00100000 -#define E1000_MRQC_RSS_FIELD_IPV6_TCP 0x00200000 - -#define E1000_RXDPS_HDRSTAT_HDRSP 0x00008000 -#define E1000_RXDPS_HDRSTAT_HDRLEN_MASK 0x000003FF - -/* Management Control */ -#define E1000_MANC_SMBUS_EN 0x00000001 /* SMBus Enabled - RO */ -#define E1000_MANC_ASF_EN 0x00000002 /* ASF Enabled - RO */ -#define E1000_MANC_R_ON_FORCE 0x00000004 /* Reset on Force TCO - RO */ -#define E1000_MANC_RMCP_EN 0x00000100 /* Enable RCMP 026Fh Filtering */ -#define E1000_MANC_0298_EN 0x00000200 /* Enable RCMP 0298h Filtering */ -#define E1000_MANC_IPV4_EN 0x00000400 /* Enable IPv4 */ -#define E1000_MANC_IPV6_EN 0x00000800 /* Enable IPv6 */ -#define E1000_MANC_SNAP_EN 0x00001000 /* Accept LLC/SNAP */ -#define E1000_MANC_ARP_EN 0x00002000 /* Enable ARP Request Filtering */ -/* Enable Neighbor Discovery Filtering */ -#define E1000_MANC_NEIGHBOR_EN 0x00004000 -#define E1000_MANC_ARP_RES_EN 0x00008000 /* Enable ARP response Filtering */ -#define E1000_MANC_TCO_RESET 0x00010000 /* TCO Reset Occurred */ -#define E1000_MANC_RCV_TCO_EN 0x00020000 /* Receive TCO Packets Enabled */ -#define E1000_MANC_REPORT_STATUS 0x00040000 /* Status Reporting Enabled */ -#define E1000_MANC_RCV_ALL 0x00080000 /* Receive All Enabled */ -#define E1000_MANC_BLK_PHY_RST_ON_IDE 0x00040000 /* Block phy resets */ -/* Enable MAC address filtering */ -#define E1000_MANC_EN_MAC_ADDR_FILTER 0x00100000 -/* Enable MNG packets to host memory */ -#define E1000_MANC_EN_MNG2HOST 0x00200000 -/* Enable IP address filtering */ -#define E1000_MANC_EN_IP_ADDR_FILTER 0x00400000 -#define E1000_MANC_EN_XSUM_FILTER 0x00800000 /* Enable checksum filtering */ -#define E1000_MANC_BR_EN 0x01000000 /* Enable broadcast filtering */ -#define E1000_MANC_SMB_REQ 0x01000000 /* SMBus Request */ -#define E1000_MANC_SMB_GNT 0x02000000 /* SMBus Grant */ -#define E1000_MANC_SMB_CLK_IN 0x04000000 /* SMBus Clock In */ -#define E1000_MANC_SMB_DATA_IN 0x08000000 /* SMBus Data In */ -#define E1000_MANC_SMB_DATA_OUT 0x10000000 /* SMBus Data Out */ -#define E1000_MANC_SMB_CLK_OUT 0x20000000 /* SMBus Clock Out */ - -#define E1000_MANC_SMB_DATA_OUT_SHIFT 28 /* SMBus Data Out Shift */ -#define E1000_MANC_SMB_CLK_OUT_SHIFT 29 /* SMBus Clock Out Shift */ - -/* Receive Control */ -#define E1000_RCTL_RST 0x00000001 /* Software reset */ -#define E1000_RCTL_EN 0x00000002 /* enable */ -#define E1000_RCTL_SBP 0x00000004 /* store bad packet */ -#define E1000_RCTL_UPE 0x00000008 /* unicast promisc enable */ -#define E1000_RCTL_MPE 0x00000010 /* multicast promisc enable */ -#define E1000_RCTL_LPE 0x00000020 /* long packet enable */ -#define E1000_RCTL_LBM_NO 0x00000000 /* no loopback mode */ -#define E1000_RCTL_LBM_MAC 0x00000040 /* MAC loopback mode */ -#define E1000_RCTL_LBM_SLP 0x00000080 /* serial link loopback mode */ -#define E1000_RCTL_LBM_TCVR 0x000000C0 /* tcvr loopback mode */ -#define E1000_RCTL_DTYP_MASK 0x00000C00 /* Descriptor type mask */ -#define E1000_RCTL_DTYP_PS 0x00000400 /* Packet Split descriptor */ -#define E1000_RCTL_RDMTS_HALF 0x00000000 /* rx desc min thresh size */ -#define E1000_RCTL_RDMTS_QUAT 0x00000100 /* rx desc min thresh size */ -#define E1000_RCTL_RDMTS_EIGTH 0x00000200 /* rx desc min thresh size */ -#define E1000_RCTL_MO_SHIFT 12 /* multicast offset shift */ -#define E1000_RCTL_MO_0 0x00000000 /* multicast offset 11:0 */ -#define E1000_RCTL_MO_1 0x00001000 /* multicast offset 12:1 */ -#define E1000_RCTL_MO_2 0x00002000 /* multicast offset 13:2 */ -#define E1000_RCTL_MO_3 0x00003000 /* multicast offset 15:4 */ -#define E1000_RCTL_MDR 0x00004000 /* multicast desc ring 0 */ -#define E1000_RCTL_BAM 0x00008000 /* broadcast enable */ -/* these buffer sizes are valid if E1000_RCTL_BSEX is 0 */ -#define E1000_RCTL_SZ_2048 0x00000000 /* rx buffer size 2048 */ -#define E1000_RCTL_SZ_1024 0x00010000 /* rx buffer size 1024 */ -#define E1000_RCTL_SZ_512 0x00020000 /* rx buffer size 512 */ -#define E1000_RCTL_SZ_256 0x00030000 /* rx buffer size 256 */ -/* these buffer sizes are valid if E1000_RCTL_BSEX is 1 */ -#define E1000_RCTL_SZ_16384 0x00010000 /* rx buffer size 16384 */ -#define E1000_RCTL_SZ_8192 0x00020000 /* rx buffer size 8192 */ -#define E1000_RCTL_SZ_4096 0x00030000 /* rx buffer size 4096 */ -#define E1000_RCTL_VFE 0x00040000 /* vlan filter enable */ -#define E1000_RCTL_CFIEN 0x00080000 /* canonical form enable */ -#define E1000_RCTL_CFI 0x00100000 /* canonical form indicator */ -#define E1000_RCTL_DPF 0x00400000 /* discard pause frames */ -#define E1000_RCTL_PMCF 0x00800000 /* pass MAC control frames */ -#define E1000_RCTL_BSEX 0x02000000 /* Buffer size extension */ -#define E1000_RCTL_SECRC 0x04000000 /* Strip Ethernet CRC */ -#define E1000_RCTL_FLXBUF_MASK 0x78000000 /* Flexible buffer size */ -#define E1000_RCTL_FLXBUF_SHIFT 27 /* Flexible buffer shift */ - -/* - * Use byte values for the following shift parameters - * Usage: - * psrctl |= (((ROUNDUP(value0, 128) >> E1000_PSRCTL_BSIZE0_SHIFT) & - * E1000_PSRCTL_BSIZE0_MASK) | - * ((ROUNDUP(value1, 1024) >> E1000_PSRCTL_BSIZE1_SHIFT) & - * E1000_PSRCTL_BSIZE1_MASK) | - * ((ROUNDUP(value2, 1024) << E1000_PSRCTL_BSIZE2_SHIFT) & - * E1000_PSRCTL_BSIZE2_MASK) | - * ((ROUNDUP(value3, 1024) << E1000_PSRCTL_BSIZE3_SHIFT) |; - * E1000_PSRCTL_BSIZE3_MASK)) - * where value0 = [128..16256], default=256 - * value1 = [1024..64512], default=4096 - * value2 = [0..64512], default=4096 - * value3 = [0..64512], default=0 - */ - -#define E1000_PSRCTL_BSIZE0_MASK 0x0000007F -#define E1000_PSRCTL_BSIZE1_MASK 0x00003F00 -#define E1000_PSRCTL_BSIZE2_MASK 0x003F0000 -#define E1000_PSRCTL_BSIZE3_MASK 0x3F000000 - -#define E1000_PSRCTL_BSIZE0_SHIFT 7 /* Shift _right_ 7 */ -#define E1000_PSRCTL_BSIZE1_SHIFT 2 /* Shift _right_ 2 */ -#define E1000_PSRCTL_BSIZE2_SHIFT 6 /* Shift _left_ 6 */ -#define E1000_PSRCTL_BSIZE3_SHIFT 14 /* Shift _left_ 14 */ - -/* SWFW_SYNC Definitions */ -#define E1000_SWFW_EEP_SM 0x01 -#define E1000_SWFW_PHY0_SM 0x02 -#define E1000_SWFW_PHY1_SM 0x04 -#define E1000_SWFW_CSR_SM 0x08 - -/* FACTPS Definitions */ -#define E1000_FACTPS_LFS 0x40000000 /* LAN Function Select */ -/* Device Control */ -#define E1000_CTRL_FD 0x00000001 /* Full duplex.0=half; 1=full */ -#define E1000_CTRL_BEM 0x00000002 /* Endian Mode.0=little,1=big */ -#define E1000_CTRL_PRIOR 0x00000004 /* Priority on PCI. 0=rx,1=fair */ -#define E1000_CTRL_GIO_MASTER_DISABLE 0x00000004 /*Blocks new Master reqs */ -#define E1000_CTRL_LRST 0x00000008 /* Link reset. 0=normal,1=reset */ -#define E1000_CTRL_TME 0x00000010 /* Test mode. 0=normal,1=test */ -#define E1000_CTRL_SLE 0x00000020 /* Serial Link on 0=dis,1=en */ -#define E1000_CTRL_ASDE 0x00000020 /* Auto-speed detect enable */ -#define E1000_CTRL_SLU 0x00000040 /* Set link up (Force Link) */ -#define E1000_CTRL_ILOS 0x00000080 /* Invert Loss-Of Signal */ -#define E1000_CTRL_SPD_SEL 0x00000300 /* Speed Select Mask */ -#define E1000_CTRL_SPD_10 0x00000000 /* Force 10Mb */ -#define E1000_CTRL_SPD_100 0x00000100 /* Force 100Mb */ -#define E1000_CTRL_SPD_1000 0x00000200 /* Force 1Gb */ -#define E1000_CTRL_BEM32 0x00000400 /* Big Endian 32 mode */ -#define E1000_CTRL_FRCSPD 0x00000800 /* Force Speed */ -#define E1000_CTRL_FRCDPX 0x00001000 /* Force Duplex */ -#define E1000_CTRL_D_UD_EN 0x00002000 /* Dock/Undock enable */ -#define E1000_CTRL_D_UD_POLARITY 0x00004000 /* Defined polarity of Dock/Undock - * indication in SDP[0] */ -#define E1000_CTRL_FORCE_PHY_RESET 0x00008000 /* Reset both PHY ports, through - * PHYRST_N pin */ -#define E1000_CTRL_EXT_LINK_EN 0x00010000 /* enable link status from external - * LINK_0 and LINK_1 pins */ -#define E1000_CTRL_SWDPIN0 0x00040000 /* SWDPIN 0 value */ -#define E1000_CTRL_SWDPIN1 0x00080000 /* SWDPIN 1 value */ -#define E1000_CTRL_SWDPIN2 0x00100000 /* SWDPIN 2 value */ -#define E1000_CTRL_SWDPIN3 0x00200000 /* SWDPIN 3 value */ -#define E1000_CTRL_SWDPIO0 0x00400000 /* SWDPIN 0 Input or output */ -#define E1000_CTRL_SWDPIO1 0x00800000 /* SWDPIN 1 input or output */ -#define E1000_CTRL_SWDPIO2 0x01000000 /* SWDPIN 2 input or output */ -#define E1000_CTRL_SWDPIO3 0x02000000 /* SWDPIN 3 input or output */ -#define E1000_CTRL_RST 0x04000000 /* Global reset */ -#define E1000_CTRL_RFCE 0x08000000 /* Receive Flow Control enable */ -#define E1000_CTRL_TFCE 0x10000000 /* Transmit flow control enable */ -#define E1000_CTRL_RTE 0x20000000 /* Routing tag enable */ -#define E1000_CTRL_VME 0x40000000 /* IEEE VLAN mode enable */ -#define E1000_CTRL_PHY_RST 0x80000000 /* PHY Reset */ -#define E1000_CTRL_SW2FW_INT 0x02000000 /* Initiate an interrupt to ME */ -#define E1000_CTRL_I2C_ENA 0x02000000 /* I2C enable */ - -/* - * Bit definitions for the Management Data IO (MDIO) and Management Data - * Clock (MDC) pins in the Device Control Register. - */ -#define E1000_CTRL_PHY_RESET_DIR E1000_CTRL_SWDPIO0 -#define E1000_CTRL_PHY_RESET E1000_CTRL_SWDPIN0 -#define E1000_CTRL_MDIO_DIR E1000_CTRL_SWDPIO2 -#define E1000_CTRL_MDIO E1000_CTRL_SWDPIN2 -#define E1000_CTRL_MDC_DIR E1000_CTRL_SWDPIO3 -#define E1000_CTRL_MDC E1000_CTRL_SWDPIN3 -#define E1000_CTRL_PHY_RESET_DIR4 E1000_CTRL_EXT_SDP4_DIR -#define E1000_CTRL_PHY_RESET4 E1000_CTRL_EXT_SDP4_DATA - -#define E1000_CONNSW_ENRGSRC 0x4 -#define E1000_PCS_CFG_PCS_EN 8 -#define E1000_PCS_LCTL_FLV_LINK_UP 1 -#define E1000_PCS_LCTL_FSV_10 0 -#define E1000_PCS_LCTL_FSV_100 2 -#define E1000_PCS_LCTL_FSV_1000 4 -#define E1000_PCS_LCTL_FDV_FULL 8 -#define E1000_PCS_LCTL_FSD 0x10 -#define E1000_PCS_LCTL_FORCE_LINK 0x20 -#define E1000_PCS_LCTL_LOW_LINK_LATCH 0x40 -#define E1000_PCS_LCTL_FORCE_FCTRL 0x80 -#define E1000_PCS_LCTL_AN_ENABLE 0x10000 -#define E1000_PCS_LCTL_AN_RESTART 0x20000 -#define E1000_PCS_LCTL_AN_TIMEOUT 0x40000 -#define E1000_PCS_LCTL_AN_SGMII_BYPASS 0x80000 -#define E1000_PCS_LCTL_AN_SGMII_TRIGGER 0x100000 -#define E1000_PCS_LCTL_FAST_LINK_TIMER 0x1000000 -#define E1000_PCS_LCTL_LINK_OK_FIX 0x2000000 -#define E1000_PCS_LCTL_CRS_ON_NI 0x4000000 -#define E1000_ENABLE_SERDES_LOOPBACK 0x0410 - -#define E1000_PCS_LSTS_LINK_OK 1 -#define E1000_PCS_LSTS_SPEED_10 0 -#define E1000_PCS_LSTS_SPEED_100 2 -#define E1000_PCS_LSTS_SPEED_1000 4 -#define E1000_PCS_LSTS_DUPLEX_FULL 8 -#define E1000_PCS_LSTS_SYNK_OK 0x10 -#define E1000_PCS_LSTS_AN_COMPLETE 0x10000 -#define E1000_PCS_LSTS_AN_PAGE_RX 0x20000 -#define E1000_PCS_LSTS_AN_TIMED_OUT 0x40000 -#define E1000_PCS_LSTS_AN_REMOTE_FAULT 0x80000 -#define E1000_PCS_LSTS_AN_ERROR_RWS 0x100000 - -/* Device Status */ -#define E1000_STATUS_FD 0x00000001 /* Full duplex.0=half,1=full */ -#define E1000_STATUS_LU 0x00000002 /* Link up.0=no,1=link */ -#define E1000_STATUS_FUNC_MASK 0x0000000C /* PCI Function Mask */ -#define E1000_STATUS_FUNC_SHIFT 2 -#define E1000_STATUS_FUNC_0 0x00000000 /* Function 0 */ -#define E1000_STATUS_FUNC_1 0x00000004 /* Function 1 */ -#define E1000_STATUS_TXOFF 0x00000010 /* transmission paused */ -#define E1000_STATUS_TBIMODE 0x00000020 /* TBI mode */ -#define E1000_STATUS_SPEED_MASK 0x000000C0 -#define E1000_STATUS_SPEED_10 0x00000000 /* Speed 10Mb/s */ -#define E1000_STATUS_SPEED_100 0x00000040 /* Speed 100Mb/s */ -#define E1000_STATUS_SPEED_1000 0x00000080 /* Speed 1000Mb/s */ -#define E1000_STATUS_LAN_INIT_DONE 0x00000200 /* Lan Init Completion by NVM */ -#define E1000_STATUS_ASDV 0x00000300 /* Auto speed detect value */ -#define E1000_STATUS_PHYRA 0x00000400 /* PHY Reset Asserted */ -#define E1000_STATUS_DOCK_CI 0x00000800 /* Change in Dock/Undock state. - * Clear on write '0'. */ -#define E1000_STATUS_GIO_MASTER_ENABLE 0x00080000 /* Master request status */ -#define E1000_STATUS_MTXCKOK 0x00000400 /* MTX clock running OK */ -#define E1000_STATUS_PCI66 0x00000800 /* In 66Mhz slot */ -#define E1000_STATUS_BUS64 0x00001000 /* In 64 bit slot */ -#define E1000_STATUS_PCIX_MODE 0x00002000 /* PCI-X mode */ -#define E1000_STATUS_PCIX_SPEED 0x0000C000 /* PCI-X bus speed */ -#define E1000_STATUS_BMC_SKU_0 0x00100000 /* BMC USB redirect disabled */ -#define E1000_STATUS_BMC_SKU_1 0x00200000 /* BMC SRAM disabled */ -#define E1000_STATUS_BMC_SKU_2 0x00400000 /* BMC SDRAM disabled */ -#define E1000_STATUS_BMC_CRYPTO 0x00800000 /* BMC crypto disabled */ -#define E1000_STATUS_BMC_LITE 0x01000000 /* BMC external code execution - * disabled */ -#define E1000_STATUS_RGMII_ENABLE 0x02000000 /* RGMII disabled */ -#define E1000_STATUS_FUSE_8 0x04000000 -#define E1000_STATUS_FUSE_9 0x08000000 -#define E1000_STATUS_SERDES0_DIS 0x10000000 /* SERDES disabled on port 0 */ -#define E1000_STATUS_SERDES1_DIS 0x20000000 /* SERDES disabled on port 1 */ - -/* Constants used to interpret the masked PCI-X bus speed. */ -#define E1000_STATUS_PCIX_SPEED_66 0x00000000 /* PCI-X bus speed 50-66 MHz */ -#define E1000_STATUS_PCIX_SPEED_100 0x00004000 /* PCI-X bus speed 66-100 MHz */ -#define E1000_STATUS_PCIX_SPEED_133 0x00008000 /*PCI-X bus speed 100-133 MHz*/ - -#define SPEED_10 10 -#define SPEED_100 100 -#define SPEED_1000 1000 -#define HALF_DUPLEX 1 -#define FULL_DUPLEX 2 - -#define PHY_FORCE_TIME 20 - -#define ADVERTISE_10_HALF 0x0001 -#define ADVERTISE_10_FULL 0x0002 -#define ADVERTISE_100_HALF 0x0004 -#define ADVERTISE_100_FULL 0x0008 -#define ADVERTISE_1000_HALF 0x0010 /* Not used, just FYI */ -#define ADVERTISE_1000_FULL 0x0020 - -/* 1000/H is not supported, nor spec-compliant. */ -#define E1000_ALL_SPEED_DUPLEX (ADVERTISE_10_HALF | ADVERTISE_10_FULL | \ - ADVERTISE_100_HALF | ADVERTISE_100_FULL | \ - ADVERTISE_1000_FULL) -#define E1000_ALL_NOT_GIG (ADVERTISE_10_HALF | ADVERTISE_10_FULL | \ - ADVERTISE_100_HALF | ADVERTISE_100_FULL) -#define E1000_ALL_100_SPEED (ADVERTISE_100_HALF | ADVERTISE_100_FULL) -#define E1000_ALL_10_SPEED (ADVERTISE_10_HALF | ADVERTISE_10_FULL) -#define E1000_ALL_FULL_DUPLEX (ADVERTISE_10_FULL | ADVERTISE_100_FULL | \ - ADVERTISE_1000_FULL) -#define E1000_ALL_HALF_DUPLEX (ADVERTISE_10_HALF | ADVERTISE_100_HALF) - -#define AUTONEG_ADVERTISE_SPEED_DEFAULT E1000_ALL_SPEED_DUPLEX - -/* LED Control */ -#define E1000_PHY_LED0_MODE_MASK 0x00000007 -#define E1000_PHY_LED0_IVRT 0x00000008 -#define E1000_PHY_LED0_BLINK 0x00000010 -#define E1000_PHY_LED0_MASK 0x0000001F - -#define E1000_LEDCTL_LED0_MODE_MASK 0x0000000F -#define E1000_LEDCTL_LED0_MODE_SHIFT 0 -#define E1000_LEDCTL_LED0_BLINK_RATE 0x00000020 -#define E1000_LEDCTL_LED0_IVRT 0x00000040 -#define E1000_LEDCTL_LED0_BLINK 0x00000080 -#define E1000_LEDCTL_LED1_MODE_MASK 0x00000F00 -#define E1000_LEDCTL_LED1_MODE_SHIFT 8 -#define E1000_LEDCTL_LED1_BLINK_RATE 0x00002000 -#define E1000_LEDCTL_LED1_IVRT 0x00004000 -#define E1000_LEDCTL_LED1_BLINK 0x00008000 -#define E1000_LEDCTL_LED2_MODE_MASK 0x000F0000 -#define E1000_LEDCTL_LED2_MODE_SHIFT 16 -#define E1000_LEDCTL_LED2_BLINK_RATE 0x00200000 -#define E1000_LEDCTL_LED2_IVRT 0x00400000 -#define E1000_LEDCTL_LED2_BLINK 0x00800000 -#define E1000_LEDCTL_LED3_MODE_MASK 0x0F000000 -#define E1000_LEDCTL_LED3_MODE_SHIFT 24 -#define E1000_LEDCTL_LED3_BLINK_RATE 0x20000000 -#define E1000_LEDCTL_LED3_IVRT 0x40000000 -#define E1000_LEDCTL_LED3_BLINK 0x80000000 - -#define E1000_LEDCTL_MODE_LINK_10_1000 0x0 -#define E1000_LEDCTL_MODE_LINK_100_1000 0x1 -#define E1000_LEDCTL_MODE_LINK_UP 0x2 -#define E1000_LEDCTL_MODE_ACTIVITY 0x3 -#define E1000_LEDCTL_MODE_LINK_ACTIVITY 0x4 -#define E1000_LEDCTL_MODE_LINK_10 0x5 -#define E1000_LEDCTL_MODE_LINK_100 0x6 -#define E1000_LEDCTL_MODE_LINK_1000 0x7 -#define E1000_LEDCTL_MODE_PCIX_MODE 0x8 -#define E1000_LEDCTL_MODE_FULL_DUPLEX 0x9 -#define E1000_LEDCTL_MODE_COLLISION 0xA -#define E1000_LEDCTL_MODE_BUS_SPEED 0xB -#define E1000_LEDCTL_MODE_BUS_SIZE 0xC -#define E1000_LEDCTL_MODE_PAUSED 0xD -#define E1000_LEDCTL_MODE_LED_ON 0xE -#define E1000_LEDCTL_MODE_LED_OFF 0xF - -/* Transmit Descriptor bit definitions */ -#define E1000_TXD_DTYP_D 0x00100000 /* Data Descriptor */ -#define E1000_TXD_DTYP_C 0x00000000 /* Context Descriptor */ -#define E1000_TXD_POPTS_SHIFT 8 /* POPTS shift */ -#define E1000_TXD_POPTS_IXSM 0x01 /* Insert IP checksum */ -#define E1000_TXD_POPTS_TXSM 0x02 /* Insert TCP/UDP checksum */ -#define E1000_TXD_CMD_EOP 0x01000000 /* End of Packet */ -#define E1000_TXD_CMD_IFCS 0x02000000 /* Insert FCS (Ethernet CRC) */ -#define E1000_TXD_CMD_IC 0x04000000 /* Insert Checksum */ -#define E1000_TXD_CMD_RS 0x08000000 /* Report Status */ -#define E1000_TXD_CMD_RPS 0x10000000 /* Report Packet Sent */ -#define E1000_TXD_CMD_DEXT 0x20000000 /* Descriptor extension (0 = legacy) */ -#define E1000_TXD_CMD_VLE 0x40000000 /* Add VLAN tag */ -#define E1000_TXD_CMD_IDE 0x80000000 /* Enable Tidv register */ -#define E1000_TXD_STAT_DD 0x00000001 /* Descriptor Done */ -#define E1000_TXD_STAT_EC 0x00000002 /* Excess Collisions */ -#define E1000_TXD_STAT_LC 0x00000004 /* Late Collisions */ -#define E1000_TXD_STAT_TU 0x00000008 /* Transmit underrun */ -#define E1000_TXD_CMD_TCP 0x01000000 /* TCP packet */ -#define E1000_TXD_CMD_IP 0x02000000 /* IP packet */ -#define E1000_TXD_CMD_TSE 0x04000000 /* TCP Seg enable */ -#define E1000_TXD_STAT_TC 0x00000004 /* Tx Underrun */ -/* Extended desc bits for Linksec and timesync */ -#define E1000_TXD_CMD_LINKSEC 0x10000000 /* Apply LinkSec on packet */ -#define E1000_TXD_EXTCMD_TSTAMP 0x00000010 /* IEEE1588 Timestamp packet */ - -/* Transmit Control */ -#define E1000_TCTL_RST 0x00000001 /* software reset */ -#define E1000_TCTL_EN 0x00000002 /* enable tx */ -#define E1000_TCTL_BCE 0x00000004 /* busy check enable */ -#define E1000_TCTL_PSP 0x00000008 /* pad short packets */ -#define E1000_TCTL_CT 0x00000ff0 /* collision threshold */ -#define E1000_TCTL_COLD 0x003ff000 /* collision distance */ -#define E1000_TCTL_SWXOFF 0x00400000 /* SW Xoff transmission */ -#define E1000_TCTL_PBE 0x00800000 /* Packet Burst Enable */ -#define E1000_TCTL_RTLC 0x01000000 /* Re-transmit on late collision */ -#define E1000_TCTL_NRTU 0x02000000 /* No Re-transmit on underrun */ -#define E1000_TCTL_MULR 0x10000000 /* Multiple request support */ - -/* Transmit Arbitration Count */ -#define E1000_TARC0_ENABLE 0x00000400 /* Enable Tx Queue 0 */ - -/* SerDes Control */ -#define E1000_SCTL_DISABLE_SERDES_LOOPBACK 0x0400 - -/* Receive Checksum Control */ -#define E1000_RXCSUM_PCSS_MASK 0x000000FF /* Packet Checksum Start */ -#define E1000_RXCSUM_IPOFL 0x00000100 /* IPv4 checksum offload */ -#define E1000_RXCSUM_TUOFL 0x00000200 /* TCP / UDP checksum offload */ -#define E1000_RXCSUM_IPV6OFL 0x00000400 /* IPv6 checksum offload */ -#define E1000_RXCSUM_CRCOFL 0x00000800 /* CRC32 offload enable */ -#define E1000_RXCSUM_IPPCSE 0x00001000 /* IP payload checksum enable */ -#define E1000_RXCSUM_PCSD 0x00002000 /* packet checksum disabled */ - -/* Header split receive */ -#define E1000_RFCTL_ISCSI_DIS 0x00000001 -#define E1000_RFCTL_ISCSI_DWC_MASK 0x0000003E -#define E1000_RFCTL_ISCSI_DWC_SHIFT 1 -#define E1000_RFCTL_NFSW_DIS 0x00000040 -#define E1000_RFCTL_NFSR_DIS 0x00000080 -#define E1000_RFCTL_NFS_VER_MASK 0x00000300 -#define E1000_RFCTL_NFS_VER_SHIFT 8 -#define E1000_RFCTL_IPV6_DIS 0x00000400 -#define E1000_RFCTL_IPV6_XSUM_DIS 0x00000800 -#define E1000_RFCTL_ACK_DIS 0x00001000 -#define E1000_RFCTL_ACKD_DIS 0x00002000 -#define E1000_RFCTL_IPFRSP_DIS 0x00004000 -#define E1000_RFCTL_EXTEN 0x00008000 -#define E1000_RFCTL_IPV6_EX_DIS 0x00010000 -#define E1000_RFCTL_NEW_IPV6_EXT_DIS 0x00020000 -#define E1000_RFCTL_LEF 0x00040000 - -/* Collision related configuration parameters */ -#define E1000_COLLISION_THRESHOLD 15 -#define E1000_CT_SHIFT 4 -#define E1000_COLLISION_DISTANCE 63 -#define E1000_COLD_SHIFT 12 - -/* Default values for the transmit IPG register */ -#define DEFAULT_82543_TIPG_IPGT_FIBER 9 -#define DEFAULT_82543_TIPG_IPGT_COPPER 8 - -#define E1000_TIPG_IPGT_MASK 0x000003FF -#define E1000_TIPG_IPGR1_MASK 0x000FFC00 -#define E1000_TIPG_IPGR2_MASK 0x3FF00000 - -#define DEFAULT_82543_TIPG_IPGR1 8 -#define E1000_TIPG_IPGR1_SHIFT 10 - -#define DEFAULT_82543_TIPG_IPGR2 6 -#define DEFAULT_80003ES2LAN_TIPG_IPGR2 7 -#define E1000_TIPG_IPGR2_SHIFT 20 - -/* Ethertype field values */ -#define ETHERNET_IEEE_VLAN_TYPE 0x8100 /* 802.3ac packet */ - -#define ETHERNET_FCS_SIZE 4 -#define MAX_JUMBO_FRAME_SIZE 0x3F00 - -/* Extended Configuration Control and Size */ -#define E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP 0x00000020 -#define E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE 0x00000001 -#define E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE 0x00000008 -#define E1000_EXTCNF_CTRL_SWFLAG 0x00000020 -#define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK 0x00FF0000 -#define E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT 16 -#define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK 0x0FFF0000 -#define E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT 16 - -#define E1000_PHY_CTRL_SPD_EN 0x00000001 -#define E1000_PHY_CTRL_D0A_LPLU 0x00000002 -#define E1000_PHY_CTRL_NOND0A_LPLU 0x00000004 -#define E1000_PHY_CTRL_NOND0A_GBE_DISABLE 0x00000008 -#define E1000_PHY_CTRL_GBE_DISABLE 0x00000040 - -#define E1000_KABGTXD_BGSQLBIAS 0x00050000 - -/* PBA constants */ -#define E1000_PBA_6K 0x0006 /* 6KB */ -#define E1000_PBA_8K 0x0008 /* 8KB */ -#define E1000_PBA_10K 0x000A /* 10KB */ -#define E1000_PBA_12K 0x000C /* 12KB */ -#define E1000_PBA_14K 0x000E /* 14KB */ -#define E1000_PBA_16K 0x0010 /* 16KB */ -#define E1000_PBA_18K 0x0012 -#define E1000_PBA_20K 0x0014 -#define E1000_PBA_22K 0x0016 -#define E1000_PBA_24K 0x0018 -#define E1000_PBA_26K 0x001A -#define E1000_PBA_30K 0x001E -#define E1000_PBA_32K 0x0020 -#define E1000_PBA_34K 0x0022 -#define E1000_PBA_35K 0x0023 -#define E1000_PBA_38K 0x0026 -#define E1000_PBA_40K 0x0028 -#define E1000_PBA_48K 0x0030 /* 48KB */ -#define E1000_PBA_64K 0x0040 /* 64KB */ - -#define E1000_PBS_16K E1000_PBA_16K -#define E1000_PBS_24K E1000_PBA_24K - -#define IFS_MAX 80 -#define IFS_MIN 40 -#define IFS_RATIO 4 -#define IFS_STEP 10 -#define MIN_NUM_XMITS 1000 - -/* SW Semaphore Register */ -#define E1000_SWSM_SMBI 0x00000001 /* Driver Semaphore bit */ -#define E1000_SWSM_SWESMBI 0x00000002 /* FW Semaphore bit */ -#define E1000_SWSM_WMNG 0x00000004 /* Wake MNG Clock */ -#define E1000_SWSM_DRV_LOAD 0x00000008 /* Driver Loaded Bit */ - -#define E1000_SWSM2_LOCK 0x00000002 /* Secondary driver semaphore bit */ - -/* Interrupt Cause Read */ -#define E1000_ICR_TXDW 0x00000001 /* Transmit desc written back */ -#define E1000_ICR_TXQE 0x00000002 /* Transmit Queue empty */ -#define E1000_ICR_LSC 0x00000004 /* Link Status Change */ -#define E1000_ICR_RXSEQ 0x00000008 /* rx sequence error */ -#define E1000_ICR_RXDMT0 0x00000010 /* rx desc min. threshold (0) */ -#define E1000_ICR_RXO 0x00000040 /* rx overrun */ -#define E1000_ICR_RXT0 0x00000080 /* rx timer intr (ring 0) */ -#define E1000_ICR_VMMB 0x00000100 /* VM MB event */ -#define E1000_ICR_MDAC 0x00000200 /* MDIO access complete */ -#define E1000_ICR_RXCFG 0x00000400 /* Rx /c/ ordered set */ -#define E1000_ICR_GPI_EN0 0x00000800 /* GP Int 0 */ -#define E1000_ICR_GPI_EN1 0x00001000 /* GP Int 1 */ -#define E1000_ICR_GPI_EN2 0x00002000 /* GP Int 2 */ -#define E1000_ICR_GPI_EN3 0x00004000 /* GP Int 3 */ -#define E1000_ICR_TXD_LOW 0x00008000 -#define E1000_ICR_SRPD 0x00010000 -#define E1000_ICR_ACK 0x00020000 /* Receive Ack frame */ -#define E1000_ICR_MNG 0x00040000 /* Manageability event */ -#define E1000_ICR_DOCK 0x00080000 /* Dock/Undock */ -#define E1000_ICR_INT_ASSERTED 0x80000000 /* If this bit asserted, the driver - * should claim the interrupt */ -#define E1000_ICR_RXD_FIFO_PAR0 0x00100000 /* Q0 Rx desc FIFO parity error */ -#define E1000_ICR_TXD_FIFO_PAR0 0x00200000 /* Q0 Tx desc FIFO parity error */ -#define E1000_ICR_HOST_ARB_PAR 0x00400000 /* host arb read buffer parity err */ -#define E1000_ICR_PB_PAR 0x00800000 /* packet buffer parity error */ -#define E1000_ICR_RXD_FIFO_PAR1 0x01000000 /* Q1 Rx desc FIFO parity error */ -#define E1000_ICR_TXD_FIFO_PAR1 0x02000000 /* Q1 Tx desc FIFO parity error */ -#define E1000_ICR_ALL_PARITY 0x03F00000 /* all parity error bits */ -#define E1000_ICR_DSW 0x00000020 /* FW changed the status of DISSW - * bit in the FWSM */ -#define E1000_ICR_PHYINT 0x00001000 /* LAN connected device generates - * an interrupt */ -#define E1000_ICR_DOUTSYNC 0x10000000 /* NIC DMA out of sync */ -#define E1000_ICR_EPRST 0x00100000 /* ME hardware reset occurs */ -#define E1000_ICR_RXQ0 0x00100000 /* Rx Queue 0 Interrupt */ -#define E1000_ICR_RXQ1 0x00200000 /* Rx Queue 1 Interrupt */ -#define E1000_ICR_TXQ0 0x00400000 /* Tx Queue 0 Interrupt */ -#define E1000_ICR_TXQ1 0x00800000 /* Tx Queue 1 Interrupt */ -#define E1000_ICR_OTHER 0x01000000 /* Other Interrupts */ - -/* PBA ECC Register */ -#define E1000_PBA_ECC_COUNTER_MASK 0xFFF00000 /* ECC counter mask */ -#define E1000_PBA_ECC_COUNTER_SHIFT 20 /* ECC counter shift value */ -#define E1000_PBA_ECC_CORR_EN 0x00000001 /* Enable ECC error correction */ -#define E1000_PBA_ECC_STAT_CLR 0x00000002 /* Clear ECC error counter */ -#define E1000_PBA_ECC_INT_EN 0x00000004 /* Enable ICR bit 5 on ECC error */ - -/* - * This defines the bits that are set in the Interrupt Mask - * Set/Read Register. Each bit is documented below: - * o RXDMT0 = Receive Descriptor Minimum Threshold hit (ring 0) - * o RXSEQ = Receive Sequence Error - */ -#define POLL_IMS_ENABLE_MASK ( \ - E1000_IMS_RXDMT0 | \ - E1000_IMS_RXSEQ) - -/* - * This defines the bits that are set in the Interrupt Mask - * Set/Read Register. Each bit is documented below: - * o RXT0 = Receiver Timer Interrupt (ring 0) - * o TXDW = Transmit Descriptor Written Back - * o RXDMT0 = Receive Descriptor Minimum Threshold hit (ring 0) - * o RXSEQ = Receive Sequence Error - * o LSC = Link Status Change - */ -#define IMS_ENABLE_MASK ( \ - E1000_IMS_RXT0 | \ - E1000_IMS_TXDW | \ - E1000_IMS_RXDMT0 | \ - E1000_IMS_RXSEQ | \ - E1000_IMS_LSC) - -/* Interrupt Mask Set */ -#define E1000_IMS_TXDW E1000_ICR_TXDW /* Tx desc written back */ -#define E1000_IMS_TXQE E1000_ICR_TXQE /* Transmit Queue empty */ -#define E1000_IMS_LSC E1000_ICR_LSC /* Link Status Change */ -#define E1000_IMS_VMMB E1000_ICR_VMMB /* Mail box activity */ -#define E1000_IMS_RXSEQ E1000_ICR_RXSEQ /* rx sequence error */ -#define E1000_IMS_RXDMT0 E1000_ICR_RXDMT0 /* rx desc min. threshold */ -#define E1000_IMS_RXO E1000_ICR_RXO /* rx overrun */ -#define E1000_IMS_RXT0 E1000_ICR_RXT0 /* rx timer intr */ -#define E1000_IMS_MDAC E1000_ICR_MDAC /* MDIO access complete */ -#define E1000_IMS_RXCFG E1000_ICR_RXCFG /* Rx /c/ ordered set */ -#define E1000_IMS_GPI_EN0 E1000_ICR_GPI_EN0 /* GP Int 0 */ -#define E1000_IMS_GPI_EN1 E1000_ICR_GPI_EN1 /* GP Int 1 */ -#define E1000_IMS_GPI_EN2 E1000_ICR_GPI_EN2 /* GP Int 2 */ -#define E1000_IMS_GPI_EN3 E1000_ICR_GPI_EN3 /* GP Int 3 */ -#define E1000_IMS_TXD_LOW E1000_ICR_TXD_LOW -#define E1000_IMS_SRPD E1000_ICR_SRPD -#define E1000_IMS_ACK E1000_ICR_ACK /* Receive Ack frame */ -#define E1000_IMS_MNG E1000_ICR_MNG /* Manageability event */ -#define E1000_IMS_DOCK E1000_ICR_DOCK /* Dock/Undock */ -#define E1000_IMS_RXD_FIFO_PAR0 E1000_ICR_RXD_FIFO_PAR0 /* Q0 Rx desc FIFO - * parity error */ -#define E1000_IMS_TXD_FIFO_PAR0 E1000_ICR_TXD_FIFO_PAR0 /* Q0 Tx desc FIFO - * parity error */ -#define E1000_IMS_HOST_ARB_PAR E1000_ICR_HOST_ARB_PAR /* host arb read buffer - * parity error */ -#define E1000_IMS_PB_PAR E1000_ICR_PB_PAR /* packet buffer parity - * error */ -#define E1000_IMS_RXD_FIFO_PAR1 E1000_ICR_RXD_FIFO_PAR1 /* Q1 Rx desc FIFO - * parity error */ -#define E1000_IMS_TXD_FIFO_PAR1 E1000_ICR_TXD_FIFO_PAR1 /* Q1 Tx desc FIFO - * parity error */ -#define E1000_IMS_DSW E1000_ICR_DSW -#define E1000_IMS_PHYINT E1000_ICR_PHYINT -#define E1000_IMS_DOUTSYNC E1000_ICR_DOUTSYNC /* NIC DMA out of sync */ -#define E1000_IMS_EPRST E1000_ICR_EPRST -#define E1000_IMS_RXQ0 E1000_ICR_RXQ0 /* Rx Queue 0 Interrupt */ -#define E1000_IMS_RXQ1 E1000_ICR_RXQ1 /* Rx Queue 1 Interrupt */ -#define E1000_IMS_TXQ0 E1000_ICR_TXQ0 /* Tx Queue 0 Interrupt */ -#define E1000_IMS_TXQ1 E1000_ICR_TXQ1 /* Tx Queue 1 Interrupt */ -#define E1000_IMS_OTHER E1000_ICR_OTHER /* Other Interrupts */ - -/* Interrupt Cause Set */ -#define E1000_ICS_TXDW E1000_ICR_TXDW /* Tx desc written back */ -#define E1000_ICS_TXQE E1000_ICR_TXQE /* Transmit Queue empty */ -#define E1000_ICS_LSC E1000_ICR_LSC /* Link Status Change */ -#define E1000_ICS_RXSEQ E1000_ICR_RXSEQ /* rx sequence error */ -#define E1000_ICS_RXDMT0 E1000_ICR_RXDMT0 /* rx desc min. threshold */ -#define E1000_ICS_RXO E1000_ICR_RXO /* rx overrun */ -#define E1000_ICS_RXT0 E1000_ICR_RXT0 /* rx timer intr */ -#define E1000_ICS_MDAC E1000_ICR_MDAC /* MDIO access complete */ -#define E1000_ICS_RXCFG E1000_ICR_RXCFG /* Rx /c/ ordered set */ -#define E1000_ICS_GPI_EN0 E1000_ICR_GPI_EN0 /* GP Int 0 */ -#define E1000_ICS_GPI_EN1 E1000_ICR_GPI_EN1 /* GP Int 1 */ -#define E1000_ICS_GPI_EN2 E1000_ICR_GPI_EN2 /* GP Int 2 */ -#define E1000_ICS_GPI_EN3 E1000_ICR_GPI_EN3 /* GP Int 3 */ -#define E1000_ICS_TXD_LOW E1000_ICR_TXD_LOW -#define E1000_ICS_SRPD E1000_ICR_SRPD -#define E1000_ICS_ACK E1000_ICR_ACK /* Receive Ack frame */ -#define E1000_ICS_MNG E1000_ICR_MNG /* Manageability event */ -#define E1000_ICS_DOCK E1000_ICR_DOCK /* Dock/Undock */ -#define E1000_ICS_RXD_FIFO_PAR0 E1000_ICR_RXD_FIFO_PAR0 /* Q0 Rx desc FIFO - * parity error */ -#define E1000_ICS_TXD_FIFO_PAR0 E1000_ICR_TXD_FIFO_PAR0 /* Q0 Tx desc FIFO - * parity error */ -#define E1000_ICS_HOST_ARB_PAR E1000_ICR_HOST_ARB_PAR /* host arb read buffer - * parity error */ -#define E1000_ICS_PB_PAR E1000_ICR_PB_PAR /* packet buffer parity - * error */ -#define E1000_ICS_RXD_FIFO_PAR1 E1000_ICR_RXD_FIFO_PAR1 /* Q1 Rx desc FIFO - * parity error */ -#define E1000_ICS_TXD_FIFO_PAR1 E1000_ICR_TXD_FIFO_PAR1 /* Q1 Tx desc FIFO - * parity error */ -#define E1000_ICS_DSW E1000_ICR_DSW -#define E1000_ICS_DOUTSYNC E1000_ICR_DOUTSYNC /* NIC DMA out of sync */ -#define E1000_ICS_PHYINT E1000_ICR_PHYINT -#define E1000_ICS_EPRST E1000_ICR_EPRST - -/* Transmit Descriptor Control */ -#define E1000_TXDCTL_PTHRESH 0x0000003F /* TXDCTL Prefetch Threshold */ -#define E1000_TXDCTL_HTHRESH 0x00003F00 /* TXDCTL Host Threshold */ -#define E1000_TXDCTL_WTHRESH 0x003F0000 /* TXDCTL Writeback Threshold */ -#define E1000_TXDCTL_GRAN 0x01000000 /* TXDCTL Granularity */ -#define E1000_TXDCTL_LWTHRESH 0xFE000000 /* TXDCTL Low Threshold */ -#define E1000_TXDCTL_FULL_TX_DESC_WB 0x01010000 /* GRAN=1, WTHRESH=1 */ -#define E1000_TXDCTL_MAX_TX_DESC_PREFETCH 0x0100001F /* GRAN=1, PTHRESH=31 */ -/* Enable the counting of descriptors still to be processed. */ -#define E1000_TXDCTL_COUNT_DESC 0x00400000 - -/* Flow Control Constants */ -#define FLOW_CONTROL_ADDRESS_LOW 0x00C28001 -#define FLOW_CONTROL_ADDRESS_HIGH 0x00000100 -#define FLOW_CONTROL_TYPE 0x8808 - -/* 802.1q VLAN Packet Size */ -#define VLAN_TAG_SIZE 4 /* 802.3ac tag (not DMA'd) */ -#define E1000_VLAN_FILTER_TBL_SIZE 128 /* VLAN Filter Table (4096 bits) */ - -/* Receive Address */ -/* - * Number of high/low register pairs in the RAR. The RAR (Receive Address - * Registers) holds the directed and multicast addresses that we monitor. - * Technically, we have 16 spots. However, we reserve one of these spots - * (RAR[15]) for our directed address used by controllers with - * manageability enabled, allowing us room for 15 multicast addresses. - */ -#define E1000_RAR_ENTRIES 15 -#define E1000_RAH_AV 0x80000000 /* Receive descriptor valid */ -#define E1000_RAL_MAC_ADDR_LEN 4 -#define E1000_RAH_MAC_ADDR_LEN 2 -#define E1000_RAH_POOL_MASK 0x03FC0000 -#define E1000_RAH_POOL_1 0x00040000 - -/* Error Codes */ -#define E1000_SUCCESS 0 -#define E1000_ERR_NVM 1 -#define E1000_ERR_PHY 2 -#define E1000_ERR_CONFIG 3 -#define E1000_ERR_PARAM 4 -#define E1000_ERR_MAC_INIT 5 -#define E1000_ERR_PHY_TYPE 6 -#define E1000_ERR_RESET 9 -#define E1000_ERR_MASTER_REQUESTS_PENDING 10 -#define E1000_ERR_HOST_INTERFACE_COMMAND 11 -#define E1000_BLK_PHY_RESET 12 -#define E1000_ERR_SWFW_SYNC 13 -#define E1000_NOT_IMPLEMENTED 14 -#define E1000_ERR_MBX 15 - -/* Loop limit on how long we wait for auto-negotiation to complete */ -#define FIBER_LINK_UP_LIMIT 50 -#define COPPER_LINK_UP_LIMIT 10 -#define PHY_AUTO_NEG_LIMIT 45 -#define PHY_FORCE_LIMIT 20 -/* Number of 100 microseconds we wait for PCI Express master disable */ -#define MASTER_DISABLE_TIMEOUT 800 -/* Number of milliseconds we wait for PHY configuration done after MAC reset */ -#define PHY_CFG_TIMEOUT 100 -/* Number of 2 milliseconds we wait for acquiring MDIO ownership. */ -#define MDIO_OWNERSHIP_TIMEOUT 10 -/* Number of milliseconds for NVM auto read done after MAC reset. */ -#define AUTO_READ_DONE_TIMEOUT 10 - -/* Flow Control */ -#define E1000_FCRTH_RTH 0x0000FFF8 /* Mask Bits[15:3] for RTH */ -#define E1000_FCRTH_XFCE 0x80000000 /* External Flow Control Enable */ -#define E1000_FCRTL_RTL 0x0000FFF8 /* Mask Bits[15:3] for RTL */ -#define E1000_FCRTL_XONE 0x80000000 /* Enable XON frame transmission */ - -/* Transmit Configuration Word */ -#define E1000_TXCW_FD 0x00000020 /* TXCW full duplex */ -#define E1000_TXCW_HD 0x00000040 /* TXCW half duplex */ -#define E1000_TXCW_PAUSE 0x00000080 /* TXCW sym pause request */ -#define E1000_TXCW_ASM_DIR 0x00000100 /* TXCW astm pause direction */ -#define E1000_TXCW_PAUSE_MASK 0x00000180 /* TXCW pause request mask */ -#define E1000_TXCW_RF 0x00003000 /* TXCW remote fault */ -#define E1000_TXCW_NP 0x00008000 /* TXCW next page */ -#define E1000_TXCW_CW 0x0000ffff /* TxConfigWord mask */ -#define E1000_TXCW_TXC 0x40000000 /* Transmit Config control */ -#define E1000_TXCW_ANE 0x80000000 /* Auto-neg enable */ - -/* Receive Configuration Word */ -#define E1000_RXCW_CW 0x0000ffff /* RxConfigWord mask */ -#define E1000_RXCW_NC 0x04000000 /* Receive config no carrier */ -#define E1000_RXCW_IV 0x08000000 /* Receive config invalid */ -#define E1000_RXCW_CC 0x10000000 /* Receive config change */ -#define E1000_RXCW_C 0x20000000 /* Receive config */ -#define E1000_RXCW_SYNCH 0x40000000 /* Receive config synch */ -#define E1000_RXCW_ANC 0x80000000 /* Auto-neg complete */ - - -/* PCI Express Control */ -#define E1000_GCR_RXD_NO_SNOOP 0x00000001 -#define E1000_GCR_RXDSCW_NO_SNOOP 0x00000002 -#define E1000_GCR_RXDSCR_NO_SNOOP 0x00000004 -#define E1000_GCR_TXD_NO_SNOOP 0x00000008 -#define E1000_GCR_TXDSCW_NO_SNOOP 0x00000010 -#define E1000_GCR_TXDSCR_NO_SNOOP 0x00000020 -#define E1000_GCR_CMPL_TMOUT_MASK 0x0000F000 -#define E1000_GCR_CMPL_TMOUT_10ms 0x00001000 -#define E1000_GCR_CMPL_TMOUT_RESEND 0x00010000 -#define E1000_GCR_CAP_VER2 0x00040000 - -#define PCIE_NO_SNOOP_ALL (E1000_GCR_RXD_NO_SNOOP | \ - E1000_GCR_RXDSCW_NO_SNOOP | \ - E1000_GCR_RXDSCR_NO_SNOOP | \ - E1000_GCR_TXD_NO_SNOOP | \ - E1000_GCR_TXDSCW_NO_SNOOP | \ - E1000_GCR_TXDSCR_NO_SNOOP) - -/* PHY Control Register */ -#define MII_CR_SPEED_SELECT_MSB 0x0040 /* bits 6,13: 10=1000, 01=100, 00=10 */ -#define MII_CR_COLL_TEST_ENABLE 0x0080 /* Collision test enable */ -#define MII_CR_FULL_DUPLEX 0x0100 /* FDX =1, half duplex =0 */ -#define MII_CR_RESTART_AUTO_NEG 0x0200 /* Restart auto negotiation */ -#define MII_CR_ISOLATE 0x0400 /* Isolate PHY from MII */ -#define MII_CR_POWER_DOWN 0x0800 /* Power down */ -#define MII_CR_AUTO_NEG_EN 0x1000 /* Auto Neg Enable */ -#define MII_CR_SPEED_SELECT_LSB 0x2000 /* bits 6,13: 10=1000, 01=100, 00=10 */ -#define MII_CR_LOOPBACK 0x4000 /* 0 = normal, 1 = loopback */ -#define MII_CR_RESET 0x8000 /* 0 = normal, 1 = PHY reset */ -#define MII_CR_SPEED_1000 0x0040 -#define MII_CR_SPEED_100 0x2000 -#define MII_CR_SPEED_10 0x0000 - -/* PHY Status Register */ -#define MII_SR_EXTENDED_CAPS 0x0001 /* Extended register capabilities */ -#define MII_SR_JABBER_DETECT 0x0002 /* Jabber Detected */ -#define MII_SR_LINK_STATUS 0x0004 /* Link Status 1 = link */ -#define MII_SR_AUTONEG_CAPS 0x0008 /* Auto Neg Capable */ -#define MII_SR_REMOTE_FAULT 0x0010 /* Remote Fault Detect */ -#define MII_SR_AUTONEG_COMPLETE 0x0020 /* Auto Neg Complete */ -#define MII_SR_PREAMBLE_SUPPRESS 0x0040 /* Preamble may be suppressed */ -#define MII_SR_EXTENDED_STATUS 0x0100 /* Ext. status info in Reg 0x0F */ -#define MII_SR_100T2_HD_CAPS 0x0200 /* 100T2 Half Duplex Capable */ -#define MII_SR_100T2_FD_CAPS 0x0400 /* 100T2 Full Duplex Capable */ -#define MII_SR_10T_HD_CAPS 0x0800 /* 10T Half Duplex Capable */ -#define MII_SR_10T_FD_CAPS 0x1000 /* 10T Full Duplex Capable */ -#define MII_SR_100X_HD_CAPS 0x2000 /* 100X Half Duplex Capable */ -#define MII_SR_100X_FD_CAPS 0x4000 /* 100X Full Duplex Capable */ -#define MII_SR_100T4_CAPS 0x8000 /* 100T4 Capable */ - -/* Autoneg Advertisement Register */ -#define NWAY_AR_SELECTOR_FIELD 0x0001 /* indicates IEEE 802.3 CSMA/CD */ -#define NWAY_AR_10T_HD_CAPS 0x0020 /* 10T Half Duplex Capable */ -#define NWAY_AR_10T_FD_CAPS 0x0040 /* 10T Full Duplex Capable */ -#define NWAY_AR_100TX_HD_CAPS 0x0080 /* 100TX Half Duplex Capable */ -#define NWAY_AR_100TX_FD_CAPS 0x0100 /* 100TX Full Duplex Capable */ -#define NWAY_AR_100T4_CAPS 0x0200 /* 100T4 Capable */ -#define NWAY_AR_PAUSE 0x0400 /* Pause operation desired */ -#define NWAY_AR_ASM_DIR 0x0800 /* Asymmetric Pause Direction bit */ -#define NWAY_AR_REMOTE_FAULT 0x2000 /* Remote Fault detected */ -#define NWAY_AR_NEXT_PAGE 0x8000 /* Next Page ability supported */ - -/* Link Partner Ability Register (Base Page) */ -#define NWAY_LPAR_SELECTOR_FIELD 0x0000 /* LP protocol selector field */ -#define NWAY_LPAR_10T_HD_CAPS 0x0020 /* LP is 10T Half Duplex Capable */ -#define NWAY_LPAR_10T_FD_CAPS 0x0040 /* LP is 10T Full Duplex Capable */ -#define NWAY_LPAR_100TX_HD_CAPS 0x0080 /* LP is 100TX Half Duplex Capable */ -#define NWAY_LPAR_100TX_FD_CAPS 0x0100 /* LP is 100TX Full Duplex Capable */ -#define NWAY_LPAR_100T4_CAPS 0x0200 /* LP is 100T4 Capable */ -#define NWAY_LPAR_PAUSE 0x0400 /* LP Pause operation desired */ -#define NWAY_LPAR_ASM_DIR 0x0800 /* LP Asymmetric Pause Direction bit */ -#define NWAY_LPAR_REMOTE_FAULT 0x2000 /* LP has detected Remote Fault */ -#define NWAY_LPAR_ACKNOWLEDGE 0x4000 /* LP has rx'd link code word */ -#define NWAY_LPAR_NEXT_PAGE 0x8000 /* Next Page ability supported */ - -/* Autoneg Expansion Register */ -#define NWAY_ER_LP_NWAY_CAPS 0x0001 /* LP has Auto Neg Capability */ -#define NWAY_ER_PAGE_RXD 0x0002 /* LP is 10T Half Duplex Capable */ -#define NWAY_ER_NEXT_PAGE_CAPS 0x0004 /* LP is 10T Full Duplex Capable */ -#define NWAY_ER_LP_NEXT_PAGE_CAPS 0x0008 /* LP is 100TX Half Duplex Capable */ -#define NWAY_ER_PAR_DETECT_FAULT 0x0010 /* LP is 100TX Full Duplex Capable */ - -/* 1000BASE-T Control Register */ -#define CR_1000T_ASYM_PAUSE 0x0080 /* Advertise asymmetric pause bit */ -#define CR_1000T_HD_CAPS 0x0100 /* Advertise 1000T HD capability */ -#define CR_1000T_FD_CAPS 0x0200 /* Advertise 1000T FD capability */ -#define CR_1000T_REPEATER_DTE 0x0400 /* 1=Repeater/switch device port */ - /* 0=DTE device */ -#define CR_1000T_MS_VALUE 0x0800 /* 1=Configure PHY as Master */ - /* 0=Configure PHY as Slave */ -#define CR_1000T_MS_ENABLE 0x1000 /* 1=Master/Slave manual config value */ - /* 0=Automatic Master/Slave config */ -#define CR_1000T_TEST_MODE_NORMAL 0x0000 /* Normal Operation */ -#define CR_1000T_TEST_MODE_1 0x2000 /* Transmit Waveform test */ -#define CR_1000T_TEST_MODE_2 0x4000 /* Master Transmit Jitter test */ -#define CR_1000T_TEST_MODE_3 0x6000 /* Slave Transmit Jitter test */ -#define CR_1000T_TEST_MODE_4 0x8000 /* Transmitter Distortion test */ - -/* 1000BASE-T Status Register */ -#define SR_1000T_IDLE_ERROR_CNT 0x00FF /* Num idle errors since last read */ -#define SR_1000T_ASYM_PAUSE_DIR 0x0100 /* LP asymmetric pause direction bit */ -#define SR_1000T_LP_HD_CAPS 0x0400 /* LP is 1000T HD capable */ -#define SR_1000T_LP_FD_CAPS 0x0800 /* LP is 1000T FD capable */ -#define SR_1000T_REMOTE_RX_STATUS 0x1000 /* Remote receiver OK */ -#define SR_1000T_LOCAL_RX_STATUS 0x2000 /* Local receiver OK */ -#define SR_1000T_MS_CONFIG_RES 0x4000 /* 1=Local Tx is Master, 0=Slave */ -#define SR_1000T_MS_CONFIG_FAULT 0x8000 /* Master/Slave config fault */ - -#define SR_1000T_PHY_EXCESSIVE_IDLE_ERR_COUNT 5 - -/* PHY 1000 MII Register/Bit Definitions */ -/* PHY Registers defined by IEEE */ -#define PHY_CONTROL 0x00 /* Control Register */ -#define PHY_STATUS 0x01 /* Status Register */ -#define PHY_ID1 0x02 /* Phy Id Reg (word 1) */ -#define PHY_ID2 0x03 /* Phy Id Reg (word 2) */ -#define PHY_AUTONEG_ADV 0x04 /* Autoneg Advertisement */ -#define PHY_LP_ABILITY 0x05 /* Link Partner Ability (Base Page) */ -#define PHY_AUTONEG_EXP 0x06 /* Autoneg Expansion Reg */ -#define PHY_NEXT_PAGE_TX 0x07 /* Next Page Tx */ -#define PHY_LP_NEXT_PAGE 0x08 /* Link Partner Next Page */ -#define PHY_1000T_CTRL 0x09 /* 1000Base-T Control Reg */ -#define PHY_1000T_STATUS 0x0A /* 1000Base-T Status Reg */ -#define PHY_EXT_STATUS 0x0F /* Extended Status Reg */ - -#define PHY_CONTROL_LB 0x4000 /* PHY Loopback bit */ - -/* NVM Control */ -#define E1000_EECD_SK 0x00000001 /* NVM Clock */ -#define E1000_EECD_CS 0x00000002 /* NVM Chip Select */ -#define E1000_EECD_DI 0x00000004 /* NVM Data In */ -#define E1000_EECD_DO 0x00000008 /* NVM Data Out */ -#define E1000_EECD_FWE_MASK 0x00000030 -#define E1000_EECD_FWE_DIS 0x00000010 /* Disable FLASH writes */ -#define E1000_EECD_FWE_EN 0x00000020 /* Enable FLASH writes */ -#define E1000_EECD_FWE_SHIFT 4 -#define E1000_EECD_REQ 0x00000040 /* NVM Access Request */ -#define E1000_EECD_GNT 0x00000080 /* NVM Access Grant */ -#define E1000_EECD_PRES 0x00000100 /* NVM Present */ -#define E1000_EECD_SIZE 0x00000200 /* NVM Size (0=64 word 1=256 word) */ -/* NVM Addressing bits based on type 0=small, 1=large */ -#define E1000_EECD_ADDR_BITS 0x00000400 -#define E1000_EECD_TYPE 0x00002000 /* NVM Type (1-SPI, 0-Microwire) */ -#define E1000_NVM_GRANT_ATTEMPTS 1000 /* NVM # attempts to gain grant */ -#define E1000_EECD_AUTO_RD 0x00000200 /* NVM Auto Read done */ -#define E1000_EECD_SIZE_EX_MASK 0x00007800 /* NVM Size */ -#define E1000_EECD_SIZE_EX_SHIFT 11 -#define E1000_EECD_NVADDS 0x00018000 /* NVM Address Size */ -#define E1000_EECD_SELSHAD 0x00020000 /* Select Shadow RAM */ -#define E1000_EECD_INITSRAM 0x00040000 /* Initialize Shadow RAM */ -#define E1000_EECD_FLUPD 0x00080000 /* Update FLASH */ -#define E1000_EECD_AUPDEN 0x00100000 /* Enable Autonomous FLASH update */ -#define E1000_EECD_SHADV 0x00200000 /* Shadow RAM Data Valid */ -#define E1000_EECD_SEC1VAL 0x00400000 /* Sector One Valid */ -#define E1000_EECD_SECVAL_SHIFT 22 -#define E1000_EECD_SEC1VAL_VALID_MASK (E1000_EECD_AUTO_RD | E1000_EECD_PRES) - -#define E1000_NVM_SWDPIN0 0x0001 /* SWDPIN 0 NVM Value */ -#define E1000_NVM_LED_LOGIC 0x0020 /* Led Logic Word */ -#define E1000_NVM_RW_REG_DATA 16 /* Offset to data in NVM read/write regs */ -#define E1000_NVM_RW_REG_DONE 2 /* Offset to READ/WRITE done bit */ -#define E1000_NVM_RW_REG_START 1 /* Start operation */ -#define E1000_NVM_RW_ADDR_SHIFT 2 /* Shift to the address bits */ -#define E1000_NVM_POLL_WRITE 1 /* Flag for polling for write complete */ -#define E1000_NVM_POLL_READ 0 /* Flag for polling for read complete */ -#define E1000_FLASH_UPDATES 2000 - -/* NVM Word Offsets */ -#define NVM_COMPAT 0x0003 -#define NVM_ID_LED_SETTINGS 0x0004 -#define NVM_VERSION 0x0005 -#define NVM_SERDES_AMPLITUDE 0x0006 /* SERDES output amplitude */ -#define NVM_PHY_CLASS_WORD 0x0007 -#define NVM_INIT_CONTROL1_REG 0x000A -#define NVM_INIT_CONTROL2_REG 0x000F -#define NVM_SWDEF_PINS_CTRL_PORT_1 0x0010 -#define NVM_INIT_CONTROL3_PORT_B 0x0014 -#define NVM_INIT_3GIO_3 0x001A -#define NVM_SWDEF_PINS_CTRL_PORT_0 0x0020 -#define NVM_INIT_CONTROL3_PORT_A 0x0024 -#define NVM_CFG 0x0012 -#define NVM_FLASH_VERSION 0x0032 -#define NVM_ALT_MAC_ADDR_PTR 0x0037 -#define NVM_CHECKSUM_REG 0x003F - -#define E1000_NVM_CFG_DONE_PORT_0 0x040000 /* MNG config cycle done */ -#define E1000_NVM_CFG_DONE_PORT_1 0x080000 /* ...for second port */ - -/* Mask bits for fields in Word 0x0f of the NVM */ -#define NVM_WORD0F_PAUSE_MASK 0x3000 -#define NVM_WORD0F_PAUSE 0x1000 -#define NVM_WORD0F_ASM_DIR 0x2000 -#define NVM_WORD0F_ANE 0x0800 -#define NVM_WORD0F_SWPDIO_EXT_MASK 0x00F0 -#define NVM_WORD0F_LPLU 0x0001 - -/* Mask bits for fields in Word 0x1a of the NVM */ -#define NVM_WORD1A_ASPM_MASK 0x000C - -/* Mask bits for fields in Word 0x03 of the EEPROM */ -#define NVM_COMPAT_LOM 0x0800 - -/* For checksumming, the sum of all words in the NVM should equal 0xBABA. */ -#define NVM_SUM 0xBABA - -#define NVM_MAC_ADDR_OFFSET 0 -#define NVM_PBA_OFFSET_0 8 -#define NVM_PBA_OFFSET_1 9 -#define NVM_RESERVED_WORD 0xFFFF -#define NVM_PHY_CLASS_A 0x8000 -#define NVM_SERDES_AMPLITUDE_MASK 0x000F -#define NVM_SIZE_MASK 0x1C00 -#define NVM_SIZE_SHIFT 10 -#define NVM_WORD_SIZE_BASE_SHIFT 6 -#define NVM_SWDPIO_EXT_SHIFT 4 - -/* NVM Commands - SPI */ -#define NVM_MAX_RETRY_SPI 5000 /* Max wait of 5ms, for RDY signal */ -#define NVM_READ_OPCODE_SPI 0x03 /* NVM read opcode */ -#define NVM_WRITE_OPCODE_SPI 0x02 /* NVM write opcode */ -#define NVM_A8_OPCODE_SPI 0x08 /* opcode bit-3 = address bit-8 */ -#define NVM_WREN_OPCODE_SPI 0x06 /* NVM set Write Enable latch */ -#define NVM_WRDI_OPCODE_SPI 0x04 /* NVM reset Write Enable latch */ -#define NVM_RDSR_OPCODE_SPI 0x05 /* NVM read Status register */ -#define NVM_WRSR_OPCODE_SPI 0x01 /* NVM write Status register */ - -/* SPI NVM Status Register */ -#define NVM_STATUS_RDY_SPI 0x01 -#define NVM_STATUS_WEN_SPI 0x02 -#define NVM_STATUS_BP0_SPI 0x04 -#define NVM_STATUS_BP1_SPI 0x08 -#define NVM_STATUS_WPEN_SPI 0x80 - -/* Word definitions for ID LED Settings */ -#define ID_LED_RESERVED_0000 0x0000 -#define ID_LED_RESERVED_FFFF 0xFFFF -#define ID_LED_DEFAULT ((ID_LED_OFF1_ON2 << 12) | \ - (ID_LED_OFF1_OFF2 << 8) | \ - (ID_LED_DEF1_DEF2 << 4) | \ - (ID_LED_DEF1_DEF2)) -#define ID_LED_DEF1_DEF2 0x1 -#define ID_LED_DEF1_ON2 0x2 -#define ID_LED_DEF1_OFF2 0x3 -#define ID_LED_ON1_DEF2 0x4 -#define ID_LED_ON1_ON2 0x5 -#define ID_LED_ON1_OFF2 0x6 -#define ID_LED_OFF1_DEF2 0x7 -#define ID_LED_OFF1_ON2 0x8 -#define ID_LED_OFF1_OFF2 0x9 - -#define IGP_ACTIVITY_LED_MASK 0xFFFFF0FF -#define IGP_ACTIVITY_LED_ENABLE 0x0300 -#define IGP_LED3_MODE 0x07000000 - -/* PCI/PCI-X/PCI-EX Config space */ -#define PCI_HEADER_TYPE_REGISTER 0x0E -#define PCIE_LINK_STATUS 0x12 -#define PCIE_DEVICE_CONTROL2 0x28 - -#define PCI_HEADER_TYPE_MULTIFUNC 0x80 -#define PCIE_LINK_WIDTH_MASK 0x3F0 -#define PCIE_LINK_WIDTH_SHIFT 4 -#define PCIE_DEVICE_CONTROL2_16ms 0x0005 - -#ifndef ETH_ADDR_LEN -#define ETH_ADDR_LEN 6 -#endif - -#define PHY_REVISION_MASK 0xFFFFFFF0 -#define MAX_PHY_REG_ADDRESS 0x1F /* 5 bit address bus (0-0x1F) */ -#define MAX_PHY_MULTI_PAGE_REG 0xF - -/* Bit definitions for valid PHY IDs. */ -/* - * I = Integrated - * E = External - */ -#define M88E1000_E_PHY_ID 0x01410C50 -#define M88E1000_I_PHY_ID 0x01410C30 -#define M88E1011_I_PHY_ID 0x01410C20 -#define IGP01E1000_I_PHY_ID 0x02A80380 -#define M88E1011_I_REV_4 0x04 -#define M88E1111_I_PHY_ID 0x01410CC0 -#define GG82563_E_PHY_ID 0x01410CA0 -#define IGP03E1000_E_PHY_ID 0x02A80390 -#define IFE_E_PHY_ID 0x02A80330 -#define IFE_PLUS_E_PHY_ID 0x02A80320 -#define IFE_C_E_PHY_ID 0x02A80310 -#define BME1000_E_PHY_ID 0x01410CB0 -#define BME1000_E_PHY_ID_R2 0x01410CB1 -#define I82577_E_PHY_ID 0x01540050 -#define I82578_E_PHY_ID 0x004DD040 -#define M88_VENDOR 0x0141 - -/* M88E1000 Specific Registers */ -#define M88E1000_PHY_SPEC_CTRL 0x10 /* PHY Specific Control Register */ -#define M88E1000_PHY_SPEC_STATUS 0x11 /* PHY Specific Status Register */ -#define M88E1000_INT_ENABLE 0x12 /* Interrupt Enable Register */ -#define M88E1000_INT_STATUS 0x13 /* Interrupt Status Register */ -#define M88E1000_EXT_PHY_SPEC_CTRL 0x14 /* Extended PHY Specific Control */ -#define M88E1000_RX_ERR_CNTR 0x15 /* Receive Error Counter */ - -#define M88E1000_PHY_EXT_CTRL 0x1A /* PHY extend control register */ -#define M88E1000_PHY_PAGE_SELECT 0x1D /* Reg 29 for page number setting */ -#define M88E1000_PHY_GEN_CONTROL 0x1E /* Its meaning depends on reg 29 */ -#define M88E1000_PHY_VCO_REG_BIT8 0x100 /* Bits 8 & 11 are adjusted for */ -#define M88E1000_PHY_VCO_REG_BIT11 0x800 /* improved BER performance */ - -/* M88E1000 PHY Specific Control Register */ -#define M88E1000_PSCR_JABBER_DISABLE 0x0001 /* 1=Jabber Function disabled */ -#define M88E1000_PSCR_POLARITY_REVERSAL 0x0002 /* 1=Polarity Reverse enabled */ -#define M88E1000_PSCR_SQE_TEST 0x0004 /* 1=SQE Test enabled */ -/* 1=CLK125 low, 0=CLK125 toggling */ -#define M88E1000_PSCR_CLK125_DISABLE 0x0010 -#define M88E1000_PSCR_MDI_MANUAL_MODE 0x0000 /* MDI Crossover Mode bits 6:5 */ - /* Manual MDI configuration */ -#define M88E1000_PSCR_MDIX_MANUAL_MODE 0x0020 /* Manual MDIX configuration */ -/* 1000BASE-T: Auto crossover, 100BASE-TX/10BASE-T: MDI Mode */ -#define M88E1000_PSCR_AUTO_X_1000T 0x0040 -/* Auto crossover enabled all speeds */ -#define M88E1000_PSCR_AUTO_X_MODE 0x0060 -/* - * 1=Enable Extended 10BASE-T distance (Lower 10BASE-T Rx Threshold - * 0=Normal 10BASE-T Rx Threshold - */ -#define M88E1000_PSCR_EN_10BT_EXT_DIST 0x0080 -/* 1=5-bit interface in 100BASE-TX, 0=MII interface in 100BASE-TX */ -#define M88E1000_PSCR_MII_5BIT_ENABLE 0x0100 -#define M88E1000_PSCR_SCRAMBLER_DISABLE 0x0200 /* 1=Scrambler disable */ -#define M88E1000_PSCR_FORCE_LINK_GOOD 0x0400 /* 1=Force link good */ -#define M88E1000_PSCR_ASSERT_CRS_ON_TX 0x0800 /* 1=Assert CRS on Tx */ - -/* M88E1000 PHY Specific Status Register */ -#define M88E1000_PSSR_JABBER 0x0001 /* 1=Jabber */ -#define M88E1000_PSSR_REV_POLARITY 0x0002 /* 1=Polarity reversed */ -#define M88E1000_PSSR_DOWNSHIFT 0x0020 /* 1=Downshifted */ -#define M88E1000_PSSR_MDIX 0x0040 /* 1=MDIX; 0=MDI */ -/* - * 0 = <50M - * 1 = 50-80M - * 2 = 80-110M - * 3 = 110-140M - * 4 = >140M - */ -#define M88E1000_PSSR_CABLE_LENGTH 0x0380 -#define M88E1000_PSSR_LINK 0x0400 /* 1=Link up, 0=Link down */ -#define M88E1000_PSSR_SPD_DPLX_RESOLVED 0x0800 /* 1=Speed & Duplex resolved */ -#define M88E1000_PSSR_PAGE_RCVD 0x1000 /* 1=Page received */ -#define M88E1000_PSSR_DPLX 0x2000 /* 1=Duplex 0=Half Duplex */ -#define M88E1000_PSSR_SPEED 0xC000 /* Speed, bits 14:15 */ -#define M88E1000_PSSR_10MBS 0x0000 /* 00=10Mbs */ -#define M88E1000_PSSR_100MBS 0x4000 /* 01=100Mbs */ -#define M88E1000_PSSR_1000MBS 0x8000 /* 10=1000Mbs */ - -#define M88E1000_PSSR_CABLE_LENGTH_SHIFT 7 - -/* M88E1000 Extended PHY Specific Control Register */ -#define M88E1000_EPSCR_FIBER_LOOPBACK 0x4000 /* 1=Fiber loopback */ -/* - * 1 = Lost lock detect enabled. - * Will assert lost lock and bring - * link down if idle not seen - * within 1ms in 1000BASE-T - */ -#define M88E1000_EPSCR_DOWN_NO_IDLE 0x8000 -/* - * Number of times we will attempt to autonegotiate before downshifting if we - * are the master - */ -#define M88E1000_EPSCR_MASTER_DOWNSHIFT_MASK 0x0C00 -#define M88E1000_EPSCR_MASTER_DOWNSHIFT_1X 0x0000 -#define M88E1000_EPSCR_MASTER_DOWNSHIFT_2X 0x0400 -#define M88E1000_EPSCR_MASTER_DOWNSHIFT_3X 0x0800 -#define M88E1000_EPSCR_MASTER_DOWNSHIFT_4X 0x0C00 -/* - * Number of times we will attempt to autonegotiate before downshifting if we - * are the slave - */ -#define M88E1000_EPSCR_SLAVE_DOWNSHIFT_MASK 0x0300 -#define M88E1000_EPSCR_SLAVE_DOWNSHIFT_DIS 0x0000 -#define M88E1000_EPSCR_SLAVE_DOWNSHIFT_1X 0x0100 -#define M88E1000_EPSCR_SLAVE_DOWNSHIFT_2X 0x0200 -#define M88E1000_EPSCR_SLAVE_DOWNSHIFT_3X 0x0300 -#define M88E1000_EPSCR_TX_CLK_2_5 0x0060 /* 2.5 MHz TX_CLK */ -#define M88E1000_EPSCR_TX_CLK_25 0x0070 /* 25 MHz TX_CLK */ -#define M88E1000_EPSCR_TX_CLK_0 0x0000 /* NO TX_CLK */ - -/* M88EC018 Rev 2 specific DownShift settings */ -#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_MASK 0x0E00 -#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_1X 0x0000 -#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_2X 0x0200 -#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_3X 0x0400 -#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_4X 0x0600 -#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_5X 0x0800 -#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_6X 0x0A00 -#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_7X 0x0C00 -#define M88EC018_EPSCR_DOWNSHIFT_COUNTER_8X 0x0E00 - -#define I82578_EPSCR_DOWNSHIFT_ENABLE 0x0020 -#define I82578_EPSCR_DOWNSHIFT_COUNTER_MASK 0x001C - -/* BME1000 PHY Specific Control Register */ -#define BME1000_PSCR_ENABLE_DOWNSHIFT 0x0800 /* 1 = enable downshift */ - -/* - * Bits... - * 15-5: page - * 4-0: register offset - */ -#define GG82563_PAGE_SHIFT 5 -#define GG82563_REG(page, reg) \ - (((page) << GG82563_PAGE_SHIFT) | ((reg) & MAX_PHY_REG_ADDRESS)) -#define GG82563_MIN_ALT_REG 30 - -/* GG82563 Specific Registers */ -#define GG82563_PHY_SPEC_CTRL \ - GG82563_REG(0, 16) /* PHY Specific Control */ -#define GG82563_PHY_SPEC_STATUS \ - GG82563_REG(0, 17) /* PHY Specific Status */ -#define GG82563_PHY_INT_ENABLE \ - GG82563_REG(0, 18) /* Interrupt Enable */ -#define GG82563_PHY_SPEC_STATUS_2 \ - GG82563_REG(0, 19) /* PHY Specific Status 2 */ -#define GG82563_PHY_RX_ERR_CNTR \ - GG82563_REG(0, 21) /* Receive Error Counter */ -#define GG82563_PHY_PAGE_SELECT \ - GG82563_REG(0, 22) /* Page Select */ -#define GG82563_PHY_SPEC_CTRL_2 \ - GG82563_REG(0, 26) /* PHY Specific Control 2 */ -#define GG82563_PHY_PAGE_SELECT_ALT \ - GG82563_REG(0, 29) /* Alternate Page Select */ -#define GG82563_PHY_TEST_CLK_CTRL \ - GG82563_REG(0, 30) /* Test Clock Control (use reg. 29 to select) */ - -#define GG82563_PHY_MAC_SPEC_CTRL \ - GG82563_REG(2, 21) /* MAC Specific Control Register */ -#define GG82563_PHY_MAC_SPEC_CTRL_2 \ - GG82563_REG(2, 26) /* MAC Specific Control 2 */ - -#define GG82563_PHY_DSP_DISTANCE \ - GG82563_REG(5, 26) /* DSP Distance */ - -/* Page 193 - Port Control Registers */ -#define GG82563_PHY_KMRN_MODE_CTRL \ - GG82563_REG(193, 16) /* Kumeran Mode Control */ -#define GG82563_PHY_PORT_RESET \ - GG82563_REG(193, 17) /* Port Reset */ -#define GG82563_PHY_REVISION_ID \ - GG82563_REG(193, 18) /* Revision ID */ -#define GG82563_PHY_DEVICE_ID \ - GG82563_REG(193, 19) /* Device ID */ -#define GG82563_PHY_PWR_MGMT_CTRL \ - GG82563_REG(193, 20) /* Power Management Control */ -#define GG82563_PHY_RATE_ADAPT_CTRL \ - GG82563_REG(193, 25) /* Rate Adaptation Control */ - -/* Page 194 - KMRN Registers */ -#define GG82563_PHY_KMRN_FIFO_CTRL_STAT \ - GG82563_REG(194, 16) /* FIFO's Control/Status */ -#define GG82563_PHY_KMRN_CTRL \ - GG82563_REG(194, 17) /* Control */ -#define GG82563_PHY_INBAND_CTRL \ - GG82563_REG(194, 18) /* Inband Control */ -#define GG82563_PHY_KMRN_DIAGNOSTIC \ - GG82563_REG(194, 19) /* Diagnostic */ -#define GG82563_PHY_ACK_TIMEOUTS \ - GG82563_REG(194, 20) /* Acknowledge Timeouts */ -#define GG82563_PHY_ADV_ABILITY \ - GG82563_REG(194, 21) /* Advertised Ability */ -#define GG82563_PHY_LINK_PARTNER_ADV_ABILITY \ - GG82563_REG(194, 23) /* Link Partner Advertised Ability */ -#define GG82563_PHY_ADV_NEXT_PAGE \ - GG82563_REG(194, 24) /* Advertised Next Page */ -#define GG82563_PHY_LINK_PARTNER_ADV_NEXT_PAGE \ - GG82563_REG(194, 25) /* Link Partner Advertised Next page */ -#define GG82563_PHY_KMRN_MISC \ - GG82563_REG(194, 26) /* Misc. */ - -/* MDI Control */ -#define E1000_MDIC_DATA_MASK 0x0000FFFF -#define E1000_MDIC_REG_MASK 0x001F0000 -#define E1000_MDIC_REG_SHIFT 16 -#define E1000_MDIC_PHY_MASK 0x03E00000 -#define E1000_MDIC_PHY_SHIFT 21 -#define E1000_MDIC_OP_WRITE 0x04000000 -#define E1000_MDIC_OP_READ 0x08000000 -#define E1000_MDIC_READY 0x10000000 -#define E1000_MDIC_INT_EN 0x20000000 -#define E1000_MDIC_ERROR 0x40000000 - -/* SerDes Control */ -#define E1000_GEN_CTL_READY 0x80000000 -#define E1000_GEN_CTL_ADDRESS_SHIFT 8 -#define E1000_GEN_POLL_TIMEOUT 640 - - - -#endif /* _E1000_DEFINES_H_ */ diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_ich8lan.c b/vmkdrivers/src_9/drivers/net/e1000e/e1000_ich8lan.c deleted file mode 100644 index 912b636871f30fc989080a7dfacc60b8240d2833..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_ich8lan.c +++ /dev/null @@ -1,3460 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -/* - * 82562G 10/100 Network Connection - * 82562G-2 10/100 Network Connection - * 82562GT 10/100 Network Connection - * 82562GT-2 10/100 Network Connection - * 82562V 10/100 Network Connection - * 82562V-2 10/100 Network Connection - * 82566DC-2 Gigabit Network Connection - * 82566DC Gigabit Network Connection - * 82566DM-2 Gigabit Network Connection - * 82566DM Gigabit Network Connection - * 82566MC Gigabit Network Connection - * 82566MM Gigabit Network Connection - * 82567LM Gigabit Network Connection - * 82567LF Gigabit Network Connection - * 82567V Gigabit Network Connection - * 82567LM-2 Gigabit Network Connection - * 82567LF-2 Gigabit Network Connection - * 82567V-2 Gigabit Network Connection - * 82567LF-3 Gigabit Network Connection - * 82567LM-3 Gigabit Network Connection - * 82567LM-4 Gigabit Network Connection - * 82577LM Gigabit Network Connection - * 82577LC Gigabit Network Connection - * 82578DM Gigabit Network Connection - * 82578DC Gigabit Network Connection - */ - -#include "e1000.h" - -static s32 e1000_init_phy_params_ich8lan(struct e1000_hw *hw); -static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw); -static s32 e1000_init_nvm_params_ich8lan(struct e1000_hw *hw); -static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw); -static s32 e1000_acquire_swflag_ich8lan(struct e1000_hw *hw); -static void e1000_release_swflag_ich8lan(struct e1000_hw *hw); -static s32 e1000_acquire_nvm_ich8lan(struct e1000_hw *hw); -static void e1000_release_nvm_ich8lan(struct e1000_hw *hw); -static bool e1000_check_mng_mode_ich8lan(struct e1000_hw *hw); -static s32 e1000_check_reset_block_ich8lan(struct e1000_hw *hw); -static s32 e1000_phy_hw_reset_ich8lan(struct e1000_hw *hw); -static s32 e1000_get_phy_info_ich8lan(struct e1000_hw *hw); -static s32 e1000_set_lplu_state_pchlan(struct e1000_hw *hw, bool active); -static s32 e1000_set_d0_lplu_state_ich8lan(struct e1000_hw *hw, - bool active); -static s32 e1000_set_d3_lplu_state_ich8lan(struct e1000_hw *hw, - bool active); -static s32 e1000_read_nvm_ich8lan(struct e1000_hw *hw, u16 offset, - u16 words, u16 *data); -static s32 e1000_write_nvm_ich8lan(struct e1000_hw *hw, u16 offset, - u16 words, u16 *data); -static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw); -static s32 e1000_update_nvm_checksum_ich8lan(struct e1000_hw *hw); -static s32 e1000_valid_led_default_ich8lan(struct e1000_hw *hw, - u16 *data); -static s32 e1000_id_led_init_pchlan(struct e1000_hw *hw); -static s32 e1000_get_bus_info_ich8lan(struct e1000_hw *hw); -static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw); -static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw); -static s32 e1000_setup_link_ich8lan(struct e1000_hw *hw); -static s32 e1000_setup_copper_link_ich8lan(struct e1000_hw *hw); -static s32 e1000_get_link_up_info_ich8lan(struct e1000_hw *hw, - u16 *speed, u16 *duplex); -static s32 e1000_cleanup_led_ich8lan(struct e1000_hw *hw); -static s32 e1000_led_on_ich8lan(struct e1000_hw *hw); -static s32 e1000_led_off_ich8lan(struct e1000_hw *hw); -static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link); -static s32 e1000_setup_led_pchlan(struct e1000_hw *hw); -static s32 e1000_cleanup_led_pchlan(struct e1000_hw *hw); -static s32 e1000_led_on_pchlan(struct e1000_hw *hw); -static s32 e1000_led_off_pchlan(struct e1000_hw *hw); -static void e1000_clear_hw_cntrs_ich8lan(struct e1000_hw *hw); -static s32 e1000_erase_flash_bank_ich8lan(struct e1000_hw *hw, u32 bank); -static s32 e1000_flash_cycle_ich8lan(struct e1000_hw *hw, u32 timeout); -static s32 e1000_flash_cycle_init_ich8lan(struct e1000_hw *hw); -static s32 e1000_get_phy_info_ife_ich8lan(struct e1000_hw *hw); -static void e1000_initialize_hw_bits_ich8lan(struct e1000_hw *hw); -static s32 e1000_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw); -static s32 e1000_read_flash_byte_ich8lan(struct e1000_hw *hw, - u32 offset, u8 *data); -static s32 e1000_read_flash_data_ich8lan(struct e1000_hw *hw, u32 offset, - u8 size, u16 *data); -static s32 e1000_read_flash_word_ich8lan(struct e1000_hw *hw, - u32 offset, u16 *data); -static s32 e1000_retry_write_flash_byte_ich8lan(struct e1000_hw *hw, - u32 offset, u8 byte); -static s32 e1000_write_flash_byte_ich8lan(struct e1000_hw *hw, - u32 offset, u8 data); -static s32 e1000_write_flash_data_ich8lan(struct e1000_hw *hw, u32 offset, - u8 size, u16 data); -static s32 e1000_get_cfg_done_ich8lan(struct e1000_hw *hw); -static void e1000_power_down_phy_copper_ich8lan(struct e1000_hw *hw); -static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw); -static void e1000_lan_init_done_ich8lan(struct e1000_hw *hw); -static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw); - -/* ICH GbE Flash Hardware Sequencing Flash Status Register bit breakdown */ -/* Offset 04h HSFSTS */ -union ich8_hws_flash_status { - struct ich8_hsfsts { - u16 flcdone :1; /* bit 0 Flash Cycle Done */ - u16 flcerr :1; /* bit 1 Flash Cycle Error */ - u16 dael :1; /* bit 2 Direct Access error Log */ - u16 berasesz :2; /* bit 4:3 Sector Erase Size */ - u16 flcinprog :1; /* bit 5 flash cycle in Progress */ - u16 reserved1 :2; /* bit 13:6 Reserved */ - u16 reserved2 :6; /* bit 13:6 Reserved */ - u16 fldesvalid :1; /* bit 14 Flash Descriptor Valid */ - u16 flockdn :1; /* bit 15 Flash Config Lock-Down */ - } hsf_status; - u16 regval; -}; - -/* ICH GbE Flash Hardware Sequencing Flash control Register bit breakdown */ -/* Offset 06h FLCTL */ -union ich8_hws_flash_ctrl { - struct ich8_hsflctl { - u16 flcgo :1; /* 0 Flash Cycle Go */ - u16 flcycle :2; /* 2:1 Flash Cycle */ - u16 reserved :5; /* 7:3 Reserved */ - u16 fldbcount :2; /* 9:8 Flash Data Byte Count */ - u16 flockdn :6; /* 15:10 Reserved */ - } hsf_ctrl; - u16 regval; -}; - -/* ICH Flash Region Access Permissions */ -union ich8_hws_flash_regacc { - struct ich8_flracc { - u32 grra :8; /* 0:7 GbE region Read Access */ - u32 grwa :8; /* 8:15 GbE region Write Access */ - u32 gmrag :8; /* 23:16 GbE Master Read Access Grant */ - u32 gmwag :8; /* 31:24 GbE Master Write Access Grant */ - } hsf_flregacc; - u16 regval; -}; - -#if defined(__VMKLNX__) -/* ICH Flash Protected Region */ -union ich8_flash_protected_range { - struct ich8_pr { - u32 base:13; /* 0:12 Protected Range Base */ - u32 reserved1:2; /* 13:14 Reserved */ - u32 rpe:1; /* 15 Read Protection Enable */ - u32 limit:13; /* 16:28 Protected Range Limit */ - u32 reserved2:2; /* 29:30 Reserved */ - u32 wpe:1; /* 31 Write Protection Enable */ - } range; - u32 regval; -}; -#endif /* defined(__VMKLNX__) */ - -/** - * e1000_init_phy_params_pchlan - Initialize PHY function pointers - * @hw: pointer to the HW structure - * - * Initialize family-specific PHY parameters and function pointers. - **/ -static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) -{ - struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; - - phy->addr = 1; - phy->reset_delay_us = 100; - - phy->ops.acquire = e1000_acquire_swflag_ich8lan; - phy->ops.check_polarity = e1000_check_polarity_ife; - phy->ops.check_reset_block = e1000_check_reset_block_ich8lan; - phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_ife; - phy->ops.get_cable_length = e1000e_get_cable_length_igp_2; - phy->ops.get_cfg_done = e1000_get_cfg_done_ich8lan; - phy->ops.get_info = e1000_get_phy_info_ich8lan; - phy->ops.read_reg = e1000_read_phy_reg_hv; - phy->ops.read_reg_locked = e1000_read_phy_reg_hv_locked; - phy->ops.release = e1000_release_swflag_ich8lan; - phy->ops.reset = e1000_phy_hw_reset_ich8lan; - phy->ops.set_d0_lplu_state = e1000_set_lplu_state_pchlan; - phy->ops.set_d3_lplu_state = e1000_set_lplu_state_pchlan; - phy->ops.write_reg = e1000_write_phy_reg_hv; - phy->ops.write_reg_locked = e1000_write_phy_reg_hv_locked; - phy->ops.power_up = e1000_power_up_phy_copper; - phy->ops.power_down = e1000_power_down_phy_copper_ich8lan; - phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; - - phy->id = e1000_phy_unknown; - e1000e_get_phy_id(hw); - phy->type = e1000e_get_phy_type_from_id(phy->id); - - if (phy->type == e1000_phy_82577) { - phy->ops.check_polarity = e1000_check_polarity_82577; - phy->ops.force_speed_duplex = - e1000_phy_force_speed_duplex_82577; - phy->ops.get_cable_length = e1000_get_cable_length_82577; - phy->ops.get_info = e1000_get_phy_info_82577; - phy->ops.commit = e1000e_phy_sw_reset; - } - - return ret_val; -} - -/** - * e1000_init_phy_params_ich8lan - Initialize PHY function pointers - * @hw: pointer to the HW structure - * - * Initialize family-specific PHY parameters and function pointers. - **/ -static s32 e1000_init_phy_params_ich8lan(struct e1000_hw *hw) -{ - struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; - u16 i = 0; - - phy->addr = 1; - phy->reset_delay_us = 100; - - phy->ops.acquire = e1000_acquire_swflag_ich8lan; - phy->ops.check_polarity = e1000_check_polarity_ife; - phy->ops.check_reset_block = e1000_check_reset_block_ich8lan; - phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_ife; - phy->ops.get_cable_length = e1000e_get_cable_length_igp_2; - phy->ops.get_cfg_done = e1000_get_cfg_done_ich8lan; - phy->ops.get_info = e1000_get_phy_info_ich8lan; - phy->ops.read_reg = e1000e_read_phy_reg_igp; - phy->ops.release = e1000_release_swflag_ich8lan; - phy->ops.reset = e1000_phy_hw_reset_ich8lan; - phy->ops.set_d0_lplu_state = e1000_set_d0_lplu_state_ich8lan; - phy->ops.set_d3_lplu_state = e1000_set_d3_lplu_state_ich8lan; - phy->ops.write_reg = e1000e_write_phy_reg_igp; - phy->ops.power_up = e1000_power_up_phy_copper; - phy->ops.power_down = e1000_power_down_phy_copper_ich8lan; - - /* - * We may need to do this twice - once for IGP and if that fails, - * we'll set BM func pointers and try again - */ - ret_val = e1000e_determine_phy_address(hw); - if (ret_val) { - phy->ops.write_reg = e1000e_write_phy_reg_bm; - phy->ops.read_reg = e1000e_read_phy_reg_bm; - ret_val = e1000e_determine_phy_address(hw); - if (ret_val) { - e_dbg("Cannot determine PHY addr. Erroring out\n"); - goto out; - } - } - - phy->id = 0; - while ((e1000_phy_unknown == e1000e_get_phy_type_from_id(phy->id)) && - (i++ < 100)) { - msleep(1); - ret_val = e1000e_get_phy_id(hw); - if (ret_val) - goto out; - } - - /* Verify phy id */ - switch (phy->id) { - case IGP03E1000_E_PHY_ID: - phy->type = e1000_phy_igp_3; - phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; - phy->ops.read_reg_locked = e1000e_read_phy_reg_igp_locked; - phy->ops.write_reg_locked = e1000e_write_phy_reg_igp_locked; - break; - case IFE_E_PHY_ID: - case IFE_PLUS_E_PHY_ID: - case IFE_C_E_PHY_ID: - phy->type = e1000_phy_ife; - phy->autoneg_mask = E1000_ALL_NOT_GIG; - break; - case BME1000_E_PHY_ID: - phy->type = e1000_phy_bm; - phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; - phy->ops.read_reg = e1000e_read_phy_reg_bm; - phy->ops.write_reg = e1000e_write_phy_reg_bm; - phy->ops.commit = e1000e_phy_sw_reset; - break; - default: - ret_val = -E1000_ERR_PHY; - goto out; - } - -out: - return ret_val; -} - -/** - * e1000_init_nvm_params_ich8lan - Initialize NVM function pointers - * @hw: pointer to the HW structure - * - * Initialize family-specific NVM parameters and function - * pointers. - **/ -static s32 e1000_init_nvm_params_ich8lan(struct e1000_hw *hw) -{ - struct e1000_nvm_info *nvm = &hw->nvm; - struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; - u32 gfpreg, sector_base_addr, sector_end_addr; - s32 ret_val = E1000_SUCCESS; - u16 i; - - /* Can't read flash registers if the register set isn't mapped. */ - if (!hw->flash_address) { - e_dbg("ERROR: Flash registers not mapped\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; - } - - nvm->type = e1000_nvm_flash_sw; - - gfpreg = er32flash(ICH_FLASH_GFPREG); - - /* - * sector_X_addr is a "sector"-aligned address (4096 bytes) - * Add 1 to sector_end_addr since this sector is included in - * the overall size. - */ - sector_base_addr = gfpreg & FLASH_GFPREG_BASE_MASK; - sector_end_addr = ((gfpreg >> 16) & FLASH_GFPREG_BASE_MASK) + 1; - - /* flash_base_addr is byte-aligned */ - nvm->flash_base_addr = sector_base_addr << FLASH_SECTOR_ADDR_SHIFT; - - /* - * find total size of the NVM, then cut in half since the total - * size represents two separate NVM banks. - */ - nvm->flash_bank_size = (sector_end_addr - sector_base_addr) - << FLASH_SECTOR_ADDR_SHIFT; - nvm->flash_bank_size /= 2; - /* Adjust to word count */ - nvm->flash_bank_size /= sizeof(u16); - - nvm->word_size = E1000_ICH8_SHADOW_RAM_WORDS; - - /* Clear shadow ram */ - for (i = 0; i < nvm->word_size; i++) { - dev_spec->shadow_ram[i].modified = false; - dev_spec->shadow_ram[i].value = 0xFFFF; - } - - /* Function Pointers */ - nvm->ops.acquire = e1000_acquire_nvm_ich8lan; - nvm->ops.release = e1000_release_nvm_ich8lan; - nvm->ops.read = e1000_read_nvm_ich8lan; - nvm->ops.update = e1000_update_nvm_checksum_ich8lan; - nvm->ops.valid_led_default = e1000_valid_led_default_ich8lan; - nvm->ops.validate = e1000_validate_nvm_checksum_ich8lan; - nvm->ops.write = e1000_write_nvm_ich8lan; - -out: - return ret_val; -} - -/** - * e1000_init_mac_params_ich8lan - Initialize MAC function pointers - * @hw: pointer to the HW structure - * - * Initialize family-specific MAC parameters and function - * pointers. - **/ -static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw) -{ - struct e1000_mac_info *mac = &hw->mac; - - /* Set media type function pointer */ - hw->phy.media_type = e1000_media_type_copper; - - /* Set mta register count */ - mac->mta_reg_count = 32; - /* Set rar entry count */ - mac->rar_entry_count = E1000_ICH_RAR_ENTRIES; - if (mac->type == e1000_ich8lan) - mac->rar_entry_count--; - /* Set if part includes ASF firmware */ - mac->asf_firmware_present = true; - /* Set if manageability features are enabled. */ - mac->arc_subsystem_valid = true; - - /* Function pointers */ - - /* bus type/speed/width */ - mac->ops.get_bus_info = e1000_get_bus_info_ich8lan; - /* function id */ - mac->ops.set_lan_id = e1000_set_lan_id_single_port; - /* reset */ - mac->ops.reset_hw = e1000_reset_hw_ich8lan; - /* hw initialization */ - mac->ops.init_hw = e1000_init_hw_ich8lan; - /* link setup */ - mac->ops.setup_link = e1000_setup_link_ich8lan; - /* physical interface setup */ - mac->ops.setup_physical_interface = e1000_setup_copper_link_ich8lan; - /* check for link */ - mac->ops.check_for_link = e1000_check_for_copper_link_ich8lan; - /* check management mode */ - mac->ops.check_mng_mode = e1000_check_mng_mode_ich8lan; - /* link info */ - mac->ops.get_link_up_info = e1000_get_link_up_info_ich8lan; - /* multicast address update */ - mac->ops.update_mc_addr_list = e1000e_update_mc_addr_list_generic; - /* setting MTA */ - mac->ops.mta_set = e1000_mta_set_generic; - /* clear hardware counters */ - mac->ops.clear_hw_cntrs = e1000_clear_hw_cntrs_ich8lan; - - /* LED operations */ - switch (mac->type) { - case e1000_ich8lan: - case e1000_ich9lan: - case e1000_ich10lan: - /* ID LED init */ - mac->ops.id_led_init = e1000e_id_led_init; - /* blink LED */ - mac->ops.blink_led = e1000e_blink_led; - /* setup LED */ - mac->ops.setup_led = e1000_setup_led_generic; - /* cleanup LED */ - mac->ops.cleanup_led = e1000_cleanup_led_ich8lan; - /* turn on/off LED */ - mac->ops.led_on = e1000_led_on_ich8lan; - mac->ops.led_off = e1000_led_off_ich8lan; - break; - case e1000_pchlan: - /* ID LED init */ - mac->ops.id_led_init = e1000_id_led_init_pchlan; - /* setup LED */ - mac->ops.setup_led = e1000_setup_led_pchlan; - /* cleanup LED */ - mac->ops.cleanup_led = e1000_cleanup_led_pchlan; - /* turn on/off LED */ - mac->ops.led_on = e1000_led_on_pchlan; - mac->ops.led_off = e1000_led_off_pchlan; - break; - default: - break; - } - - /* Enable PCS Lock-loss workaround for ICH8 */ - if (mac->type == e1000_ich8lan) - e1000e_set_kmrn_lock_loss_workaround_ich8lan(hw, true); - - - return E1000_SUCCESS; -} - -/** - * e1000_check_for_copper_link_ich8lan - Check for link (Copper) - * @hw: pointer to the HW structure - * - * Checks to see of the link status of the hardware has changed. If a - * change in link status has been detected, then we read the PHY registers - * to get the current speed/duplex if link exists. - **/ -static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw) -{ - struct e1000_mac_info *mac = &hw->mac; - s32 ret_val; - bool link; - - /* - * We only want to go out to the PHY registers to see if Auto-Neg - * has completed and/or if our link status has changed. The - * get_link_status flag is set upon receiving a Link Status - * Change or Rx Sequence Error interrupt. - */ - if (!mac->get_link_status) { - ret_val = E1000_SUCCESS; - goto out; - } - - /* - * First we want to see if the MII Status Register reports - * link. If so, then we want to get the current speed/duplex - * of the PHY. - */ - ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); - if (ret_val) - goto out; - - if (hw->mac.type == e1000_pchlan) { - ret_val = e1000_k1_gig_workaround_hv(hw, link); - if (ret_val) - goto out; - } - - if (!link) - goto out; /* No link detected */ - - mac->get_link_status = false; - - if (hw->phy.type == e1000_phy_82578) { - ret_val = e1000_link_stall_workaround_hv(hw); - if (ret_val) - goto out; - } - - /* - * Check if there was DownShift, must be checked - * immediately after link-up - */ - e1000e_check_downshift(hw); - - /* - * If we are forcing speed/duplex, then we simply return since - * we have already determined whether we have link or not. - */ - if (!mac->autoneg) { - ret_val = -E1000_ERR_CONFIG; - goto out; - } - - /* - * Auto-Neg is enabled. Auto Speed Detection takes care - * of MAC speed/duplex configuration. So we only need to - * configure Collision Distance in the MAC. - */ - e1000e_config_collision_dist(hw); - - /* - * Configure Flow Control now that Auto-Neg has completed. - * First, we need to restore the desired flow control - * settings because we may have had to re-autoneg with a - * different link partner. - */ - ret_val = e1000e_config_fc_after_link_up(hw); - if (ret_val) - e_dbg("Error configuring flow control\n"); - -out: - return ret_val; -} - -/** - * e1000_init_function_pointers_ich8lan - Initialize ICH8 function pointers - * @hw: pointer to the HW structure - * - * Initialize family-specific function pointers for PHY, MAC, and NVM. - **/ -void e1000_init_function_pointers_ich8lan(struct e1000_hw *hw) -{ - e1000_init_mac_ops_generic(hw); - e1000_init_nvm_ops_generic(hw); - hw->mac.ops.init_params = e1000_init_mac_params_ich8lan; - hw->nvm.ops.init_params = e1000_init_nvm_params_ich8lan; - switch (hw->mac.type) { - case e1000_ich8lan: - case e1000_ich9lan: - case e1000_ich10lan: - hw->phy.ops.init_params = e1000_init_phy_params_ich8lan; - break; - case e1000_pchlan: - hw->phy.ops.init_params = e1000_init_phy_params_pchlan; - break; - default: - break; - } -} - -static DEFINE_MUTEX(nvm_mutex); - -/** - * e1000_acquire_nvm_ich8lan - Acquire NVM mutex - * @hw: pointer to the HW structure - * - * Acquires the mutex for performing NVM operations. - **/ -static s32 e1000_acquire_nvm_ich8lan(struct e1000_hw *hw) -{ - mutex_lock(&nvm_mutex); - - return E1000_SUCCESS; -} - -/** - * e1000_release_nvm_ich8lan - Release NVM mutex - * @hw: pointer to the HW structure - * - * Releases the mutex used while performing NVM operations. - **/ -static void e1000_release_nvm_ich8lan(struct e1000_hw *hw) -{ - mutex_unlock(&nvm_mutex); - - return; -} - -static DEFINE_MUTEX(swflag_mutex); - -/** - * e1000_acquire_swflag_ich8lan - Acquire software control flag - * @hw: pointer to the HW structure - * - * Acquires the software control flag for performing PHY and select - * MAC CSR accesses. - **/ -static s32 e1000_acquire_swflag_ich8lan(struct e1000_hw *hw) -{ - u32 extcnf_ctrl, timeout = PHY_CFG_TIMEOUT; - s32 ret_val = E1000_SUCCESS; - - mutex_lock(&swflag_mutex); - - while (timeout) { - extcnf_ctrl = er32(EXTCNF_CTRL); - if (!(extcnf_ctrl & E1000_EXTCNF_CTRL_SWFLAG)) - break; - - mdelay(1); - timeout--; - } - - if (!timeout) { - e_dbg("SW/FW/HW has locked the resource for too long.\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; - } - - timeout = SW_FLAG_TIMEOUT; - - extcnf_ctrl |= E1000_EXTCNF_CTRL_SWFLAG; - ew32(EXTCNF_CTRL, extcnf_ctrl); - - while (timeout) { - extcnf_ctrl = er32(EXTCNF_CTRL); - if (extcnf_ctrl & E1000_EXTCNF_CTRL_SWFLAG) - break; - - mdelay(1); - timeout--; - } - - if (!timeout) { - e_dbg("Failed to acquire the semaphore.\n"); - extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG; - ew32(EXTCNF_CTRL, extcnf_ctrl); - ret_val = -E1000_ERR_CONFIG; - goto out; - } - -out: - if (ret_val) - mutex_unlock(&swflag_mutex); - - return ret_val; -} - -/** - * e1000_release_swflag_ich8lan - Release software control flag - * @hw: pointer to the HW structure - * - * Releases the software control flag for performing PHY and select - * MAC CSR accesses. - **/ -static void e1000_release_swflag_ich8lan(struct e1000_hw *hw) -{ - u32 extcnf_ctrl; - - extcnf_ctrl = er32(EXTCNF_CTRL); - extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG; - ew32(EXTCNF_CTRL, extcnf_ctrl); - - mutex_unlock(&swflag_mutex); - - return; -} - -/** - * e1000_check_mng_mode_ich8lan - Checks management mode - * @hw: pointer to the HW structure - * - * This checks if the adapter has manageability enabled. - * This is a function pointer entry point only called by read/write - * routines for the PHY and NVM parts. - **/ -static bool e1000_check_mng_mode_ich8lan(struct e1000_hw *hw) -{ - u32 fwsm; - - fwsm = er32(FWSM); - return (fwsm & E1000_FWSM_MODE_MASK) == - (E1000_ICH_MNG_IAMT_MODE << E1000_FWSM_MODE_SHIFT); -} -/** - * e1000_check_reset_block_ich8lan - Check if PHY reset is blocked - * @hw: pointer to the HW structure - * - * Checks if firmware is blocking the reset of the PHY. - * This is a function pointer entry point only called by - * reset routines. - **/ -static s32 e1000_check_reset_block_ich8lan(struct e1000_hw *hw) -{ - u32 fwsm; - - fwsm = er32(FWSM); - return (fwsm & E1000_ICH_FWSM_RSPCIPHY) ? E1000_SUCCESS - : E1000_BLK_PHY_RESET; -} - -/** - * e1000_sw_lcd_config_ich8lan - SW-based LCD Configuration - * @hw: pointer to the HW structure - * - * SW should configure the LCD from the NVM extended configuration region - * as a workaround for certain parts. - **/ -static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw) -{ - struct e1000_phy_info *phy = &hw->phy; - u32 i, data, cnf_size, cnf_base_addr, sw_cfg_mask; - s32 ret_val; - u16 word_addr, reg_data, reg_addr, phy_page = 0; - - ret_val = hw->phy.ops.acquire(hw); - if (ret_val) - return ret_val; - - /* - * Initialize the PHY from the NVM on ICH platforms. This - * is needed due to an issue where the NVM configuration is - * not properly autoloaded after power transitions. - * Therefore, after each PHY reset, we will load the - * configuration data out of the NVM manually. - */ - if ((hw->mac.type == e1000_ich8lan && phy->type == e1000_phy_igp_3) || - (hw->mac.type == e1000_pchlan)) { - /* Check if SW needs to configure the PHY */ - if ((hw->device_id == E1000_DEV_ID_ICH8_IGP_M_AMT) || - (hw->device_id == E1000_DEV_ID_ICH8_IGP_M) || - (hw->mac.type == e1000_pchlan)) - sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG_ICH8M; - else - sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG; - - data = er32(FEXTNVM); - if (!(data & sw_cfg_mask)) - goto out; - - /* Wait for basic configuration completes before proceeding */ - e1000_lan_init_done_ich8lan(hw); - - /* - * Make sure HW does not configure LCD from PHY - * extended configuration before SW configuration - */ - data = er32(EXTCNF_CTRL); - if (data & E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE) - goto out; - - cnf_size = er32(EXTCNF_SIZE); - cnf_size &= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK; - cnf_size >>= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT; - if (!cnf_size) - goto out; - - cnf_base_addr = data & E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK; - cnf_base_addr >>= E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT; - - if (!(data & E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE) && - (hw->mac.type == e1000_pchlan)) { - /* - * HW configures the SMBus address and LEDs when the - * OEM and LCD Write Enable bits are set in the NVM. - * When both NVM bits are cleared, SW will configure - * them instead. - */ - data = er32(STRAP); - data &= E1000_STRAP_SMBUS_ADDRESS_MASK; - reg_data = data >> E1000_STRAP_SMBUS_ADDRESS_SHIFT; - reg_data |= HV_SMB_ADDR_PEC_EN | HV_SMB_ADDR_VALID; - ret_val = e1000_write_phy_reg_hv_locked(hw, HV_SMB_ADDR, - reg_data); - if (ret_val) - goto out; - - data = er32(LEDCTL); - ret_val = e1000_write_phy_reg_hv_locked(hw, - HV_LED_CONFIG, - (u16)data); - if (ret_val) - goto out; - } - - /* Configure LCD from extended configuration region. */ - - /* cnf_base_addr is in DWORD */ - word_addr = (u16)(cnf_base_addr << 1); - - for (i = 0; i < cnf_size; i++) { - ret_val = e1000_read_nvm(hw, (word_addr + i * 2), 1, - ®_data); - if (ret_val) - goto out; - - ret_val = e1000_read_nvm(hw, (word_addr + i * 2 + 1), - 1, ®_addr); - if (ret_val) - goto out; - - /* Save off the PHY page for future writes. */ - if (reg_addr == IGP01E1000_PHY_PAGE_SELECT) { - phy_page = reg_data; - continue; - } - - reg_addr &= PHY_REG_MASK; - reg_addr |= phy_page; - - ret_val = phy->ops.write_reg_locked(hw, (u32)reg_addr, - reg_data); - if (ret_val) - goto out; - } - } - -out: - hw->phy.ops.release(hw); - return ret_val; -} - -/** - * e1000_k1_gig_workaround_hv - K1 Si workaround - * @hw: pointer to the HW structure - * @link: link up bool flag - * - * If K1 is enabled for 1Gbps, the MAC might stall when transitioning - * from a lower speed. This workaround disables K1 whenever link is at 1Gig - * If link is down, the function will restore the default K1 setting located - * in the NVM. - **/ -static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link) -{ - s32 ret_val = E1000_SUCCESS; - u16 status_reg = 0; - bool k1_enable = hw->dev_spec.ich8lan.nvm_k1_enabled; - - if (hw->mac.type != e1000_pchlan) - goto out; - - /* Wrap the whole flow with the sw flag */ - ret_val = hw->phy.ops.acquire(hw); - if (ret_val) - goto out; - - /* Disable K1 when link is 1Gbps, otherwise use the NVM setting */ - if (link) { - if (hw->phy.type == e1000_phy_82578) { - ret_val = hw->phy.ops.read_reg_locked(hw, BM_CS_STATUS, - &status_reg); - if (ret_val) - goto release; - - status_reg &= BM_CS_STATUS_LINK_UP | - BM_CS_STATUS_RESOLVED | - BM_CS_STATUS_SPEED_MASK; - - if (status_reg == (BM_CS_STATUS_LINK_UP | - BM_CS_STATUS_RESOLVED | - BM_CS_STATUS_SPEED_1000)) - k1_enable = false; - } - - if (hw->phy.type == e1000_phy_82577) { - ret_val = hw->phy.ops.read_reg_locked(hw, HV_M_STATUS, - &status_reg); - if (ret_val) - goto release; - - status_reg &= HV_M_STATUS_LINK_UP | - HV_M_STATUS_AUTONEG_COMPLETE | - HV_M_STATUS_SPEED_MASK; - - if (status_reg == (HV_M_STATUS_LINK_UP | - HV_M_STATUS_AUTONEG_COMPLETE | - HV_M_STATUS_SPEED_1000)) - k1_enable = false; - } - - /* Link stall fix for link up */ - ret_val = hw->phy.ops.write_reg_locked(hw, PHY_REG(770, 19), - 0x0100); - if (ret_val) - goto release; - - } else { - /* Link stall fix for link down */ - ret_val = hw->phy.ops.write_reg_locked(hw, PHY_REG(770, 19), - 0x4100); - if (ret_val) - goto release; - } - - ret_val = e1000_configure_k1_ich8lan(hw, k1_enable); - -release: - hw->phy.ops.release(hw); -out: - return ret_val; -} - -/** - * e1000_configure_k1_ich8lan - Configure K1 power state - * @hw: pointer to the HW structure - * @enable: K1 state to configure - * - * Configure the K1 power state based on the provided parameter. - * Assumes semaphore already acquired. - * - * Success returns 0, Failure returns -E1000_ERR_PHY (-2) - **/ -s32 e1000_configure_k1_ich8lan(struct e1000_hw *hw, bool k1_enable) -{ - s32 ret_val = E1000_SUCCESS; - u32 ctrl_reg = 0; - u32 ctrl_ext = 0; - u32 reg = 0; - u16 kmrn_reg = 0; - - ret_val = e1000e_read_kmrn_reg_locked(hw, - E1000_KMRNCTRLSTA_K1_CONFIG, - &kmrn_reg); - if (ret_val) - goto out; - - if (k1_enable) - kmrn_reg |= E1000_KMRNCTRLSTA_K1_ENABLE; - else - kmrn_reg &= ~E1000_KMRNCTRLSTA_K1_ENABLE; - - ret_val = e1000e_write_kmrn_reg_locked(hw, - E1000_KMRNCTRLSTA_K1_CONFIG, - kmrn_reg); - if (ret_val) - goto out; - - udelay(20); - ctrl_ext = er32(CTRL_EXT); - ctrl_reg = er32(CTRL); - - reg = ctrl_reg & ~(E1000_CTRL_SPD_1000 | E1000_CTRL_SPD_100); - reg |= E1000_CTRL_FRCSPD; - ew32(CTRL, reg); - - E1000_WRITE_REG(hw, - E1000_CTRL_EXT, - ctrl_ext | E1000_CTRL_EXT_SPD_BYPS); - udelay(20); - ew32(CTRL, ctrl_reg); - ew32(CTRL_EXT, ctrl_ext); - udelay(20); - -out: - return ret_val; -} - -/** - * e1000_oem_bits_config_ich8lan - SW-based LCD Configuration - * @hw: pointer to the HW structure - * @d0_state: boolean if entering d0 or d3 device state - * - * SW will configure Gbe Disable and LPLU based on the NVM. The four bits are - * collectively called OEM bits. The OEM Write Enable bit and SW Config bit - * in NVM determines whether HW should configure LPLU and Gbe Disable. - **/ -s32 e1000_oem_bits_config_ich8lan(struct e1000_hw *hw, bool d0_state) -{ - s32 ret_val = 0; - u32 mac_reg; - u16 oem_reg; - - if (hw->mac.type != e1000_pchlan) - return ret_val; - - ret_val = hw->phy.ops.acquire(hw); - if (ret_val) - return ret_val; - - mac_reg = er32(EXTCNF_CTRL); - if (mac_reg & E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE) - goto out; - - mac_reg = er32(FEXTNVM); - if (!(mac_reg & E1000_FEXTNVM_SW_CONFIG_ICH8M)) - goto out; - - mac_reg = er32(PHY_CTRL); - - ret_val = hw->phy.ops.read_reg_locked(hw, HV_OEM_BITS, &oem_reg); - if (ret_val) - goto out; - - oem_reg &= ~(HV_OEM_BITS_GBE_DIS | HV_OEM_BITS_LPLU); - - if (d0_state) { - if (mac_reg & E1000_PHY_CTRL_GBE_DISABLE) - oem_reg |= HV_OEM_BITS_GBE_DIS; - - if (mac_reg & E1000_PHY_CTRL_D0A_LPLU) - oem_reg |= HV_OEM_BITS_LPLU; - } else { - if (mac_reg & E1000_PHY_CTRL_NOND0A_GBE_DISABLE) - oem_reg |= HV_OEM_BITS_GBE_DIS; - - if (mac_reg & E1000_PHY_CTRL_NOND0A_LPLU) - oem_reg |= HV_OEM_BITS_LPLU; - } - /* Restart auto-neg to activate the bits */ - if (!e1000_check_reset_block(hw)) - oem_reg |= HV_OEM_BITS_RESTART_AN; - ret_val = hw->phy.ops.write_reg_locked(hw, HV_OEM_BITS, oem_reg); - -out: - hw->phy.ops.release(hw); - - return ret_val; -} - - -/** - * e1000_hv_phy_workarounds_ich8lan - A series of Phy workarounds to be - * done after every PHY reset. - **/ -static s32 e1000_hv_phy_workarounds_ich8lan(struct e1000_hw *hw) -{ - s32 ret_val = E1000_SUCCESS; - - if (hw->mac.type != e1000_pchlan) - goto out; - - if (((hw->phy.type == e1000_phy_82577) && - ((hw->phy.revision == 1) || (hw->phy.revision == 2))) || - ((hw->phy.type == e1000_phy_82578) && (hw->phy.revision == 1))) { - /* Disable generation of early preamble */ - ret_val = e1e_wphy(hw, PHY_REG(769, 25), 0x4431); - if (ret_val) - goto out; - - /* Preamble tuning for SSC */ - ret_val = e1e_wphy(hw, PHY_REG(770, 16), 0xA204); - if (ret_val) - goto out; - } - - if (hw->phy.type == e1000_phy_82578) { - /* - * Return registers to default by doing a soft reset then - * writing 0x3140 to the control register. - */ - if (hw->phy.revision < 2) { - e1000e_phy_sw_reset(hw); - ret_val = e1e_wphy(hw, PHY_CONTROL, - 0x3140); - } - } - - /* Select page 0 */ - ret_val = hw->phy.ops.acquire(hw); - if (ret_val) - goto out; - - hw->phy.addr = 1; - ret_val = e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, 0); - if (ret_val) - goto out; - hw->phy.ops.release(hw); - - /* - * Configure the K1 Si workaround during phy reset assuming there is - * link so that it disables K1 if link is in 1Gbps. - */ - ret_val = e1000_k1_gig_workaround_hv(hw, true); - -out: - return ret_val; -} - -/** - * e1000_lan_init_done_ich8lan - Check for PHY config completion - * @hw: pointer to the HW structure - * - * Check the appropriate indication the MAC has finished configuring the - * PHY after a software reset. - **/ -static void e1000_lan_init_done_ich8lan(struct e1000_hw *hw) -{ - u32 data, loop = E1000_ICH8_LAN_INIT_TIMEOUT; - - /* Wait for basic configuration completes before proceeding */ - do { - data = er32(STATUS); - data &= E1000_STATUS_LAN_INIT_DONE; - udelay(100); - } while ((!data) && --loop); - - /* - * If basic configuration is incomplete before the above loop - * count reaches 0, loading the configuration from NVM will - * leave the PHY in a bad state possibly resulting in no link. - */ - if (loop == 0) - e_dbg("LAN_INIT_DONE not set, increase timeout\n"); - - /* Clear the Init Done bit for the next init event */ - data = er32(STATUS); - data &= ~E1000_STATUS_LAN_INIT_DONE; - ew32(STATUS, data); -} - -/** - * e1000_phy_hw_reset_ich8lan - Performs a PHY reset - * @hw: pointer to the HW structure - * - * Resets the PHY - * This is a function pointer entry point called by drivers - * or other shared routines. - **/ -static s32 e1000_phy_hw_reset_ich8lan(struct e1000_hw *hw) -{ - s32 ret_val = E1000_SUCCESS; - u16 reg; - - ret_val = e1000e_phy_hw_reset_generic(hw); - if (ret_val) - goto out; - - /* Allow time for h/w to get to a quiescent state after reset */ - msleep(10); - - if (hw->mac.type == e1000_pchlan) { - ret_val = e1000_hv_phy_workarounds_ich8lan(hw); - if (ret_val) - goto out; - } - - /* Dummy read to clear the phy wakeup bit after lcd reset */ - if (hw->mac.type == e1000_pchlan) - e1e_rphy(hw, BM_WUC, ®); - - /* Configure the LCD with the extended configuration region in NVM */ - ret_val = e1000_sw_lcd_config_ich8lan(hw); - if (ret_val) - goto out; - - /* Configure the LCD with the OEM bits in NVM */ - if (hw->mac.type == e1000_pchlan) - ret_val = e1000_oem_bits_config_ich8lan(hw, true); - -out: - return ret_val; -} - -/** - * e1000_get_phy_info_ich8lan - Calls appropriate PHY type get_phy_info - * @hw: pointer to the HW structure - * - * Wrapper for calling the get_phy_info routines for the appropriate phy type. - **/ -static s32 e1000_get_phy_info_ich8lan(struct e1000_hw *hw) -{ - s32 ret_val = -E1000_ERR_PHY_TYPE; - - switch (hw->phy.type) { - case e1000_phy_ife: - ret_val = e1000_get_phy_info_ife_ich8lan(hw); - break; - case e1000_phy_igp_3: - case e1000_phy_bm: - case e1000_phy_82578: - case e1000_phy_82577: - ret_val = e1000e_get_phy_info_igp(hw); - break; - default: - break; - } - - return ret_val; -} - -/** - * e1000_get_phy_info_ife_ich8lan - Retrieves various IFE PHY states - * @hw: pointer to the HW structure - * - * Populates "phy" structure with various feature states. - * This function is only called by other family-specific - * routines. - **/ -static s32 e1000_get_phy_info_ife_ich8lan(struct e1000_hw *hw) -{ - struct e1000_phy_info *phy = &hw->phy; - s32 ret_val; - u16 data; - bool link; - - ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); - if (ret_val) - goto out; - - if (!link) { - e_dbg("Phy info is only valid if link is up\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; - } - - ret_val = e1e_rphy(hw, IFE_PHY_SPECIAL_CONTROL, &data); - if (ret_val) - goto out; - phy->polarity_correction = (data & IFE_PSC_AUTO_POLARITY_DISABLE) - ? false : true; - - if (phy->polarity_correction) { - ret_val = e1000_check_polarity_ife(hw); - if (ret_val) - goto out; - } else { - /* Polarity is forced */ - phy->cable_polarity = (data & IFE_PSC_FORCE_POLARITY) - ? e1000_rev_polarity_reversed - : e1000_rev_polarity_normal; - } - - ret_val = e1e_rphy(hw, IFE_PHY_MDIX_CONTROL, &data); - if (ret_val) - goto out; - - phy->is_mdix = (data & IFE_PMC_MDIX_STATUS) ? true : false; - - /* The following parameters are undefined for 10/100 operation. */ - phy->cable_length = E1000_CABLE_LENGTH_UNDEFINED; - phy->local_rx = e1000_1000t_rx_status_undefined; - phy->remote_rx = e1000_1000t_rx_status_undefined; - -out: - return ret_val; -} - -/** - * e1000_set_lplu_state_pchlan - Set Low Power Link Up state - * @hw: pointer to the HW structure - * @active: true to enable LPLU, false to disable - * - * Sets the LPLU state according to the active flag. For PCH, if OEM write - * bit are disabled in the NVM, writing the LPLU bits in the MAC will not set - * the phy speed. This function will manually set the LPLU bit and restart - * auto-neg as hw would do. D3 and D0 LPLU will call the same function - * since it configures the same bit. - **/ -static s32 e1000_set_lplu_state_pchlan(struct e1000_hw *hw, bool active) -{ - s32 ret_val = E1000_SUCCESS; - u16 oem_reg; - - ret_val = e1e_rphy(hw, HV_OEM_BITS, &oem_reg); - if (ret_val) - goto out; - - if (active) - oem_reg |= HV_OEM_BITS_LPLU; - else - oem_reg &= ~HV_OEM_BITS_LPLU; - - oem_reg |= HV_OEM_BITS_RESTART_AN; - ret_val = e1e_wphy(hw, HV_OEM_BITS, oem_reg); - -out: - return ret_val; -} - -/** - * e1000_set_d0_lplu_state_ich8lan - Set Low Power Linkup D0 state - * @hw: pointer to the HW structure - * @active: true to enable LPLU, false to disable - * - * Sets the LPLU D0 state according to the active flag. When - * activating LPLU this function also disables smart speed - * and vice versa. LPLU will not be activated unless the - * device autonegotiation advertisement meets standards of - * either 10 or 10/100 or 10/100/1000 at all duplexes. - * This is a function pointer entry point only called by - * PHY setup routines. - **/ -static s32 e1000_set_d0_lplu_state_ich8lan(struct e1000_hw *hw, bool active) -{ - struct e1000_phy_info *phy = &hw->phy; - u32 phy_ctrl; - s32 ret_val = E1000_SUCCESS; - u16 data; - - if (phy->type == e1000_phy_ife) - goto out; - - phy_ctrl = er32(PHY_CTRL); - - if (active) { - phy_ctrl |= E1000_PHY_CTRL_D0A_LPLU; - ew32(PHY_CTRL, phy_ctrl); - - if (phy->type != e1000_phy_igp_3) - goto out; - - /* - * Call gig speed drop workaround on LPLU before accessing - * any PHY registers - */ - if (hw->mac.type == e1000_ich8lan) - e1000e_gig_downshift_workaround_ich8lan(hw); - - /* When LPLU is enabled, we should disable SmartSpeed */ - ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); - data &= ~IGP01E1000_PSCFR_SMART_SPEED; - ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); - if (ret_val) - goto out; - } else { - phy_ctrl &= ~E1000_PHY_CTRL_D0A_LPLU; - ew32(PHY_CTRL, phy_ctrl); - - if (phy->type != e1000_phy_igp_3) - goto out; - - /* - * LPLU and SmartSpeed are mutually exclusive. LPLU is used - * during Dx states where the power conservation is most - * important. During driver activity we should enable - * SmartSpeed, so performance is maintained. - */ - if (phy->smart_speed == e1000_smart_speed_on) { - ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); - if (ret_val) - goto out; - - data |= IGP01E1000_PSCFR_SMART_SPEED; - ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); - if (ret_val) - goto out; - } else if (phy->smart_speed == e1000_smart_speed_off) { - ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); - if (ret_val) - goto out; - - data &= ~IGP01E1000_PSCFR_SMART_SPEED; - ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); - if (ret_val) - goto out; - } - } - -out: - return ret_val; -} - -/** - * e1000_set_d3_lplu_state_ich8lan - Set Low Power Linkup D3 state - * @hw: pointer to the HW structure - * @active: true to enable LPLU, false to disable - * - * Sets the LPLU D3 state according to the active flag. When - * activating LPLU this function also disables smart speed - * and vice versa. LPLU will not be activated unless the - * device autonegotiation advertisement meets standards of - * either 10 or 10/100 or 10/100/1000 at all duplexes. - * This is a function pointer entry point only called by - * PHY setup routines. - **/ -static s32 e1000_set_d3_lplu_state_ich8lan(struct e1000_hw *hw, bool active) -{ - struct e1000_phy_info *phy = &hw->phy; - u32 phy_ctrl; - s32 ret_val = E1000_SUCCESS; - u16 data; - - phy_ctrl = er32(PHY_CTRL); - - if (!active) { - phy_ctrl &= ~E1000_PHY_CTRL_NOND0A_LPLU; - ew32(PHY_CTRL, phy_ctrl); - - if (phy->type != e1000_phy_igp_3) - goto out; - - /* - * LPLU and SmartSpeed are mutually exclusive. LPLU is used - * during Dx states where the power conservation is most - * important. During driver activity we should enable - * SmartSpeed, so performance is maintained. - */ - if (phy->smart_speed == e1000_smart_speed_on) { - ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); - if (ret_val) - goto out; - - data |= IGP01E1000_PSCFR_SMART_SPEED; - ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); - if (ret_val) - goto out; - } else if (phy->smart_speed == e1000_smart_speed_off) { - ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); - if (ret_val) - goto out; - - data &= ~IGP01E1000_PSCFR_SMART_SPEED; - ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); - if (ret_val) - goto out; - } - } else if ((phy->autoneg_advertised == E1000_ALL_SPEED_DUPLEX) || - (phy->autoneg_advertised == E1000_ALL_NOT_GIG) || - (phy->autoneg_advertised == E1000_ALL_10_SPEED)) { - phy_ctrl |= E1000_PHY_CTRL_NOND0A_LPLU; - ew32(PHY_CTRL, phy_ctrl); - - if (phy->type != e1000_phy_igp_3) - goto out; - - /* - * Call gig speed drop workaround on LPLU before accessing - * any PHY registers - */ - if (hw->mac.type == e1000_ich8lan) - e1000e_gig_downshift_workaround_ich8lan(hw); - - /* When LPLU is enabled, we should disable SmartSpeed */ - ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); - if (ret_val) - goto out; - - data &= ~IGP01E1000_PSCFR_SMART_SPEED; - ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); - } - -out: - return ret_val; -} - -/** - * e1000_valid_nvm_bank_detect_ich8lan - finds out the valid bank 0 or 1 - * @hw: pointer to the HW structure - * @bank: pointer to the variable that returns the active bank - * - * Reads signature byte from the NVM using the flash access registers. - * Word 0x13 bits 15:14 = 10b indicate a valid signature for that bank. - **/ -static s32 e1000_valid_nvm_bank_detect_ich8lan(struct e1000_hw *hw, u32 *bank) -{ - u32 eecd; - struct e1000_nvm_info *nvm = &hw->nvm; - u32 bank1_offset = nvm->flash_bank_size * sizeof(u16); - u32 act_offset = E1000_ICH_NVM_SIG_WORD * 2 + 1; - u8 sig_byte = 0; - s32 ret_val = E1000_SUCCESS; - - switch (hw->mac.type) { - case e1000_ich8lan: - case e1000_ich9lan: - eecd = er32(EECD); - if ((eecd & E1000_EECD_SEC1VAL_VALID_MASK) == - E1000_EECD_SEC1VAL_VALID_MASK) { - if (eecd & E1000_EECD_SEC1VAL) - *bank = 1; - else - *bank = 0; - - goto out; - } - e_dbg("Unable to determine valid NVM bank via EEC - " - "reading flash signature\n"); - /* fall-thru */ - default: - /* set bank to 0 in case flash read fails */ - *bank = 0; - - /* Check bank 0 */ - ret_val = e1000_read_flash_byte_ich8lan(hw, act_offset, - &sig_byte); - if (ret_val) - goto out; - if ((sig_byte & E1000_ICH_NVM_VALID_SIG_MASK) == - E1000_ICH_NVM_SIG_VALUE) { - *bank = 0; - goto out; - } - - /* Check bank 1 */ - ret_val = e1000_read_flash_byte_ich8lan(hw, act_offset + - bank1_offset, - &sig_byte); - if (ret_val) - goto out; - if ((sig_byte & E1000_ICH_NVM_VALID_SIG_MASK) == - E1000_ICH_NVM_SIG_VALUE) { - *bank = 1; - goto out; - } - - e_dbg("ERROR: No valid NVM bank present\n"); - ret_val = -E1000_ERR_NVM; - break; - } -out: - return ret_val; -} - -/** - * e1000_read_nvm_ich8lan - Read word(s) from the NVM - * @hw: pointer to the HW structure - * @offset: The offset (in bytes) of the word(s) to read. - * @words: Size of data to read in words - * @data: Pointer to the word(s) to read at offset. - * - * Reads a word(s) from the NVM using the flash access registers. - **/ -static s32 e1000_read_nvm_ich8lan(struct e1000_hw *hw, u16 offset, u16 words, - u16 *data) -{ - struct e1000_nvm_info *nvm = &hw->nvm; - struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; - u32 act_offset; - s32 ret_val = E1000_SUCCESS; - u32 bank = 0; - u16 i, word; - - if ((offset >= nvm->word_size) || (words > nvm->word_size - offset) || - (words == 0)) { - e_dbg("nvm parameter(s) out of bounds\n"); - ret_val = -E1000_ERR_NVM; - goto out; - } - - nvm->ops.acquire(hw); - - ret_val = e1000_valid_nvm_bank_detect_ich8lan(hw, &bank); - if (ret_val != E1000_SUCCESS) { - e_dbg("Could not detect valid bank, assuming bank 0\n"); - bank = 0; - } - - act_offset = (bank) ? nvm->flash_bank_size : 0; - act_offset += offset; - - ret_val = E1000_SUCCESS; - for (i = 0; i < words; i++) { - if ((dev_spec->shadow_ram) && - (dev_spec->shadow_ram[offset+i].modified)) { - data[i] = dev_spec->shadow_ram[offset+i].value; - } else { - ret_val = e1000_read_flash_word_ich8lan(hw, - act_offset + i, - &word); - if (ret_val) - break; - data[i] = word; - } - } - - nvm->ops.release(hw); - -out: - if (ret_val) - e_dbg("NVM read error: %d\n", ret_val); - - return ret_val; -} - -/** - * e1000_flash_cycle_init_ich8lan - Initialize flash - * @hw: pointer to the HW structure - * - * This function does initial flash setup so that a new read/write/erase cycle - * can be started. - **/ -static s32 e1000_flash_cycle_init_ich8lan(struct e1000_hw *hw) -{ - union ich8_hws_flash_status hsfsts; - s32 ret_val = -E1000_ERR_NVM; - s32 i = 0; - - hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); - - /* Check if the flash descriptor is valid */ - if (hsfsts.hsf_status.fldesvalid == 0) { - e_dbg("Flash descriptor invalid. " - "SW Sequencing must be used."); - goto out; - } - - /* Clear FCERR and DAEL in hw status by writing 1 */ - hsfsts.hsf_status.flcerr = 1; - hsfsts.hsf_status.dael = 1; - - ew16flash(ICH_FLASH_HSFSTS, hsfsts.regval); - - /* - * Either we should have a hardware SPI cycle in progress - * bit to check against, in order to start a new cycle or - * FDONE bit should be changed in the hardware so that it - * is 1 after hardware reset, which can then be used as an - * indication whether a cycle is in progress or has been - * completed. - */ - - if (hsfsts.hsf_status.flcinprog == 0) { - /* - * There is no cycle running at present, - * so we can start a cycle. - * Begin by setting Flash Cycle Done. - */ - hsfsts.hsf_status.flcdone = 1; - ew16flash(ICH_FLASH_HSFSTS, hsfsts.regval); - ret_val = E1000_SUCCESS; - } else { - /* - * Otherwise poll for sometime so the current - * cycle has a chance to end before giving up. - */ - for (i = 0; i < ICH_FLASH_READ_COMMAND_TIMEOUT; i++) { - hsfsts.regval = er16flash( - ICH_FLASH_HSFSTS); - if (hsfsts.hsf_status.flcinprog == 0) { - ret_val = E1000_SUCCESS; - break; - } - udelay(1); - } - if (ret_val == E1000_SUCCESS) { - /* - * Successful in waiting for previous cycle to timeout, - * now set the Flash Cycle Done. - */ - hsfsts.hsf_status.flcdone = 1; - ew16flash(ICH_FLASH_HSFSTS, - hsfsts.regval); - } else { - e_dbg("Flash controller busy, cannot get access"); - } - } - -out: - return ret_val; -} - -/** - * e1000_flash_cycle_ich8lan - Starts flash cycle (read/write/erase) - * @hw: pointer to the HW structure - * @timeout: maximum time to wait for completion - * - * This function starts a flash cycle and waits for its completion. - **/ -static s32 e1000_flash_cycle_ich8lan(struct e1000_hw *hw, u32 timeout) -{ - union ich8_hws_flash_ctrl hsflctl; - union ich8_hws_flash_status hsfsts; - s32 ret_val = -E1000_ERR_NVM; - u32 i = 0; - - /* Start a cycle by writing 1 in Flash Cycle Go in Hw Flash Control */ - hsflctl.regval = er16flash(ICH_FLASH_HSFCTL); - hsflctl.hsf_ctrl.flcgo = 1; - ew16flash(ICH_FLASH_HSFCTL, hsflctl.regval); - - /* wait till FDONE bit is set to 1 */ - do { - hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); - if (hsfsts.hsf_status.flcdone == 1) - break; - udelay(1); - } while (i++ < timeout); - - if (hsfsts.hsf_status.flcdone == 1 && hsfsts.hsf_status.flcerr == 0) - ret_val = E1000_SUCCESS; - - return ret_val; -} - -/** - * e1000_read_flash_word_ich8lan - Read word from flash - * @hw: pointer to the HW structure - * @offset: offset to data location - * @data: pointer to the location for storing the data - * - * Reads the flash word at offset into data. Offset is converted - * to bytes before read. - **/ -static s32 e1000_read_flash_word_ich8lan(struct e1000_hw *hw, u32 offset, - u16 *data) -{ - s32 ret_val; - - if (!data) { - ret_val = -E1000_ERR_NVM; - goto out; - } - - /* Must convert offset into bytes. */ - offset <<= 1; - - ret_val = e1000_read_flash_data_ich8lan(hw, offset, 2, data); - -out: - return ret_val; -} - -/** - * e1000_read_flash_byte_ich8lan - Read byte from flash - * @hw: pointer to the HW structure - * @offset: The offset of the byte to read. - * @data: Pointer to a byte to store the value read. - * - * Reads a single byte from the NVM using the flash access registers. - **/ -static s32 e1000_read_flash_byte_ich8lan(struct e1000_hw *hw, u32 offset, - u8 *data) -{ - s32 ret_val = E1000_SUCCESS; - u16 word = 0; - - ret_val = e1000_read_flash_data_ich8lan(hw, offset, 1, &word); - if (ret_val) - goto out; - - *data = (u8)word; - -out: - return ret_val; -} - -/** - * e1000_read_flash_data_ich8lan - Read byte or word from NVM - * @hw: pointer to the HW structure - * @offset: The offset (in bytes) of the byte or word to read. - * @size: Size of data to read, 1=byte 2=word - * @data: Pointer to the word to store the value read. - * - * Reads a byte or word from the NVM using the flash access registers. - **/ -static s32 e1000_read_flash_data_ich8lan(struct e1000_hw *hw, u32 offset, - u8 size, u16 *data) -{ - union ich8_hws_flash_status hsfsts; - union ich8_hws_flash_ctrl hsflctl; - u32 flash_linear_addr; - u32 flash_data = 0; - s32 ret_val = -E1000_ERR_NVM; - u8 count = 0; - - if (size < 1 || size > 2 || offset > ICH_FLASH_LINEAR_ADDR_MASK) - goto out; - flash_linear_addr = (ICH_FLASH_LINEAR_ADDR_MASK & offset) + - hw->nvm.flash_base_addr; - - do { - udelay(1); - /* Steps */ - ret_val = e1000_flash_cycle_init_ich8lan(hw); - if (ret_val != E1000_SUCCESS) - break; - - hsflctl.regval = er16flash(ICH_FLASH_HSFCTL); - /* 0b/1b corresponds to 1 or 2 byte size, respectively. */ - hsflctl.hsf_ctrl.fldbcount = size - 1; - hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_READ; - ew16flash(ICH_FLASH_HSFCTL, hsflctl.regval); - - ew32flash(ICH_FLASH_FADDR, flash_linear_addr); - - ret_val = e1000_flash_cycle_ich8lan(hw, - ICH_FLASH_READ_COMMAND_TIMEOUT); - - /* - * Check if FCERR is set to 1, if set to 1, clear it - * and try the whole sequence a few more times, else - * read in (shift in) the Flash Data0, the order is - * least significant byte first msb to lsb - */ - if (ret_val == E1000_SUCCESS) { - flash_data = er32flash(ICH_FLASH_FDATA0); - if (size == 1) - *data = (u8)(flash_data & 0x000000FF); - else if (size == 2) - *data = (u16)(flash_data & 0x0000FFFF); - break; - } else { - /* - * If we've gotten here, then things are probably - * completely hosed, but if the error condition is - * detected, it won't hurt to give it another try... - * ICH_FLASH_CYCLE_REPEAT_COUNT times. - */ - hsfsts.regval = er16flash( - ICH_FLASH_HSFSTS); - if (hsfsts.hsf_status.flcerr == 1) { - /* Repeat for some time before giving up. */ - continue; - } else if (hsfsts.hsf_status.flcdone == 0) { - e_dbg("Timeout error - flash cycle " - "did not complete."); - break; - } - } - } while (count++ < ICH_FLASH_CYCLE_REPEAT_COUNT); - -out: - return ret_val; -} - -/** - * e1000_write_nvm_ich8lan - Write word(s) to the NVM - * @hw: pointer to the HW structure - * @offset: The offset (in bytes) of the word(s) to write. - * @words: Size of data to write in words - * @data: Pointer to the word(s) to write at offset. - * - * Writes a byte or word to the NVM using the flash access registers. - **/ -static s32 e1000_write_nvm_ich8lan(struct e1000_hw *hw, u16 offset, u16 words, - u16 *data) -{ - struct e1000_nvm_info *nvm = &hw->nvm; - struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; - s32 ret_val = E1000_SUCCESS; - u16 i; - - if ((offset >= nvm->word_size) || (words > nvm->word_size - offset) || - (words == 0)) { - e_dbg("nvm parameter(s) out of bounds\n"); - ret_val = -E1000_ERR_NVM; - goto out; - } - - nvm->ops.acquire(hw); - - for (i = 0; i < words; i++) { - dev_spec->shadow_ram[offset+i].modified = true; - dev_spec->shadow_ram[offset+i].value = data[i]; - } - - nvm->ops.release(hw); - -out: - return ret_val; -} - -/** - * e1000_update_nvm_checksum_ich8lan - Update the checksum for NVM - * @hw: pointer to the HW structure - * - * The NVM checksum is updated by calling the generic update_nvm_checksum, - * which writes the checksum to the shadow ram. The changes in the shadow - * ram are then committed to the EEPROM by processing each bank at a time - * checking for the modified bit and writing only the pending changes. - * After a successful commit, the shadow ram is cleared and is ready for - * future writes. - **/ -static s32 e1000_update_nvm_checksum_ich8lan(struct e1000_hw *hw) -{ - struct e1000_nvm_info *nvm = &hw->nvm; - struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; - u32 i, act_offset, new_bank_offset, old_bank_offset, bank; - s32 ret_val; - u16 data; - - ret_val = e1000e_update_nvm_checksum_generic(hw); - if (ret_val) - goto out; - - if (nvm->type != e1000_nvm_flash_sw) - goto out; - - nvm->ops.acquire(hw); - - /* - * We're writing to the opposite bank so if we're on bank 1, - * write to bank 0 etc. We also need to erase the segment that - * is going to be written - */ - ret_val = e1000_valid_nvm_bank_detect_ich8lan(hw, &bank); - if (ret_val != E1000_SUCCESS) { - e_dbg("Could not detect valid bank, assuming bank 0\n"); - bank = 0; - } - - if (bank == 0) { - new_bank_offset = nvm->flash_bank_size; - old_bank_offset = 0; - ret_val = e1000_erase_flash_bank_ich8lan(hw, 1); - if (ret_val) { - nvm->ops.release(hw); - goto out; - } - } else { - old_bank_offset = nvm->flash_bank_size; - new_bank_offset = 0; - ret_val = e1000_erase_flash_bank_ich8lan(hw, 0); - if (ret_val) { - nvm->ops.release(hw); - goto out; - } - } - - for (i = 0; i < E1000_ICH8_SHADOW_RAM_WORDS; i++) { - /* - * Determine whether to write the value stored - * in the other NVM bank or a modified value stored - * in the shadow RAM - */ - if (dev_spec->shadow_ram[i].modified) { - data = dev_spec->shadow_ram[i].value; - } else { - ret_val = e1000_read_flash_word_ich8lan(hw, i + - old_bank_offset, - &data); - if (ret_val) - break; - } - - /* - * If the word is 0x13, then make sure the signature bits - * (15:14) are 11b until the commit has completed. - * This will allow us to write 10b which indicates the - * signature is valid. We want to do this after the write - * has completed so that we don't mark the segment valid - * while the write is still in progress - */ - if (i == E1000_ICH_NVM_SIG_WORD) - data |= E1000_ICH_NVM_SIG_MASK; - - /* Convert offset to bytes. */ - act_offset = (i + new_bank_offset) << 1; - - udelay(100); - /* Write the bytes to the new bank. */ - ret_val = e1000_retry_write_flash_byte_ich8lan(hw, - act_offset, - (u8)data); - if (ret_val) - break; - - udelay(100); - ret_val = e1000_retry_write_flash_byte_ich8lan(hw, - act_offset + 1, - (u8)(data >> 8)); - if (ret_val) - break; - } - - /* - * Don't bother writing the segment valid bits if sector - * programming failed. - */ - if (ret_val) { - e_dbg("Flash commit failed.\n"); - nvm->ops.release(hw); - goto out; - } - - /* - * Finally validate the new segment by setting bit 15:14 - * to 10b in word 0x13 , this can be done without an - * erase as well since these bits are 11 to start with - * and we need to change bit 14 to 0b - */ - act_offset = new_bank_offset + E1000_ICH_NVM_SIG_WORD; - ret_val = e1000_read_flash_word_ich8lan(hw, act_offset, &data); - if (ret_val) { - nvm->ops.release(hw); - goto out; - } - - data &= 0xBFFF; - ret_val = e1000_retry_write_flash_byte_ich8lan(hw, - act_offset * 2 + 1, - (u8)(data >> 8)); - if (ret_val) { - nvm->ops.release(hw); - goto out; - } - - /* - * And invalidate the previously valid segment by setting - * its signature word (0x13) high_byte to 0b. This can be - * done without an erase because flash erase sets all bits - * to 1's. We can write 1's to 0's without an erase - */ - act_offset = (old_bank_offset + E1000_ICH_NVM_SIG_WORD) * 2 + 1; - ret_val = e1000_retry_write_flash_byte_ich8lan(hw, act_offset, 0); - if (ret_val) { - nvm->ops.release(hw); - goto out; - } - - /* Great! Everything worked, we can now clear the cached entries. */ - for (i = 0; i < E1000_ICH8_SHADOW_RAM_WORDS; i++) { - dev_spec->shadow_ram[i].modified = false; - dev_spec->shadow_ram[i].value = 0xFFFF; - } - - nvm->ops.release(hw); - - /* - * Reload the EEPROM, or else modifications will not appear - * until after the next adapter reset. - */ - nvm->ops.reload(hw); - msleep(10); - -out: - if (ret_val) - e_dbg("NVM update error: %d\n", ret_val); - - return ret_val; -} - -/** - * e1000_validate_nvm_checksum_ich8lan - Validate EEPROM checksum - * @hw: pointer to the HW structure - * - * Check to see if checksum needs to be fixed by reading bit 6 in word 0x19. - * If the bit is 0, that the EEPROM had been modified, but the checksum was not - * calculated, in which case we need to calculate the checksum and set bit 6. - **/ -static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw) -{ - s32 ret_val = E1000_SUCCESS; - u16 data; - - /* - * Read 0x19 and check bit 6. If this bit is 0, the checksum - * needs to be fixed. This bit is an indication that the NVM - * was prepared by OEM software and did not calculate the - * checksum...a likely scenario. - */ - ret_val = e1000_read_nvm(hw, 0x19, 1, &data); - if (ret_val) - goto out; - - if ((data & 0x40) == 0) { - data |= 0x40; - ret_val = e1000_write_nvm(hw, 0x19, 1, &data); - if (ret_val) - goto out; - ret_val = e1000e_update_nvm_checksum(hw); - if (ret_val) - goto out; - } - - ret_val = e1000e_validate_nvm_checksum_generic(hw); - -out: - return ret_val; -} - -#if defined(__VMKLNX__) -/** - * e1000e_write_protect_nvm_ich8lan - Make the NVM read-only - * @hw: pointer to the HW structure - * - * To prevent malicious write/erase of the NVM, set it to be read-only - * so that the hardware ignores all write/erase cycles of the NVM via - * the flash control registers. The shadow-ram copy of the NVM will - * still be updated, however any updates to this copy will not stick - * across driver reloads. - **/ -void e1000e_write_protect_nvm_ich8lan(struct e1000_hw *hw) -{ - union ich8_flash_protected_range pr0; - union ich8_hws_flash_status hsfsts; - u32 gfpreg; - s32 ret_val; - - ret_val = e1000_acquire_swflag_ich8lan(hw); - if (ret_val) - return; - - gfpreg = E1000_READ_FLASH_REG(hw, ICH_FLASH_GFPREG); - - /* Write-protect GbE Sector of NVM */ - pr0.regval = E1000_READ_FLASH_REG(hw, ICH_FLASH_PR0); - pr0.range.base = gfpreg & FLASH_GFPREG_BASE_MASK; - pr0.range.limit = ((gfpreg >> 16) & FLASH_GFPREG_BASE_MASK); - pr0.range.wpe = true; - E1000_WRITE_FLASH_REG(hw, ICH_FLASH_PR0, pr0.regval); - - /* - * Lock down a subset of GbE Flash Control Registers, e.g. - * PR0 to prevent the write-protection from being lifted. - * Once FLOCKDN is set, the registers protected by it cannot - * be written until FLOCKDN is cleared by a hardware reset. - */ - hsfsts.regval = E1000_READ_FLASH_REG16(hw, ICH_FLASH_HSFSTS); - hsfsts.hsf_status.flockdn = true; - E1000_WRITE_FLASH_REG(hw, ICH_FLASH_HSFSTS, hsfsts.regval); - - e1000_release_swflag_ich8lan(hw); - printk("e1000e EEPROM NVM section is write protected to gaurd against malicious corruption\n"); -} -#endif /* defined(__VMKLNX__) */ - -/** - * e1000_write_flash_data_ich8lan - Writes bytes to the NVM - * @hw: pointer to the HW structure - * @offset: The offset (in bytes) of the byte/word to read. - * @size: Size of data to read, 1=byte 2=word - * @data: The byte(s) to write to the NVM. - * - * Writes one/two bytes to the NVM using the flash access registers. - **/ -static s32 e1000_write_flash_data_ich8lan(struct e1000_hw *hw, u32 offset, - u8 size, u16 data) -{ - union ich8_hws_flash_status hsfsts; - union ich8_hws_flash_ctrl hsflctl; - u32 flash_linear_addr; - u32 flash_data = 0; - s32 ret_val = -E1000_ERR_NVM; - u8 count = 0; - - if (size < 1 || size > 2 || data > size * 0xff || - offset > ICH_FLASH_LINEAR_ADDR_MASK) - goto out; - - flash_linear_addr = (ICH_FLASH_LINEAR_ADDR_MASK & offset) + - hw->nvm.flash_base_addr; - - do { - udelay(1); - /* Steps */ - ret_val = e1000_flash_cycle_init_ich8lan(hw); - if (ret_val != E1000_SUCCESS) - break; - - hsflctl.regval = er16flash(ICH_FLASH_HSFCTL); - /* 0b/1b corresponds to 1 or 2 byte size, respectively. */ - hsflctl.hsf_ctrl.fldbcount = size - 1; - hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_WRITE; - ew16flash(ICH_FLASH_HSFCTL, hsflctl.regval); - - ew32flash(ICH_FLASH_FADDR, flash_linear_addr); - - if (size == 1) - flash_data = (u32)data & 0x00FF; - else - flash_data = (u32)data; - - ew32flash(ICH_FLASH_FDATA0, flash_data); - - /* - * check if FCERR is set to 1 , if set to 1, clear it - * and try the whole sequence a few more times else done - */ - ret_val = e1000_flash_cycle_ich8lan(hw, - ICH_FLASH_WRITE_COMMAND_TIMEOUT); - if (ret_val == E1000_SUCCESS) - break; - - /* - * If we're here, then things are most likely - * completely hosed, but if the error condition - * is detected, it won't hurt to give it another - * try...ICH_FLASH_CYCLE_REPEAT_COUNT times. - */ - hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); - if (hsfsts.hsf_status.flcerr == 1) { - /* Repeat for some time before giving up. */ - continue; - } else if (hsfsts.hsf_status.flcdone == 0) { - e_dbg("Timeout error - flash cycle " - "did not complete."); - break; - } - } while (count++ < ICH_FLASH_CYCLE_REPEAT_COUNT); - -out: - return ret_val; -} - -/** - * e1000_write_flash_byte_ich8lan - Write a single byte to NVM - * @hw: pointer to the HW structure - * @offset: The index of the byte to read. - * @data: The byte to write to the NVM. - * - * Writes a single byte to the NVM using the flash access registers. - **/ -static s32 e1000_write_flash_byte_ich8lan(struct e1000_hw *hw, u32 offset, - u8 data) -{ - u16 word = (u16)data; - - return e1000_write_flash_data_ich8lan(hw, offset, 1, word); -} - -/** - * e1000_retry_write_flash_byte_ich8lan - Writes a single byte to NVM - * @hw: pointer to the HW structure - * @offset: The offset of the byte to write. - * @byte: The byte to write to the NVM. - * - * Writes a single byte to the NVM using the flash access registers. - * Goes through a retry algorithm before giving up. - **/ -static s32 e1000_retry_write_flash_byte_ich8lan(struct e1000_hw *hw, - u32 offset, u8 byte) -{ - s32 ret_val; - u16 program_retries; - - ret_val = e1000_write_flash_byte_ich8lan(hw, offset, byte); - if (ret_val == E1000_SUCCESS) - goto out; - - for (program_retries = 0; program_retries < 100; program_retries++) { - e_dbg("Retrying Byte %2.2X at offset %u\n", byte, offset); - udelay(100); - ret_val = e1000_write_flash_byte_ich8lan(hw, offset, byte); - if (ret_val == E1000_SUCCESS) - break; - } - if (program_retries == 100) { - ret_val = -E1000_ERR_NVM; - goto out; - } - -out: - return ret_val; -} - -/** - * e1000_erase_flash_bank_ich8lan - Erase a bank (4k) from NVM - * @hw: pointer to the HW structure - * @bank: 0 for first bank, 1 for second bank, etc. - * - * Erases the bank specified. Each bank is a 4k block. Banks are 0 based. - * bank N is 4096 * N + flash_reg_addr. - **/ -static s32 e1000_erase_flash_bank_ich8lan(struct e1000_hw *hw, u32 bank) -{ - struct e1000_nvm_info *nvm = &hw->nvm; - union ich8_hws_flash_status hsfsts; - union ich8_hws_flash_ctrl hsflctl; - u32 flash_linear_addr; - /* bank size is in 16bit words - adjust to bytes */ - u32 flash_bank_size = nvm->flash_bank_size * 2; - s32 ret_val = E1000_SUCCESS; - s32 count = 0; - s32 j, iteration, sector_size; - - hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); - - /* - * Determine HW Sector size: Read BERASE bits of hw flash status - * register - * 00: The Hw sector is 256 bytes, hence we need to erase 16 - * consecutive sectors. The start index for the nth Hw sector - * can be calculated as = bank * 4096 + n * 256 - * 01: The Hw sector is 4K bytes, hence we need to erase 1 sector. - * The start index for the nth Hw sector can be calculated - * as = bank * 4096 - * 10: The Hw sector is 8K bytes, nth sector = bank * 8192 - * (ich9 only, otherwise error condition) - * 11: The Hw sector is 64K bytes, nth sector = bank * 65536 - */ - switch (hsfsts.hsf_status.berasesz) { - case 0: - /* Hw sector size 256 */ - sector_size = ICH_FLASH_SEG_SIZE_256; - iteration = flash_bank_size / ICH_FLASH_SEG_SIZE_256; - break; - case 1: - sector_size = ICH_FLASH_SEG_SIZE_4K; - iteration = 1; - break; - case 2: - sector_size = ICH_FLASH_SEG_SIZE_8K; - iteration = 1; - break; - case 3: - sector_size = ICH_FLASH_SEG_SIZE_64K; - iteration = 1; - break; - default: - ret_val = -E1000_ERR_NVM; - goto out; - } - - /* Start with the base address, then add the sector offset. */ - flash_linear_addr = hw->nvm.flash_base_addr; - flash_linear_addr += (bank) ? flash_bank_size : 0; - - for (j = 0; j < iteration ; j++) { - do { - /* Steps */ - ret_val = e1000_flash_cycle_init_ich8lan(hw); - if (ret_val) - goto out; - - /* - * Write a value 11 (block Erase) in Flash - * Cycle field in hw flash control - */ - hsflctl.regval = er16flash( - ICH_FLASH_HSFCTL); - hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_ERASE; - ew16flash(ICH_FLASH_HSFCTL, - hsflctl.regval); - - /* - * Write the last 24 bits of an index within the - * block into Flash Linear address field in Flash - * Address. - */ - flash_linear_addr += (j * sector_size); - ew32flash(ICH_FLASH_FADDR, - flash_linear_addr); - - ret_val = e1000_flash_cycle_ich8lan(hw, - ICH_FLASH_ERASE_COMMAND_TIMEOUT); - if (ret_val == E1000_SUCCESS) - break; - - /* - * Check if FCERR is set to 1. If 1, - * clear it and try the whole sequence - * a few more times else Done - */ - hsfsts.regval = er16flash( - ICH_FLASH_HSFSTS); - if (hsfsts.hsf_status.flcerr == 1) - /* repeat for some time before giving up */ - continue; - else if (hsfsts.hsf_status.flcdone == 0) - goto out; - } while (++count < ICH_FLASH_CYCLE_REPEAT_COUNT); - } - -out: - return ret_val; -} - -/** - * e1000_valid_led_default_ich8lan - Set the default LED settings - * @hw: pointer to the HW structure - * @data: Pointer to the LED settings - * - * Reads the LED default settings from the NVM to data. If the NVM LED - * settings is all 0's or F's, set the LED default to a valid LED default - * setting. - **/ -static s32 e1000_valid_led_default_ich8lan(struct e1000_hw *hw, u16 *data) -{ - s32 ret_val; - - ret_val = e1000_read_nvm(hw, NVM_ID_LED_SETTINGS, 1, data); - if (ret_val) { - e_dbg("NVM Read Error\n"); - goto out; - } - - if (*data == ID_LED_RESERVED_0000 || - *data == ID_LED_RESERVED_FFFF) - *data = ID_LED_DEFAULT_ICH8LAN; - -out: - return ret_val; -} - -/** - * e1000_id_led_init_pchlan - store LED configurations - * @hw: pointer to the HW structure - * - * PCH does not control LEDs via the LEDCTL register, rather it uses - * the PHY LED configuration register. - * - * PCH also does not have an "always on" or "always off" mode which - * complicates the ID feature. Instead of using the "on" mode to indicate - * in ledctl_mode2 the LEDs to use for ID (see e1000e_id_led_init()), - * use "link_up" mode. The LEDs will still ID on request if there is no - * link based on logic in e1000_led_[on|off]_pchlan(). - **/ -static s32 e1000_id_led_init_pchlan(struct e1000_hw *hw) -{ - struct e1000_mac_info *mac = &hw->mac; - s32 ret_val; - const u32 ledctl_on = E1000_LEDCTL_MODE_LINK_UP; - const u32 ledctl_off = E1000_LEDCTL_MODE_LINK_UP | E1000_PHY_LED0_IVRT; - u16 data, i, temp, shift; - - /* Get default ID LED modes */ - ret_val = hw->nvm.ops.valid_led_default(hw, &data); - if (ret_val) - goto out; - - mac->ledctl_default = er32(LEDCTL); - mac->ledctl_mode1 = mac->ledctl_default; - mac->ledctl_mode2 = mac->ledctl_default; - - for (i = 0; i < 4; i++) { - temp = (data >> (i << 2)) & E1000_LEDCTL_LED0_MODE_MASK; - shift = (i * 5); - switch (temp) { - case ID_LED_ON1_DEF2: - case ID_LED_ON1_ON2: - case ID_LED_ON1_OFF2: - mac->ledctl_mode1 &= ~(E1000_PHY_LED0_MASK << shift); - mac->ledctl_mode1 |= (ledctl_on << shift); - break; - case ID_LED_OFF1_DEF2: - case ID_LED_OFF1_ON2: - case ID_LED_OFF1_OFF2: - mac->ledctl_mode1 &= ~(E1000_PHY_LED0_MASK << shift); - mac->ledctl_mode1 |= (ledctl_off << shift); - break; - default: - /* Do nothing */ - break; - } - switch (temp) { - case ID_LED_DEF1_ON2: - case ID_LED_ON1_ON2: - case ID_LED_OFF1_ON2: - mac->ledctl_mode2 &= ~(E1000_PHY_LED0_MASK << shift); - mac->ledctl_mode2 |= (ledctl_on << shift); - break; - case ID_LED_DEF1_OFF2: - case ID_LED_ON1_OFF2: - case ID_LED_OFF1_OFF2: - mac->ledctl_mode2 &= ~(E1000_PHY_LED0_MASK << shift); - mac->ledctl_mode2 |= (ledctl_off << shift); - break; - default: - /* Do nothing */ - break; - } - } - -out: - return ret_val; -} - -/** - * e1000_get_bus_info_ich8lan - Get/Set the bus type and width - * @hw: pointer to the HW structure - * - * ICH8 use the PCI Express bus, but does not contain a PCI Express Capability - * register, so the the bus width is hard coded. - **/ -static s32 e1000_get_bus_info_ich8lan(struct e1000_hw *hw) -{ - struct e1000_bus_info *bus = &hw->bus; - s32 ret_val; - - ret_val = e1000e_get_bus_info_pcie(hw); - - /* - * ICH devices are "PCI Express"-ish. They have - * a configuration space, but do not contain - * PCI Express Capability registers, so bus width - * must be hardcoded. - */ - if (bus->width == e1000_bus_width_unknown) - bus->width = e1000_bus_width_pcie_x1; - - return ret_val; -} - -/** - * e1000_reset_hw_ich8lan - Reset the hardware - * @hw: pointer to the HW structure - * - * Does a full reset of the hardware which includes a reset of the PHY and - * MAC. - **/ -static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) -{ - struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; - u16 reg; - u32 ctrl, icr, kab; - s32 ret_val; - - /* - * Prevent the PCI-E bus from sticking if there is no TLP connection - * on the last TLP read/write transaction when MAC is reset. - */ - ret_val = e1000e_disable_pcie_master(hw); - if (ret_val) - e_dbg("PCI-E Master disable polling has failed.\n"); - - e_dbg("Masking off all interrupts\n"); - ew32(IMC, 0xffffffff); - - /* - * Disable the Transmit and Receive units. Then delay to allow - * any pending transactions to complete before we hit the MAC - * with the global reset. - */ - ew32(RCTL, 0); - ew32(TCTL, E1000_TCTL_PSP); - e1e_flush(); - - msleep(10); - - /* Workaround for ICH8 bit corruption issue in FIFO memory */ - if (hw->mac.type == e1000_ich8lan) { - /* Set Tx and Rx buffer allocation to 8k apiece. */ - ew32(PBA, E1000_PBA_8K); - /* Set Packet Buffer Size to 16k. */ - ew32(PBS, E1000_PBS_16K); - } - - if (hw->mac.type == e1000_pchlan) { - /* Save the NVM K1 bit setting*/ - ret_val = e1000_read_nvm(hw, E1000_NVM_K1_CONFIG, 1, ®); - if (ret_val) - return ret_val; - - if (reg & E1000_NVM_K1_ENABLE) - dev_spec->nvm_k1_enabled = true; - else - dev_spec->nvm_k1_enabled = false; - } - - ctrl = er32(CTRL); - - if (!e1000_check_reset_block(hw) && !hw->phy.reset_disable) { - /* Clear PHY Reset Asserted bit */ - if (hw->mac.type >= e1000_pchlan) { - u32 status = er32(STATUS); - ew32(STATUS, status & - ~E1000_STATUS_PHYRA); - } - - /* - * PHY HW reset requires MAC CORE reset at the same - * time to make sure the interface between MAC and the - * external PHY is reset. - */ - ctrl |= E1000_CTRL_PHY_RST; - } - ret_val = e1000_acquire_swflag_ich8lan(hw); - e_dbg("Issuing a global reset to ich8lan\n"); - ew32(CTRL, (ctrl | E1000_CTRL_RST)); - msleep(20); - - if (!ret_val) - e1000_release_swflag_ich8lan(hw); - - if (ctrl & E1000_CTRL_PHY_RST) - ret_val = hw->phy.ops.get_cfg_done(hw); - - if (hw->mac.type >= e1000_ich10lan) { - e1000_lan_init_done_ich8lan(hw); - } else { - ret_val = e1000e_get_auto_rd_done(hw); - if (ret_val) { - /* - * When auto config read does not complete, do not - * return with an error. This can happen in situations - * where there is no eeprom and prevents getting link. - */ - e_dbg("Auto Read Done did not complete\n"); - } - } - /* Dummy read to clear the phy wakeup bit after lcd reset */ - if (hw->mac.type == e1000_pchlan) - e1e_rphy(hw, BM_WUC, ®); - - ret_val = e1000_sw_lcd_config_ich8lan(hw); - if (ret_val) - goto out; - - if (hw->mac.type == e1000_pchlan) { - ret_val = e1000_oem_bits_config_ich8lan(hw, true); - if (ret_val) - goto out; - } - /* - * For PCH, this write will make sure that any noise - * will be detected as a CRC error and be dropped rather than show up - * as a bad packet to the DMA engine. - */ - if (hw->mac.type == e1000_pchlan) - ew32(CRC_OFFSET, 0x65656565); - - ew32(IMC, 0xffffffff); - icr = er32(ICR); - - kab = er32(KABGTXD); - kab |= E1000_KABGTXD_BGSQLBIAS; - ew32(KABGTXD, kab); - - if (hw->mac.type == e1000_pchlan) - ret_val = e1000_hv_phy_workarounds_ich8lan(hw); - -out: - return ret_val; -} - -/** - * e1000_init_hw_ich8lan - Initialize the hardware - * @hw: pointer to the HW structure - * - * Prepares the hardware for transmit and receive by doing the following: - * - initialize hardware bits - * - initialize LED identification - * - setup receive address registers - * - setup flow control - * - setup transmit descriptors - * - clear statistics - **/ -static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw) -{ - struct e1000_mac_info *mac = &hw->mac; - u32 ctrl_ext, txdctl, snoop; - s32 ret_val; - u16 i; - - e1000_initialize_hw_bits_ich8lan(hw); - - /* Initialize identification LED */ - ret_val = mac->ops.id_led_init(hw); - if (ret_val) - /* This is not fatal and we should not stop init due to this */ - e_dbg("Error initializing identification LED\n"); - - /* Setup the receive address. */ - e1000e_init_rx_addrs(hw, mac->rar_entry_count); - - /* Zero out the Multicast HASH table */ - e_dbg("Zeroing the MTA\n"); - for (i = 0; i < mac->mta_reg_count; i++) - E1000_WRITE_REG_ARRAY(hw, E1000_MTA, i, 0); - - /* - * The 82578 Rx buffer will stall if wakeup is enabled in host and - * the ME. Reading the BM_WUC register will clear the host wakeup bit. - * Reset the phy after disabling host wakeup to reset the Rx buffer. - */ - if (hw->phy.type == e1000_phy_82578) { - e1e_rphy(hw, BM_WUC, &i); - ret_val = e1000_phy_hw_reset_ich8lan(hw); - if (ret_val) - return ret_val; - } - - /* Setup link and flow control */ - ret_val = mac->ops.setup_link(hw); - - /* Set the transmit descriptor write-back policy for both queues */ - txdctl = er32(TXDCTL(0)); - txdctl = (txdctl & ~E1000_TXDCTL_WTHRESH) | - E1000_TXDCTL_FULL_TX_DESC_WB; - txdctl = (txdctl & ~E1000_TXDCTL_PTHRESH) | - E1000_TXDCTL_MAX_TX_DESC_PREFETCH; - ew32(TXDCTL(0), txdctl); - txdctl = er32(TXDCTL(1)); - txdctl = (txdctl & ~E1000_TXDCTL_WTHRESH) | - E1000_TXDCTL_FULL_TX_DESC_WB; - txdctl = (txdctl & ~E1000_TXDCTL_PTHRESH) | - E1000_TXDCTL_MAX_TX_DESC_PREFETCH; - ew32(TXDCTL(1), txdctl); - - /* - * ICH8 has opposite polarity of no_snoop bits. - * By default, we should use snoop behavior. - */ - if (mac->type == e1000_ich8lan) - snoop = PCIE_ICH8_SNOOP_ALL; - else - snoop = (u32)~(PCIE_NO_SNOOP_ALL); - e1000e_set_pcie_no_snoop(hw, snoop); - - ctrl_ext = er32(CTRL_EXT); - ctrl_ext |= E1000_CTRL_EXT_RO_DIS; - ew32(CTRL_EXT, ctrl_ext); - - /* - * Clear all of the statistics registers (clear on read). It is - * important that we do this after we have tried to establish link - * because the symbol error count will increment wildly if there - * is no link. - */ - e1000_clear_hw_cntrs_ich8lan(hw); - - return ret_val; -} -/** - * e1000_initialize_hw_bits_ich8lan - Initialize required hardware bits - * @hw: pointer to the HW structure - * - * Sets/Clears required hardware bits necessary for correctly setting up the - * hardware for transmit and receive. - **/ -static void e1000_initialize_hw_bits_ich8lan(struct e1000_hw *hw) -{ - u32 reg; - - /* Extended Device Control */ - reg = er32(CTRL_EXT); - reg |= (1 << 22); - /* Enable PHY low-power state when MAC is at D3 w/o WoL */ - if (hw->mac.type >= e1000_pchlan) - reg |= E1000_CTRL_EXT_PHYPDEN; - ew32(CTRL_EXT, reg); - - /* Transmit Descriptor Control 0 */ - reg = er32(TXDCTL(0)); - reg |= (1 << 22); - ew32(TXDCTL(0), reg); - - /* Transmit Descriptor Control 1 */ - reg = er32(TXDCTL(1)); - reg |= (1 << 22); - ew32(TXDCTL(1), reg); - - /* Transmit Arbitration Control 0 */ - reg = er32(TARC(0)); - if (hw->mac.type == e1000_ich8lan) - reg |= (1 << 28) | (1 << 29); - reg |= (1 << 23) | (1 << 24) | (1 << 26) | (1 << 27); - ew32(TARC(0), reg); - - /* Transmit Arbitration Control 1 */ - reg = er32(TARC(1)); - if (er32(TCTL) & E1000_TCTL_MULR) - reg &= ~(1 << 28); - else - reg |= (1 << 28); - reg |= (1 << 24) | (1 << 26) | (1 << 30); - ew32(TARC(1), reg); - - /* Device Status */ - if (hw->mac.type == e1000_ich8lan) { - reg = er32(STATUS); - reg &= ~(1 << 31); - ew32(STATUS, reg); - } - - /* - * work-around descriptor data corruption issue during nfs v2 udp - * traffic,just disable the nfs filtering capability - */ - reg = er32(RFCTL); - reg |= (E1000_RFCTL_NFSW_DIS | E1000_RFCTL_NFSR_DIS); - - /* - * Disable IPv6 extension header parsing because some - * malformed IPv6 headers can hang the Rx. - */ - if (hw->mac.type == e1000_ich8lan) - reg |= (E1000_RFCTL_IPV6_EX_DIS | E1000_RFCTL_NEW_IPV6_EXT_DIS); - ew32(RFCTL, reg); - - return; -} - -/** - * e1000_setup_link_ich8lan - Setup flow control and link settings - * @hw: pointer to the HW structure - * - * Determines which flow control settings to use, then configures flow - * control. Calls the appropriate media-specific link configuration - * function. Assuming the adapter has a valid link partner, a valid link - * should be established. Assumes the hardware has previously been reset - * and the transmitter and receiver are not enabled. - **/ -static s32 e1000_setup_link_ich8lan(struct e1000_hw *hw) -{ - s32 ret_val = E1000_SUCCESS; - - if (e1000_check_reset_block(hw)) - goto out; - - /* - * ICH parts do not have a word in the NVM to determine - * the default flow control setting, so we explicitly - * set it to full. - */ - if (hw->fc.requested_mode == e1000_fc_default) - hw->fc.requested_mode = e1000_fc_full; - - /* - * Save off the requested flow control mode for use later. Depending - * on the link partner's capabilities, we may or may not use this mode. - */ - hw->fc.current_mode = hw->fc.requested_mode; - - e_dbg("After fix-ups FlowControl is now = %x\n", - hw->fc.current_mode); - - /* Continue to configure the copper link. */ - ret_val = hw->mac.ops.setup_physical_interface(hw); - if (ret_val) - goto out; - - ew32(FCTTV, hw->fc.pause_time); - if ((hw->phy.type == e1000_phy_82578) || - (hw->phy.type == e1000_phy_82577)) { - ret_val = e1e_wphy(hw, - PHY_REG(BM_PORT_CTRL_PAGE, 27), - hw->fc.pause_time); - if (ret_val) - goto out; - } - - ret_val = e1000e_set_fc_watermarks(hw); - -out: - return ret_val; -} - -/** - * e1000_setup_copper_link_ich8lan - Configure MAC/PHY interface - * @hw: pointer to the HW structure - * - * Configures the kumeran interface to the PHY to wait the appropriate time - * when polling the PHY, then call the generic setup_copper_link to finish - * configuring the copper link. - **/ -static s32 e1000_setup_copper_link_ich8lan(struct e1000_hw *hw) -{ - u32 ctrl; - s32 ret_val; - u16 reg_data; - - ctrl = er32(CTRL); - ctrl |= E1000_CTRL_SLU; - ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX); - ew32(CTRL, ctrl); - - /* - * Set the mac to wait the maximum time between each iteration - * and increase the max iterations when polling the phy; - * this fixes erroneous timeouts at 10Mbps. - */ - ret_val = e1000e_write_kmrn_reg(hw, - E1000_KMRNCTRLSTA_TIMEOUTS, - 0xFFFF); - if (ret_val) - goto out; - ret_val = e1000e_read_kmrn_reg(hw, - E1000_KMRNCTRLSTA_INBAND_PARAM, - ®_data); - if (ret_val) - goto out; - reg_data |= 0x3F; - ret_val = e1000e_write_kmrn_reg(hw, - E1000_KMRNCTRLSTA_INBAND_PARAM, - reg_data); - if (ret_val) - goto out; - - switch (hw->phy.type) { - case e1000_phy_igp_3: - ret_val = e1000e_copper_link_setup_igp(hw); - if (ret_val) - goto out; - break; - case e1000_phy_bm: - case e1000_phy_82578: - ret_val = e1000e_copper_link_setup_m88(hw); - if (ret_val) - goto out; - break; - case e1000_phy_82577: - ret_val = e1000_copper_link_setup_82577(hw); - if (ret_val) - goto out; - break; - case e1000_phy_ife: - ret_val = e1e_rphy(hw, IFE_PHY_MDIX_CONTROL, - ®_data); - if (ret_val) - goto out; - - reg_data &= ~IFE_PMC_AUTO_MDIX; - - switch (hw->phy.mdix) { - case 1: - reg_data &= ~IFE_PMC_FORCE_MDIX; - break; - case 2: - reg_data |= IFE_PMC_FORCE_MDIX; - break; - case 0: - default: - reg_data |= IFE_PMC_AUTO_MDIX; - break; - } - ret_val = e1e_wphy(hw, IFE_PHY_MDIX_CONTROL, - reg_data); - if (ret_val) - goto out; - break; - default: - break; - } - ret_val = e1000e_setup_copper_link(hw); - -out: - return ret_val; -} - -/** - * e1000_get_link_up_info_ich8lan - Get current link speed and duplex - * @hw: pointer to the HW structure - * @speed: pointer to store current link speed - * @duplex: pointer to store the current link duplex - * - * Calls the generic get_speed_and_duplex to retrieve the current link - * information and then calls the Kumeran lock loss workaround for links at - * gigabit speeds. - **/ -static s32 e1000_get_link_up_info_ich8lan(struct e1000_hw *hw, u16 *speed, - u16 *duplex) -{ - s32 ret_val; - - ret_val = e1000e_get_speed_and_duplex_copper(hw, speed, duplex); - if (ret_val) - goto out; - - if ((hw->mac.type == e1000_ich8lan) && - (hw->phy.type == e1000_phy_igp_3) && - (*speed == SPEED_1000)) { - ret_val = e1000_kmrn_lock_loss_workaround_ich8lan(hw); - } - -out: - return ret_val; -} - -/** - * e1000_kmrn_lock_loss_workaround_ich8lan - Kumeran workaround - * @hw: pointer to the HW structure - * - * Work-around for 82566 Kumeran PCS lock loss: - * On link status change (i.e. PCI reset, speed change) and link is up and - * speed is gigabit- - * 0) if workaround is optionally disabled do nothing - * 1) wait 1ms for Kumeran link to come up - * 2) check Kumeran Diagnostic register PCS lock loss bit - * 3) if not set the link is locked (all is good), otherwise... - * 4) reset the PHY - * 5) repeat up to 10 times - * Note: this is only called for IGP3 copper when speed is 1gb. - **/ -static s32 e1000_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw) -{ - struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; - u32 phy_ctrl; - s32 ret_val = E1000_SUCCESS; - u16 i, data; - bool link; - - if (!(dev_spec->kmrn_lock_loss_workaround_enabled)) - goto out; - - /* - * Make sure link is up before proceeding. If not just return. - * Attempting this while link is negotiating fouled up link - * stability - */ - ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); - if (!link) { - ret_val = E1000_SUCCESS; - goto out; - } - - for (i = 0; i < 10; i++) { - /* read once to clear */ - ret_val = e1e_rphy(hw, IGP3_KMRN_DIAG, &data); - if (ret_val) - goto out; - /* and again to get new status */ - ret_val = e1e_rphy(hw, IGP3_KMRN_DIAG, &data); - if (ret_val) - goto out; - - /* check for PCS lock */ - if (!(data & IGP3_KMRN_DIAG_PCS_LOCK_LOSS)) { - ret_val = E1000_SUCCESS; - goto out; - } - - /* Issue PHY reset */ - e1000_phy_hw_reset(hw); - mdelay(5); - } - /* Disable GigE link negotiation */ - phy_ctrl = er32(PHY_CTRL); - phy_ctrl |= (E1000_PHY_CTRL_GBE_DISABLE | - E1000_PHY_CTRL_NOND0A_GBE_DISABLE); - ew32(PHY_CTRL, phy_ctrl); - - /* - * Call gig speed drop workaround on Gig disable before accessing - * any PHY registers - */ - e1000e_gig_downshift_workaround_ich8lan(hw); - - /* unable to acquire PCS lock */ - ret_val = -E1000_ERR_PHY; - -out: - return ret_val; -} - -/** - * e1000e_set_kmrn_lock_loss_workaround_ich8lan - Set Kumeran workaround state - * @hw: pointer to the HW structure - * @state: boolean value used to set the current Kumeran workaround state - * - * If ICH8, set the current Kumeran workaround state (enabled - true - * /disabled - false). - **/ -void e1000e_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw, - bool state) -{ - struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; - - if (hw->mac.type != e1000_ich8lan) { - e_dbg("Workaround applies to ICH8 only.\n"); - return; - } - - dev_spec->kmrn_lock_loss_workaround_enabled = state; - - return; -} - -/** - * e1000_ipg3_phy_powerdown_workaround_ich8lan - Power down workaround on D3 - * @hw: pointer to the HW structure - * - * Workaround for 82566 power-down on D3 entry: - * 1) disable gigabit link - * 2) write VR power-down enable - * 3) read it back - * Continue if successful, else issue LCD reset and repeat - **/ -void e1000e_igp3_phy_powerdown_workaround_ich8lan(struct e1000_hw *hw) -{ - u32 reg; - u16 data; - u8 retry = 0; - - if (hw->phy.type != e1000_phy_igp_3) - goto out; - - /* Try the workaround twice (if needed) */ - do { - /* Disable link */ - reg = er32(PHY_CTRL); - reg |= (E1000_PHY_CTRL_GBE_DISABLE | - E1000_PHY_CTRL_NOND0A_GBE_DISABLE); - ew32(PHY_CTRL, reg); - - /* - * Call gig speed drop workaround on Gig disable before - * accessing any PHY registers - */ - if (hw->mac.type == e1000_ich8lan) - e1000e_gig_downshift_workaround_ich8lan(hw); - - /* Write VR power-down enable */ - e1e_rphy(hw, IGP3_VR_CTRL, &data); - data &= ~IGP3_VR_CTRL_DEV_POWERDOWN_MODE_MASK; - e1e_wphy(hw, IGP3_VR_CTRL, - data | IGP3_VR_CTRL_MODE_SHUTDOWN); - - /* Read it back and test */ - e1e_rphy(hw, IGP3_VR_CTRL, &data); - data &= IGP3_VR_CTRL_DEV_POWERDOWN_MODE_MASK; - if ((data == IGP3_VR_CTRL_MODE_SHUTDOWN) || retry) - break; - - /* Issue PHY reset and repeat at most one more time */ - reg = er32(CTRL); - ew32(CTRL, reg | E1000_CTRL_PHY_RST); - retry++; - } while (retry); - -out: - return; -} - -/** - * e1000e_gig_downshift_workaround_ich8lan - WoL from S5 stops working - * @hw: pointer to the HW structure - * - * Steps to take when dropping from 1Gb/s (eg. link cable removal (LSC), - * LPLU, Gig disable, MDIC PHY reset): - * 1) Set Kumeran Near-end loopback - * 2) Clear Kumeran Near-end loopback - * Should only be called for ICH8[m] devices with IGP_3 Phy. - **/ -void e1000e_gig_downshift_workaround_ich8lan(struct e1000_hw *hw) -{ - s32 ret_val = E1000_SUCCESS; - u16 reg_data; - - if ((hw->mac.type != e1000_ich8lan) || - (hw->phy.type != e1000_phy_igp_3)) - goto out; - - ret_val = e1000e_read_kmrn_reg(hw, E1000_KMRNCTRLSTA_DIAG_OFFSET, - ®_data); - if (ret_val) - goto out; - reg_data |= E1000_KMRNCTRLSTA_DIAG_NELPBK; - ret_val = e1000e_write_kmrn_reg(hw, - E1000_KMRNCTRLSTA_DIAG_OFFSET, - reg_data); - if (ret_val) - goto out; - reg_data &= ~E1000_KMRNCTRLSTA_DIAG_NELPBK; - ret_val = e1000e_write_kmrn_reg(hw, - E1000_KMRNCTRLSTA_DIAG_OFFSET, - reg_data); -out: - return; -} - -/** - * e1000e_disable_gig_wol_ich8lan - disable gig during WoL - * @hw: pointer to the HW structure - * - * During S0 to Sx transition, it is possible the link remains at gig - * instead of negotiating to a lower speed. Before going to Sx, set - * 'LPLU Enabled' and 'Gig Disable' to force link speed negotiation - * to a lower speed. - * - * Should only be called for applicable parts. - **/ -void e1000e_disable_gig_wol_ich8lan(struct e1000_hw *hw) -{ - u32 phy_ctrl; - - switch (hw->mac.type) { - case e1000_ich8lan: - case e1000_ich9lan: - case e1000_ich10lan: - case e1000_pchlan: - phy_ctrl = er32(PHY_CTRL); - phy_ctrl |= E1000_PHY_CTRL_D0A_LPLU | - E1000_PHY_CTRL_GBE_DISABLE; - ew32(PHY_CTRL, phy_ctrl); - - if (hw->mac.type == e1000_pchlan) - e1000_phy_hw_reset_ich8lan(hw); - default: - break; - } - - return; -} - -/** - * e1000_cleanup_led_ich8lan - Restore the default LED operation - * @hw: pointer to the HW structure - * - * Return the LED back to the default configuration. - **/ -static s32 e1000_cleanup_led_ich8lan(struct e1000_hw *hw) -{ - s32 ret_val = E1000_SUCCESS; - - if (hw->phy.type == e1000_phy_ife) - ret_val = e1e_wphy(hw, IFE_PHY_SPECIAL_CONTROL_LED, - 0); - else - ew32(LEDCTL, hw->mac.ledctl_default); - - return ret_val; -} - -/** - * e1000_led_on_ich8lan - Turn LEDs on - * @hw: pointer to the HW structure - * - * Turn on the LEDs. - **/ -static s32 e1000_led_on_ich8lan(struct e1000_hw *hw) -{ - s32 ret_val = E1000_SUCCESS; - - if (hw->phy.type == e1000_phy_ife) - ret_val = e1e_wphy(hw, IFE_PHY_SPECIAL_CONTROL_LED, - (IFE_PSCL_PROBE_MODE | IFE_PSCL_PROBE_LEDS_ON)); - else - ew32(LEDCTL, hw->mac.ledctl_mode2); - - return ret_val; -} - -/** - * e1000_led_off_ich8lan - Turn LEDs off - * @hw: pointer to the HW structure - * - * Turn off the LEDs. - **/ -static s32 e1000_led_off_ich8lan(struct e1000_hw *hw) -{ - s32 ret_val = E1000_SUCCESS; - - if (hw->phy.type == e1000_phy_ife) - ret_val = e1e_wphy(hw, - IFE_PHY_SPECIAL_CONTROL_LED, - (IFE_PSCL_PROBE_MODE | IFE_PSCL_PROBE_LEDS_OFF)); - else - ew32(LEDCTL, hw->mac.ledctl_mode1); - - return ret_val; -} - -/** - * e1000_setup_led_pchlan - Configures SW controllable LED - * @hw: pointer to the HW structure - * - * This prepares the SW controllable LED for use. - **/ -static s32 e1000_setup_led_pchlan(struct e1000_hw *hw) -{ - return e1e_wphy(hw, HV_LED_CONFIG, - (u16)hw->mac.ledctl_mode1); -} - -/** - * e1000_cleanup_led_pchlan - Restore the default LED operation - * @hw: pointer to the HW structure - * - * Return the LED back to the default configuration. - **/ -static s32 e1000_cleanup_led_pchlan(struct e1000_hw *hw) -{ - return e1e_wphy(hw, HV_LED_CONFIG, - (u16)hw->mac.ledctl_default); -} - -/** - * e1000_led_on_pchlan - Turn LEDs on - * @hw: pointer to the HW structure - * - * Turn on the LEDs. - **/ -static s32 e1000_led_on_pchlan(struct e1000_hw *hw) -{ - u16 data = (u16)hw->mac.ledctl_mode2; - u32 i, led; - - /* - * If no link, then turn LED on by setting the invert bit - * for each LED that's mode is "link_up" in ledctl_mode2. - */ - if (!(er32(STATUS) & E1000_STATUS_LU)) { - for (i = 0; i < 3; i++) { - led = (data >> (i * 5)) & E1000_PHY_LED0_MASK; - if ((led & E1000_PHY_LED0_MODE_MASK) != - E1000_LEDCTL_MODE_LINK_UP) - continue; - if (led & E1000_PHY_LED0_IVRT) - data &= ~(E1000_PHY_LED0_IVRT << (i * 5)); - else - data |= (E1000_PHY_LED0_IVRT << (i * 5)); - } - } - - return e1e_wphy(hw, HV_LED_CONFIG, data); -} - -/** - * e1000_led_off_pchlan - Turn LEDs off - * @hw: pointer to the HW structure - * - * Turn off the LEDs. - **/ -static s32 e1000_led_off_pchlan(struct e1000_hw *hw) -{ - u16 data = (u16)hw->mac.ledctl_mode1; - u32 i, led; - - /* - * If no link, then turn LED off by clearing the invert bit - * for each LED that's mode is "link_up" in ledctl_mode1. - */ - if (!(er32(STATUS) & E1000_STATUS_LU)) { - for (i = 0; i < 3; i++) { - led = (data >> (i * 5)) & E1000_PHY_LED0_MASK; - if ((led & E1000_PHY_LED0_MODE_MASK) != - E1000_LEDCTL_MODE_LINK_UP) - continue; - if (led & E1000_PHY_LED0_IVRT) - data &= ~(E1000_PHY_LED0_IVRT << (i * 5)); - else - data |= (E1000_PHY_LED0_IVRT << (i * 5)); - } - } - - return e1e_wphy(hw, HV_LED_CONFIG, data); -} - -/** - * e1000_get_cfg_done_ich8lan - Read config done bit - * @hw: pointer to the HW structure - * - * Read the management control register for the config done bit for - * completion status. NOTE: silicon which is EEPROM-less will fail trying - * to read the config done bit, so an error is *ONLY* logged and returns - * E1000_SUCCESS. If we were to return with error, EEPROM-less silicon - * would not be able to be reset or change link. - **/ -static s32 e1000_get_cfg_done_ich8lan(struct e1000_hw *hw) -{ - s32 ret_val = E1000_SUCCESS; - u32 bank = 0; - - if (hw->mac.type >= e1000_pchlan) { - u32 status = er32(STATUS); - - if (status & E1000_STATUS_PHYRA) { - ew32(STATUS, status & - ~E1000_STATUS_PHYRA); - } else - e_dbg("PHY Reset Asserted not set - needs delay\n"); - } - - e1000e_get_cfg_done(hw); - - /* If EEPROM is not marked present, init the IGP 3 PHY manually */ - if ((hw->mac.type != e1000_ich10lan) && - (hw->mac.type != e1000_pchlan)) { - if (((er32(EECD) & E1000_EECD_PRES) == 0) && - (hw->phy.type == e1000_phy_igp_3)) { - e1000_phy_init_script_igp3(hw); - } - } else { - if (e1000_valid_nvm_bank_detect_ich8lan(hw, &bank)) { - /* Maybe we should do a basic PHY config */ - e_dbg("EEPROM not present\n"); - ret_val = -E1000_ERR_CONFIG; - } - } - - return ret_val; -} - -/** - * e1000_power_down_phy_copper_ich8lan - Remove link during PHY power down - * @hw: pointer to the HW structure - * - * In the case of a PHY power down to save power, or to turn off link during a - * driver unload, or wake on lan is not enabled, remove the link. - **/ -static void e1000_power_down_phy_copper_ich8lan(struct e1000_hw *hw) -{ - /* If the management interface is not enabled, then power down */ - if (!(hw->mac.ops.check_mng_mode(hw) || - e1000_check_reset_block(hw))) - e1000_power_down_phy_copper(hw); - - return; -} - -/** - * e1000_clear_hw_cntrs_ich8lan - Clear statistical counters - * @hw: pointer to the HW structure - * - * Clears hardware counters specific to the silicon family and calls - * clear_hw_cntrs_generic to clear all general purpose counters. - **/ -static void e1000_clear_hw_cntrs_ich8lan(struct e1000_hw *hw) -{ - u16 phy_data; - - e1000e_clear_hw_cntrs_base(hw); - - er32(ALGNERRC); - er32(RXERRC); - er32(TNCRS); - er32(CEXTERR); - er32(TSCTC); - er32(TSCTFC); - - er32(MGTPRC); - er32(MGTPDC); - er32(MGTPTC); - - er32(IAC); - er32(ICRXOC); - - /* Clear PHY statistics registers */ - if ((hw->phy.type == e1000_phy_82578) || - (hw->phy.type == e1000_phy_82577)) { - e1e_rphy(hw, HV_SCC_UPPER, &phy_data); - e1e_rphy(hw, HV_SCC_LOWER, &phy_data); - e1e_rphy(hw, HV_ECOL_UPPER, &phy_data); - e1e_rphy(hw, HV_ECOL_LOWER, &phy_data); - e1e_rphy(hw, HV_MCC_UPPER, &phy_data); - e1e_rphy(hw, HV_MCC_LOWER, &phy_data); - e1e_rphy(hw, HV_LATECOL_UPPER, &phy_data); - e1e_rphy(hw, HV_LATECOL_LOWER, &phy_data); - e1e_rphy(hw, HV_COLC_UPPER, &phy_data); - e1e_rphy(hw, HV_COLC_LOWER, &phy_data); - e1e_rphy(hw, HV_DC_UPPER, &phy_data); - e1e_rphy(hw, HV_DC_LOWER, &phy_data); - e1e_rphy(hw, HV_TNCRS_UPPER, &phy_data); - e1e_rphy(hw, HV_TNCRS_LOWER, &phy_data); - } -} - diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_ich8lan.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000_ich8lan.h deleted file mode 100644 index 92cf98ad976f5857bf913895aedf4bf39d8848e4..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_ich8lan.h +++ /dev/null @@ -1,197 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -#ifndef _E1000_ICH8LAN_H_ -#define _E1000_ICH8LAN_H_ - -#define ICH_FLASH_GFPREG 0x0000 -#define ICH_FLASH_HSFSTS 0x0004 -#define ICH_FLASH_HSFCTL 0x0006 -#define ICH_FLASH_FADDR 0x0008 -#define ICH_FLASH_FDATA0 0x0010 - -#if defined(__VMKLNX__) -#define ICH_FLASH_PR0 0x0074 -#endif /* defined(__VMKLNX__) */ - -/* Requires up to 10 seconds when MNG might be accessing part. */ -#define ICH_FLASH_READ_COMMAND_TIMEOUT 10000000 -#define ICH_FLASH_WRITE_COMMAND_TIMEOUT 10000000 -#define ICH_FLASH_ERASE_COMMAND_TIMEOUT 10000000 -#define ICH_FLASH_LINEAR_ADDR_MASK 0x00FFFFFF -#define ICH_FLASH_CYCLE_REPEAT_COUNT 10 - -#define ICH_CYCLE_READ 0 -#define ICH_CYCLE_WRITE 2 -#define ICH_CYCLE_ERASE 3 - -#define FLASH_GFPREG_BASE_MASK 0x1FFF -#define FLASH_SECTOR_ADDR_SHIFT 12 - -#define ICH_FLASH_SEG_SIZE_256 256 -#define ICH_FLASH_SEG_SIZE_4K 4096 -#define ICH_FLASH_SEG_SIZE_8K 8192 -#define ICH_FLASH_SEG_SIZE_64K 65536 -#define ICH_FLASH_SECTOR_SIZE 4096 - -#define ICH_FLASH_REG_MAPSIZE 0x00A0 - -#define E1000_ICH_FWSM_RSPCIPHY 0x00000040 /* Reset PHY on PCI Reset */ -#define E1000_ICH_FWSM_DISSW 0x10000000 /* FW Disables SW Writes */ -/* FW established a valid mode */ -#define E1000_ICH_FWSM_FW_VALID 0x00008000 - -#define E1000_ICH_MNG_IAMT_MODE 0x2 - -#define ID_LED_DEFAULT_ICH8LAN ((ID_LED_DEF1_DEF2 << 12) | \ - (ID_LED_OFF1_OFF2 << 8) | \ - (ID_LED_OFF1_ON2 << 4) | \ - (ID_LED_DEF1_DEF2)) - -#define E1000_ICH_NVM_SIG_WORD 0x13 -#define E1000_ICH_NVM_SIG_MASK 0xC000 -#define E1000_ICH_NVM_VALID_SIG_MASK 0xC0 -#define E1000_ICH_NVM_SIG_VALUE 0x80 - -#define E1000_ICH8_LAN_INIT_TIMEOUT 1500 - -#define E1000_FEXTNVM_SW_CONFIG 1 -#define E1000_FEXTNVM_SW_CONFIG_ICH8M (1 << 27) /* Bit redefined for ICH8M */ - -#define PCIE_ICH8_SNOOP_ALL PCIE_NO_SNOOP_ALL - -#define E1000_ICH_RAR_ENTRIES 7 - -#define PHY_PAGE_SHIFT 5 -#define PHY_REG(page, reg) (((page) << PHY_PAGE_SHIFT) | \ - ((reg) & MAX_PHY_REG_ADDRESS)) -#define IGP3_KMRN_DIAG PHY_REG(770, 19) /* KMRN Diagnostic */ -#define IGP3_VR_CTRL PHY_REG(776, 18) /* Voltage Regulator Control */ -#define IGP3_CAPABILITY PHY_REG(776, 19) /* Capability */ -#define IGP3_PM_CTRL PHY_REG(769, 20) /* Power Management Control */ - -#define IGP3_KMRN_DIAG_PCS_LOCK_LOSS 0x0002 -#define IGP3_VR_CTRL_DEV_POWERDOWN_MODE_MASK 0x0300 -#define IGP3_VR_CTRL_MODE_SHUTDOWN 0x0200 -#define IGP3_PM_CTRL_FORCE_PWR_DOWN 0x0020 - -/* PHY Wakeup Registers and defines */ -#define BM_RCTL PHY_REG(BM_WUC_PAGE, 0) -#define BM_WUC PHY_REG(BM_WUC_PAGE, 1) -#define BM_WUFC PHY_REG(BM_WUC_PAGE, 2) -#define BM_WUS PHY_REG(BM_WUC_PAGE, 3) -#define BM_RAR_L(_i) (BM_PHY_REG(BM_WUC_PAGE, 16 + ((_i) << 2))) -#define BM_RAR_M(_i) (BM_PHY_REG(BM_WUC_PAGE, 17 + ((_i) << 2))) -#define BM_RAR_H(_i) (BM_PHY_REG(BM_WUC_PAGE, 18 + ((_i) << 2))) -#define BM_RAR_CTRL(_i) (BM_PHY_REG(BM_WUC_PAGE, 19 + ((_i) << 2))) -#define BM_MTA(_i) (BM_PHY_REG(BM_WUC_PAGE, 128 + ((_i) << 1))) - -#define BM_RCTL_UPE 0x0001 /* Unicast Promiscuous Mode */ -#define BM_RCTL_MPE 0x0002 /* Multicast Promiscuous Mode */ -#define BM_RCTL_MO_SHIFT 3 /* Multicast Offset Shift */ -#define BM_RCTL_MO_MASK (3 << 3) /* Multicast Offset Mask */ -#define BM_RCTL_BAM 0x0020 /* Broadcast Accept Mode */ -#define BM_RCTL_PMCF 0x0040 /* Pass MAC Control Frames */ -#define BM_RCTL_RFCE 0x0080 /* Rx Flow Control Enable */ - -#define HV_LED_CONFIG PHY_REG(768, 30) /* LED Configuration */ -#define HV_MUX_DATA_CTRL PHY_REG(776, 16) -#define HV_MUX_DATA_CTRL_GEN_TO_MAC 0x0400 -#define HV_MUX_DATA_CTRL_FORCE_SPEED 0x0004 -#define HV_SCC_UPPER PHY_REG(778, 16) /* Single Collision Count */ -#define HV_SCC_LOWER PHY_REG(778, 17) -#define HV_ECOL_UPPER PHY_REG(778, 18) /* Excessive Collision Count */ -#define HV_ECOL_LOWER PHY_REG(778, 19) -#define HV_MCC_UPPER PHY_REG(778, 20) /* Multiple Collision Count */ -#define HV_MCC_LOWER PHY_REG(778, 21) -#define HV_LATECOL_UPPER PHY_REG(778, 23) /* Late Collision Count */ -#define HV_LATECOL_LOWER PHY_REG(778, 24) -#define HV_COLC_UPPER PHY_REG(778, 25) /* Collision Count */ -#define HV_COLC_LOWER PHY_REG(778, 26) -#define HV_DC_UPPER PHY_REG(778, 27) /* Defer Count */ -#define HV_DC_LOWER PHY_REG(778, 28) -#define HV_TNCRS_UPPER PHY_REG(778, 29) /* Transmit with no CRS */ -#define HV_TNCRS_LOWER PHY_REG(778, 30) - -#define E1000_FCRTV_PCH 0x05F40 /* PCH Flow Control Refresh Timer Value */ - -#define E1000_NVM_K1_CONFIG 0x1B /* NVM K1 Config Word */ -#define E1000_NVM_K1_ENABLE 0x1 /* NVM Enable K1 bit */ - -/* SMBus Address Phy Register */ -#define HV_SMB_ADDR PHY_REG(768, 26) -#define HV_SMB_ADDR_PEC_EN 0x0200 -#define HV_SMB_ADDR_VALID 0x0080 - -/* Strapping Option Register - RO */ -#define E1000_STRAP 0x0000C -#define E1000_STRAP_SMBUS_ADDRESS_MASK 0x00FE0000 -#define E1000_STRAP_SMBUS_ADDRESS_SHIFT 17 - -/* OEM Bits Phy Register */ -#define HV_OEM_BITS PHY_REG(768, 25) -#define HV_OEM_BITS_LPLU 0x0004 /* Low Power Link Up */ -#define HV_OEM_BITS_GBE_DIS 0x0040 /* Gigabit Disable */ -#define HV_OEM_BITS_RESTART_AN 0x0400 /* Restart Auto-negotiation */ - -#define LCD_CFG_PHY_ADDR_BIT 0x0020 /* Phy address bit from LCD Config word */ - -#define SW_FLAG_TIMEOUT 1000 /* SW Semaphore flag timeout in milliseconds */ - -/* - * Additional interrupts need to be handled for ICH family: - * DSW = The FW changed the status of the DISSW bit in FWSM - * PHYINT = The LAN connected device generates an interrupt - * EPRST = Manageability reset event - */ -#define IMS_ICH_ENABLE_MASK (\ - E1000_IMS_DSW | \ - E1000_IMS_PHYINT | \ - E1000_IMS_EPRST) - -/* Additional interrupt register bit definitions */ -#define E1000_ICR_LSECPNC 0x00004000 /* PN threshold - client */ -#define E1000_IMS_LSECPNC E1000_ICR_LSECPNC /* PN threshold - client */ -#define E1000_ICS_LSECPNC E1000_ICR_LSECPNC /* PN threshold - client */ - -/* Security Processing bit Indication */ -#define E1000_RXDEXT_LINKSEC_STATUS_LSECH 0x01000000 -#define E1000_RXDEXT_LINKSEC_ERROR_BIT_MASK 0x60000000 -#define E1000_RXDEXT_LINKSEC_ERROR_NO_SA_MATCH 0x20000000 -#define E1000_RXDEXT_LINKSEC_ERROR_REPLAY_ERROR 0x40000000 -#define E1000_RXDEXT_LINKSEC_ERROR_BAD_SIG 0x60000000 - - -void e1000e_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw, - bool state); -void e1000e_igp3_phy_powerdown_workaround_ich8lan(struct e1000_hw *hw); -void e1000e_gig_downshift_workaround_ich8lan(struct e1000_hw *hw); -void e1000e_disable_gig_wol_ich8lan(struct e1000_hw *hw); -s32 e1000_configure_k1_ich8lan(struct e1000_hw *hw, bool k1_enable); -s32 e1000_oem_bits_config_ich8lan(struct e1000_hw *hw, bool d0_config); -#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_mac.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000_mac.h deleted file mode 100644 index 05065b13d9b6edbd3521fc43cf3b8716880e46d6..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_mac.h +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -#ifndef _E1000_MAC_H_ -#define _E1000_MAC_H_ - -/* - * Functions that should not be called directly from drivers but can be used - * by other files in this 'shared code' - */ -void e1000_init_mac_ops_generic(struct e1000_hw *hw); -s32 e1000e_blink_led(struct e1000_hw *hw); -s32 e1000e_check_for_copper_link(struct e1000_hw *hw); -s32 e1000e_check_for_fiber_link(struct e1000_hw *hw); -s32 e1000e_check_for_serdes_link(struct e1000_hw *hw); -s32 e1000e_cleanup_led_generic(struct e1000_hw *hw); -s32 e1000e_config_fc_after_link_up(struct e1000_hw *hw); -s32 e1000e_disable_pcie_master(struct e1000_hw *hw); -s32 e1000e_force_mac_fc(struct e1000_hw *hw); -s32 e1000e_get_auto_rd_done(struct e1000_hw *hw); -s32 e1000e_get_bus_info_pcie(struct e1000_hw *hw); -void e1000_set_lan_id_single_port(struct e1000_hw *hw); -s32 e1000e_get_hw_semaphore(struct e1000_hw *hw); -s32 e1000e_get_speed_and_duplex_copper(struct e1000_hw *hw, u16 *speed, - u16 *duplex); -s32 e1000e_get_speed_and_duplex_fiber_serdes(struct e1000_hw *hw, - u16 *speed, u16 *duplex); -s32 e1000e_id_led_init(struct e1000_hw *hw); -s32 e1000e_led_on_generic(struct e1000_hw *hw); -s32 e1000e_led_off_generic(struct e1000_hw *hw); -void e1000e_update_mc_addr_list_generic(struct e1000_hw *hw, - u8 *mc_addr_list, u32 mc_addr_count); -s32 e1000e_set_fc_watermarks(struct e1000_hw *hw); -s32 e1000e_setup_fiber_serdes_link(struct e1000_hw *hw); -s32 e1000_setup_led_generic(struct e1000_hw *hw); -s32 e1000e_setup_link(struct e1000_hw *hw); - -void e1000e_clear_hw_cntrs_base(struct e1000_hw *hw); -void e1000e_clear_vfta_generic(struct e1000_hw *hw); -void e1000e_config_collision_dist(struct e1000_hw *hw); -void e1000e_init_rx_addrs(struct e1000_hw *hw, u16 rar_count); -void e1000_mta_set_generic(struct e1000_hw *hw, u32 hash_value); -void e1000_pcix_mmrbc_workaround_generic(struct e1000_hw *hw); -void e1000e_put_hw_semaphore(struct e1000_hw *hw); -void e1000e_rar_set(struct e1000_hw *hw, u8 *addr, u32 index); -s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw); -void e1000e_reset_adaptive(struct e1000_hw *hw); -void e1000e_set_pcie_no_snoop(struct e1000_hw *hw, u32 no_snoop); -void e1000e_update_adaptive(struct e1000_hw *hw); -void e1000e_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value); - -#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_manage.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000_manage.h deleted file mode 100644 index 94853a8715f9f3cfdbbfc3b9dff0d199e0ef4d47..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_manage.h +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -#ifndef _E1000_MANAGE_H_ -#define _E1000_MANAGE_H_ - -bool e1000_check_mng_mode_generic(struct e1000_hw *hw); -bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw); -s32 e1000_mng_enable_host_if_generic(struct e1000_hw *hw); -s32 e1000_mng_host_if_write_generic(struct e1000_hw *hw, u8 *buffer, - u16 length, u16 offset, u8 *sum); -s32 e1000_mng_write_cmd_header_generic(struct e1000_hw *hw, - struct e1000_host_mng_command_header *hdr); -s32 e1000e_mng_write_dhcp_info(struct e1000_hw *hw, - u8 *buffer, u16 length); -bool e1000e_enable_mng_pass_thru(struct e1000_hw *hw); - -enum e1000_mng_mode { - e1000_mng_mode_none = 0, - e1000_mng_mode_asf, - e1000_mng_mode_pt, - e1000_mng_mode_ipmi, - e1000_mng_mode_host_if_only -}; - -#define E1000_FACTPS_MNGCG 0x20000000 - -#define E1000_FWSM_MODE_MASK 0xE -#define E1000_FWSM_MODE_SHIFT 1 - -#define E1000_MNG_IAMT_MODE 0x3 -#define E1000_MNG_DHCP_COOKIE_LENGTH 0x10 -#define E1000_MNG_DHCP_COOKIE_OFFSET 0x6F0 -#define E1000_MNG_DHCP_COMMAND_TIMEOUT 10 -#define E1000_MNG_DHCP_TX_PAYLOAD_CMD 64 -#define E1000_MNG_DHCP_COOKIE_STATUS_PARSING 0x1 -#define E1000_MNG_DHCP_COOKIE_STATUS_VLAN 0x2 - -#define E1000_VFTA_ENTRY_SHIFT 5 -#define E1000_VFTA_ENTRY_MASK 0x7F -#define E1000_VFTA_ENTRY_BIT_SHIFT_MASK 0x1F - -#define E1000_HI_MAX_BLOCK_BYTE_LENGTH 1792 /* Num of bytes in range */ -#define E1000_HI_MAX_BLOCK_DWORD_LENGTH 448 /* Num of dwords in range */ -#define E1000_HI_COMMAND_TIMEOUT 500 /* Process HI command limit */ - -#define E1000_HICR_EN 0x01 /* Enable bit - RO */ -/* Driver sets this bit when done to put command in RAM */ -#define E1000_HICR_C 0x02 -#define E1000_HICR_SV 0x04 /* Status Validity */ -#define E1000_HICR_FW_RESET_ENABLE 0x40 -#define E1000_HICR_FW_RESET 0x80 - -/* Intel(R) Active Management Technology signature */ -#define E1000_IAMT_SIGNATURE 0x544D4149 - -#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_nvm.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000_nvm.h deleted file mode 100644 index ea83a1c91a49616c708a497ea79120ce08453fd3..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_nvm.h +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -#ifndef _E1000_NVM_H_ -#define _E1000_NVM_H_ - -void e1000_init_nvm_ops_generic(struct e1000_hw *hw); -s32 e1000e_acquire_nvm(struct e1000_hw *hw); - -s32 e1000e_poll_eerd_eewr_done(struct e1000_hw *hw, int ee_reg); -s32 e1000e_read_mac_addr_generic(struct e1000_hw *hw); -s32 e1000e_read_pba_num(struct e1000_hw *hw, u32 *pba_num); -s32 e1000e_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words, - u16 *data); -s32 e1000e_valid_led_default(struct e1000_hw *hw, u16 *data); -s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw); -s32 e1000_write_nvm_eewr(struct e1000_hw *hw, u16 offset, - u16 words, u16 *data); -s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, - u16 *data); -s32 e1000e_update_nvm_checksum_generic(struct e1000_hw *hw); -void e1000e_release_nvm(struct e1000_hw *hw); - -#define E1000_STM_OPCODE 0xDB00 - -#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_osdep.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000_osdep.h deleted file mode 100644 index dbfb3f6539b4bf47b6fe4cf2749aabf88688e65e..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_osdep.h +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2008 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - - -/* glue for the OS-dependent part of e1000 - * includes register access macros - */ - -#ifndef _E1000_OSDEP_H_ -#define _E1000_OSDEP_H_ - -#include -#include -#include -#include - -#include "kcompat.h" - -#define usec_delay(x) udelay(x) -#ifndef msec_delay -#define msec_delay(x) do { if(in_interrupt()) { \ - /* Don't sleep in interrupt context! */ \ - BUG(); \ - } else { \ - msleep(x); \ - } } while (0) - -/* Some workarounds require millisecond delays and are run during interrupt - * context. Most notably, when establishing link, the phy may need tweaking - * but cannot process phy register reads/writes faster than millisecond - * intervals...and we establish link due to a "link status change" interrupt. - */ -#define msec_delay_irq(x) mdelay(x) -#endif - -#define PCI_COMMAND_REGISTER PCI_COMMAND -#define CMD_MEM_WRT_INVALIDATE PCI_COMMAND_INVALIDATE -#define ETH_ADDR_LEN ETH_ALEN - - -#define DEBUGOUT(S) -#define DEBUGOUT1(S, A...) - -#define DEBUGFUNC(F) DEBUGOUT(F "\n") -#define DEBUGOUT2 DEBUGOUT1 -#define DEBUGOUT3 DEBUGOUT2 -#define DEBUGOUT7 DEBUGOUT3 - -#define E1000_WRITE_REG(a, reg, value) ( \ - writel((value), ((a)->hw_addr + reg))) - -#define E1000_READ_REG(a, reg) (readl((a)->hw_addr + reg)) - -#define E1000_WRITE_REG_ARRAY(a, reg, offset, value) ( \ - writel((value), ((a)->hw_addr + reg + ((offset) << 2)))) - -#define E1000_READ_REG_ARRAY(a, reg, offset) ( \ - readl((a)->hw_addr + reg + ((offset) << 2))) - -#define E1000_READ_REG_ARRAY_DWORD E1000_READ_REG_ARRAY -#define E1000_WRITE_REG_ARRAY_DWORD E1000_WRITE_REG_ARRAY - -#define E1000_WRITE_REG_ARRAY_WORD(a, reg, offset, value) ( \ - writew((value), ((a)->hw_addr + reg + ((offset) << 1)))) - -#define E1000_READ_REG_ARRAY_WORD(a, reg, offset) ( \ - readw((a)->hw_addr + reg + ((offset) << 1))) - -#define E1000_WRITE_REG_ARRAY_BYTE(a, reg, offset, value) ( \ - writeb((value), ((a)->hw_addr + reg + (offset)))) - -#define E1000_READ_REG_ARRAY_BYTE(a, reg, offset) ( \ - readb((a)->hw_addr + reg + (offset))) - -#define E1000_WRITE_REG_IO(a, reg, offset) do { \ - outl(reg, ((a)->io_base)); \ - outl(offset, ((a)->io_base + 4)); } while(0) - -#define E1000_WRITE_FLUSH(a) E1000_READ_REG(a, E1000_STATUS) - -#define E1000_WRITE_FLASH_REG(a, reg, value) ( \ - writel((value), ((a)->flash_address + reg))) - -#define E1000_WRITE_FLASH_REG16(a, reg, value) ( \ - writew((value), ((a)->flash_address + reg))) - -#define E1000_READ_FLASH_REG(a, reg) (readl((a)->flash_address + reg)) - -#define E1000_READ_FLASH_REG16(a, reg) (readw((a)->flash_address + reg)) - -#endif /* _E1000_OSDEP_H_ */ diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_phy.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000_phy.h deleted file mode 100644 index 03f173d47620d9a670384d40722bb214f25fbc36..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_phy.h +++ /dev/null @@ -1,249 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -#ifndef _E1000_PHY_H_ -#define _E1000_PHY_H_ - -void e1000_init_phy_ops_generic(struct e1000_hw *hw); -s32 e1000e_check_downshift(struct e1000_hw *hw); -s32 e1000_check_polarity_m88(struct e1000_hw *hw); -s32 e1000_check_polarity_igp(struct e1000_hw *hw); -s32 e1000_check_polarity_ife(struct e1000_hw *hw); -s32 e1000e_check_reset_block_generic(struct e1000_hw *hw); -s32 e1000e_copper_link_setup_igp(struct e1000_hw *hw); -s32 e1000e_copper_link_setup_m88(struct e1000_hw *hw); -s32 e1000e_phy_force_speed_duplex_igp(struct e1000_hw *hw); -s32 e1000e_phy_force_speed_duplex_m88(struct e1000_hw *hw); -s32 e1000_phy_force_speed_duplex_ife(struct e1000_hw *hw); -s32 e1000e_get_cable_length_m88(struct e1000_hw *hw); -s32 e1000e_get_cable_length_igp_2(struct e1000_hw *hw); -s32 e1000e_get_cfg_done(struct e1000_hw *hw); -s32 e1000e_get_phy_id(struct e1000_hw *hw); -s32 e1000e_get_phy_info_igp(struct e1000_hw *hw); -s32 e1000e_get_phy_info_m88(struct e1000_hw *hw); -s32 e1000e_phy_sw_reset(struct e1000_hw *hw); -void e1000e_phy_force_speed_duplex_setup(struct e1000_hw *hw, u16 *phy_ctrl); -s32 e1000e_phy_hw_reset_generic(struct e1000_hw *hw); -s32 e1000e_phy_reset_dsp(struct e1000_hw *hw); -s32 e1000e_read_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 *data); -s32 e1000e_read_kmrn_reg_locked(struct e1000_hw *hw, u32 offset, u16 *data); -s32 e1000e_read_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 *data); -s32 e1000e_read_phy_reg_igp_locked(struct e1000_hw *hw, u32 offset, u16 *data); -s32 e1000e_read_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 *data); -s32 e1000e_set_d3_lplu_state(struct e1000_hw *hw, bool active); -s32 e1000e_setup_copper_link(struct e1000_hw *hw); -s32 e1000_wait_autoneg(struct e1000_hw *hw); -s32 e1000e_write_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 data); -s32 e1000e_write_kmrn_reg_locked(struct e1000_hw *hw, u32 offset, u16 data); -s32 e1000e_write_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 data); -s32 e1000e_write_phy_reg_igp_locked(struct e1000_hw *hw, u32 offset, u16 data); -s32 e1000e_write_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 data); -s32 e1000_phy_reset_dsp(struct e1000_hw *hw); -s32 e1000e_phy_has_link_generic(struct e1000_hw *hw, u32 iterations, - u32 usec_interval, bool *success); -s32 e1000_phy_init_script_igp3(struct e1000_hw *hw); -enum e1000_phy_type e1000e_get_phy_type_from_id(u32 phy_id); -s32 e1000e_determine_phy_address(struct e1000_hw *hw); -s32 e1000e_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data); -s32 e1000e_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data); -s32 e1000e_read_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 *data); -s32 e1000e_write_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 data); -void e1000_power_up_phy_copper(struct e1000_hw *hw); -void e1000_power_down_phy_copper(struct e1000_hw *hw); -s32 e1000e_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data); -s32 e1000e_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data); -s32 e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data); -s32 e1000_read_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, u16 *data); -s32 e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data); -s32 e1000_write_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, u16 data); -s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw, bool slow); -s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw); -s32 e1000_copper_link_setup_82577(struct e1000_hw *hw); -s32 e1000_check_polarity_82577(struct e1000_hw *hw); -s32 e1000_get_phy_info_82577(struct e1000_hw *hw); -s32 e1000_phy_force_speed_duplex_82577(struct e1000_hw *hw); -s32 e1000_get_cable_length_82577(struct e1000_hw *hw); - -#define E1000_MAX_PHY_ADDR 4 - -/* IGP01E1000 Specific Registers */ -#define IGP01E1000_PHY_PORT_CONFIG 0x10 /* Port Config */ -#define IGP01E1000_PHY_PORT_STATUS 0x11 /* Status */ -#define IGP01E1000_PHY_PORT_CTRL 0x12 /* Control */ -#define IGP01E1000_PHY_LINK_HEALTH 0x13 /* PHY Link Health */ -#define IGP01E1000_GMII_FIFO 0x14 /* GMII FIFO */ -#define IGP01E1000_PHY_CHANNEL_QUALITY 0x15 /* PHY Channel Quality */ -#define IGP02E1000_PHY_POWER_MGMT 0x19 /* Power Management */ -#define IGP01E1000_PHY_PAGE_SELECT 0x1F /* Page Select */ -#define BM_PHY_PAGE_SELECT 22 /* Page Select for BM */ -#define IGP_PAGE_SHIFT 5 -#define PHY_REG_MASK 0x1F - -/* BM/HV Specific Registers */ -#define BM_PORT_CTRL_PAGE 769 -#define BM_PCIE_PAGE 770 -#define BM_WUC_PAGE 800 -#define BM_WUC_ADDRESS_OPCODE 0x11 -#define BM_WUC_DATA_OPCODE 0x12 -#define BM_WUC_ENABLE_PAGE BM_PORT_CTRL_PAGE -#define BM_WUC_ENABLE_REG 17 -#define BM_WUC_ENABLE_BIT (1 << 2) -#define BM_WUC_HOST_WU_BIT (1 << 4) - -#define PHY_UPPER_SHIFT 21 -#define BM_PHY_REG(page, reg) \ - (((reg) & MAX_PHY_REG_ADDRESS) |\ - (((page) & 0xFFFF) << PHY_PAGE_SHIFT) |\ - (((reg) & ~MAX_PHY_REG_ADDRESS) << (PHY_UPPER_SHIFT - PHY_PAGE_SHIFT))) -#define BM_PHY_REG_PAGE(offset) \ - ((u16)(((offset) >> PHY_PAGE_SHIFT) & 0xFFFF)) -#define BM_PHY_REG_NUM(offset) \ - ((u16)(((offset) & MAX_PHY_REG_ADDRESS) |\ - (((offset) >> (PHY_UPPER_SHIFT - PHY_PAGE_SHIFT)) &\ - ~MAX_PHY_REG_ADDRESS))) - -#define HV_INTC_FC_PAGE_START 768 -#define I82578_ADDR_REG 29 -#define I82577_ADDR_REG 16 -#define I82577_CFG_REG 22 -#define I82577_CFG_ASSERT_CRS_ON_TX (1 << 15) -#define I82577_CFG_ENABLE_DOWNSHIFT (3 << 10) /* auto downshift 100/10 */ -#define I82577_CTRL_REG 23 - -/* 82577 specific PHY registers */ -#define I82577_PHY_CTRL_2 18 -#define I82577_PHY_LBK_CTRL 19 -#define I82577_PHY_STATUS_2 26 -#define I82577_PHY_DIAG_STATUS 31 - -/* I82577 PHY Status 2 */ -#define I82577_PHY_STATUS2_REV_POLARITY 0x0400 -#define I82577_PHY_STATUS2_MDIX 0x0800 -#define I82577_PHY_STATUS2_SPEED_MASK 0x0300 -#define I82577_PHY_STATUS2_SPEED_1000MBPS 0x0200 -#define I82577_PHY_STATUS2_SPEED_100MBPS 0x0100 - -/* I82577 PHY Control 2 */ -#define I82577_PHY_CTRL2_AUTO_MDIX 0x0400 -#define I82577_PHY_CTRL2_FORCE_MDI_MDIX 0x0200 - -/* I82577 PHY Diagnostics Status */ -#define I82577_DSTATUS_CABLE_LENGTH 0x03FC -#define I82577_DSTATUS_CABLE_LENGTH_SHIFT 2 - -/* BM PHY Copper Specific Control 1 */ -#define BM_CS_CTRL1 16 -#define BM_CS_CTRL1_ENERGY_DETECT 0x0300 /* Enable Energy Detect */ - -/* BM PHY Copper Specific Status */ -#define BM_CS_STATUS 17 -#define BM_CS_STATUS_ENERGY_DETECT 0x0010 /* Energy Detect Status */ -#define BM_CS_STATUS_LINK_UP 0x0400 -#define BM_CS_STATUS_RESOLVED 0x0800 -#define BM_CS_STATUS_SPEED_MASK 0xC000 -#define BM_CS_STATUS_SPEED_1000 0x8000 - -/* 82577 Mobile Phy Status Register */ -#define HV_M_STATUS 26 -#define HV_M_STATUS_AUTONEG_COMPLETE 0x1000 -#define HV_M_STATUS_SPEED_MASK 0x0300 -#define HV_M_STATUS_SPEED_1000 0x0200 -#define HV_M_STATUS_LINK_UP 0x0040 - -#define IGP01E1000_PHY_PCS_INIT_REG 0x00B4 -#define IGP01E1000_PHY_POLARITY_MASK 0x0078 - -#define IGP01E1000_PSCR_AUTO_MDIX 0x1000 -#define IGP01E1000_PSCR_FORCE_MDI_MDIX 0x2000 /* 0=MDI, 1=MDIX */ - -#define IGP01E1000_PSCFR_SMART_SPEED 0x0080 - -/* Enable flexible speed on link-up */ -#define IGP01E1000_GMII_FLEX_SPD 0x0010 -#define IGP01E1000_GMII_SPD 0x0020 /* Enable SPD */ - -#define IGP02E1000_PM_SPD 0x0001 /* Smart Power Down */ -#define IGP02E1000_PM_D0_LPLU 0x0002 /* For D0a states */ -#define IGP02E1000_PM_D3_LPLU 0x0004 /* For all other states */ - -#define IGP01E1000_PLHR_SS_DOWNGRADE 0x8000 - -#define IGP01E1000_PSSR_POLARITY_REVERSED 0x0002 -#define IGP01E1000_PSSR_MDIX 0x0800 -#define IGP01E1000_PSSR_SPEED_MASK 0xC000 -#define IGP01E1000_PSSR_SPEED_1000MBPS 0xC000 - -#define IGP02E1000_PHY_CHANNEL_NUM 4 -#define IGP02E1000_PHY_AGC_A 0x11B1 -#define IGP02E1000_PHY_AGC_B 0x12B1 -#define IGP02E1000_PHY_AGC_C 0x14B1 -#define IGP02E1000_PHY_AGC_D 0x18B1 - -#define IGP02E1000_AGC_LENGTH_SHIFT 9 /* Course - 15:13, Fine - 12:9 */ -#define IGP02E1000_AGC_LENGTH_MASK 0x7F -#define IGP02E1000_AGC_RANGE 15 - -#define IGP03E1000_PHY_MISC_CTRL 0x1B -#define IGP03E1000_PHY_MISC_DUPLEX_MANUAL_SET 0x1000 /* Manually Set Duplex */ - -#define E1000_CABLE_LENGTH_UNDEFINED 0xFF - -#define E1000_KMRNCTRLSTA_OFFSET 0x001F0000 -#define E1000_KMRNCTRLSTA_OFFSET_SHIFT 16 -#define E1000_KMRNCTRLSTA_REN 0x00200000 -#define E1000_KMRNCTRLSTA_DIAG_OFFSET 0x3 /* Kumeran Diagnostic */ -#define E1000_KMRNCTRLSTA_TIMEOUTS 0x4 /* Kumeran Timeouts */ -#define E1000_KMRNCTRLSTA_INBAND_PARAM 0x9 /* Kumeran InBand Parameters */ -#define E1000_KMRNCTRLSTA_DIAG_NELPBK 0x1000 /* Nearend Loopback mode */ -#define E1000_KMRNCTRLSTA_K1_CONFIG 0x7 -#define E1000_KMRNCTRLSTA_K1_ENABLE 0x0002 - -#define IFE_PHY_EXTENDED_STATUS_CONTROL 0x10 -#define IFE_PHY_SPECIAL_CONTROL 0x11 /* 100BaseTx PHY Special Control */ -#define IFE_PHY_SPECIAL_CONTROL_LED 0x1B /* PHY Special and LED Control */ -#define IFE_PHY_MDIX_CONTROL 0x1C /* MDI/MDI-X Control */ - -/* IFE PHY Extended Status Control */ -#define IFE_PESC_POLARITY_REVERSED 0x0100 - -/* IFE PHY Special Control */ -#define IFE_PSC_AUTO_POLARITY_DISABLE 0x0010 -#define IFE_PSC_FORCE_POLARITY 0x0020 -#define IFE_PSC_DISABLE_DYNAMIC_POWER_DOWN 0x0100 - -/* IFE PHY Special Control and LED Control */ -#define IFE_PSCL_PROBE_MODE 0x0020 -#define IFE_PSCL_PROBE_LEDS_OFF 0x0006 /* Force LEDs 0 and 2 off */ -#define IFE_PSCL_PROBE_LEDS_ON 0x0007 /* Force LEDs 0 and 2 on */ - -/* IFE PHY MDIX Control */ -#define IFE_PMC_MDIX_STATUS 0x0020 /* 1=MDI-X, 0=MDI */ -#define IFE_PMC_FORCE_MDIX 0x0040 /* 1=force MDI-X, 0=force MDI */ -#define IFE_PMC_AUTO_MDIX 0x0080 /* 1=enable auto MDI/MDI-X, 0=disable */ - -#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_regs.h b/vmkdrivers/src_9/drivers/net/e1000e/e1000_regs.h deleted file mode 100644 index fcbdc0ed01e4bf7320c59c4796da96e1459105cf..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_regs.h +++ /dev/null @@ -1,338 +0,0 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -#ifndef _E1000_REGS_H_ -#define _E1000_REGS_H_ - -#define E1000_CTRL 0x00000 /* Device Control - RW */ -#define E1000_CTRL_DUP 0x00004 /* Device Control Duplicate (Shadow) - RW */ -#define E1000_STATUS 0x00008 /* Device Status - RO */ -#define E1000_EECD 0x00010 /* EEPROM/Flash Control - RW */ -#define E1000_EERD 0x00014 /* EEPROM Read - RW */ -#define E1000_CTRL_EXT 0x00018 /* Extended Device Control - RW */ -#define E1000_FLA 0x0001C /* Flash Access - RW */ -#define E1000_MDIC 0x00020 /* MDI Control - RW */ -#define E1000_SCTL 0x00024 /* SerDes Control - RW */ -#define E1000_FCAL 0x00028 /* Flow Control Address Low - RW */ -#define E1000_FCAH 0x0002C /* Flow Control Address High -RW */ -#define E1000_FEXT 0x0002C /* Future Extended - RW */ -#define E1000_FEXTNVM 0x00028 /* Future Extended NVM - RW */ -#define E1000_FCT 0x00030 /* Flow Control Type - RW */ -#define E1000_CONNSW 0x00034 /* Copper/Fiber switch control - RW */ -#define E1000_VET 0x00038 /* VLAN Ether Type - RW */ -#define E1000_ICR 0x000C0 /* Interrupt Cause Read - R/clr */ -#define E1000_ITR 0x000C4 /* Interrupt Throttling Rate - RW */ -#define E1000_ICS 0x000C8 /* Interrupt Cause Set - WO */ -#define E1000_IMS 0x000D0 /* Interrupt Mask Set - RW */ -#define E1000_IMC 0x000D8 /* Interrupt Mask Clear - WO */ -#define E1000_IAM 0x000E0 /* Interrupt Acknowledge Auto Mask */ -#define E1000_IVAR 0x000E4 /* Interrupt Vector Allocation Register - RW */ -#define E1000_SVCR 0x000F0 -#define E1000_SVT 0x000F4 -#define E1000_RCTL 0x00100 /* Rx Control - RW */ -#define E1000_FCTTV 0x00170 /* Flow Control Transmit Timer Value - RW */ -#define E1000_TXCW 0x00178 /* Tx Configuration Word - RW */ -#define E1000_RXCW 0x00180 /* Rx Configuration Word - RO */ -#define E1000_PBA_ECC 0x01100 /* PBA ECC Register */ -#define E1000_TCTL 0x00400 /* Tx Control - RW */ -#define E1000_TCTL_EXT 0x00404 /* Extended Tx Control - RW */ -#define E1000_TIPG 0x00410 /* Tx Inter-packet gap -RW */ -#define E1000_TBT 0x00448 /* Tx Burst Timer - RW */ -#define E1000_AIT 0x00458 /* Adaptive Interframe Spacing Throttle - RW */ -#define E1000_LEDCTL 0x00E00 /* LED Control - RW */ -#define E1000_EXTCNF_CTRL 0x00F00 /* Extended Configuration Control */ -#define E1000_EXTCNF_SIZE 0x00F08 /* Extended Configuration Size */ -#define E1000_PHY_CTRL 0x00F10 /* PHY Control Register in CSR */ -#define E1000_PBA 0x01000 /* Packet Buffer Allocation - RW */ -#define E1000_PBS 0x01008 /* Packet Buffer Size */ -#define E1000_EEMNGCTL 0x01010 /* MNG EEprom Control */ -#define E1000_EEARBC 0x01024 /* EEPROM Auto Read Bus Control */ -#define E1000_FLASHT 0x01028 /* FLASH Timer Register */ -#define E1000_EEWR 0x0102C /* EEPROM Write Register - RW */ -#define E1000_FLSWCTL 0x01030 /* FLASH control register */ -#define E1000_FLSWDATA 0x01034 /* FLASH data register */ -#define E1000_FLSWCNT 0x01038 /* FLASH Access Counter */ -#define E1000_FLOP 0x0103C /* FLASH Opcode Register */ -#define E1000_I2CCMD 0x01028 /* SFPI2C Command Register - RW */ -#define E1000_I2CPARAMS 0x0102C /* SFPI2C Parameters Register - RW */ -#define E1000_WDSTP 0x01040 /* Watchdog Setup - RW */ -#define E1000_SWDSTS 0x01044 /* SW Device Status - RW */ -#define E1000_FRTIMER 0x01048 /* Free Running Timer - RW */ -#define E1000_ERT 0x02008 /* Early Rx Threshold - RW */ -#define E1000_FCRTL 0x02160 /* Flow Control Receive Threshold Low - RW */ -#define E1000_FCRTH 0x02168 /* Flow Control Receive Threshold High - RW */ -#define E1000_PSRCTL 0x02170 /* Packet Split Receive Control - RW */ -#define E1000_RDFPCQ(_n) (0x02430 + (0x4 * (_n))) -#define E1000_PBRTH 0x02458 /* PB Rx Arbitration Threshold - RW */ -#define E1000_FCRTV 0x02460 /* Flow Control Refresh Timer Value - RW */ -/* Split and Replication Rx Control - RW */ -#define E1000_RDPUMB 0x025CC /* DMA Rx Descriptor uC Mailbox - RW */ -#define E1000_RDPUAD 0x025D0 /* DMA Rx Descriptor uC Addr Command - RW */ -#define E1000_RDPUWD 0x025D4 /* DMA Rx Descriptor uC Data Write - RW */ -#define E1000_RDPURD 0x025D8 /* DMA Rx Descriptor uC Data Read - RW */ -#define E1000_RDPUCTL 0x025DC /* DMA Rx Descriptor uC Control - RW */ -#define E1000_RDTR 0x02820 /* Rx Delay Timer - RW */ -#define E1000_RADV 0x0282C /* Rx Interrupt Absolute Delay Timer - RW */ -/* - * Convenience macros - * - * Note: "_n" is the queue number of the register to be written to. - * - * Example usage: - * E1000_RDBAL_REG(current_rx_queue) - */ -#define E1000_RDBAL(_n) ((_n) < 4 ? (0x02800 + ((_n) * 0x100)) : \ - (0x0C000 + ((_n) * 0x40))) -#define E1000_RDBAH(_n) ((_n) < 4 ? (0x02804 + ((_n) * 0x100)) : \ - (0x0C004 + ((_n) * 0x40))) -#define E1000_RDLEN(_n) ((_n) < 4 ? (0x02808 + ((_n) * 0x100)) : \ - (0x0C008 + ((_n) * 0x40))) -#define E1000_SRRCTL(_n) ((_n) < 4 ? (0x0280C + ((_n) * 0x100)) : \ - (0x0C00C + ((_n) * 0x40))) -#define E1000_RDH(_n) ((_n) < 4 ? (0x02810 + ((_n) * 0x100)) : \ - (0x0C010 + ((_n) * 0x40))) -#define E1000_RXCTL(_n) ((_n) < 4 ? (0x02814 + ((_n) * 0x100)) : \ - (0x0C014 + ((_n) * 0x40))) -#define E1000_DCA_RXCTRL(_n) E1000_RXCTL(_n) -#define E1000_RDT(_n) ((_n) < 4 ? (0x02818 + ((_n) * 0x100)) : \ - (0x0C018 + ((_n) * 0x40))) -#define E1000_RXDCTL(_n) ((_n) < 4 ? (0x02828 + ((_n) * 0x100)) : \ - (0x0C028 + ((_n) * 0x40))) -#define E1000_RQDPC(_n) ((_n) < 4 ? (0x02830 + ((_n) * 0x100)) : \ - (0x0C030 + ((_n) * 0x40))) -#define E1000_TDBAL(_n) ((_n) < 4 ? (0x03800 + ((_n) * 0x100)) : \ - (0x0E000 + ((_n) * 0x40))) -#define E1000_TDBAH(_n) ((_n) < 4 ? (0x03804 + ((_n) * 0x100)) : \ - (0x0E004 + ((_n) * 0x40))) -#define E1000_TDLEN(_n) ((_n) < 4 ? (0x03808 + ((_n) * 0x100)) : \ - (0x0E008 + ((_n) * 0x40))) -#define E1000_TDH(_n) ((_n) < 4 ? (0x03810 + ((_n) * 0x100)) : \ - (0x0E010 + ((_n) * 0x40))) -#define E1000_TXCTL(_n) ((_n) < 4 ? (0x03814 + ((_n) * 0x100)) : \ - (0x0E014 + ((_n) * 0x40))) -#define E1000_DCA_TXCTRL(_n) E1000_TXCTL(_n) -#define E1000_TDT(_n) ((_n) < 4 ? (0x03818 + ((_n) * 0x100)) : \ - (0x0E018 + ((_n) * 0x40))) -#define E1000_TXDCTL(_n) ((_n) < 4 ? (0x03828 + ((_n) * 0x100)) : \ - (0x0E028 + ((_n) * 0x40))) -#define E1000_TDWBAL(_n) ((_n) < 4 ? (0x03838 + ((_n) * 0x100)) : \ - (0x0E038 + ((_n) * 0x40))) -#define E1000_TDWBAH(_n) ((_n) < 4 ? (0x0383C + ((_n) * 0x100)) : \ - (0x0E03C + ((_n) * 0x40))) -#define E1000_TARC(_n) (0x03840 + ((_n) * 0x100)) -#define E1000_RSRPD 0x02C00 /* Rx Small Packet Detect - RW */ -#define E1000_RAID 0x02C08 /* Receive Ack Interrupt Delay - RW */ -#define E1000_TXDMAC 0x03000 /* Tx DMA Control - RW */ -#define E1000_KABGTXD 0x03004 /* AFE Band Gap Transmit Ref Data */ -#define E1000_PSRTYPE(_i) (0x05480 + ((_i) * 4)) -#define E1000_RAL(_i) (((_i) <= 15) ? (0x05400 + ((_i) * 8)) : \ - (0x054E0 + ((_i - 16) * 8))) -#define E1000_RAH(_i) (((_i) <= 15) ? (0x05404 + ((_i) * 8)) : \ - (0x054E4 + ((_i - 16) * 8))) -#define E1000_IP4AT_REG(_i) (0x05840 + ((_i) * 8)) -#define E1000_IP6AT_REG(_i) (0x05880 + ((_i) * 4)) -#define E1000_WUPM_REG(_i) (0x05A00 + ((_i) * 4)) -#define E1000_FFMT_REG(_i) (0x09000 + ((_i) * 8)) -#define E1000_FFVT_REG(_i) (0x09800 + ((_i) * 8)) -#define E1000_FFLT_REG(_i) (0x05F00 + ((_i) * 8)) -#define E1000_TDFH 0x03410 /* Tx Data FIFO Head - RW */ -#define E1000_TDFT 0x03418 /* Tx Data FIFO Tail - RW */ -#define E1000_TDFHS 0x03420 /* Tx Data FIFO Head Saved - RW */ -#define E1000_TDFTS 0x03428 /* Tx Data FIFO Tail Saved - RW */ -#define E1000_TDFPC 0x03430 /* Tx Data FIFO Packet Count - RW */ -#define E1000_TDPUMB 0x0357C /* DMA Tx Descriptor uC Mail Box - RW */ -#define E1000_TDPUAD 0x03580 /* DMA Tx Descriptor uC Addr Command - RW */ -#define E1000_TDPUWD 0x03584 /* DMA Tx Descriptor uC Data Write - RW */ -#define E1000_TDPURD 0x03588 /* DMA Tx Descriptor uC Data Read - RW */ -#define E1000_TDPUCTL 0x0358C /* DMA Tx Descriptor uC Control - RW */ -#define E1000_DTXCTL 0x03590 /* DMA Tx Control - RW */ -#define E1000_TIDV 0x03820 /* Tx Interrupt Delay Value - RW */ -#define E1000_TADV 0x0382C /* Tx Interrupt Absolute Delay Val - RW */ -#define E1000_TSPMT 0x03830 /* TCP Segmentation PAD & Min Threshold - RW */ -#define E1000_CRCERRS 0x04000 /* CRC Error Count - R/clr */ -#define E1000_ALGNERRC 0x04004 /* Alignment Error Count - R/clr */ -#define E1000_SYMERRS 0x04008 /* Symbol Error Count - R/clr */ -#define E1000_RXERRC 0x0400C /* Receive Error Count - R/clr */ -#define E1000_MPC 0x04010 /* Missed Packet Count - R/clr */ -#define E1000_SCC 0x04014 /* Single Collision Count - R/clr */ -#define E1000_ECOL 0x04018 /* Excessive Collision Count - R/clr */ -#define E1000_MCC 0x0401C /* Multiple Collision Count - R/clr */ -#define E1000_LATECOL 0x04020 /* Late Collision Count - R/clr */ -#define E1000_COLC 0x04028 /* Collision Count - R/clr */ -#define E1000_DC 0x04030 /* Defer Count - R/clr */ -#define E1000_TNCRS 0x04034 /* Tx-No CRS - R/clr */ -#define E1000_SEC 0x04038 /* Sequence Error Count - R/clr */ -#define E1000_CEXTERR 0x0403C /* Carrier Extension Error Count - R/clr */ -#define E1000_RLEC 0x04040 /* Receive Length Error Count - R/clr */ -#define E1000_XONRXC 0x04048 /* XON Rx Count - R/clr */ -#define E1000_XONTXC 0x0404C /* XON Tx Count - R/clr */ -#define E1000_XOFFRXC 0x04050 /* XOFF Rx Count - R/clr */ -#define E1000_XOFFTXC 0x04054 /* XOFF Tx Count - R/clr */ -#define E1000_FCRUC 0x04058 /* Flow Control Rx Unsupported Count- R/clr */ -#define E1000_PRC64 0x0405C /* Packets Rx (64 bytes) - R/clr */ -#define E1000_PRC127 0x04060 /* Packets Rx (65-127 bytes) - R/clr */ -#define E1000_PRC255 0x04064 /* Packets Rx (128-255 bytes) - R/clr */ -#define E1000_PRC511 0x04068 /* Packets Rx (255-511 bytes) - R/clr */ -#define E1000_PRC1023 0x0406C /* Packets Rx (512-1023 bytes) - R/clr */ -#define E1000_PRC1522 0x04070 /* Packets Rx (1024-1522 bytes) - R/clr */ -#define E1000_GPRC 0x04074 /* Good Packets Rx Count - R/clr */ -#define E1000_BPRC 0x04078 /* Broadcast Packets Rx Count - R/clr */ -#define E1000_MPRC 0x0407C /* Multicast Packets Rx Count - R/clr */ -#define E1000_GPTC 0x04080 /* Good Packets Tx Count - R/clr */ -#define E1000_GORCL 0x04088 /* Good Octets Rx Count Low - R/clr */ -#define E1000_GORCH 0x0408C /* Good Octets Rx Count High - R/clr */ -#define E1000_GOTCL 0x04090 /* Good Octets Tx Count Low - R/clr */ -#define E1000_GOTCH 0x04094 /* Good Octets Tx Count High - R/clr */ -#define E1000_RNBC 0x040A0 /* Rx No Buffers Count - R/clr */ -#define E1000_RUC 0x040A4 /* Rx Undersize Count - R/clr */ -#define E1000_RFC 0x040A8 /* Rx Fragment Count - R/clr */ -#define E1000_ROC 0x040AC /* Rx Oversize Count - R/clr */ -#define E1000_RJC 0x040B0 /* Rx Jabber Count - R/clr */ -#define E1000_MGTPRC 0x040B4 /* Management Packets Rx Count - R/clr */ -#define E1000_MGTPDC 0x040B8 /* Management Packets Dropped Count - R/clr */ -#define E1000_MGTPTC 0x040BC /* Management Packets Tx Count - R/clr */ -#define E1000_TORL 0x040C0 /* Total Octets Rx Low - R/clr */ -#define E1000_TORH 0x040C4 /* Total Octets Rx High - R/clr */ -#define E1000_TOTL 0x040C8 /* Total Octets Tx Low - R/clr */ -#define E1000_TOTH 0x040CC /* Total Octets Tx High - R/clr */ -#define E1000_TPR 0x040D0 /* Total Packets Rx - R/clr */ -#define E1000_TPT 0x040D4 /* Total Packets Tx - R/clr */ -#define E1000_PTC64 0x040D8 /* Packets Tx (64 bytes) - R/clr */ -#define E1000_PTC127 0x040DC /* Packets Tx (65-127 bytes) - R/clr */ -#define E1000_PTC255 0x040E0 /* Packets Tx (128-255 bytes) - R/clr */ -#define E1000_PTC511 0x040E4 /* Packets Tx (256-511 bytes) - R/clr */ -#define E1000_PTC1023 0x040E8 /* Packets Tx (512-1023 bytes) - R/clr */ -#define E1000_PTC1522 0x040EC /* Packets Tx (1024-1522 Bytes) - R/clr */ -#define E1000_MPTC 0x040F0 /* Multicast Packets Tx Count - R/clr */ -#define E1000_BPTC 0x040F4 /* Broadcast Packets Tx Count - R/clr */ -#define E1000_TSCTC 0x040F8 /* TCP Segmentation Context Tx - R/clr */ -#define E1000_TSCTFC 0x040FC /* TCP Segmentation Context Tx Fail - R/clr */ -#define E1000_IAC 0x04100 /* Interrupt Assertion Count */ -#define E1000_ICRXPTC 0x04104 /* Interrupt Cause Rx Pkt Timer Expire Count */ -#define E1000_ICRXATC 0x04108 /* Interrupt Cause Rx Abs Timer Expire Count */ -#define E1000_ICTXPTC 0x0410C /* Interrupt Cause Tx Pkt Timer Expire Count */ -#define E1000_ICTXATC 0x04110 /* Interrupt Cause Tx Abs Timer Expire Count */ -#define E1000_ICTXQEC 0x04118 /* Interrupt Cause Tx Queue Empty Count */ -#define E1000_ICTXQMTC 0x0411C /* Interrupt Cause Tx Queue Min Thresh Count */ -#define E1000_ICRXDMTC 0x04120 /* Interrupt Cause Rx Desc Min Thresh Count */ -#define E1000_ICRXOC 0x04124 /* Interrupt Cause Receiver Overrun Count */ -#define E1000_CRC_OFFSET 0x05F50 /* CRC Offset register */ - -#define E1000_PCS_CFG0 0x04200 /* PCS Configuration 0 - RW */ -#define E1000_PCS_LCTL 0x04208 /* PCS Link Control - RW */ -#define E1000_PCS_LSTAT 0x0420C /* PCS Link Status - RO */ -#define E1000_CBTMPC 0x0402C /* Circuit Breaker Tx Packet Count */ -#define E1000_HTDPMC 0x0403C /* Host Transmit Discarded Packets */ -#define E1000_CBRDPC 0x04044 /* Circuit Breaker Rx Dropped Count */ -#define E1000_CBRMPC 0x040FC /* Circuit Breaker Rx Packet Count */ -#define E1000_RPTHC 0x04104 /* Rx Packets To Host */ -#define E1000_HGPTC 0x04118 /* Host Good Packets Tx Count */ -#define E1000_HTCBDPC 0x04124 /* Host Tx Circuit Breaker Dropped Count */ -#define E1000_HGORCL 0x04128 /* Host Good Octets Received Count Low */ -#define E1000_HGORCH 0x0412C /* Host Good Octets Received Count High */ -#define E1000_HGOTCL 0x04130 /* Host Good Octets Transmit Count Low */ -#define E1000_HGOTCH 0x04134 /* Host Good Octets Transmit Count High */ -#define E1000_LENERRS 0x04138 /* Length Errors Count */ -#define E1000_SCVPC 0x04228 /* SerDes/SGMII Code Violation Pkt Count */ -#define E1000_HRMPC 0x0A018 /* Header Redirection Missed Packet Count */ -#define E1000_PCS_ANADV 0x04218 /* AN advertisement - RW */ -#define E1000_PCS_LPAB 0x0421C /* Link Partner Ability - RW */ -#define E1000_PCS_NPTX 0x04220 /* AN Next Page Transmit - RW */ -#define E1000_PCS_LPABNP 0x04224 /* Link Partner Ability Next Page - RW */ -#define E1000_1GSTAT_RCV 0x04228 /* 1GSTAT Code Violation Packet Count - RW */ -#define E1000_RXCSUM 0x05000 /* Rx Checksum Control - RW */ -#define E1000_RLPML 0x05004 /* Rx Long Packet Max Length */ -#define E1000_RFCTL 0x05008 /* Receive Filter Control*/ -#define E1000_MTA 0x05200 /* Multicast Table Array - RW Array */ -#define E1000_RA 0x05400 /* Receive Address - RW Array */ -#define E1000_VFTA 0x05600 /* VLAN Filter Table Array - RW Array */ -#define E1000_VT_CTL 0x0581C /* VMDq Control - RW */ -#define E1000_VFQA0 0x0B000 /* VLAN Filter Queue Array 0 - RW Array */ -#define E1000_VFQA1 0x0B200 /* VLAN Filter Queue Array 1 - RW Array */ -#define E1000_WUC 0x05800 /* Wakeup Control - RW */ -#define E1000_WUFC 0x05808 /* Wakeup Filter Control - RW */ -#define E1000_WUS 0x05810 /* Wakeup Status - RO */ -#define E1000_MANC 0x05820 /* Management Control - RW */ -#define E1000_IPAV 0x05838 /* IP Address Valid - RW */ -#define E1000_IP4AT 0x05840 /* IPv4 Address Table - RW Array */ -#define E1000_IP6AT 0x05880 /* IPv6 Address Table - RW Array */ -#define E1000_WUPL 0x05900 /* Wakeup Packet Length - RW */ -#define E1000_WUPM 0x05A00 /* Wakeup Packet Memory - RO A */ -#define E1000_PBACL 0x05B68 /* MSIx PBA Clear - Read/Write 1's to clear */ -#define E1000_FFLT 0x05F00 /* Flexible Filter Length Table - RW Array */ -#define E1000_HOST_IF 0x08800 /* Host Interface */ -#define E1000_FFMT 0x09000 /* Flexible Filter Mask Table - RW Array */ -#define E1000_FFVT 0x09800 /* Flexible Filter Value Table - RW Array */ - -#define E1000_KMRNCTRLSTA 0x00034 /* MAC-PHY interface - RW */ -#define E1000_MDPHYA 0x0003C /* PHY address - RW */ -#define E1000_MANC2H 0x05860 /* Management Control To Host - RW */ -#define E1000_SW_FW_SYNC 0x05B5C /* Software-Firmware Synchronization - RW */ -#define E1000_CCMCTL 0x05B48 /* CCM Control Register */ -#define E1000_GIOCTL 0x05B44 /* GIO Analog Control Register */ -#define E1000_SCCTL 0x05B4C /* PCIc PLL Configuration Register */ -#define E1000_GCR 0x05B00 /* PCI-Ex Control */ -#define E1000_GCR2 0x05B64 /* PCI-Ex Control #2 */ -#define E1000_GSCL_1 0x05B10 /* PCI-Ex Statistic Control #1 */ -#define E1000_GSCL_2 0x05B14 /* PCI-Ex Statistic Control #2 */ -#define E1000_GSCL_3 0x05B18 /* PCI-Ex Statistic Control #3 */ -#define E1000_GSCL_4 0x05B1C /* PCI-Ex Statistic Control #4 */ -#define E1000_FACTPS 0x05B30 /* Function Active and Power State to MNG */ -#define E1000_SWSM 0x05B50 /* SW Semaphore */ -#define E1000_FWSM 0x05B54 /* FW Semaphore */ -#define E1000_SWSM2 0x05B58 /* Driver-only SW semaphore (not used by BOOT agents) */ -#define E1000_DCA_ID 0x05B70 /* DCA Requester ID Information - RO */ -#define E1000_DCA_CTRL 0x05B74 /* DCA Control - RW */ -#define E1000_FFLT_DBG 0x05F04 /* Debug Register */ -#define E1000_HICR 0x08F00 /* Host Interface Control */ - -/* RSS registers */ -#define E1000_CPUVEC 0x02C10 /* CPU Vector Register - RW */ -#define E1000_MRQC 0x05818 /* Multiple Receive Control - RW */ -#define E1000_IMIR(_i) (0x05A80 + ((_i) * 4)) /* Immediate Interrupt */ -#define E1000_IMIREXT(_i) (0x05AA0 + ((_i) * 4)) /* Immediate Interrupt Ext*/ -#define E1000_IMIRVP 0x05AC0 /* Immediate Interrupt Rx VLAN Priority - RW */ -#define E1000_MSIXBM(_i) (0x01600 + ((_i) * 4)) /* MSI-X Allocation Register - * (_i) - RW */ -#define E1000_MSIXTADD(_i) (0x0C000 + ((_i) * 0x10)) /* MSI-X Table entry addr - * low reg - RW */ -#define E1000_MSIXTUADD(_i) (0x0C004 + ((_i) * 0x10)) /* MSI-X Table entry addr - * upper reg - RW */ -#define E1000_MSIXTMSG(_i) (0x0C008 + ((_i) * 0x10)) /* MSI-X Table entry - * message reg - RW */ -#define E1000_MSIXVCTRL(_i) (0x0C00C + ((_i) * 0x10)) /* MSI-X Table entry - * vector ctrl reg - RW */ -#define E1000_MSIXPBA 0x0E000 /* MSI-X Pending bit array */ -#define E1000_RETA(_i) (0x05C00 + ((_i) * 4)) /* Redirection Table - RW */ -#define E1000_RSSRK(_i) (0x05C80 + ((_i) * 4)) /* RSS Random Key - RW */ -#define E1000_RSSIM 0x05864 /* RSS Interrupt Mask */ -#define E1000_RSSIR 0x05868 /* RSS Interrupt Request */ -#define E1000_RXMTRL 0x0B634 /* Time sync Rx EtherType and Msg Type - RW */ -#define E1000_RXUDP 0x0B638 /* Time Sync Rx UDP Port - RW */ - -#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/ethtool.c b/vmkdrivers/src_9/drivers/net/e1000e/ethtool.c index cdd3c761d32fbaf376e4605ac64903f7e71c5da0..da44989b4eb830e17f5ffab47d66a681f0cace95 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/ethtool.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/ethtool.c @@ -1,108 +1,155 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ /* ethtool support for e1000 */ #include +#include #ifdef SIOCETHTOOL #include #include +#include #include +#include #include "e1000.h" -#ifdef NETIF_F_HW_VLAN_TX +#ifndef HAVE_NETDEV_VLAN_FEATURES #include #endif #ifdef ETHTOOL_OPS_COMPAT #include "kcompat_ethtool.c" #endif +enum { NETDEV_STATS, E1000_STATS }; + struct e1000_stats { char stat_string[ETH_GSTRING_LEN]; + int type; int sizeof_stat; int stat_offset; }; -#define E1000_STAT(m) sizeof(((struct e1000_adapter *)0)->m), \ - offsetof(struct e1000_adapter, m) +#define E1000_STAT(str, m) { \ + .stat_string = str, \ + .type = E1000_STATS, \ + .sizeof_stat = sizeof(((struct e1000_adapter *)0)->m), \ + .stat_offset = offsetof(struct e1000_adapter, m) } +#ifdef HAVE_NDO_GET_STATS64 +#define E1000_NETDEV_STAT(str, m) { \ + .stat_string = str, \ + .type = NETDEV_STATS, \ + .sizeof_stat = sizeof(((struct rtnl_link_stats64 *)0)->m), \ + .stat_offset = offsetof(struct rtnl_link_stats64, m) } +#elif defined(HAVE_NETDEV_STATS_IN_NETDEV) +#define E1000_NETDEV_STAT(str, m) { \ + .stat_string = str, \ + .type = NETDEV_STATS, \ + .sizeof_stat = sizeof(((struct net_device *)0)->m), \ + .stat_offset = offsetof(struct net_device, m) } +#else /* HAVE_NETDEV_STATS_IN_NETDEV */ +#define E1000_NETDEV_STAT(str, m) E1000_STAT(str, net_##m) +#endif /* HAVE_NETDEV_STATS_IN_NETDEV */ + static const struct e1000_stats e1000_gstrings_stats[] = { - { "rx_packets", E1000_STAT(stats.gprc) }, - { "tx_packets", E1000_STAT(stats.gptc) }, - { "rx_bytes", E1000_STAT(stats.gorc) }, - { "tx_bytes", E1000_STAT(stats.gotc) }, - { "rx_broadcast", E1000_STAT(stats.bprc) }, - { "tx_broadcast", E1000_STAT(stats.bptc) }, - { "rx_multicast", E1000_STAT(stats.mprc) }, - { "tx_multicast", E1000_STAT(stats.mptc) }, - { "rx_errors", E1000_STAT(net_stats.rx_errors) }, - { "tx_errors", E1000_STAT(net_stats.tx_errors) }, + E1000_STAT("rx_packets", stats.gprc), + E1000_STAT("tx_packets", stats.gptc), + E1000_STAT("rx_bytes", stats.gorc), + E1000_STAT("tx_bytes", stats.gotc), + E1000_STAT("rx_broadcast", stats.bprc), + E1000_STAT("tx_broadcast", stats.bptc), + E1000_STAT("rx_multicast", stats.mprc), + E1000_STAT("tx_multicast", stats.mptc), +#ifdef HAVE_NDO_GET_STATS64 + E1000_NETDEV_STAT("rx_errors", rx_errors), + E1000_NETDEV_STAT("tx_errors", tx_errors), +#else /* HAVE_NDO_GET_STATS64 */ + E1000_NETDEV_STAT("rx_errors", stats.rx_errors), + E1000_NETDEV_STAT("tx_errors", stats.tx_errors), +#endif /* HAVE_NDO_GET_STATS64 */ #ifndef CONFIG_E1000E_NAPI - { "rx_dropped_backlog", E1000_STAT(rx_dropped_backlog) }, + E1000_STAT("rx_dropped_backlog", rx_dropped_backlog), +#endif +#ifdef HAVE_NDO_GET_STATS64 + E1000_NETDEV_STAT("tx_dropped", tx_dropped), +#else /* HAVE_NDO_GET_STATS64 */ + E1000_NETDEV_STAT("tx_dropped", stats.tx_dropped), +#endif /* HAVE_NDO_GET_STATS64 */ + E1000_STAT("multicast", stats.mprc), + E1000_STAT("collisions", stats.colc), +#ifdef HAVE_NDO_GET_STATS64 + E1000_NETDEV_STAT("rx_length_errors", rx_length_errors), + E1000_NETDEV_STAT("rx_over_errors", rx_over_errors), +#else /* HAVE_NDO_GET_STATS64 */ + E1000_NETDEV_STAT("rx_length_errors", stats.rx_length_errors), + E1000_NETDEV_STAT("rx_over_errors", stats.rx_over_errors), +#endif /* HAVE_NDO_GET_STATS64 */ + E1000_STAT("rx_crc_errors", stats.crcerrs), +#ifdef HAVE_NDO_GET_STATS64 + E1000_NETDEV_STAT("rx_frame_errors", rx_frame_errors), +#else /* HAVE_NDO_GET_STATS64 */ + E1000_NETDEV_STAT("rx_frame_errors", stats.rx_frame_errors), +#endif /* HAVE_NDO_GET_STATS64 */ + E1000_STAT("rx_no_buffer_count", stats.rnbc), + E1000_STAT("rx_missed_errors", stats.mpc), + E1000_STAT("tx_aborted_errors", stats.ecol), + E1000_STAT("tx_carrier_errors", stats.tncrs), +#ifdef HAVE_NDO_GET_STATS64 + E1000_NETDEV_STAT("tx_fifo_errors", tx_fifo_errors), + E1000_NETDEV_STAT("tx_heartbeat_errors", tx_heartbeat_errors), +#else /* HAVE_NDO_GET_STATS64 */ + E1000_NETDEV_STAT("tx_fifo_errors", stats.tx_fifo_errors), + E1000_NETDEV_STAT("tx_heartbeat_errors", stats.tx_heartbeat_errors), +#endif /* HAVE_NDO_GET_STATS64 */ + E1000_STAT("tx_window_errors", stats.latecol), + E1000_STAT("tx_abort_late_coll", stats.latecol), + E1000_STAT("tx_deferred_ok", stats.dc), + E1000_STAT("tx_single_coll_ok", stats.scc), + E1000_STAT("tx_multi_coll_ok", stats.mcc), + E1000_STAT("tx_timeout_count", tx_timeout_count), + E1000_STAT("tx_restart_queue", restart_queue), + E1000_STAT("rx_long_length_errors", stats.roc), + E1000_STAT("rx_short_length_errors", stats.ruc), + E1000_STAT("rx_align_errors", stats.algnerrc), + E1000_STAT("tx_tcp_seg_good", stats.tsctc), + E1000_STAT("tx_tcp_seg_failed", stats.tsctfc), + E1000_STAT("rx_flow_control_xon", stats.xonrxc), + E1000_STAT("rx_flow_control_xoff", stats.xoffrxc), + E1000_STAT("tx_flow_control_xon", stats.xontxc), + E1000_STAT("tx_flow_control_xoff", stats.xofftxc), + E1000_STAT("rx_csum_offload_good", hw_csum_good), + E1000_STAT("rx_csum_offload_errors", hw_csum_err), + E1000_STAT("rx_header_split", rx_hdr_split), + E1000_STAT("alloc_rx_buff_failed", alloc_rx_buff_failed), + E1000_STAT("tx_smbus", stats.mgptc), + E1000_STAT("rx_smbus", stats.mgprc), + E1000_STAT("dropped_smbus", stats.mgpdc), + E1000_STAT("rx_dma_failed", rx_dma_failed), + E1000_STAT("tx_dma_failed", tx_dma_failed), +#ifdef HAVE_HW_TIME_STAMP + E1000_STAT("rx_hwtstamp_cleared", rx_hwtstamp_cleared), + E1000_STAT("tx_hwtstamp_timeouts", tx_hwtstamp_timeouts), #endif - { "tx_dropped", E1000_STAT(net_stats.tx_dropped) }, - { "multicast", E1000_STAT(stats.mprc) }, - { "collisions", E1000_STAT(stats.colc) }, - { "rx_length_errors", E1000_STAT(net_stats.rx_length_errors) }, - { "rx_over_errors", E1000_STAT(net_stats.rx_over_errors) }, - { "rx_crc_errors", E1000_STAT(stats.crcerrs) }, - { "rx_frame_errors", E1000_STAT(net_stats.rx_frame_errors) }, - { "rx_no_buffer_count", E1000_STAT(stats.rnbc) }, - { "rx_missed_errors", E1000_STAT(stats.mpc) }, - { "tx_aborted_errors", E1000_STAT(stats.ecol) }, - { "tx_carrier_errors", E1000_STAT(stats.tncrs) }, - { "tx_fifo_errors", E1000_STAT(net_stats.tx_fifo_errors) }, - { "tx_heartbeat_errors", E1000_STAT(net_stats.tx_heartbeat_errors) }, - { "tx_window_errors", E1000_STAT(stats.latecol) }, - { "tx_abort_late_coll", E1000_STAT(stats.latecol) }, - { "tx_deferred_ok", E1000_STAT(stats.dc) }, - { "tx_single_coll_ok", E1000_STAT(stats.scc) }, - { "tx_multi_coll_ok", E1000_STAT(stats.mcc) }, - { "tx_timeout_count", E1000_STAT(tx_timeout_count) }, - { "tx_restart_queue", E1000_STAT(restart_queue) }, - { "rx_long_length_errors", E1000_STAT(stats.roc) }, - { "rx_short_length_errors", E1000_STAT(stats.ruc) }, - { "rx_align_errors", E1000_STAT(stats.algnerrc) }, - { "tx_tcp_seg_good", E1000_STAT(stats.tsctc) }, - { "tx_tcp_seg_failed", E1000_STAT(stats.tsctfc) }, - { "rx_flow_control_xon", E1000_STAT(stats.xonrxc) }, - { "rx_flow_control_xoff", E1000_STAT(stats.xoffrxc) }, - { "tx_flow_control_xon", E1000_STAT(stats.xontxc) }, - { "tx_flow_control_xoff", E1000_STAT(stats.xofftxc) }, - { "rx_long_byte_count", E1000_STAT(stats.gorc) }, - { "rx_csum_offload_good", E1000_STAT(hw_csum_good) }, - { "rx_csum_offload_errors", E1000_STAT(hw_csum_err) }, - { "rx_header_split", E1000_STAT(rx_hdr_split) }, - { "alloc_rx_buff_failed", E1000_STAT(alloc_rx_buff_failed) }, - { "tx_smbus", E1000_STAT(stats.mgptc) }, - { "rx_smbus", E1000_STAT(stats.mgprc) }, - { "dropped_smbus", E1000_STAT(stats.mgpdc) }, - { "rx_dma_failed", E1000_STAT(rx_dma_failed) }, - { "tx_dma_failed", E1000_STAT(tx_dma_failed) }, + E1000_STAT("uncorr_ecc_errors", uncorr_errors), + E1000_STAT("corr_ecc_errors", corr_errors), }; #define E1000_GLOBAL_STATS_LEN ARRAY_SIZE(e1000_gstrings_stats) @@ -112,6 +159,7 @@ static const char e1000_gstrings_test[][ETH_GSTRING_LEN] = { "Interrupt test (offline)", "Loopback test (offline)", "Link test (on/offline)" }; + #define E1000_TEST_LEN ARRAY_SIZE(e1000_gstrings_test) static int e1000_get_settings(struct net_device *netdev, @@ -119,10 +167,9 @@ static int e1000_get_settings(struct net_device *netdev, { struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; - u32 status; + u32 speed; if (hw->phy.media_type == e1000_media_type_copper) { - ecmd->supported = (SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full | SUPPORTED_100baseT_Half | @@ -157,62 +204,73 @@ static int e1000_get_settings(struct net_device *netdev, ecmd->transceiver = XCVR_EXTERNAL; } - status = er32(STATUS); - if (status & E1000_STATUS_LU) { - if (status & E1000_STATUS_SPEED_1000) - ecmd->speed = 1000; - else if (status & E1000_STATUS_SPEED_100) - ecmd->speed = 100; - else - ecmd->speed = 10; + speed = -1; + ecmd->duplex = -1; - if (status & E1000_STATUS_FD) - ecmd->duplex = DUPLEX_FULL; - else - ecmd->duplex = DUPLEX_HALF; - } else { - ecmd->speed = -1; - ecmd->duplex = -1; + if (netif_running(netdev)) { + if (netif_carrier_ok(netdev)) { + speed = adapter->link_speed; + ecmd->duplex = adapter->link_duplex - 1; + } + } else if (!pm_runtime_suspended((netdev_to_dev(netdev))->parent)) { + u32 status = er32(STATUS); + if (status & E1000_STATUS_LU) { + if (status & E1000_STATUS_SPEED_1000) + speed = SPEED_1000; + else if (status & E1000_STATUS_SPEED_100) + speed = SPEED_100; + else + speed = SPEED_10; + + if (status & E1000_STATUS_FD) + ecmd->duplex = DUPLEX_FULL; + else + ecmd->duplex = DUPLEX_HALF; + } } + ethtool_cmd_speed_set(ecmd, speed); ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) || hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE; - return 0; -} -#if !defined(__VMKLNX__) -static u32 e1000_get_link(struct net_device *netdev) -{ - struct e1000_adapter *adapter = netdev_priv(netdev); - struct e1000_mac_info *mac = &adapter->hw.mac; +#ifdef ETH_TP_MDI_X + /* MDI-X => 2; MDI =>1; Invalid =>0 */ + if ((hw->phy.media_type == e1000_media_type_copper) && + netif_carrier_ok(netdev)) + ecmd->eth_tp_mdix = hw->phy.is_mdix ? ETH_TP_MDI_X : ETH_TP_MDI; + else + ecmd->eth_tp_mdix = ETH_TP_MDI_INVALID; - /* If the link is not reported up to netdev, interrupts are disabled, - * and so the physical link state may have changed since we last - * looked. Set get_link_status to make sure that the true link - * state is interrogated, rather than pulling a cached and possibly - * stale link state from the driver. - */ - if (!netif_carrier_ok(netdev)) - mac->get_link_status = 1; +#ifdef ETH_TP_MDI_AUTO + if (hw->phy.mdix == AUTO_ALL_MODES) + ecmd->eth_tp_mdix_ctrl = ETH_TP_MDI_AUTO; + else + ecmd->eth_tp_mdix_ctrl = hw->phy.mdix; - return e1000_has_link(adapter); +#endif +#endif /* ETH_TP_MDI_X */ + return 0; } -#endif /* !defined(__VMKLNX__) */ -static int e1000_set_spd_dplx(struct e1000_adapter *adapter, u16 spddplx) +static int e1000_set_spd_dplx(struct e1000_adapter *adapter, u32 spd, u8 dplx) { struct e1000_mac_info *mac = &adapter->hw.mac; mac->autoneg = 0; + /* Make sure dplx is at most 1 bit and lsb of speed is not set + * for the switch() below to work + */ + if ((spd & 1) || (dplx & ~1)) + goto err_inval; + /* Fiber NICs only allow 1000 gbps Full duplex */ if ((adapter->hw.phy.media_type == e1000_media_type_fiber) && - spddplx != (SPEED_1000 + DUPLEX_FULL)) { - e_err("Unsupported Speed/Duplex configuration\n"); - return -EINVAL; + (spd != SPEED_1000) && (dplx != DUPLEX_FULL)) { + goto err_inval; } - switch (spddplx) { + switch (spd + dplx) { case SPEED_10 + DUPLEX_HALF: mac->forced_speed_duplex = ADVERTISE_10_HALF; break; @@ -229,12 +287,19 @@ static int e1000_set_spd_dplx(struct e1000_adapter *adapter, u16 spddplx) mac->autoneg = 1; adapter->hw.phy.autoneg_advertised = ADVERTISE_1000_FULL; break; - case SPEED_1000 + DUPLEX_HALF: /* not supported */ + case SPEED_1000 + DUPLEX_HALF: /* not supported */ default: - e_err("Unsupported Speed/Duplex configuration\n"); - return -EINVAL; + goto err_inval; } + + /* clear MDI, MDI(-X) override is only allowed when autoneg enabled */ + adapter->hw.phy.mdix = AUTO_ALL_MODES; + return 0; + +err_inval: + e_err("Unsupported Speed/Duplex configuration\n"); + return -EINVAL; } static int e1000_set_settings(struct net_device *netdev, @@ -242,57 +307,86 @@ static int e1000_set_settings(struct net_device *netdev, { struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; + int ret_val = 0; + + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); - /* - * When SoL/IDER sessions are active, autoneg/speed/duplex + /* When SoL/IDER sessions are active, autoneg/speed/duplex * cannot be changed */ - if (e1000_check_reset_block(hw)) { - e_err("Cannot change link characteristics when SoL/IDER is " - "active.\n"); - return -EINVAL; + if (hw->phy.ops.check_reset_block && + hw->phy.ops.check_reset_block(hw)) { + e_err("Cannot change link characteristics when SoL/IDER is active.\n"); + ret_val = -EINVAL; + goto out; } +#ifdef ETH_TP_MDI_AUTO + /* MDI setting is only allowed when autoneg enabled because + * some hardware doesn't allow MDI setting when speed or + * duplex is forced. + */ + if (ecmd->eth_tp_mdix_ctrl) { + if (hw->phy.media_type != e1000_media_type_copper) { + ret_val = -EOPNOTSUPP; + goto out; + } + + if ((ecmd->eth_tp_mdix_ctrl != ETH_TP_MDI_AUTO) && + (ecmd->autoneg != AUTONEG_ENABLE)) { + e_err("forcing MDI/MDI-X state is not supported when link speed and/or duplex are forced\n"); + ret_val = -EINVAL; + goto out; + } + } +#endif while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) - msleep(1); + usleep_range(1000, 2000); if (ecmd->autoneg == AUTONEG_ENABLE) { hw->mac.autoneg = 1; if (hw->phy.media_type == e1000_media_type_fiber) hw->phy.autoneg_advertised = ADVERTISED_1000baseT_Full | - ADVERTISED_FIBRE | - ADVERTISED_Autoneg; + ADVERTISED_FIBRE | ADVERTISED_Autoneg; else hw->phy.autoneg_advertised = ecmd->advertising | - ADVERTISED_TP | - ADVERTISED_Autoneg; + ADVERTISED_TP | ADVERTISED_Autoneg; ecmd->advertising = hw->phy.autoneg_advertised; - if (adapter->fc_autoneg) { - if (hw->mac.type == e1000_pchlan) { - /* Workaround h/w hang when Tx fc enabled */ - hw->fc.requested_mode = e1000_fc_rx_pause; - } else { - hw->fc.requested_mode = e1000_fc_default; - } - } + if (adapter->fc_autoneg) + hw->fc.requested_mode = e1000_fc_default; } else { - if (e1000_set_spd_dplx(adapter, ecmd->speed + ecmd->duplex)) { - clear_bit(__E1000_RESETTING, &adapter->state); - return -EINVAL; + u32 speed = ethtool_cmd_speed(ecmd); + /* calling this overrides forced MDI setting */ + if (e1000_set_spd_dplx(adapter, speed, ecmd->duplex)) { + ret_val = -EINVAL; + goto out; } } +#ifdef ETH_TP_MDI_AUTO + /* MDI-X => 2; MDI => 1; Auto => 3 */ + if (ecmd->eth_tp_mdix_ctrl) { + /* fix up the value for auto (3 => 0) as zero is mapped + * internally to auto + */ + if (ecmd->eth_tp_mdix_ctrl == ETH_TP_MDI_AUTO) + hw->phy.mdix = AUTO_ALL_MODES; + else + hw->phy.mdix = ecmd->eth_tp_mdix_ctrl; + } +#endif /* reset the link */ - if (netif_running(adapter->netdev)) { - e1000e_down(adapter); + e1000e_down(adapter, true); e1000e_up(adapter); } else { e1000e_reset(adapter); } +out: + pm_runtime_put_sync(netdev->dev.parent); clear_bit(__E1000_RESETTING, &adapter->state); - return 0; + return ret_val; } static void e1000_get_pauseparam(struct net_device *netdev, @@ -302,7 +396,7 @@ static void e1000_get_pauseparam(struct net_device *netdev, struct e1000_hw *hw = &adapter->hw; pause->autoneg = - (adapter->fc_autoneg ? AUTONEG_ENABLE : AUTONEG_DISABLE); + (adapter->fc_autoneg ? AUTONEG_ENABLE : AUTONEG_DISABLE); if (hw->fc.current_mode == e1000_fc_rx_pause) { pause->rx_pause = 1; @@ -324,17 +418,14 @@ static int e1000_set_pauseparam(struct net_device *netdev, adapter->fc_autoneg = pause->autoneg; while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) - msleep(1); + usleep_range(1000, 2000); + + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); if (adapter->fc_autoneg == AUTONEG_ENABLE) { - if (hw->mac.type == e1000_pchlan) { - /* Workaround h/w hang when Tx flow control enabled */ - hw->fc.requested_mode = e1000_fc_rx_pause; - } else { - hw->fc.requested_mode = e1000_fc_default; - } + hw->fc.requested_mode = e1000_fc_default; if (netif_running(adapter->netdev)) { - e1000e_down(adapter); + e1000e_down(adapter, true); e1000e_up(adapter); } else { e1000e_reset(adapter); @@ -363,10 +454,12 @@ static int e1000_set_pauseparam(struct net_device *netdev, } out: + pm_runtime_put_sync(netdev->dev.parent); clear_bit(__E1000_RESETTING, &adapter->state); return retval; } +#ifndef HAVE_NDO_SET_FEATURES static u32 e1000_get_rx_csum(struct net_device *netdev) { struct e1000_adapter *adapter = netdev_priv(netdev); @@ -382,16 +475,21 @@ static int e1000_set_rx_csum(struct net_device *netdev, u32 data) else adapter->flags &= ~FLAG_RX_CSUM_ENABLED; + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + if (netif_running(netdev)) e1000e_reinit_locked(adapter); else e1000e_reset(adapter); + + pm_runtime_put_sync(netdev->dev.parent); + return 0; } static u32 e1000_get_tx_csum(struct net_device *netdev) { - return ((netdev->features & NETIF_F_HW_CSUM) != 0); + return (netdev->features & NETIF_F_HW_CSUM) != 0; } static int e1000_set_tx_csum(struct net_device *netdev, u32 data) @@ -408,8 +506,10 @@ static int e1000_set_tx_csum(struct net_device *netdev, u32 data) static int e1000_set_tso(struct net_device *netdev, u32 data) { struct e1000_adapter *adapter = netdev_priv(netdev); +#ifndef HAVE_NETDEV_VLAN_FEATURES int i; struct net_device *v_netdev; +#endif /* HAVE_NETDEV_VLAN_FEATURES */ if (data) { netdev->features |= NETIF_F_TSO; @@ -421,7 +521,7 @@ static int e1000_set_tso(struct net_device *netdev, u32 data) #ifdef NETIF_F_TSO6 netdev->features &= ~NETIF_F_TSO6; #endif -#ifdef NETIF_F_HW_VLAN_TX +#ifndef HAVE_NETDEV_VLAN_FEATURES /* disable TSO on all VLANs if they're present */ if (!adapter->vlgrp) goto tso_out; @@ -436,16 +536,51 @@ static int e1000_set_tso(struct net_device *netdev, u32 data) #endif vlan_group_set_device(adapter->vlgrp, i, v_netdev); } -#endif +#endif /* HAVE_NETDEV_VLAN_FEATURES */ } +#ifndef HAVE_NETDEV_VLAN_FEATURES tso_out: - e_info("TSO is %s\n", data ? "Enabled" : "Disabled"); +#endif /* HAVE_NETDEV_VLAN_FEATURES */ adapter->flags |= FLAG_TSO_FORCE; return 0; } + +#endif /* NETIF_F_TSO */ +#if defined(ETHTOOL_SFLAGS) && (defined(NETIF_F_RXHASH) || !defined(HAVE_VLAN_RX_REGISTER)) +static int e1000e_set_flags(struct net_device *netdev, u32 data) +{ + struct e1000_adapter *adapter = netdev_priv(netdev); + u32 supported = 0, changed = netdev->features ^ data; + int rc; + +#ifdef NETIF_F_RXHASH + supported |= ETH_FLAG_RXHASH; #endif +#ifndef HAVE_VLAN_RX_REGISTER + supported |= ETH_FLAG_RXVLAN | ETH_FLAG_TXVLAN; +#endif + + rc = ethtool_op_set_flags(netdev, data, supported); + if (rc) + return rc; + + if (changed & supported) { + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + if (netif_running(netdev)) + e1000e_reinit_locked(adapter); + else + e1000e_reset(adapter); + + pm_runtime_put_sync(netdev->dev.parent); + } + + return 0; +} + +#endif /* ETHTOOL_SFLAGS */ +#endif /* HAVE_NDO_SET_FEATURES */ static u32 e1000_get_msglevel(struct net_device *netdev) { struct e1000_adapter *adapter = netdev_priv(netdev); @@ -458,9 +593,9 @@ static void e1000_set_msglevel(struct net_device *netdev, u32 data) adapter->msg_enable = data; } -static int e1000_get_regs_len(struct net_device *netdev) +static int e1000_get_regs_len(struct net_device __always_unused *netdev) { -#define E1000_REGS_LEN 32 /* overestimate */ +#define E1000_REGS_LEN 32 /* overestimate */ return E1000_REGS_LEN * sizeof(u32); } @@ -473,32 +608,34 @@ static void e1000_get_regs(struct net_device *netdev, u16 phy_data; u8 revision_id; + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + memset(p, 0, E1000_REGS_LEN * sizeof(u32)); pci_read_config_byte(adapter->pdev, PCI_REVISION_ID, &revision_id); regs->version = (1 << 24) | (revision_id << 16) | adapter->pdev->device; - regs_buff[0] = er32(CTRL); - regs_buff[1] = er32(STATUS); + regs_buff[0] = er32(CTRL); + regs_buff[1] = er32(STATUS); - regs_buff[2] = er32(RCTL); - regs_buff[3] = er32(RDLEN(0)); - regs_buff[4] = er32(RDH(0)); - regs_buff[5] = er32(RDT(0)); - regs_buff[6] = er32(RDTR); + regs_buff[2] = er32(RCTL); + regs_buff[3] = er32(RDLEN(0)); + regs_buff[4] = er32(RDH(0)); + regs_buff[5] = er32(RDT(0)); + regs_buff[6] = er32(RDTR); - regs_buff[7] = er32(TCTL); - regs_buff[8] = er32(TDLEN(0)); - regs_buff[9] = er32(TDH(0)); + regs_buff[7] = er32(TCTL); + regs_buff[8] = er32(TDLEN(0)); + regs_buff[9] = er32(TDH(0)); regs_buff[10] = er32(TDT(0)); regs_buff[11] = er32(TIDV); - regs_buff[12] = adapter->hw.phy.type; /* PHY type (IGP=1, M88=0) */ + regs_buff[12] = adapter->hw.phy.type; /* PHY type (IGP=1, M88=0) */ /* ethtool doesn't use anything past this point, so all this - * code is likely legacy junk for apps that may or may not - * exist */ + * code is likely legacy junk for apps that may or may not exist + */ if (hw->phy.type == e1000_phy_m88) { e1e_rphy(hw, M88E1000_PHY_SPEC_STATUS, &phy_data); regs_buff[13] = (u32)phy_data; /* cable length */ @@ -514,10 +651,12 @@ static void e1000_get_regs(struct net_device *netdev, regs_buff[22] = adapter->phy_stats.receive_errors; regs_buff[23] = regs_buff[13]; /* mdix mode */ } - regs_buff[21] = 0; /* was idle_errors */ - e1e_rphy(hw, PHY_1000T_STATUS, &phy_data); - regs_buff[24] = (u32)phy_data; /* phy local receiver status */ - regs_buff[25] = regs_buff[24]; /* phy remote receiver status */ + regs_buff[21] = 0; /* was idle_errors */ + e1e_rphy(hw, MII_STAT1000, &phy_data); + regs_buff[24] = (u32)phy_data; /* phy local receiver status */ + regs_buff[25] = regs_buff[24]; /* phy remote receiver status */ + + pm_runtime_put_sync(netdev->dev.parent); } static int e1000_get_eeprom_len(struct net_device *netdev) @@ -545,11 +684,13 @@ static int e1000_get_eeprom(struct net_device *netdev, first_word = eeprom->offset >> 1; last_word = (eeprom->offset + eeprom->len - 1) >> 1; - eeprom_buff = kmalloc(sizeof(u16) * - (last_word - first_word + 1), GFP_KERNEL); + eeprom_buff = kmalloc(sizeof(u16) * (last_word - first_word + 1), + GFP_KERNEL); if (!eeprom_buff) return -ENOMEM; + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + if (hw->nvm.type == e1000_nvm_eeprom_spi) { ret_val = e1000_read_nvm(hw, first_word, last_word - first_word + 1, @@ -563,9 +704,12 @@ static int e1000_get_eeprom(struct net_device *netdev, } } + pm_runtime_put_sync(netdev->dev.parent); + if (ret_val) { /* a read error occurred, throw away the result */ - memset(eeprom_buff, 0xff, sizeof(eeprom_buff)); + memset(eeprom_buff, 0xff, sizeof(u16) * + (last_word - first_word + 1)); } else { /* Device's eeprom is always little-endian, word addressable */ for (i = 0; i < last_word - first_word + 1; i++) @@ -594,13 +738,14 @@ static int e1000_set_eeprom(struct net_device *netdev, if (eeprom->len == 0) return -EOPNOTSUPP; - if (eeprom->magic != (adapter->pdev->vendor | (adapter->pdev->device << 16))) + if (eeprom->magic != + (adapter->pdev->vendor | (adapter->pdev->device << 16))) return -EFAULT; -#if defined(__VMKLNX__) +#ifdef __VMKLNX__ if (adapter->flags1 & FLAG_READ_ONLY_NVM) return -EINVAL; -#endif /* defined(__VMKLNX__) */ +#endif /* __VMKLNX__ */ max_len = hw->nvm.word_size * 2; @@ -612,17 +757,19 @@ static int e1000_set_eeprom(struct net_device *netdev, ptr = (void *)eeprom_buff; + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + if (eeprom->offset & 1) { /* need read/modify/write of first changed EEPROM word */ /* only the second byte of the word is being modified */ ret_val = e1000_read_nvm(hw, first_word, 1, &eeprom_buff[0]); ptr++; } - if (((eeprom->offset + eeprom->len) & 1) && (ret_val == 0)) + if (((eeprom->offset + eeprom->len) & 1) && (!ret_val)) /* need read/modify/write of last changed EEPROM word */ /* only the first byte of the word is being modified */ ret_val = e1000_read_nvm(hw, last_word, 1, - &eeprom_buff[last_word - first_word]); + &eeprom_buff[last_word - first_word]); if (ret_val) goto out; @@ -634,7 +781,7 @@ static int e1000_set_eeprom(struct net_device *netdev, memcpy(ptr, bytes, eeprom->len); for (i = 0; i < last_word - first_word + 1; i++) - eeprom_buff[i] = cpu_to_le16(eeprom_buff[i]); + cpu_to_le16s(&eeprom_buff[i]); ret_val = e1000_write_nvm(hw, first_word, last_word - first_word + 1, eeprom_buff); @@ -642,8 +789,7 @@ static int e1000_set_eeprom(struct net_device *netdev, if (ret_val) goto out; - /* - * Update the checksum over the first part of the EEPROM if needed + /* Update the checksum over the first part of the EEPROM if needed * and flush shadow RAM for applicable controllers */ if ((first_word <= NVM_CHECKSUM_REG) || @@ -653,6 +799,7 @@ static int e1000_set_eeprom(struct net_device *netdev, ret_val = e1000e_update_nvm_checksum(hw); out: + pm_runtime_put_sync(netdev->dev.parent); kfree(eeprom_buff); return ret_val; } @@ -661,22 +808,22 @@ static void e1000_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo) { struct e1000_adapter *adapter = netdev_priv(netdev); - char firmware_version[32]; - strncpy(drvinfo->driver, e1000e_driver_name, 32); - strncpy(drvinfo->version, e1000e_driver_version, 32); + strlcpy(drvinfo->driver, e1000e_driver_name, sizeof(drvinfo->driver)); + strlcpy(drvinfo->version, e1000e_driver_version, + sizeof(drvinfo->version)); - /* - * EEPROM image version # is reported as firmware version # for + /* EEPROM image version # is reported as firmware version # for * PCI-E controllers */ - sprintf(firmware_version, "%d.%d-%d", - (adapter->eeprom_vers & 0xF000) >> 12, - (adapter->eeprom_vers & 0x0FF0) >> 4, - (adapter->eeprom_vers & 0x000F)); - - strncpy(drvinfo->fw_version, firmware_version, 32); - strncpy(drvinfo->bus_info, pci_name(adapter->pdev), 32); + snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), + "%d.%d-%d", + (adapter->eeprom_vers & 0xF000) >> 12, + (adapter->eeprom_vers & 0x0FF0) >> 4, + (adapter->eeprom_vers & 0x000F)); + + strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), + sizeof(drvinfo->bus_info)); drvinfo->regdump_len = e1000_get_regs_len(netdev); drvinfo->eedump_len = e1000_get_eeprom_len(netdev); } @@ -685,105 +832,114 @@ static void e1000_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring) { struct e1000_adapter *adapter = netdev_priv(netdev); - struct e1000_ring *tx_ring = adapter->tx_ring; - struct e1000_ring *rx_ring = adapter->rx_ring; ring->rx_max_pending = E1000_MAX_RXD; ring->tx_max_pending = E1000_MAX_TXD; - ring->rx_mini_max_pending = 0; - ring->rx_jumbo_max_pending = 0; - ring->rx_pending = rx_ring->count; - ring->tx_pending = tx_ring->count; - ring->rx_mini_pending = 0; - ring->rx_jumbo_pending = 0; + ring->rx_pending = adapter->rx_ring_count; + ring->tx_pending = adapter->tx_ring_count; } static int e1000_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring) { struct e1000_adapter *adapter = netdev_priv(netdev); - struct e1000_ring *tx_ring, *tx_old; - struct e1000_ring *rx_ring, *rx_old; - int err; + struct e1000_ring *temp_tx = NULL, *temp_rx = NULL; + int err = 0, size = sizeof(struct e1000_ring); + bool set_tx = false, set_rx = false; + u16 new_rx_count, new_tx_count; if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending)) return -EINVAL; + new_rx_count = clamp_t(u32, ring->rx_pending, E1000_MIN_RXD, + E1000_MAX_RXD); + new_rx_count = ALIGN(new_rx_count, REQ_RX_DESCRIPTOR_MULTIPLE); + + new_tx_count = clamp_t(u32, ring->tx_pending, E1000_MIN_TXD, + E1000_MAX_TXD); + new_tx_count = ALIGN(new_tx_count, REQ_TX_DESCRIPTOR_MULTIPLE); + + if ((new_tx_count == adapter->tx_ring_count) && + (new_rx_count == adapter->rx_ring_count)) + /* nothing to do */ + return 0; + while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) - msleep(1); - - if (netif_running(adapter->netdev)) - e1000e_down(adapter); - - tx_old = adapter->tx_ring; - rx_old = adapter->rx_ring; - - err = -ENOMEM; - tx_ring = kzalloc(sizeof(struct e1000_ring), GFP_KERNEL); - if (!tx_ring) - goto err_alloc_tx; - /* - * use a memcpy to save any previously configured - * items like napi structs from having to be - * reinitialized - */ - memcpy(tx_ring, tx_old, sizeof(struct e1000_ring)); + usleep_range(1000, 2000); + + if (!netif_running(adapter->netdev)) { + /* Set counts now and allocate resources during open() */ + adapter->tx_ring->count = new_tx_count; + adapter->rx_ring->count = new_rx_count; + adapter->tx_ring_count = new_tx_count; + adapter->rx_ring_count = new_rx_count; + goto clear_reset; + } - rx_ring = kzalloc(sizeof(struct e1000_ring), GFP_KERNEL); - if (!rx_ring) - goto err_alloc_rx; - memcpy(rx_ring, rx_old, sizeof(struct e1000_ring)); + set_tx = (new_tx_count != adapter->tx_ring_count); + set_rx = (new_rx_count != adapter->rx_ring_count); - adapter->tx_ring = tx_ring; - adapter->rx_ring = rx_ring; + /* Allocate temporary storage for ring updates */ + if (set_tx) { + temp_tx = vmalloc(size); + if (!temp_tx) { + err = -ENOMEM; + goto free_temp; + } + } + if (set_rx) { + temp_rx = vmalloc(size); + if (!temp_rx) { + err = -ENOMEM; + goto free_temp; + } + } - rx_ring->count = max(ring->rx_pending, (u32)E1000_MIN_RXD); - rx_ring->count = min(rx_ring->count, (u32)(E1000_MAX_RXD)); - rx_ring->count = ALIGN(rx_ring->count, REQ_RX_DESCRIPTOR_MULTIPLE); + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); - tx_ring->count = max(ring->tx_pending, (u32)E1000_MIN_TXD); - tx_ring->count = min(tx_ring->count, (u32)(E1000_MAX_TXD)); - tx_ring->count = ALIGN(tx_ring->count, REQ_TX_DESCRIPTOR_MULTIPLE); + e1000e_down(adapter, true); - if (netif_running(adapter->netdev)) { - /* Try to get new resources before deleting old */ - err = e1000e_setup_rx_resources(adapter); + /* We can't just free everything and then setup again, because the + * ISRs in MSI-X mode get passed pointers to the Tx and Rx ring + * structs. First, attempt to allocate new resources... + */ + if (set_tx) { + memcpy(temp_tx, adapter->tx_ring, size); + temp_tx->count = new_tx_count; + err = e1000e_setup_tx_resources(temp_tx); if (err) - goto err_setup_rx; - err = e1000e_setup_tx_resources(adapter); + goto err_setup; + } + if (set_rx) { + memcpy(temp_rx, adapter->rx_ring, size); + temp_rx->count = new_rx_count; + err = e1000e_setup_rx_resources(temp_rx); if (err) - goto err_setup_tx; + goto err_setup_rx; + } - /* - * restore the old in order to free it, - * then add in the new - */ - adapter->rx_ring = rx_old; - adapter->tx_ring = tx_old; - e1000e_free_rx_resources(adapter); - e1000e_free_tx_resources(adapter); - kfree(tx_old); - kfree(rx_old); - adapter->rx_ring = rx_ring; - adapter->tx_ring = tx_ring; - err = e1000e_up(adapter); - if (err) - goto err_setup; + /* ...then free the old resources and copy back any new ring data */ + if (set_tx) { + e1000e_free_tx_resources(adapter->tx_ring); + memcpy(adapter->tx_ring, temp_tx, size); + adapter->tx_ring_count = new_tx_count; + } + if (set_rx) { + e1000e_free_rx_resources(adapter->rx_ring); + memcpy(adapter->rx_ring, temp_rx, size); + adapter->rx_ring_count = new_rx_count; } - clear_bit(__E1000_RESETTING, &adapter->state); - return 0; -err_setup_tx: - e1000e_free_rx_resources(adapter); err_setup_rx: - adapter->rx_ring = rx_old; - adapter->tx_ring = tx_old; - kfree(rx_ring); -err_alloc_rx: - kfree(tx_ring); -err_alloc_tx: - e1000e_up(adapter); + if (err && set_tx) + e1000e_free_tx_resources(temp_tx); err_setup: + e1000e_up(adapter); + pm_runtime_put_sync(netdev->dev.parent); +free_temp: + vfree(temp_tx); + vfree(temp_rx); +clear_reset: clear_bit(__E1000_RESETTING, &adapter->state); return err; } @@ -792,21 +948,22 @@ static bool reg_pattern_test(struct e1000_adapter *adapter, u64 *data, int reg, int offset, u32 mask, u32 write) { u32 pat, val; - static const u32 test[] = - {0x5A5A5A5A, 0xA5A5A5A5, 0x00000000, 0xFFFFFFFF}; + static const u32 test[] = { + 0x5A5A5A5A, 0xA5A5A5A5, 0x00000000, 0xFFFFFFFF + }; for (pat = 0; pat < ARRAY_SIZE(test); pat++) { E1000_WRITE_REG_ARRAY(&adapter->hw, reg, offset, (test[pat] & write)); val = E1000_READ_REG_ARRAY(&adapter->hw, reg, offset); if (val != (test[pat] & write & mask)) { - e_err("Register 0x%05X pattern test failed: got 0x%08X " - "expected 0x%08X\n", reg + offset, val, + e_err("pattern test failed (reg 0x%05X): got 0x%08X expected 0x%08X\n", + reg + (offset << 2), val, (test[pat] & write & mask)); *data = reg; - return 1; + return true; } } - return 0; + return false; } static bool reg_set_and_check(struct e1000_adapter *adapter, u64 *data, @@ -816,13 +973,14 @@ static bool reg_set_and_check(struct e1000_adapter *adapter, u64 *data, __ew32(&adapter->hw, reg, write & mask); val = __er32(&adapter->hw, reg); if ((write & mask) != (val & mask)) { - e_err("Register 0x%05X set/check test failed: got 0x%08X " - "expected 0x%08X\n", reg, (val & mask), (write & mask)); + e_err("set/check test failed (reg 0x%05X): got 0x%08X expected 0x%08X\n", + reg, (val & mask), (write & mask)); *data = reg; - return 1; + return true; } - return 0; + return false; } + #define REG_PATTERN_TEST_ARRAY(reg, offset, mask, write) \ do { \ if (reg_pattern_test(adapter, data, reg, offset, mask, write)) \ @@ -847,13 +1005,13 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data) u32 i; u32 toggle; u32 mask; + u32 wlock_mac = 0; - /* - * The status register is Read Only, so a write should fail. - * Some bits that get toggled are ignored. + /* The status register is Read Only, so a write should fail. + * Some bits that get toggled are ignored. There are several bits + * on newer hardware that are r/w. */ switch (mac->type) { - /* there are several bits on newer hardware that are r/w */ case e1000_82571: case e1000_82572: case e1000_80003es2lan: @@ -869,8 +1027,8 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data) ew32(STATUS, toggle); after = er32(STATUS) & toggle; if (value != after) { - e_err("failed STATUS register test got: 0x%08X expected: " - "0x%08X\n", after, value); + e_err("failed STATUS register test got: 0x%08X expected: 0x%08X\n", + after, value); *data = 1; return 1; } @@ -911,19 +1069,56 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data) switch (mac->type) { case e1000_ich10lan: case e1000_pchlan: + case e1000_pch2lan: + case e1000_pch_lpt: + case e1000_pch_spt: mask |= (1 << 18); break; default: break; } - for (i = 0; i < mac->rar_entry_count; i++) - REG_PATTERN_TEST_ARRAY(E1000_RA, ((i << 1) + 1), - mask, 0xFFFFFFFF); + + if ((mac->type == e1000_pch_lpt) || (mac->type == e1000_pch_spt)) + wlock_mac = (er32(FWSM) & E1000_FWSM_WLOCK_MAC_MASK) >> + E1000_FWSM_WLOCK_MAC_SHIFT; + + for (i = 0; i < mac->rar_entry_count; i++) { + if ((mac->type == e1000_pch_lpt) || + (mac->type == e1000_pch_spt)) { + /* Cannot test write-protected SHRAL[n] registers */ + if ((wlock_mac == 1) || (wlock_mac && (i > wlock_mac))) + continue; + + /* SHRAH[9] different than the others */ + if (i == 10) + mask |= (1 << 30); + else + mask &= ~(1 << 30); + } + if (mac->type == e1000_pch2lan) { + /* SHRAH[0,1,2] different than previous */ + if (i == 1) + mask &= 0xFFF4FFFF; + /* SHRAH[3] different than SHRAH[0,1,2] */ + if (i == 4) + mask |= (1 << 30); + /* RAR[1-6] owned by management engine - skipping */ + if (i > 0) + i += 6; + } + + REG_PATTERN_TEST_ARRAY(E1000_RA, ((i << 1) + 1), mask, + 0xFFFFFFFF); + /* reset index to actual value */ + if ((mac->type == e1000_pch2lan) && (i > 6)) + i -= 6; + } for (i = 0; i < mac->mta_reg_count; i++) REG_PATTERN_TEST_ARRAY(E1000_MTA, i, 0xFFFFFFFF, 0xFFFFFFFF); *data = 0; + return 0; } @@ -944,15 +1139,15 @@ static int e1000_eeprom_test(struct e1000_adapter *adapter, u64 *data) } /* If Checksum is not Correct return error else test passed */ - if ((checksum != (u16) NVM_SUM) && !(*data)) + if ((checksum != (u16)NVM_SUM) && !(*data)) *data = 2; return *data; } -static irqreturn_t e1000_test_intr(int irq, void *data) +static irqreturn_t e1000_test_intr(int __always_unused irq, void *data) { - struct net_device *netdev = (struct net_device *) data; + struct net_device *netdev = (struct net_device *)data; struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; @@ -969,14 +1164,11 @@ static int e1000_intr_test(struct e1000_adapter *adapter, u64 *data) u32 shared_int = 1; u32 irq = adapter->pdev->irq; int i; -#ifdef CONFIG_E1000E_MSIX int ret_val = 0; int int_mode = E1000E_INT_MODE_LEGACY; -#endif *data = 0; -#ifdef CONFIG_E1000E_MSIX /* NOTE: we don't test MSI/MSI-X interrupts here, yet */ if (adapter->int_mode == E1000E_INT_MODE_MSIX) { int_mode = adapter->int_mode; @@ -984,28 +1176,22 @@ static int e1000_intr_test(struct e1000_adapter *adapter, u64 *data) adapter->int_mode = E1000E_INT_MODE_LEGACY; e1000e_set_interrupt_capability(adapter); } -#else - /* NOTE: we don't test MSI interrupts here, yet */ -#endif /* Hook up test interrupt handler just for this test */ - if (!request_irq(irq, &e1000_test_intr, IRQF_PROBE_SHARED, netdev->name, + if (!request_irq(irq, e1000_test_intr, IRQF_PROBE_SHARED, netdev->name, netdev)) { shared_int = 0; - } else if (request_irq(irq, &e1000_test_intr, IRQF_SHARED, - netdev->name, netdev)) { + } else if (request_irq(irq, e1000_test_intr, IRQF_SHARED, netdev->name, + netdev)) { *data = 1; -#ifdef CONFIG_E1000E_MSIX ret_val = -1; goto out; -#else - return -1; -#endif } e_info("testing %s interrupt\n", (shared_int ? "shared" : "unshared")); /* Disable all the interrupts */ ew32(IMC, 0xFFFFFFFF); - msleep(10); + e1e_flush(); + usleep_range(10000, 20000); /* Test each interrupt */ for (i = 0; i < 10; i++) { @@ -1027,8 +1213,7 @@ static int e1000_intr_test(struct e1000_adapter *adapter, u64 *data) } if (!shared_int) { - /* - * Disable the interrupt to be reported in + /* Disable the interrupt to be reported in * the cause register and then force the same * interrupt and see if one gets posted. If * an interrupt was posted to the bus, the @@ -1037,7 +1222,8 @@ static int e1000_intr_test(struct e1000_adapter *adapter, u64 *data) adapter->test_icr = 0; ew32(IMC, mask); ew32(ICS, mask); - msleep(10); + e1e_flush(); + usleep_range(10000, 20000); if (adapter->test_icr & mask) { *data = 3; @@ -1045,8 +1231,7 @@ static int e1000_intr_test(struct e1000_adapter *adapter, u64 *data) } } - /* - * Enable the interrupt to be reported in + /* Enable the interrupt to be reported in * the cause register and then force the same * interrupt and see if one gets posted. If * an interrupt was not posted to the bus, the @@ -1055,7 +1240,8 @@ static int e1000_intr_test(struct e1000_adapter *adapter, u64 *data) adapter->test_icr = 0; ew32(IMS, mask); ew32(ICS, mask); - msleep(10); + e1e_flush(); + usleep_range(10000, 20000); if (!(adapter->test_icr & mask)) { *data = 4; @@ -1063,8 +1249,7 @@ static int e1000_intr_test(struct e1000_adapter *adapter, u64 *data) } if (!shared_int) { - /* - * Disable the other interrupts to be reported in + /* Disable the other interrupts to be reported in * the cause register and then force the other * interrupts and see if any get posted. If * an interrupt was posted to the bus, the @@ -1073,7 +1258,8 @@ static int e1000_intr_test(struct e1000_adapter *adapter, u64 *data) adapter->test_icr = 0; ew32(IMC, ~mask & 0x00007FFF); ew32(ICS, ~mask & 0x00007FFF); - msleep(10); + e1e_flush(); + usleep_range(10000, 20000); if (adapter->test_icr) { *data = 5; @@ -1084,12 +1270,12 @@ static int e1000_intr_test(struct e1000_adapter *adapter, u64 *data) /* Disable all the interrupts */ ew32(IMC, 0xFFFFFFFF); - msleep(10); + e1e_flush(); + usleep_range(10000, 20000); /* Unhook test interrupt handler */ free_irq(irq, netdev); -#ifdef CONFIG_E1000E_MSIX out: if (int_mode == E1000E_INT_MODE_MSIX) { e1000e_reset_interrupt_capability(adapter); @@ -1098,9 +1284,6 @@ out: } return ret_val; -#else - return *data; -#endif } static void e1000_free_desc_rings(struct e1000_adapter *adapter) @@ -1108,39 +1291,44 @@ static void e1000_free_desc_rings(struct e1000_adapter *adapter) struct e1000_ring *tx_ring = &adapter->test_tx_ring; struct e1000_ring *rx_ring = &adapter->test_rx_ring; struct pci_dev *pdev = adapter->pdev; + struct e1000_buffer *buffer_info; int i; if (tx_ring->desc && tx_ring->buffer_info) { for (i = 0; i < tx_ring->count; i++) { - if (tx_ring->buffer_info[i].dma) - pci_unmap_single(pdev, - tx_ring->buffer_info[i].dma, - tx_ring->buffer_info[i].length, - PCI_DMA_TODEVICE); - if (tx_ring->buffer_info[i].skb) - dev_kfree_skb(tx_ring->buffer_info[i].skb); + buffer_info = &tx_ring->buffer_info[i]; + + if (buffer_info->dma) + dma_unmap_single(pci_dev_to_dev(pdev), + buffer_info->dma, + buffer_info->length, + DMA_TO_DEVICE); + if (buffer_info->skb) + dev_kfree_skb(buffer_info->skb); } } if (rx_ring->desc && rx_ring->buffer_info) { for (i = 0; i < rx_ring->count; i++) { - if (rx_ring->buffer_info[i].dma) - pci_unmap_single(pdev, - rx_ring->buffer_info[i].dma, - 2048, PCI_DMA_FROMDEVICE); - if (rx_ring->buffer_info[i].skb) - dev_kfree_skb(rx_ring->buffer_info[i].skb); + buffer_info = &rx_ring->buffer_info[i]; + + if (buffer_info->dma) + dma_unmap_single(pci_dev_to_dev(pdev), + buffer_info->dma, + 2048, DMA_FROM_DEVICE); + if (buffer_info->skb) + dev_kfree_skb(buffer_info->skb); } } if (tx_ring->desc) { - dma_free_coherent(&pdev->dev, tx_ring->size, tx_ring->desc, - tx_ring->dma); + dma_free_coherent(pci_dev_to_dev(pdev), tx_ring->size, + tx_ring->desc, tx_ring->dma); tx_ring->desc = NULL; } if (rx_ring->desc) { - dma_free_coherent(&pdev->dev, rx_ring->size, rx_ring->desc, - rx_ring->dma); + dma_free_coherent(pci_dev_to_dev(pdev), rx_ring->size, + rx_ring->desc, rx_ring->dma); rx_ring->desc = NULL; } @@ -1166,16 +1354,15 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter) tx_ring->count = E1000_DEFAULT_TXD; tx_ring->buffer_info = kcalloc(tx_ring->count, - sizeof(struct e1000_buffer), - GFP_KERNEL); - if (!(tx_ring->buffer_info)) { + sizeof(struct e1000_buffer), GFP_KERNEL); + if (!tx_ring->buffer_info) { ret_val = 1; goto err_nomem; } tx_ring->size = tx_ring->count * sizeof(struct e1000_tx_desc); tx_ring->size = ALIGN(tx_ring->size, 4096); - tx_ring->desc = dma_alloc_coherent(&pdev->dev, tx_ring->size, + tx_ring->desc = dma_alloc_coherent(pci_dev_to_dev(pdev), tx_ring->size, &tx_ring->dma, GFP_KERNEL); if (!tx_ring->desc) { ret_val = 2; @@ -1184,8 +1371,8 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter) tx_ring->next_to_use = 0; tx_ring->next_to_clean = 0; - ew32(TDBAL(0), ((u64) tx_ring->dma & 0x00000000FFFFFFFF)); - ew32(TDBAH(0), ((u64) tx_ring->dma >> 32)); + ew32(TDBAL(0), ((u64)tx_ring->dma & 0x00000000FFFFFFFF)); + ew32(TDBAH(0), ((u64)tx_ring->dma >> 32)); ew32(TDLEN(0), tx_ring->count * sizeof(struct e1000_tx_desc)); ew32(TDH(0), 0); ew32(TDT(0), 0); @@ -1207,9 +1394,10 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter) tx_ring->buffer_info[i].skb = skb; tx_ring->buffer_info[i].length = skb->len; tx_ring->buffer_info[i].dma = - pci_map_single(pdev, skb->data, skb->len, - PCI_DMA_TODEVICE); - if (pci_dma_mapping_error(pdev, tx_ring->buffer_info[i].dma)) { + dma_map_single(pci_dev_to_dev(pdev), skb->data, skb->len, + DMA_TO_DEVICE); + if (dma_mapping_error(pci_dev_to_dev(pdev), + tx_ring->buffer_info[i].dma)) { ret_val = 4; goto err_nomem; } @@ -1227,15 +1415,14 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter) rx_ring->count = E1000_DEFAULT_RXD; rx_ring->buffer_info = kcalloc(rx_ring->count, - sizeof(struct e1000_buffer), - GFP_KERNEL); - if (!(rx_ring->buffer_info)) { + sizeof(struct e1000_buffer), GFP_KERNEL); + if (!rx_ring->buffer_info) { ret_val = 5; goto err_nomem; } - rx_ring->size = rx_ring->count * sizeof(struct e1000_rx_desc); - rx_ring->desc = dma_alloc_coherent(&pdev->dev, rx_ring->size, + rx_ring->size = rx_ring->count * sizeof(union e1000_rx_desc_extended); + rx_ring->desc = dma_alloc_coherent(pci_dev_to_dev(pdev), rx_ring->size, &rx_ring->dma, GFP_KERNEL); if (!rx_ring->desc) { ret_val = 6; @@ -1245,21 +1432,24 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter) rx_ring->next_to_clean = 0; rctl = er32(RCTL); - ew32(RCTL, rctl & ~E1000_RCTL_EN); - ew32(RDBAL(0), ((u64) rx_ring->dma & 0xFFFFFFFF)); - ew32(RDBAH(0), ((u64) rx_ring->dma >> 32)); +#ifndef __VMKLNX__ + if (!(adapter->flags2 & FLAG2_NO_DISABLE_RX)) +#endif /* !__VMKLNX__ */ + ew32(RCTL, rctl & ~E1000_RCTL_EN); + ew32(RDBAL(0), ((u64)rx_ring->dma & 0xFFFFFFFF)); + ew32(RDBAH(0), ((u64)rx_ring->dma >> 32)); ew32(RDLEN(0), rx_ring->size); ew32(RDH(0), 0); ew32(RDT(0), 0); rctl = E1000_RCTL_EN | E1000_RCTL_BAM | E1000_RCTL_SZ_2048 | - E1000_RCTL_UPE | E1000_RCTL_MPE | E1000_RCTL_LPE | - E1000_RCTL_SBP | E1000_RCTL_SECRC | - E1000_RCTL_LBM_NO | E1000_RCTL_RDMTS_HALF | - (adapter->hw.mac.mc_filter_type << E1000_RCTL_MO_SHIFT); + E1000_RCTL_UPE | E1000_RCTL_MPE | E1000_RCTL_LPE | + E1000_RCTL_SBP | E1000_RCTL_SECRC | + E1000_RCTL_LBM_NO | E1000_RCTL_RDMTS_HALF | + (adapter->hw.mac.mc_filter_type << E1000_RCTL_MO_SHIFT); ew32(RCTL, rctl); for (i = 0; i < rx_ring->count; i++) { - struct e1000_rx_desc *rx_desc = E1000_RX_DESC(*rx_ring, i); + union e1000_rx_desc_extended *rx_desc; struct sk_buff *skb; skb = alloc_skb(2048 + NET_IP_ALIGN, GFP_KERNEL); @@ -1270,14 +1460,16 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter) skb_reserve(skb, NET_IP_ALIGN); rx_ring->buffer_info[i].skb = skb; rx_ring->buffer_info[i].dma = - pci_map_single(pdev, skb->data, 2048, - PCI_DMA_FROMDEVICE); - if (pci_dma_mapping_error(pdev, rx_ring->buffer_info[i].dma)) { + dma_map_single(pci_dev_to_dev(pdev), skb->data, 2048, + DMA_FROM_DEVICE); + if (dma_mapping_error(pci_dev_to_dev(pdev), + rx_ring->buffer_info[i].dma)) { ret_val = 8; goto err_nomem; } - rx_desc->buffer_addr = - cpu_to_le64(rx_ring->buffer_info[i].dma); + rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); + rx_desc->read.buffer_addr = + cpu_to_le64(rx_ring->buffer_info[i].dma); memset(skb->data, 0x00, skb->len); } @@ -1301,38 +1493,42 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; u32 ctrl_reg = 0; - u32 stat_reg = 0; u16 phy_reg = 0; + s32 ret_val = 0; hw->mac.autoneg = 0; - /* Workaround: K1 must be disabled for stable 1Gbps operation */ - if (hw->mac.type == e1000_pchlan) - e1000_configure_k1_ich8lan(hw, false); - - if (hw->phy.type == e1000_phy_m88) { - /* Auto-MDI/MDIX Off */ - e1e_wphy(hw, M88E1000_PHY_SPEC_CTRL, 0x0808); - /* reset to update Auto-MDI/MDIX */ - e1e_wphy(hw, PHY_CONTROL, 0x9140); - /* autoneg off */ - e1e_wphy(hw, PHY_CONTROL, 0x8140); - } else if (hw->phy.type == e1000_phy_gg82563) - e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, 0x1CC); - - ctrl_reg = er32(CTRL); - - switch (hw->phy.type) { - case e1000_phy_ife: + if (hw->phy.type == e1000_phy_ife) { /* force 100, set loopback */ - e1e_wphy(hw, PHY_CONTROL, 0x6100); + e1e_wphy(hw, MII_BMCR, 0x6100); /* Now set up the MAC to the same speed/duplex as the PHY. */ + ctrl_reg = er32(CTRL); ctrl_reg &= ~E1000_CTRL_SPD_SEL; /* Clear the speed sel bits */ ctrl_reg |= (E1000_CTRL_FRCSPD | /* Set the Force Speed Bit */ E1000_CTRL_FRCDPX | /* Set the Force Duplex Bit */ E1000_CTRL_SPD_100 |/* Force Speed to 100 */ E1000_CTRL_FD); /* Force Duplex to FULL */ + + ew32(CTRL, ctrl_reg); + e1e_flush(); + usleep_range(500, 1000); + + return 0; + } + + /* Specific PHY configuration for loopback */ + switch (hw->phy.type) { + case e1000_phy_m88: + /* Auto-MDI/MDIX Off */ + e1e_wphy(hw, M88E1000_PHY_SPEC_CTRL, 0x0808); + /* reset to update Auto-MDI/MDIX */ + e1e_wphy(hw, MII_BMCR, 0x9140); + /* autoneg off */ + e1e_wphy(hw, MII_BMCR, 0x8140); + break; + case e1000_phy_gg82563: + e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, 0x1CC); break; case e1000_phy_bm: /* Set Default MAC Interface speed to 1GB */ @@ -1341,8 +1537,8 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter) phy_reg |= 0x006; e1e_wphy(hw, PHY_REG(2, 21), phy_reg); /* Assert SW reset for above settings to take effect */ - e1000e_commit_phy(hw); - mdelay(1); + hw->phy.ops.commit(hw); + usleep_range(1000, 2000); /* Force Full Duplex */ e1e_rphy(hw, PHY_REG(769, 16), &phy_reg); e1e_wphy(hw, PHY_REG(769, 16), phy_reg | 0x000C); @@ -1355,47 +1551,67 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter) /* Set Early Link Enable */ e1e_rphy(hw, PHY_REG(769, 20), &phy_reg); e1e_wphy(hw, PHY_REG(769, 20), phy_reg | 0x0400); - /* fall through */ + break; + case e1000_phy_82577: + case e1000_phy_82578: + /* Workaround: K1 must be disabled for stable 1Gbps operation */ + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) { + e_err("Cannot setup 1Gbps loopback.\n"); + return ret_val; + } + e1000_configure_k1_ich8lan(hw, false); + hw->phy.ops.release(hw); + break; + case e1000_phy_82579: + /* Disable PHY energy detect power down */ + e1e_rphy(hw, PHY_REG(0, 21), &phy_reg); + e1e_wphy(hw, PHY_REG(0, 21), phy_reg & ~(1 << 3)); + /* Disable full chip energy detect */ + e1e_rphy(hw, PHY_REG(776, 18), &phy_reg); + e1e_wphy(hw, PHY_REG(776, 18), phy_reg | 1); + /* Enable loopback on the PHY */ + e1e_wphy(hw, I82577_PHY_LBK_CTRL, 0x8001); + break; default: - /* force 1000, set loopback */ - e1e_wphy(hw, PHY_CONTROL, 0x4140); - mdelay(250); + break; + } - /* Now set up the MAC to the same speed/duplex as the PHY. */ - ctrl_reg = er32(CTRL); - ctrl_reg &= ~E1000_CTRL_SPD_SEL; /* Clear the speed sel bits */ - ctrl_reg |= (E1000_CTRL_FRCSPD | /* Set the Force Speed Bit */ - E1000_CTRL_FRCDPX | /* Set the Force Duplex Bit */ - E1000_CTRL_SPD_1000 |/* Force Speed to 1000 */ - E1000_CTRL_FD); /* Force Duplex to FULL */ + /* force 1000, set loopback */ + e1e_wphy(hw, MII_BMCR, 0x4140); + msleep(250); - if (adapter->flags & FLAG_IS_ICH) - ctrl_reg |= E1000_CTRL_SLU; /* Set Link Up */ - } + /* Now set up the MAC to the same speed/duplex as the PHY. */ + ctrl_reg = er32(CTRL); + ctrl_reg &= ~E1000_CTRL_SPD_SEL; /* Clear the speed sel bits */ + ctrl_reg |= (E1000_CTRL_FRCSPD | /* Set the Force Speed Bit */ + E1000_CTRL_FRCDPX | /* Set the Force Duplex Bit */ + E1000_CTRL_SPD_1000 |/* Force Speed to 1000 */ + E1000_CTRL_FD); /* Force Duplex to FULL */ + + if (adapter->flags & FLAG_IS_ICH) + ctrl_reg |= E1000_CTRL_SLU; /* Set Link Up */ if (hw->phy.media_type == e1000_media_type_copper && hw->phy.type == e1000_phy_m88) { - ctrl_reg |= E1000_CTRL_ILOS; /* Invert Loss of Signal */ + ctrl_reg |= E1000_CTRL_ILOS; /* Invert Loss of Signal */ } else { - /* - * Set the ILOS bit on the fiber Nic if half duplex link is + /* Set the ILOS bit on the fiber Nic if half duplex link is * detected. */ - stat_reg = er32(STATUS); - if ((stat_reg & E1000_STATUS_FD) == 0) + if ((er32(STATUS) & E1000_STATUS_FD) == 0) ctrl_reg |= (E1000_CTRL_ILOS | E1000_CTRL_SLU); } ew32(CTRL, ctrl_reg); - /* - * Disable the receiver on the PHY so when a cable is plugged in, the + /* Disable the receiver on the PHY so when a cable is plugged in, the * PHY does not begin to autoneg when a cable is reconnected to the NIC. */ if (hw->phy.type == e1000_phy_m88) e1000_phy_disable_receiver(adapter); - udelay(500); + usleep_range(500, 1000); return 0; } @@ -1404,12 +1620,11 @@ static int e1000_set_82571_fiber_loopback(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; u32 ctrl = er32(CTRL); - int link = 0; + int link; /* special requirements for 82571/82572 fiber adapters */ - /* - * jump through hoops to make sure link is up because serdes + /* jump through hoops to make sure link is up because serdes * link is hardwired up */ ctrl |= E1000_CTRL_SLU; @@ -1429,13 +1644,12 @@ static int e1000_set_82571_fiber_loopback(struct e1000_adapter *adapter) ew32(CTRL, ctrl); } - /* - * special write to serdes control register to enable SerDes analog + /* special write to serdes control register to enable SerDes analog * loopback */ -#define E1000_SERDES_LB_ON 0x410 - ew32(SCTL, E1000_SERDES_LB_ON); - msleep(10); + ew32(SCTL, E1000_SCTL_ENABLE_SERDES_LOOPBACK); + e1e_flush(); + usleep_range(10000, 20000); return 0; } @@ -1447,8 +1661,7 @@ static int e1000_set_es2lan_mac_loopback(struct e1000_adapter *adapter) u32 ctrlext = er32(CTRL_EXT); u32 ctrl = er32(CTRL); - /* - * save CTRL_EXT to restore later, reuse an empty variable (unused + /* save CTRL_EXT to restore later, reuse an empty variable (unused * on mac_type 80003es2lan) */ adapter->tx_fifo_head = ctrlext; @@ -1528,9 +1741,9 @@ static void e1000_loopback_cleanup(struct e1000_adapter *adapter) case e1000_82572: if (hw->phy.media_type == e1000_media_type_fiber || hw->phy.media_type == e1000_media_type_internal_serdes) { -#define E1000_SERDES_LB_OFF 0x400 - ew32(SCTL, E1000_SERDES_LB_OFF); - msleep(10); + ew32(SCTL, E1000_SCTL_DISABLE_SERDES_LOOPBACK); + e1e_flush(); + usleep_range(10000, 20000); break; } /* Fall Through */ @@ -1538,11 +1751,12 @@ static void e1000_loopback_cleanup(struct e1000_adapter *adapter) hw->mac.autoneg = 1; if (hw->phy.type == e1000_phy_gg82563) e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, 0x180); - e1e_rphy(hw, PHY_CONTROL, &phy_reg); - if (phy_reg & MII_CR_LOOPBACK) { - phy_reg &= ~MII_CR_LOOPBACK; - e1e_wphy(hw, PHY_CONTROL, phy_reg); - e1000e_commit_phy(hw); + e1e_rphy(hw, MII_BMCR, &phy_reg); + if (phy_reg & BMCR_LOOPBACK) { + phy_reg &= ~BMCR_LOOPBACK; + e1e_wphy(hw, MII_BMCR, phy_reg); + if (hw->phy.ops.commit) + hw->phy.ops.commit(hw); } break; } @@ -1564,7 +1778,7 @@ static int e1000_check_lbtest_frame(struct sk_buff *skb, frame_size &= ~1; if (*(skb->data + 3) == 0xFF) if ((*(skb->data + frame_size / 2 + 10) == 0xBE) && - (*(skb->data + frame_size / 2 + 12) == 0xAF)) + (*(skb->data + frame_size / 2 + 12) == 0xAF)) return 0; return 13; } @@ -1575,6 +1789,7 @@ static int e1000_run_loopback_test(struct e1000_adapter *adapter) struct e1000_ring *rx_ring = &adapter->test_rx_ring; struct pci_dev *pdev = adapter->pdev; struct e1000_hw *hw = &adapter->hw; + struct e1000_buffer *buffer_info; int i, j, k, l; int lc; int good_cnt; @@ -1583,8 +1798,7 @@ static int e1000_run_loopback_test(struct e1000_adapter *adapter) ew32(RDT(0), rx_ring->count - 1); - /* - * Calculate the loop count based on the largest descriptor ring + /* Calculate the loop count based on the largest descriptor ring * The idea is to wrap the largest ring a number of times using 64 * send/receive pairs during each loop */ @@ -1596,59 +1810,65 @@ static int e1000_run_loopback_test(struct e1000_adapter *adapter) k = 0; l = 0; - for (j = 0; j <= lc; j++) { /* loop count loop */ - for (i = 0; i < 64; i++) { /* send the packets */ - e1000_create_lbtest_frame(tx_ring->buffer_info[k].skb, - 1024); - pci_dma_sync_single_for_device(pdev, - tx_ring->buffer_info[k].dma, - tx_ring->buffer_info[k].length, - PCI_DMA_TODEVICE); + /* loop count loop */ + for (j = 0; j <= lc; j++) { + /* send the packets */ + for (i = 0; i < 64; i++) { + buffer_info = &tx_ring->buffer_info[k]; + + e1000_create_lbtest_frame(buffer_info->skb, 1024); + dma_sync_single_for_device(pci_dev_to_dev(pdev), + buffer_info->dma, + buffer_info->length, + DMA_TO_DEVICE); k++; if (k == tx_ring->count) k = 0; } ew32(TDT(0), k); + e1e_flush(); msleep(200); - time = jiffies; /* set the start time for the receive */ + time = jiffies; /* set the start time for the receive */ good_cnt = 0; - do { /* receive the sent packets */ - pci_dma_sync_single_for_cpu(pdev, - rx_ring->buffer_info[l].dma, 2048, - PCI_DMA_FROMDEVICE); + /* receive the sent packets */ + do { + buffer_info = &rx_ring->buffer_info[l]; + + dma_sync_single_for_cpu(pci_dev_to_dev(pdev), + buffer_info->dma, 2048, + DMA_FROM_DEVICE); - ret_val = e1000_check_lbtest_frame( - rx_ring->buffer_info[l].skb, 1024); + ret_val = e1000_check_lbtest_frame(buffer_info->skb, + 1024); if (!ret_val) good_cnt++; l++; if (l == rx_ring->count) l = 0; - /* - * time + 20 msecs (200 msecs on 2.4) is more than + /* time + 20 msecs (200 msecs on 2.4) is more than * enough time to complete the receives, if it's * exceeded, break and error off */ } while ((good_cnt < 64) && !time_after(jiffies, time + 20)); if (good_cnt != 64) { - ret_val = 13; /* ret_val is the same as mis-compare */ + ret_val = 13; /* ret_val is the same as mis-compare */ break; } - if (jiffies >= (time + 20)) { - ret_val = 14; /* error code for time out error */ + if (time_after(jiffies, time + 20)) { + ret_val = 14; /* error code for time out error */ break; } - } /* end loop count loop */ + } return ret_val; } static int e1000_loopback_test(struct e1000_adapter *adapter, u64 *data) { - /* - * PHY loopback cannot be performed if SoL/IDER - * sessions are active - */ - if (e1000_check_reset_block(&adapter->hw)) { + struct e1000_hw *hw = &adapter->hw; + + /* PHY loopback cannot be performed if SoL/IDER sessions are active */ + if (hw->phy.ops.check_reset_block && + hw->phy.ops.check_reset_block(hw)) { e_err("Cannot do PHY loopback test when SoL/IDER is active.\n"); *data = 0; goto out; @@ -1678,10 +1898,9 @@ static int e1000_link_test(struct e1000_adapter *adapter, u64 *data) *data = 0; if (hw->phy.media_type == e1000_media_type_internal_serdes) { int i = 0; - hw->mac.serdes_has_link = 0; + hw->mac.serdes_has_link = false; - /* - * On some blade server designs, link establishment + /* On some blade server designs, link establishment * could take as long as 2-3 minutes */ do { @@ -1695,24 +1914,41 @@ static int e1000_link_test(struct e1000_adapter *adapter, u64 *data) } else { hw->mac.ops.check_for_link(hw); if (hw->mac.autoneg) - msleep(4000); + /* On some Phy/switch combinations, link establishment + * can take a few seconds more than expected. + */ + msleep_interruptible(5000); - if (!(er32(STATUS) & - E1000_STATUS_LU)) + if (!(er32(STATUS) & E1000_STATUS_LU)) *data = 1; } return *data; } -static int e1000_get_self_test_count(struct net_device *netdev) +#ifdef HAVE_ETHTOOL_GET_SSET_COUNT +static int e1000e_get_sset_count(struct net_device __always_unused *netdev, + int sset) +{ + switch (sset) { + case ETH_SS_TEST: + return E1000_TEST_LEN; + case ETH_SS_STATS: + return E1000_STATS_LEN; + default: + return -EOPNOTSUPP; + } +} +#else +static int e1000_get_self_test_count(struct net_device __always_unused *netdev) { return E1000_TEST_LEN; } -static int e1000_get_stats_count(struct net_device *netdev) +static int e1000_get_stats_count(struct net_device __always_unused *netdev) { return E1000_STATS_LEN; } +#endif static void e1000_diag_test(struct net_device *netdev, struct ethtool_test *eth_test, u64 *data) @@ -1723,7 +1959,22 @@ static void e1000_diag_test(struct net_device *netdev, u8 autoneg; bool if_running = netif_running(netdev); + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + set_bit(__E1000_TESTING, &adapter->state); + + if (!if_running) { + /* Get control of and reset hardware */ + if (adapter->flags & FLAG_HAS_AMT) + e1000e_get_hw_control(adapter); + + e1000e_power_up_phy(adapter); + + adapter->hw.phy.autoneg_wait_to_complete = 1; + e1000e_reset(adapter); + adapter->hw.phy.autoneg_wait_to_complete = 0; + } + if (eth_test->flags == ETH_TEST_FL_OFFLINE) { /* Offline tests */ @@ -1734,18 +1985,9 @@ static void e1000_diag_test(struct net_device *netdev, e_info("offline testing starting\n"); - /* - * Link test performed before hardware reset so autoneg doesn't - * interfere with test result - */ - if (e1000_link_test(adapter, &data[4])) - eth_test->flags |= ETH_TEST_FL_FAILED; - if (if_running) /* indicate we're in test mode */ dev_close(netdev); - else - e1000e_reset(adapter); if (e1000_reg_test(adapter, &data[0])) eth_test->flags |= ETH_TEST_FL_FAILED; @@ -1759,39 +2001,53 @@ static void e1000_diag_test(struct net_device *netdev, eth_test->flags |= ETH_TEST_FL_FAILED; e1000e_reset(adapter); - /* make sure the phy is powered up */ - e1000e_power_up_phy(adapter); if (e1000_loopback_test(adapter, &data[3])) eth_test->flags |= ETH_TEST_FL_FAILED; + /* force this routine to wait until autoneg complete/timeout */ + adapter->hw.phy.autoneg_wait_to_complete = 1; + e1000e_reset(adapter); + adapter->hw.phy.autoneg_wait_to_complete = 0; + + if (e1000_link_test(adapter, &data[4])) + eth_test->flags |= ETH_TEST_FL_FAILED; + /* restore speed, duplex, autoneg settings */ adapter->hw.phy.autoneg_advertised = autoneg_advertised; adapter->hw.mac.forced_speed_duplex = forced_speed_duplex; adapter->hw.mac.autoneg = autoneg; - - /* force this routine to wait until autoneg complete/timeout */ - adapter->hw.phy.autoneg_wait_to_complete = 1; e1000e_reset(adapter); - adapter->hw.phy.autoneg_wait_to_complete = 0; clear_bit(__E1000_TESTING, &adapter->state); if (if_running) dev_open(netdev); } else { - e_info("online testing starting\n"); /* Online tests */ - if (e1000_link_test(adapter, &data[4])) - eth_test->flags |= ETH_TEST_FL_FAILED; - /* Online tests aren't run; pass by default */ + e_info("online testing starting\n"); + + /* register, eeprom, intr and loopback tests not run online */ data[0] = 0; data[1] = 0; data[2] = 0; data[3] = 0; + if (e1000_link_test(adapter, &data[4])) + eth_test->flags |= ETH_TEST_FL_FAILED; + clear_bit(__E1000_TESTING, &adapter->state); } + + if (!if_running) { + e1000e_reset(adapter); + + if (adapter->flags & FLAG_HAS_AMT) + e1000e_release_hw_control(adapter); + } + msleep_interruptible(4 * 1000); + + pm_runtime_put_sync(netdev->dev.parent); } static void e1000_get_wol(struct net_device *netdev, @@ -1809,26 +2065,24 @@ static void e1000_get_wol(struct net_device *netdev, * Comment out that check for now until support for can/should wakeup * is added as part of Power Management features. */ -#if !defined(__VMKLNX__) +#ifndef __VMKLNX__ if (!(adapter->flags & FLAG_HAS_WOL) || - !device_can_wakeup(&adapter->pdev->dev)) + !device_can_wakeup(pci_dev_to_dev(adapter->pdev))) return; -#else /* defined(__VMKLNX__) */ +#else /* !__VMKLNX__ */ if (!(adapter->flags & FLAG_HAS_WOL)) return; -#endif /* !defined(__VMKLNX__) */ +#endif /* !__VMKLNX__ */ wol->supported = WAKE_UCAST | WAKE_MCAST | - WAKE_BCAST | WAKE_MAGIC | - WAKE_PHY | WAKE_ARP; + WAKE_BCAST | WAKE_MAGIC | WAKE_PHY; /* apply any specific unsupported masks here */ if (adapter->flags & FLAG_NO_WAKE_UCAST) { wol->supported &= ~WAKE_UCAST; if (adapter->wol & E1000_WUFC_EX) - e_err("Interface does not support directed (unicast) " - "frame wake-up packets\n"); + e_err("Interface does not support directed (unicast) frame wake-up packets\n"); } if (adapter->wol & E1000_WUFC_EX) @@ -1841,12 +2095,9 @@ static void e1000_get_wol(struct net_device *netdev, wol->wolopts |= WAKE_MAGIC; if (adapter->wol & E1000_WUFC_LNKC) wol->wolopts |= WAKE_PHY; - if (adapter->wol & E1000_WUFC_ARP) - wol->wolopts |= WAKE_ARP; } -static int e1000_set_wol(struct net_device *netdev, - struct ethtool_wolinfo *wol) +static int e1000_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) { struct e1000_adapter *adapter = netdev_priv(netdev); /* @@ -1856,18 +2107,18 @@ static int e1000_set_wol(struct net_device *netdev, * Comment out that check for now until support for can/should wakeup * is added as part of Power Management features. */ -#if !defined(__VMKLNX__) +#ifndef __VMKLNX__ if (!(adapter->flags & FLAG_HAS_WOL) || - !device_can_wakeup(&adapter->pdev->dev) || + !device_can_wakeup(pci_dev_to_dev(adapter->pdev)) || (wol->wolopts & ~(WAKE_UCAST | WAKE_MCAST | WAKE_BCAST | - WAKE_MAGIC | WAKE_PHY | WAKE_ARP))) + WAKE_MAGIC | WAKE_PHY))) return -EOPNOTSUPP; -#else /* defined(__VMKLNX__) */ +#else /* !__VMKLNX__ */ if (!(adapter->flags & FLAG_HAS_WOL) || (wol->wolopts & ~(WAKE_UCAST | WAKE_MCAST | WAKE_BCAST | - WAKE_MAGIC | WAKE_PHY | WAKE_ARP))) + WAKE_MAGIC | WAKE_PHY))) return -EOPNOTSUPP; -#endif /* defined(__VMKLNX__) */ +#endif /* !__VMKLNX__ */ /* these settings will always override what we currently have */ adapter->wol = 0; @@ -1882,24 +2133,60 @@ static int e1000_set_wol(struct net_device *netdev, adapter->wol |= E1000_WUFC_MAG; if (wol->wolopts & WAKE_PHY) adapter->wol |= E1000_WUFC_LNKC; - if (wol->wolopts & WAKE_ARP) - adapter->wol |= E1000_WUFC_ARP; - device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol); + device_set_wakeup_enable(pci_dev_to_dev(adapter->pdev), adapter->wol); return 0; } +#ifdef HAVE_ETHTOOL_SET_PHYS_ID +static int e1000_set_phys_id(struct net_device *netdev, + enum ethtool_phys_id_state state) +{ + struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; + + switch (state) { + case ETHTOOL_ID_ACTIVE: + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + + if (!hw->mac.ops.blink_led) + return 2; /* cycle on/off twice per second */ + + hw->mac.ops.blink_led(hw); + break; + + case ETHTOOL_ID_INACTIVE: + if (hw->phy.type == e1000_phy_ife) + e1e_wphy(hw, IFE_PHY_SPECIAL_CONTROL_LED, 0); + hw->mac.ops.led_off(hw); + hw->mac.ops.cleanup_led(hw); + pm_runtime_put_sync(netdev->dev.parent); + break; + + case ETHTOOL_ID_ON: + hw->mac.ops.led_on(hw); + break; + + case ETHTOOL_ID_OFF: + hw->mac.ops.led_off(hw); + break; + } + + return 0; +} +#else /* HAVE_ETHTOOL_SET_PHYS_ID */ /* toggle LED 4 times per second = 2 "blinks" per second */ #define E1000_ID_INTERVAL (HZ/4) /* bit defines for adapter->led_status */ #define E1000_LED_ON 0 -static void e1000e_led_blink_task(struct work_struct *work) +void e1000e_led_blink_task(struct work_struct *work) { struct e1000_adapter *adapter = container_of(work, - struct e1000_adapter, led_blink_task); + struct e1000_adapter, + led_blink_task); if (test_and_change_bit(E1000_LED_ON, &adapter->led_status)) adapter->hw.mac.ops.led_off(&adapter->hw); @@ -1909,7 +2196,7 @@ static void e1000e_led_blink_task(struct work_struct *work) static void e1000_led_blink_callback(unsigned long data) { - struct e1000_adapter *adapter = (struct e1000_adapter *) data; + struct e1000_adapter *adapter = (struct e1000_adapter *)data; schedule_work(&adapter->led_blink_task); mod_timer(&adapter->blink_timer, jiffies + E1000_ID_INTERVAL); @@ -1925,14 +2212,15 @@ static int e1000_phys_id(struct net_device *netdev, u32 data) if ((hw->phy.type == e1000_phy_ife) || (hw->mac.type == e1000_pchlan) || - (hw->mac.type == e1000_82583) || - (hw->mac.type == e1000_82574)) { - INIT_WORK(&adapter->led_blink_task, e1000e_led_blink_task); + (hw->mac.type == e1000_pch2lan) || + (hw->mac.type == e1000_pch_lpt) || + (hw->mac.type == e1000_pch_spt) || + (hw->mac.type == e1000_82583) || (hw->mac.type == e1000_82574)) { if (!adapter->blink_timer.function) { init_timer(&adapter->blink_timer); adapter->blink_timer.function = - e1000_led_blink_callback; - adapter->blink_timer.data = (unsigned long) adapter; + e1000_led_blink_callback; + adapter->blink_timer.data = (unsigned long)adapter; } mod_timer(&adapter->blink_timer, jiffies); msleep_interruptible(data * 1000); @@ -1940,7 +2228,7 @@ static int e1000_phys_id(struct net_device *netdev, u32 data) if (hw->phy.type == e1000_phy_ife) e1e_wphy(hw, IFE_PHY_SPECIAL_CONTROL_LED, 0); } else { - e1000e_blink_led(hw); + e1000e_blink_led_generic(hw); msleep_interruptible(data * 1000); } @@ -1950,13 +2238,14 @@ static int e1000_phys_id(struct net_device *netdev, u32 data) return 0; } +#endif /* HAVE_ETHTOOL_SET_PHYS_ID */ static int e1000_get_coalesce(struct net_device *netdev, struct ethtool_coalesce *ec) { struct e1000_adapter *adapter = netdev_priv(netdev); - if (adapter->itr_setting <= 3) + if (adapter->itr_setting <= 4) ec->rx_coalesce_usecs = adapter->itr_setting; else ec->rx_coalesce_usecs = 1000000 / adapter->itr_setting; @@ -1968,15 +2257,17 @@ static int e1000_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ec) { struct e1000_adapter *adapter = netdev_priv(netdev); - struct e1000_hw *hw = &adapter->hw; if ((ec->rx_coalesce_usecs > E1000_MAX_ITR_USECS) || - ((ec->rx_coalesce_usecs > 3) && + ((ec->rx_coalesce_usecs > 4) && (ec->rx_coalesce_usecs < E1000_MIN_ITR_USECS)) || (ec->rx_coalesce_usecs == 2)) return -EINVAL; - if (ec->rx_coalesce_usecs <= 3) { + if (ec->rx_coalesce_usecs == 4) { + adapter->itr_setting = 4; + adapter->itr = adapter->itr_setting; + } else if (ec->rx_coalesce_usecs <= 3) { adapter->itr = 20000; adapter->itr_setting = ec->rx_coalesce_usecs; } else { @@ -1984,10 +2275,14 @@ static int e1000_set_coalesce(struct net_device *netdev, adapter->itr_setting = adapter->itr & ~3; } + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + if (adapter->itr_setting != 0) - ew32(ITR, 1000000000 / (adapter->itr * 256)); + e1000e_write_itr(adapter, adapter->itr); else - ew32(ITR, 0); + e1000e_write_itr(adapter, 0); + + pm_runtime_put_sync(netdev->dev.parent); return 0; } @@ -1995,35 +2290,74 @@ static int e1000_set_coalesce(struct net_device *netdev, static int e1000_nway_reset(struct net_device *netdev) { struct e1000_adapter *adapter = netdev_priv(netdev); - if (netif_running(netdev)) - e1000e_reinit_locked(adapter); + + if (!netif_running(netdev)) + return -EAGAIN; + + if (!adapter->hw.mac.autoneg) + return -EINVAL; + + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + e1000e_reinit_locked(adapter); + pm_runtime_put_sync(netdev->dev.parent); + return 0; } static void e1000_get_ethtool_stats(struct net_device *netdev, - struct ethtool_stats *stats, + struct ethtool_stats __always_unused *stats, u64 *data) { struct e1000_adapter *adapter = netdev_priv(netdev); +#ifdef HAVE_NDO_GET_STATS64 + struct rtnl_link_stats64 net_stats; +#endif int i; + char *p = NULL; + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + +#ifdef HAVE_NDO_GET_STATS64 + e1000e_get_stats64(netdev, &net_stats); +#else e1000e_update_stats(adapter); +#endif + + pm_runtime_put_sync(netdev->dev.parent); + for (i = 0; i < E1000_GLOBAL_STATS_LEN; i++) { - char *p = (char *)adapter+e1000_gstrings_stats[i].stat_offset; + switch (e1000_gstrings_stats[i].type) { + case NETDEV_STATS: +#ifdef HAVE_NDO_GET_STATS64 + p = (char *)&net_stats + +#else + p = (char *)netdev + +#endif + e1000_gstrings_stats[i].stat_offset; + break; + case E1000_STATS: + p = (char *)adapter + + e1000_gstrings_stats[i].stat_offset; + break; + default: + data[i] = 0; + continue; + } + data[i] = (e1000_gstrings_stats[i].sizeof_stat == - sizeof(u64)) ? *(u64 *)p : *(u32 *)p; + sizeof(u64)) ? *(u64 *)p : *(u32 *)p; } } -static void e1000_get_strings(struct net_device *netdev, u32 stringset, - u8 *data) +static void e1000_get_strings(struct net_device __always_unused *netdev, + u32 stringset, u8 *data) { u8 *p = data; int i; switch (stringset) { case ETH_SS_TEST: - memcpy(data, *e1000_gstrings_test, sizeof(e1000_gstrings_test)); + memcpy(data, e1000_gstrings_test, sizeof(e1000_gstrings_test)); break; case ETH_SS_STATS: for (i = 0; i < E1000_GLOBAL_STATS_LEN; i++) { @@ -2035,6 +2369,231 @@ static void e1000_get_strings(struct net_device *netdev, u32 stringset, } } +#ifdef ETHTOOL_GRXRINGS +#ifdef HAVE_ETHTOOL_GET_RXNFC_VOID_RULE_LOCS +static int e1000_get_rxnfc(struct net_device *netdev, + struct ethtool_rxnfc *info, + void __always_unused *rule_locs) +#else +static int e1000_get_rxnfc(struct net_device *netdev, + struct ethtool_rxnfc *info, + u32 __always_unused *rule_locs) +#endif +{ + info->data = 0; + + switch (info->cmd) { + case ETHTOOL_GRXFH: { + struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; + u32 mrqc; + + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + mrqc = er32(MRQC); + pm_runtime_put_sync(netdev->dev.parent); + + if (!(mrqc & E1000_MRQC_RSS_FIELD_MASK)) + return 0; + + switch (info->flow_type) { + case TCP_V4_FLOW: + if (mrqc & E1000_MRQC_RSS_FIELD_IPV4_TCP) + info->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; + /* fall through */ + case UDP_V4_FLOW: + case SCTP_V4_FLOW: + case AH_ESP_V4_FLOW: + case IPV4_FLOW: + if (mrqc & E1000_MRQC_RSS_FIELD_IPV4) + info->data |= RXH_IP_SRC | RXH_IP_DST; + break; + case TCP_V6_FLOW: + if (mrqc & E1000_MRQC_RSS_FIELD_IPV6_TCP) + info->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; + /* fall through */ + case UDP_V6_FLOW: + case SCTP_V6_FLOW: + case AH_ESP_V6_FLOW: + case IPV6_FLOW: + if (mrqc & E1000_MRQC_RSS_FIELD_IPV6) + info->data |= RXH_IP_SRC | RXH_IP_DST; + break; + default: + break; + } + return 0; + } + default: + return -EOPNOTSUPP; + } +} +#endif /* ETHTOOL_GRXRINGS */ + +#ifdef ETHTOOL_GEEE +static int e1000e_get_eee(struct net_device *netdev, struct ethtool_eee *edata) +{ + struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; + u16 cap_addr, lpa_addr, pcs_stat_addr, phy_data; + u32 ret_val; + + if (!(adapter->flags2 & FLAG2_HAS_EEE)) + return -EOPNOTSUPP; + + switch (hw->phy.type) { + case e1000_phy_82579: + cap_addr = I82579_EEE_CAPABILITY; + lpa_addr = I82579_EEE_LP_ABILITY; + pcs_stat_addr = I82579_EEE_PCS_STATUS; + break; + case e1000_phy_i217: + cap_addr = I217_EEE_CAPABILITY; + lpa_addr = I217_EEE_LP_ABILITY; + pcs_stat_addr = I217_EEE_PCS_STATUS; + break; + default: + return -EOPNOTSUPP; + } + + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) { + pm_runtime_put_sync(netdev->dev.parent); + return -EBUSY; + } + + /* EEE Capability */ + ret_val = e1000_read_emi_reg_locked(hw, cap_addr, &phy_data); + if (ret_val) + goto release; + edata->supported = mmd_eee_cap_to_ethtool_sup_t(phy_data); + + /* EEE Advertised */ + edata->advertised = mmd_eee_adv_to_ethtool_adv_t(adapter->eee_advert); + + /* EEE Link Partner Advertised */ + ret_val = e1000_read_emi_reg_locked(hw, lpa_addr, &phy_data); + if (ret_val) + goto release; + edata->lp_advertised = mmd_eee_adv_to_ethtool_adv_t(phy_data); + + /* EEE PCS Status */ + ret_val = e1000_read_emi_reg_locked(hw, pcs_stat_addr, &phy_data); + if (ret_val) + goto release; + if (hw->phy.type == e1000_phy_82579) + phy_data <<= 8; + + /* Result of the EEE auto negotiation - there is no register that + * has the status of the EEE negotiation so do a best-guess based + * on whether Tx or Rx LPI indications have been received. + */ + if (phy_data & (E1000_EEE_TX_LPI_RCVD | E1000_EEE_RX_LPI_RCVD)) + edata->eee_active = true; + + edata->eee_enabled = !hw->dev_spec.ich8lan.eee_disable; + edata->tx_lpi_enabled = true; + edata->tx_lpi_timer = er32(LPIC) >> E1000_LPIC_LPIET_SHIFT; + +release: + hw->phy.ops.release(hw); + if (ret_val) + ret_val = -ENODATA; + + pm_runtime_put_sync(netdev->dev.parent); + + return ret_val; +} +#endif /* ETHTOOL_GEEE */ + +#ifdef ETHTOOL_SEEE +static int e1000e_set_eee(struct net_device *netdev, struct ethtool_eee *edata) +{ + struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; + struct ethtool_eee eee_curr; + s32 ret_val; + + ret_val = e1000e_get_eee(netdev, &eee_curr); + if (ret_val) + return ret_val; + + if (eee_curr.tx_lpi_enabled != edata->tx_lpi_enabled) { + e_err("Setting EEE tx-lpi is not supported\n"); + return -EINVAL; + } + + if (eee_curr.tx_lpi_timer != edata->tx_lpi_timer) { + e_err("Setting EEE Tx LPI timer is not supported\n"); + return -EINVAL; + } + + if (edata->advertised & ~(ADVERTISE_100_FULL | ADVERTISE_1000_FULL)) { + e_err("EEE advertisement supports only 100TX and/or 1000T full-duplex\n"); + return -EINVAL; + } + + adapter->eee_advert = ethtool_adv_to_mmd_eee_adv_t(edata->advertised); + + hw->dev_spec.ich8lan.eee_disable = !edata->eee_enabled; + + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + + /* reset the link */ + if (netif_running(netdev)) + e1000e_reinit_locked(adapter); + else + e1000e_reset(adapter); + + pm_runtime_put_sync(netdev->dev.parent); + + return 0; +} +#endif /* ETHTOOL_SEEE */ + +#ifdef ETHTOOL_GET_TS_INFO +static int e1000e_get_ts_info(struct net_device *netdev, + struct ethtool_ts_info *info) +{ + struct e1000_adapter *adapter = netdev_priv(netdev); + + ethtool_op_get_ts_info(netdev, info); + + if (!(adapter->flags & FLAG_HAS_HW_TIMESTAMP)) + return 0; + +#ifdef HAVE_HW_TIME_STAMP + info->so_timestamping |= (SOF_TIMESTAMPING_TX_HARDWARE | + SOF_TIMESTAMPING_RX_HARDWARE | + SOF_TIMESTAMPING_RAW_HARDWARE); + + info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON); + + info->rx_filters = ((1 << HWTSTAMP_FILTER_NONE) | +#ifdef HAVE_PTP_1588_CLOCK + (1 << HWTSTAMP_FILTER_PTP_V1_L4_SYNC) | + (1 << HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ) | + (1 << HWTSTAMP_FILTER_PTP_V2_L4_SYNC) | + (1 << HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ) | + (1 << HWTSTAMP_FILTER_PTP_V2_L2_SYNC) | + (1 << HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ) | + (1 << HWTSTAMP_FILTER_PTP_V2_EVENT) | + (1 << HWTSTAMP_FILTER_PTP_V2_SYNC) | + (1 << HWTSTAMP_FILTER_PTP_V2_DELAY_REQ) | +#endif + (1 << HWTSTAMP_FILTER_ALL)); + +#ifdef HAVE_PTP_1588_CLOCK + if (adapter->ptp_clock) + info->phc_index = ptp_clock_index(adapter->ptp_clock); +#endif /* HAVE_PTP_1588_CLOCK */ +#endif /* HAVE_HW_TIME_STAMP */ + + return 0; +} +#endif /* ETHTOOL_GET_TS_INFO */ + static const struct ethtool_ops e1000_ethtool_ops = { .get_settings = e1000_get_settings, .set_settings = e1000_set_settings, @@ -2046,11 +2605,7 @@ static const struct ethtool_ops e1000_ethtool_ops = { .get_msglevel = e1000_get_msglevel, .set_msglevel = e1000_set_msglevel, .nway_reset = e1000_nway_reset, -#if !defined(__VMKLNX__) - .get_link = e1000_get_link, -#else /* defined(__VMKLNX__) */ - .get_link = ethtool_op_get_link, -#endif /* defined(__VMKLNX__) */ + .get_link = ethtool_op_get_link, .get_eeprom_len = e1000_get_eeprom_len, .get_eeprom = e1000_get_eeprom, .set_eeprom = e1000_set_eeprom, @@ -2058,6 +2613,7 @@ static const struct ethtool_ops e1000_ethtool_ops = { .set_ringparam = e1000_set_ringparam, .get_pauseparam = e1000_get_pauseparam, .set_pauseparam = e1000_set_pauseparam, +#ifndef HAVE_NDO_SET_FEATURES .get_rx_csum = e1000_get_rx_csum, .set_rx_csum = e1000_set_rx_csum, .get_tx_csum = e1000_get_tx_csum, @@ -2068,23 +2624,66 @@ static const struct ethtool_ops e1000_ethtool_ops = { .get_tso = ethtool_op_get_tso, .set_tso = e1000_set_tso, #endif +#ifdef ETHTOOL_GFLAGS + .get_flags = ethtool_op_get_flags, +#endif +#if defined(ETHTOOL_SFLAGS) && (defined(NETIF_F_RXHASH) || !defined(HAVE_VLAN_RX_REGISTER)) + .set_flags = e1000e_set_flags, +#endif +#endif /* HAVE_NDO_SET_FEATURES */ .self_test = e1000_diag_test, .get_strings = e1000_get_strings, +#ifdef HAVE_ETHTOOL_SET_PHYS_ID +#ifndef HAVE_RHEL6_ETHTOOL_OPS_EXT_STRUCT + .set_phys_id = e1000_set_phys_id, +#endif /* !HAVE_RHEL6_ETHTOOL_OPS_EXT_STRUCT */ +#else .phys_id = e1000_phys_id, +#endif .get_ethtool_stats = e1000_get_ethtool_stats, +#ifdef HAVE_ETHTOOL_GET_SSET_COUNT + .get_sset_count = e1000e_get_sset_count, +#else .self_test_count = e1000_get_self_test_count, .get_stats_count = e1000_get_stats_count, +#endif +#ifdef HAVE_ETHTOOL_GET_PERM_ADDR + .get_perm_addr = ethtool_op_get_perm_addr, +#endif .get_coalesce = e1000_get_coalesce, .set_coalesce = e1000_set_coalesce, -#ifdef NETIF_F_LRO - .get_flags = ethtool_op_get_flags, - .set_flags = ethtool_op_set_flags, +#ifdef ETHTOOL_GRXRINGS + .get_rxnfc = e1000_get_rxnfc, #endif +#ifndef HAVE_RHEL6_ETHTOOL_OPS_EXT_STRUCT +#ifdef ETHTOOL_GET_TS_INFO + .get_ts_info = e1000e_get_ts_info, +#endif +#ifdef ETHTOOL_GEEE + .get_eee = e1000e_get_eee, +#endif +#ifdef ETHTOOL_SEEE + .set_eee = e1000e_set_eee, +#endif +#endif /* !HAVE_RHEL6_ETHTOOL_OPS_EXT_STRUCT */ +}; + +#ifdef HAVE_RHEL6_ETHTOOL_OPS_EXT_STRUCT +static const struct ethtool_ops_ext e1000e_ethtool_ops_ext = { + .size = sizeof(struct ethtool_ops_ext), + .set_phys_id = e1000_set_phys_id, + .get_ts_info = e1000e_get_ts_info, + .get_eee = e1000e_get_eee, + .set_eee = e1000e_set_eee, }; +#endif /* HAVE_RHEL6_ETHTOOL_OPS_EXT_STRUCT */ void e1000e_set_ethtool_ops(struct net_device *netdev) { /* have to "undeclare" const on this struct to remove warnings */ - SET_ETHTOOL_OPS(netdev, (struct ethtool_ops *)&e1000_ethtool_ops); + netdev->ethtool_ops = (struct ethtool_ops *)&e1000_ethtool_ops; +#ifdef HAVE_RHEL6_ETHTOOL_OPS_EXT_STRUCT + set_ethtool_ops_ext(netdev, &e1000e_ethtool_ops_ext); +#endif /* HAVE_RHEL6_ETHTOOL_OPS_EXT_STRUCT */ } #endif /* SIOCETHTOOL */ diff --git a/vmkdrivers/src_9/drivers/net/e1000e/hw.h b/vmkdrivers/src_9/drivers/net/e1000e/hw.h index 34114ad54f548b5469d28f6a1d713e9bdd30bfec..e7fe20a0de82b8605eea6f95546b0ffb99f74699 100755 --- a/vmkdrivers/src_9/drivers/net/e1000e/hw.h +++ b/vmkdrivers/src_9/drivers/net/e1000e/hw.h @@ -1,105 +1,106 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ - -#ifndef _E1000_HW_H_ -#define _E1000_HW_H_ - -#if defined(__VMKLNX__) -#include "e1000_osdep.h" -#endif /* defined(__VMKLNX__) */ -#include "e1000_regs.h" -#include "e1000_defines.h" +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +#ifndef _E1000E_HW_H_ +#define _E1000E_HW_H_ + +#include "regs.h" +#include "defines.h" struct e1000_hw; -#define E1000_DEV_ID_82571EB_COPPER 0x105E -#define E1000_DEV_ID_82571EB_FIBER 0x105F -#define E1000_DEV_ID_82571EB_SERDES 0x1060 -#define E1000_DEV_ID_82571EB_SERDES_DUAL 0x10D9 -#define E1000_DEV_ID_82571EB_SERDES_QUAD 0x10DA -#define E1000_DEV_ID_82571EB_QUAD_COPPER 0x10A4 -#define E1000_DEV_ID_82571PT_QUAD_COPPER 0x10D5 -#define E1000_DEV_ID_82571EB_QUAD_FIBER 0x10A5 -#define E1000_DEV_ID_82571EB_QUAD_COPPER_LP 0x10BC -#define E1000_DEV_ID_82572EI_COPPER 0x107D -#define E1000_DEV_ID_82572EI_FIBER 0x107E -#define E1000_DEV_ID_82572EI_SERDES 0x107F -#define E1000_DEV_ID_82572EI 0x10B9 -#define E1000_DEV_ID_82573E 0x108B -#define E1000_DEV_ID_82573E_IAMT 0x108C -#define E1000_DEV_ID_82573L 0x109A -#define E1000_DEV_ID_82574L 0x10D3 -#define E1000_DEV_ID_82574LA 0x10F6 -#define E1000_DEV_ID_82583V 0x150C -#define E1000_DEV_ID_80003ES2LAN_COPPER_DPT 0x1096 -#define E1000_DEV_ID_80003ES2LAN_SERDES_DPT 0x1098 -#define E1000_DEV_ID_80003ES2LAN_COPPER_SPT 0x10BA -#define E1000_DEV_ID_80003ES2LAN_SERDES_SPT 0x10BB -#define E1000_DEV_ID_ICH8_82567V_3 0x1501 -#define E1000_DEV_ID_ICH8_IGP_M_AMT 0x1049 -#define E1000_DEV_ID_ICH8_IGP_AMT 0x104A -#define E1000_DEV_ID_ICH8_IGP_C 0x104B -#define E1000_DEV_ID_ICH8_IFE 0x104C -#define E1000_DEV_ID_ICH8_IFE_GT 0x10C4 -#define E1000_DEV_ID_ICH8_IFE_G 0x10C5 -#define E1000_DEV_ID_ICH8_IGP_M 0x104D -#define E1000_DEV_ID_ICH9_IGP_M 0x10BF -#define E1000_DEV_ID_ICH9_IGP_M_AMT 0x10F5 -#define E1000_DEV_ID_ICH9_IGP_M_V 0x10CB -#define E1000_DEV_ID_ICH9_IGP_AMT 0x10BD -#define E1000_DEV_ID_ICH9_BM 0x10E5 -#define E1000_DEV_ID_ICH9_IGP_C 0x294C -#define E1000_DEV_ID_ICH9_IFE 0x10C0 -#define E1000_DEV_ID_ICH9_IFE_GT 0x10C3 -#define E1000_DEV_ID_ICH9_IFE_G 0x10C2 -#define E1000_DEV_ID_ICH10_R_BM_LM 0x10CC -#define E1000_DEV_ID_ICH10_R_BM_LF 0x10CD -#define E1000_DEV_ID_ICH10_R_BM_V 0x10CE -#define E1000_DEV_ID_ICH10_D_BM_LM 0x10DE -#define E1000_DEV_ID_ICH10_D_BM_LF 0x10DF -#define E1000_DEV_ID_PCH_M_HV_LM 0x10EA -#define E1000_DEV_ID_PCH_M_HV_LC 0x10EB -#define E1000_DEV_ID_PCH_D_HV_DM 0x10EF -#define E1000_DEV_ID_PCH_D_HV_DC 0x10F0 -#define E1000_REVISION_0 0 -#define E1000_REVISION_1 1 -#define E1000_REVISION_2 2 -#define E1000_REVISION_3 3 -#define E1000_REVISION_4 4 - -#define E1000_FUNC_0 0 -#define E1000_FUNC_1 1 - -#define E1000_ALT_MAC_ADDRESS_OFFSET_LAN0 0 -#define E1000_ALT_MAC_ADDRESS_OFFSET_LAN1 3 +#define E1000_DEV_ID_82571EB_COPPER 0x105E +#define E1000_DEV_ID_82571EB_FIBER 0x105F +#define E1000_DEV_ID_82571EB_SERDES 0x1060 +#define E1000_DEV_ID_82571EB_QUAD_COPPER 0x10A4 +#define E1000_DEV_ID_82571PT_QUAD_COPPER 0x10D5 +#define E1000_DEV_ID_82571EB_QUAD_FIBER 0x10A5 +#define E1000_DEV_ID_82571EB_QUAD_COPPER_LP 0x10BC +#define E1000_DEV_ID_82571EB_SERDES_DUAL 0x10D9 +#define E1000_DEV_ID_82571EB_SERDES_QUAD 0x10DA +#define E1000_DEV_ID_82572EI_COPPER 0x107D +#define E1000_DEV_ID_82572EI_FIBER 0x107E +#define E1000_DEV_ID_82572EI_SERDES 0x107F +#define E1000_DEV_ID_82572EI 0x10B9 +#define E1000_DEV_ID_82573E 0x108B +#define E1000_DEV_ID_82573E_IAMT 0x108C +#define E1000_DEV_ID_82573L 0x109A +#define E1000_DEV_ID_82574L 0x10D3 +#define E1000_DEV_ID_82574LA 0x10F6 +#define E1000_DEV_ID_82583V 0x150C +#define E1000_DEV_ID_80003ES2LAN_COPPER_DPT 0x1096 +#define E1000_DEV_ID_80003ES2LAN_SERDES_DPT 0x1098 +#define E1000_DEV_ID_80003ES2LAN_COPPER_SPT 0x10BA +#define E1000_DEV_ID_80003ES2LAN_SERDES_SPT 0x10BB +#define E1000_DEV_ID_ICH8_82567V_3 0x1501 +#define E1000_DEV_ID_ICH8_IGP_M_AMT 0x1049 +#define E1000_DEV_ID_ICH8_IGP_AMT 0x104A +#define E1000_DEV_ID_ICH8_IGP_C 0x104B +#define E1000_DEV_ID_ICH8_IFE 0x104C +#define E1000_DEV_ID_ICH8_IFE_GT 0x10C4 +#define E1000_DEV_ID_ICH8_IFE_G 0x10C5 +#define E1000_DEV_ID_ICH8_IGP_M 0x104D +#define E1000_DEV_ID_ICH9_IGP_AMT 0x10BD +#define E1000_DEV_ID_ICH9_BM 0x10E5 +#define E1000_DEV_ID_ICH9_IGP_M_AMT 0x10F5 +#define E1000_DEV_ID_ICH9_IGP_M 0x10BF +#define E1000_DEV_ID_ICH9_IGP_M_V 0x10CB +#define E1000_DEV_ID_ICH9_IGP_C 0x294C +#define E1000_DEV_ID_ICH9_IFE 0x10C0 +#define E1000_DEV_ID_ICH9_IFE_GT 0x10C3 +#define E1000_DEV_ID_ICH9_IFE_G 0x10C2 +#define E1000_DEV_ID_ICH10_R_BM_LM 0x10CC +#define E1000_DEV_ID_ICH10_R_BM_LF 0x10CD +#define E1000_DEV_ID_ICH10_R_BM_V 0x10CE +#define E1000_DEV_ID_ICH10_D_BM_LM 0x10DE +#define E1000_DEV_ID_ICH10_D_BM_LF 0x10DF +#define E1000_DEV_ID_ICH10_D_BM_V 0x1525 +#define E1000_DEV_ID_PCH_M_HV_LM 0x10EA +#define E1000_DEV_ID_PCH_M_HV_LC 0x10EB +#define E1000_DEV_ID_PCH_D_HV_DM 0x10EF +#define E1000_DEV_ID_PCH_D_HV_DC 0x10F0 +#define E1000_DEV_ID_PCH2_LV_LM 0x1502 +#define E1000_DEV_ID_PCH2_LV_V 0x1503 +#define E1000_DEV_ID_PCH_LPT_I217_LM 0x153A +#define E1000_DEV_ID_PCH_LPT_I217_V 0x153B +#define E1000_DEV_ID_PCH_LPTLP_I218_LM 0x155A +#define E1000_DEV_ID_PCH_LPTLP_I218_V 0x1559 +#define E1000_DEV_ID_PCH_I218_LM2 0x15A0 +#define E1000_DEV_ID_PCH_I218_V2 0x15A1 +#define E1000_DEV_ID_PCH_I218_LM3 0x15A2 /* Wildcat Point PCH */ +#define E1000_DEV_ID_PCH_I218_V3 0x15A3 /* Wildcat Point PCH */ +#define E1000_DEV_ID_PCH_SPT_I219_LM 0x156F /* Sunrise Point PCH */ +#define E1000_DEV_ID_PCH_SPT_I219_V 0x1570 /* Sunrise Point PCH */ +#define E1000_DEV_ID_PCH_SPT_I219_LM2 0x15B8 /* Sunrise Point-H PCH */ +#define E1000_DEV_ID_PCH_SPT_I219_V2 0x15B7 /* Sunrise Point-H PCH */ + +#define E1000_REVISION_4 4 + +#define E1000_FUNC_1 1 + +#define E1000_ALT_MAC_ADDRESS_OFFSET_LAN0 0 +#define E1000_ALT_MAC_ADDRESS_OFFSET_LAN1 3 enum e1000_mac_type { - e1000_undefined = 0, e1000_82571, e1000_82572, e1000_82573, @@ -110,7 +111,9 @@ enum e1000_mac_type { e1000_ich9lan, e1000_ich10lan, e1000_pchlan, - e1000_num_macs /* List is 1-based, so subtract 1 for true count. */ + e1000_pch2lan, + e1000_pch_lpt, + e1000_pch_spt, }; enum e1000_media_type { @@ -132,7 +135,7 @@ enum e1000_nvm_type { enum e1000_nvm_override { e1000_nvm_override_none = 0, e1000_nvm_override_spi_small, - e1000_nvm_override_spi_large, + e1000_nvm_override_spi_large }; enum e1000_phy_type { @@ -147,26 +150,8 @@ enum e1000_phy_type { e1000_phy_bm, e1000_phy_82578, e1000_phy_82577, -}; - -enum e1000_bus_type { - e1000_bus_type_unknown = 0, - e1000_bus_type_pci, - e1000_bus_type_pcix, - e1000_bus_type_pci_express, - e1000_bus_type_reserved -}; - -enum e1000_bus_speed { - e1000_bus_speed_unknown = 0, - e1000_bus_speed_33, - e1000_bus_speed_66, - e1000_bus_speed_100, - e1000_bus_speed_120, - e1000_bus_speed_133, - e1000_bus_speed_2500, - e1000_bus_speed_5000, - e1000_bus_speed_reserved + e1000_phy_82579, + e1000_phy_i217, }; enum e1000_bus_width { @@ -220,16 +205,15 @@ enum e1000_serdes_link_state { e1000_serdes_link_forced_up }; -/* Receive Descriptor */ -struct e1000_rx_desc { - __le64 buffer_addr; /* Address of the descriptor's data buffer */ - __le16 length; /* Length of data DMAed into data buffer */ - __le16 csum; /* Packet checksum */ - u8 status; /* Descriptor status */ - u8 errors; /* Descriptor Errors */ - __le16 special; -}; - +#ifndef __le16 +#define __le16 u16 +#endif +#ifndef __le32 +#define __le32 u32 +#endif +#ifndef __le64 +#define __le64 u64 +#endif /* Receive Descriptor - Extended */ union e1000_rx_desc_extended { struct { @@ -238,24 +222,28 @@ union e1000_rx_desc_extended { } read; struct { struct { - __le32 mrq; /* Multiple Rx Queues */ + __le32 mrq; /* Multiple Rx Queues */ union { - __le32 rss; /* RSS Hash */ + __le32 rss; /* RSS Hash */ struct { - __le16 ip_id; /* IP id */ - __le16 csum; /* Packet Checksum */ + __le16 ip_id; /* IP id */ + __le16 csum; /* Packet Checksum */ } csum_ip; } hi_dword; } lower; struct { - __le32 status_error; /* ext status/error */ + __le32 status_error; /* ext status/error */ __le16 length; - __le16 vlan; /* VLAN tag */ + __le16 vlan; /* VLAN tag */ } upper; - } wb; /* writeback */ + } wb; /* writeback */ }; #define MAX_PS_BUFFERS 4 + +/* Number of packet split data buffers (not including the header buffer) */ +#define PS_PAGE_BUFFERS (MAX_PS_BUFFERS - 1) + /* Receive Descriptor - Packet Split */ union e1000_rx_desc_packet_split { struct { @@ -264,44 +252,45 @@ union e1000_rx_desc_packet_split { } read; struct { struct { - __le32 mrq; /* Multiple Rx Queues */ + __le32 mrq; /* Multiple Rx Queues */ union { - __le32 rss; /* RSS Hash */ + __le32 rss; /* RSS Hash */ struct { - __le16 ip_id; /* IP id */ - __le16 csum; /* Packet Checksum */ + __le16 ip_id; /* IP id */ + __le16 csum; /* Packet Checksum */ } csum_ip; } hi_dword; } lower; struct { - __le32 status_error; /* ext status/error */ - __le16 length0; /* length of buffer 0 */ - __le16 vlan; /* VLAN tag */ + __le32 status_error; /* ext status/error */ + __le16 length0; /* length of buffer 0 */ + __le16 vlan; /* VLAN tag */ } middle; struct { __le16 header_status; - __le16 length[3]; /* length of buffers 1-3 */ + /* length of buffers 1-3 */ + __le16 length[PS_PAGE_BUFFERS]; } upper; __le64 reserved; - } wb; /* writeback */ + } wb; /* writeback */ }; /* Transmit Descriptor */ struct e1000_tx_desc { - __le64 buffer_addr; /* Address of the descriptor's data buffer */ + __le64 buffer_addr; /* Address of the descriptor's data buffer */ union { __le32 data; struct { - __le16 length; /* Data buffer length */ - u8 cso; /* Checksum offset */ - u8 cmd; /* Descriptor control */ + __le16 length; /* Data buffer length */ + u8 cso; /* Checksum offset */ + u8 cmd; /* Descriptor control */ } flags; } lower; union { __le32 data; struct { - u8 status; /* Descriptor status */ - u8 css; /* Checksum start */ + u8 status; /* Descriptor status */ + u8 css; /* Checksum start */ __le16 special; } fields; } upper; @@ -312,37 +301,37 @@ struct e1000_context_desc { union { __le32 ip_config; struct { - u8 ipcss; /* IP checksum start */ - u8 ipcso; /* IP checksum offset */ - __le16 ipcse; /* IP checksum end */ + u8 ipcss; /* IP checksum start */ + u8 ipcso; /* IP checksum offset */ + __le16 ipcse; /* IP checksum end */ } ip_fields; } lower_setup; union { __le32 tcp_config; struct { - u8 tucss; /* TCP checksum start */ - u8 tucso; /* TCP checksum offset */ - __le16 tucse; /* TCP checksum end */ + u8 tucss; /* TCP checksum start */ + u8 tucso; /* TCP checksum offset */ + __le16 tucse; /* TCP checksum end */ } tcp_fields; } upper_setup; __le32 cmd_and_length; union { __le32 data; struct { - u8 status; /* Descriptor status */ - u8 hdr_len; /* Header length */ - __le16 mss; /* Maximum segment size */ + u8 status; /* Descriptor status */ + u8 hdr_len; /* Header length */ + __le16 mss; /* Maximum segment size */ } fields; } tcp_seg_setup; }; /* Offload data descriptor */ struct e1000_data_desc { - __le64 buffer_addr; /* Address of the descriptor's buffer address */ + __le64 buffer_addr; /* Address of the descriptor's buffer address */ union { __le32 data; struct { - __le16 length; /* Data buffer length */ + __le16 length; /* Data buffer length */ u8 typ_len_ext; u8 cmd; } flags; @@ -350,8 +339,8 @@ struct e1000_data_desc { union { __le32 data; struct { - u8 status; /* Descriptor status */ - u8 popts; /* Packet Options */ + u8 status; /* Descriptor status */ + u8 popts; /* Packet Options */ __le16 special; } fields; } upper; @@ -422,10 +411,8 @@ struct e1000_hw_stats { u64 ictxqmtc; u64 icrxdmtc; u64 icrxoc; - u64 doosync; }; - struct e1000_phy_stats { u32 idle_errors; u32 receive_errors; @@ -433,13 +420,13 @@ struct e1000_phy_stats { struct e1000_host_mng_dhcp_cookie { u32 signature; - u8 status; - u8 reserved0; + u8 status; + u8 reserved0; u16 vlan_id; u32 reserved1; u16 reserved2; - u8 reserved3; - u8 checksum; + u8 reserved3; + u8 checksum; }; /* Host Interface "Rev 1" */ @@ -450,7 +437,7 @@ struct e1000_host_command_header { u8 checksum; }; -#define E1000_HI_MAX_DATA_LENGTH 252 +#define E1000_HI_MAX_DATA_LENGTH 252 struct e1000_host_command_info { struct e1000_host_command_header command_header; u8 command_data[E1000_HI_MAX_DATA_LENGTH]; @@ -458,97 +445,107 @@ struct e1000_host_command_info { /* Host Interface "Rev 2" */ struct e1000_host_mng_command_header { - u8 command_id; - u8 checksum; + u8 command_id; + u8 checksum; u16 reserved1; u16 reserved2; u16 command_length; }; -#define E1000_HI_MAX_MNG_DATA_LENGTH 0x6F8 +#define E1000_HI_MAX_MNG_DATA_LENGTH 0x6F8 struct e1000_host_mng_command_info { struct e1000_host_mng_command_header command_header; u8 command_data[E1000_HI_MAX_MNG_DATA_LENGTH]; }; -#include "e1000_mac.h" -#include "e1000_phy.h" -#include "e1000_nvm.h" -#include "e1000_manage.h" +#include "mac.h" +#include "phy.h" +#include "nvm.h" +#include "manage.h" +/* Function pointers for the MAC. */ struct e1000_mac_operations { - /* Function pointers for the MAC. */ - s32 (*init_params)(struct e1000_hw *); - s32 (*id_led_init)(struct e1000_hw *); - s32 (*blink_led)(struct e1000_hw *); - s32 (*check_for_link)(struct e1000_hw *); - bool (*check_mng_mode)(struct e1000_hw *hw); - s32 (*cleanup_led)(struct e1000_hw *); - void (*clear_hw_cntrs)(struct e1000_hw *); - void (*clear_vfta)(struct e1000_hw *); - s32 (*get_bus_info)(struct e1000_hw *); - void (*set_lan_id)(struct e1000_hw *); - s32 (*get_link_up_info)(struct e1000_hw *, u16 *, u16 *); - s32 (*led_on)(struct e1000_hw *); - s32 (*led_off)(struct e1000_hw *); - void (*update_mc_addr_list)(struct e1000_hw *, u8 *, u32); - s32 (*reset_hw)(struct e1000_hw *); - s32 (*init_hw)(struct e1000_hw *); - s32 (*setup_link)(struct e1000_hw *); - s32 (*setup_physical_interface)(struct e1000_hw *); - s32 (*setup_led)(struct e1000_hw *); - void (*write_vfta)(struct e1000_hw *, u32, u32); - void (*mta_set)(struct e1000_hw *, u32); - void (*config_collision_dist)(struct e1000_hw *); - void (*rar_set)(struct e1000_hw *, u8*, u32); - s32 (*read_mac_addr)(struct e1000_hw *); - s32 (*validate_mdi_setting)(struct e1000_hw *); - s32 (*mng_host_if_write)(struct e1000_hw *, u8*, u16, u16, u8*); - s32 (*mng_write_cmd_header)(struct e1000_hw *hw, - struct e1000_host_mng_command_header*); - s32 (*mng_enable_host_if)(struct e1000_hw *); - s32 (*wait_autoneg)(struct e1000_hw *); -}; - + s32 (*id_led_init) (struct e1000_hw *); + s32 (*blink_led) (struct e1000_hw *); + bool (*check_mng_mode) (struct e1000_hw *); + s32 (*check_for_link) (struct e1000_hw *); + s32 (*cleanup_led) (struct e1000_hw *); + void (*clear_hw_cntrs) (struct e1000_hw *); + void (*clear_vfta) (struct e1000_hw *); + s32 (*get_bus_info) (struct e1000_hw *); + void (*set_lan_id) (struct e1000_hw *); + s32 (*get_link_up_info) (struct e1000_hw *, u16 *, u16 *); + s32 (*led_on) (struct e1000_hw *); + s32 (*led_off) (struct e1000_hw *); + void (*update_mc_addr_list) (struct e1000_hw *, u8 *, u32); + s32 (*reset_hw) (struct e1000_hw *); + s32 (*init_hw) (struct e1000_hw *); + s32 (*setup_link) (struct e1000_hw *); + s32 (*setup_physical_interface) (struct e1000_hw *); + s32 (*setup_led) (struct e1000_hw *); + void (*write_vfta) (struct e1000_hw *, u32, u32); + void (*config_collision_dist) (struct e1000_hw *); + int (*rar_set) (struct e1000_hw *, u8 *, u32); + u32 (*rar_get_count) (struct e1000_hw *); + s32 (*read_mac_addr) (struct e1000_hw *); + s32 (*validate_mdi_setting) (struct e1000_hw *); +}; + +/* When to use various PHY register access functions: + * + * Func Caller + * Function Does Does When to use + * ~~~~~~~~~~~~ ~~~~~ ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * X_reg L,P,A n/a for simple PHY reg accesses + * X_reg_locked P,A L for multiple accesses of different regs + * on different pages + * X_reg_page A L,P for multiple accesses of different regs + * on the same page + * + * Where X=[read|write], L=locking, P=sets page, A=register access + * + */ struct e1000_phy_operations { - s32 (*init_params)(struct e1000_hw *); - s32 (*acquire)(struct e1000_hw *); - s32 (*cfg_on_link_up)(struct e1000_hw *); - s32 (*check_polarity)(struct e1000_hw *); - s32 (*check_reset_block)(struct e1000_hw *); - s32 (*commit)(struct e1000_hw *); - s32 (*force_speed_duplex)(struct e1000_hw *); - s32 (*get_cfg_done)(struct e1000_hw *hw); - s32 (*get_cable_length)(struct e1000_hw *); - s32 (*get_info)(struct e1000_hw *); - s32 (*read_reg)(struct e1000_hw *, u32, u16 *); - s32 (*read_reg_locked)(struct e1000_hw *, u32, u16 *); - void (*release)(struct e1000_hw *); - s32 (*reset)(struct e1000_hw *); - s32 (*set_d0_lplu_state)(struct e1000_hw *, bool); - s32 (*set_d3_lplu_state)(struct e1000_hw *, bool); - s32 (*write_reg)(struct e1000_hw *, u32, u16); - s32 (*write_reg_locked)(struct e1000_hw *, u32, u16); - void (*power_up)(struct e1000_hw *); - void (*power_down)(struct e1000_hw *); -}; - + s32 (*acquire) (struct e1000_hw *); + s32 (*cfg_on_link_up) (struct e1000_hw *); + s32 (*check_polarity) (struct e1000_hw *); + s32 (*check_reset_block) (struct e1000_hw *); + s32 (*commit) (struct e1000_hw *); + s32 (*force_speed_duplex) (struct e1000_hw *); + s32 (*get_cfg_done) (struct e1000_hw *hw); + s32 (*get_cable_length) (struct e1000_hw *); + s32 (*get_info) (struct e1000_hw *); + s32 (*set_page) (struct e1000_hw *, u16); + s32 (*read_reg) (struct e1000_hw *, u32, u16 *); + s32 (*read_reg_locked) (struct e1000_hw *, u32, u16 *); + s32 (*read_reg_page) (struct e1000_hw *, u32, u16 *); + void (*release) (struct e1000_hw *); + s32 (*reset) (struct e1000_hw *); + s32 (*set_d0_lplu_state) (struct e1000_hw *, bool); + s32 (*set_d3_lplu_state) (struct e1000_hw *, bool); + s32 (*write_reg) (struct e1000_hw *, u32, u16); + s32 (*write_reg_locked) (struct e1000_hw *, u32, u16); + s32 (*write_reg_page) (struct e1000_hw *, u32, u16); + void (*power_up) (struct e1000_hw *); + void (*power_down) (struct e1000_hw *); +}; + +/* Function pointers for the NVM. */ struct e1000_nvm_operations { - s32 (*init_params)(struct e1000_hw *); - s32 (*acquire)(struct e1000_hw *); - s32 (*read)(struct e1000_hw *, u16, u16, u16 *); - void (*release)(struct e1000_hw *); - void (*reload)(struct e1000_hw *); - s32 (*update)(struct e1000_hw *); - s32 (*valid_led_default)(struct e1000_hw *, u16 *); - s32 (*validate)(struct e1000_hw *); - s32 (*write)(struct e1000_hw *, u16, u16, u16 *); + s32 (*acquire) (struct e1000_hw *); + s32 (*read) (struct e1000_hw *, u16, u16, u16 *); + void (*release) (struct e1000_hw *); + void (*reload) (struct e1000_hw *); + s32 (*update) (struct e1000_hw *); + s32 (*valid_led_default) (struct e1000_hw *, u16 *); + s32 (*validate) (struct e1000_hw *); + s32 (*write) (struct e1000_hw *, u16, u16, u16 *); }; struct e1000_mac_info { struct e1000_mac_operations ops; - u8 addr[6]; - u8 perm_addr[6]; + u8 addr[ETH_ALEN]; + u8 perm_addr[ETH_ALEN]; enum e1000_mac_type type; @@ -568,26 +565,27 @@ struct e1000_mac_info { u16 mta_reg_count; /* Maximum size of the MTA register table in all supported adapters */ - #define MAX_MTA_REG 128 +#define MAX_MTA_REG 128 u32 mta_shadow[MAX_MTA_REG]; u16 rar_entry_count; - u8 forced_speed_duplex; + u8 forced_speed_duplex; bool adaptive_ifs; + bool has_fwsm; bool arc_subsystem_valid; - bool asf_firmware_present; bool autoneg; bool autoneg_failed; bool get_link_status; bool in_ifs_mode; - enum e1000_serdes_link_state serdes_link_state; bool serdes_has_link; bool tx_pkt_filtering; + enum e1000_serdes_link_state serdes_link_state; }; struct e1000_phy_info { struct e1000_phy_operations ops; + enum e1000_phy_type type; enum e1000_1000t_rx_status local_rx; @@ -599,7 +597,7 @@ struct e1000_phy_info { u32 addr; u32 id; - u32 reset_delay_us; /* in usec */ + u32 reset_delay_us; /* in usec */ u32 revision; enum e1000_media_type media_type; @@ -615,13 +613,13 @@ struct e1000_phy_info { bool disable_polarity_correction; bool is_mdix; bool polarity_correction; - bool reset_disable; bool speed_downgraded; bool autoneg_wait_to_complete; }; struct e1000_nvm_info { struct e1000_nvm_operations ops; + enum e1000_nvm_type type; enum e1000_nvm_override override; @@ -636,22 +634,20 @@ struct e1000_nvm_info { }; struct e1000_bus_info { - enum e1000_bus_type type; - enum e1000_bus_speed speed; enum e1000_bus_width width; u16 func; - u16 pci_cmd_word; }; struct e1000_fc_info { - u32 high_water; /* Flow control high-water mark */ - u32 low_water; /* Flow control low-water mark */ - u16 pause_time; /* Flow control pause timer */ - bool send_xon; /* Flow control send XON */ - bool strict_ieee; /* Strict IEEE mode */ - enum e1000_fc_mode current_mode; /* FC mode in effect */ - enum e1000_fc_mode requested_mode; /* FC mode requested by caller */ + u32 high_water; /* Flow control high-water mark */ + u32 low_water; /* Flow control low-water mark */ + u16 pause_time; /* Flow control pause timer */ + u16 refresh_time; /* Flow control refresh timer */ + bool send_xon; /* Flow control send XON */ + bool strict_ieee; /* Strict IEEE mode */ + enum e1000_fc_mode current_mode; /* FC mode in effect */ + enum e1000_fc_mode requested_mode; /* FC mode requested by caller */ }; struct e1000_dev_spec_82571 { @@ -660,54 +656,58 @@ struct e1000_dev_spec_82571 { }; struct e1000_dev_spec_80003es2lan { - bool mdic_wa_enable; + bool mdic_wa_enable; }; struct e1000_shadow_ram { - u16 value; + u16 value; bool modified; }; #define E1000_ICH8_SHADOW_RAM_WORDS 2048 +/* I218 PHY Ultra Low Power (ULP) states */ +enum e1000_ulp_state { + e1000_ulp_state_unknown, + e1000_ulp_state_off, + e1000_ulp_state_on, +}; + struct e1000_dev_spec_ich8lan { bool kmrn_lock_loss_workaround_enabled; struct e1000_shadow_ram shadow_ram[E1000_ICH8_SHADOW_RAM_WORDS]; bool nvm_k1_enabled; + bool eee_disable; + u16 eee_lp_ability; + enum e1000_ulp_state ulp_state; +#ifdef DYNAMIC_LTR_SUPPORT + u16 lat_enc; + u16 max_ltr_enc; +#endif }; struct e1000_hw { struct e1000_adapter *adapter; - u8 __iomem *hw_addr; - u8 __iomem *flash_address; + void __iomem *hw_addr; + void __iomem *flash_address; - struct e1000_mac_info mac; - struct e1000_fc_info fc; - struct e1000_phy_info phy; - struct e1000_nvm_info nvm; - struct e1000_bus_info bus; + struct e1000_mac_info mac; + struct e1000_fc_info fc; + struct e1000_phy_info phy; + struct e1000_nvm_info nvm; + struct e1000_bus_info bus; struct e1000_host_mng_dhcp_cookie mng_cookie; union { - struct e1000_dev_spec_82571 _82571; - struct e1000_dev_spec_80003es2lan _80003es2lan; - struct e1000_dev_spec_ich8lan ich8lan; + struct e1000_dev_spec_82571 e82571; + struct e1000_dev_spec_80003es2lan e80003es2lan; + struct e1000_dev_spec_ich8lan ich8lan; } dev_spec; - - u16 device_id; - u16 subsystem_vendor_id; - u16 subsystem_device_id; - u16 vendor_id; - - u8 revision_id; }; -#include "e1000_82571.h" -#include "e1000_80003es2lan.h" -#include "e1000_ich8lan.h" - -/* These functions must be implemented by drivers */ -s32 e1000_read_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value); +#include "82571.h" +#include "80003es2lan.h" +#include "ich8lan.h" #endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/ich8lan.c b/vmkdrivers/src_9/drivers/net/e1000e/ich8lan.c new file mode 100644 index 0000000000000000000000000000000000000000..b19ea5f27c9d96a5ff0796f2350741b5bd8a2135 --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/ich8lan.c @@ -0,0 +1,5855 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +/* 82562G 10/100 Network Connection + * 82562G-2 10/100 Network Connection + * 82562GT 10/100 Network Connection + * 82562GT-2 10/100 Network Connection + * 82562V 10/100 Network Connection + * 82562V-2 10/100 Network Connection + * 82566DC-2 Gigabit Network Connection + * 82566DC Gigabit Network Connection + * 82566DM-2 Gigabit Network Connection + * 82566DM Gigabit Network Connection + * 82566MC Gigabit Network Connection + * 82566MM Gigabit Network Connection + * 82567LM Gigabit Network Connection + * 82567LF Gigabit Network Connection + * 82567V Gigabit Network Connection + * 82567LM-2 Gigabit Network Connection + * 82567LF-2 Gigabit Network Connection + * 82567V-2 Gigabit Network Connection + * 82567LF-3 Gigabit Network Connection + * 82567LM-3 Gigabit Network Connection + * 82567LM-4 Gigabit Network Connection + * 82577LM Gigabit Network Connection + * 82577LC Gigabit Network Connection + * 82578DM Gigabit Network Connection + * 82578DC Gigabit Network Connection + * 82579LM Gigabit Network Connection + * 82579V Gigabit Network Connection + * Ethernet Connection I217-LM + * Ethernet Connection I217-V + * Ethernet Connection I218-V + * Ethernet Connection I218-LM + * Ethernet Connection (2) I218-LM + * Ethernet Connection (2) I218-V + * Ethernet Connection (3) I218-LM + * Ethernet Connection (3) I218-V + */ + +#include "e1000.h" + +/* ICH GbE Flash Hardware Sequencing Flash Status Register bit breakdown */ +/* Offset 04h HSFSTS */ +union ich8_hws_flash_status { + struct ich8_hsfsts { + u16 flcdone:1; /* bit 0 Flash Cycle Done */ + u16 flcerr:1; /* bit 1 Flash Cycle Error */ + u16 dael:1; /* bit 2 Direct Access error Log */ + u16 berasesz:2; /* bit 4:3 Sector Erase Size */ + u16 flcinprog:1; /* bit 5 flash cycle in Progress */ + u16 reserved1:2; /* bit 13:6 Reserved */ + u16 reserved2:6; /* bit 13:6 Reserved */ + u16 fldesvalid:1; /* bit 14 Flash Descriptor Valid */ + u16 flockdn:1; /* bit 15 Flash Config Lock-Down */ + } hsf_status; + u16 regval; +}; + +/* ICH GbE Flash Hardware Sequencing Flash control Register bit breakdown */ +/* Offset 06h FLCTL */ +union ich8_hws_flash_ctrl { + struct ich8_hsflctl { + u16 flcgo:1; /* 0 Flash Cycle Go */ + u16 flcycle:2; /* 2:1 Flash Cycle */ + u16 reserved:5; /* 7:3 Reserved */ + u16 fldbcount:2; /* 9:8 Flash Data Byte Count */ + u16 flockdn:6; /* 15:10 Reserved */ + } hsf_ctrl; + u16 regval; +}; + +/* ICH Flash Region Access Permissions */ +union ich8_hws_flash_regacc { + struct ich8_flracc { + u32 grra:8; /* 0:7 GbE region Read Access */ + u32 grwa:8; /* 8:15 GbE region Write Access */ + u32 gmrag:8; /* 23:16 GbE Master Read Access Grant */ + u32 gmwag:8; /* 31:24 GbE Master Write Access Grant */ + } hsf_flregacc; + u16 regval; +}; + +#ifdef __VMKLNX__ +/* ICH Flash Protected Region */ +union ich8_flash_protected_range { + struct ich8_pr { + u32 base:13; /* 0:12 Protected Range Base */ + u32 reserved1:2; /* 13:14 Reserved */ + u32 rpe:1; /* 15 Read Protection Enable */ + u32 limit:13; /* 16:28 Protected Range Limit */ + u32 reserved2:2; /* 29:30 Reserved */ + u32 wpe:1; /* 31 Write Protection Enable */ + } range; + u32 regval; +}; +#endif /* __VMKLNX__ */ + +static void e1000_clear_hw_cntrs_ich8lan(struct e1000_hw *hw); +static void e1000_initialize_hw_bits_ich8lan(struct e1000_hw *hw); +static s32 e1000_erase_flash_bank_ich8lan(struct e1000_hw *hw, u32 bank); +static s32 e1000_retry_write_flash_byte_ich8lan(struct e1000_hw *hw, + u32 offset, u8 byte); +static s32 e1000_read_flash_byte_ich8lan(struct e1000_hw *hw, u32 offset, + u8 *data); +static s32 e1000_read_flash_word_ich8lan(struct e1000_hw *hw, u32 offset, + u16 *data); +static s32 e1000_read_flash_data_ich8lan(struct e1000_hw *hw, u32 offset, + u8 size, u16 *data); +static s32 e1000_read_flash_data32_ich8lan(struct e1000_hw *hw, u32 offset, + u32 *data); +static s32 e1000_read_flash_dword_ich8lan(struct e1000_hw *hw, + u32 offset, u32 *data); +static s32 e1000_write_flash_data32_ich8lan(struct e1000_hw *hw, + u32 offset, u32 data); +static s32 e1000_retry_write_flash_dword_ich8lan(struct e1000_hw *hw, + u32 offset, u32 dword); +static s32 e1000_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw); +static s32 e1000_cleanup_led_ich8lan(struct e1000_hw *hw); +static s32 e1000_led_on_ich8lan(struct e1000_hw *hw); +static s32 e1000_led_off_ich8lan(struct e1000_hw *hw); +static s32 e1000_id_led_init_pchlan(struct e1000_hw *hw); +static s32 e1000_setup_led_pchlan(struct e1000_hw *hw); +static s32 e1000_cleanup_led_pchlan(struct e1000_hw *hw); +static s32 e1000_led_on_pchlan(struct e1000_hw *hw); +static s32 e1000_led_off_pchlan(struct e1000_hw *hw); +static s32 e1000_set_lplu_state_pchlan(struct e1000_hw *hw, bool active); +static void e1000_power_down_phy_copper_ich8lan(struct e1000_hw *hw); +static void e1000_lan_init_done_ich8lan(struct e1000_hw *hw); +static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link); +static s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw); +static bool e1000_check_mng_mode_ich8lan(struct e1000_hw *hw); +static bool e1000_check_mng_mode_pchlan(struct e1000_hw *hw); +static int e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index); +static int e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index); +static u32 e1000_rar_get_count_pch_lpt(struct e1000_hw *hw); +static s32 e1000_k1_workaround_lv(struct e1000_hw *hw); +static void e1000_gate_hw_phy_config_ich8lan(struct e1000_hw *hw, bool gate); +static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force); +static s32 e1000_setup_copper_link_pch_lpt(struct e1000_hw *hw); +static s32 e1000_oem_bits_config_ich8lan(struct e1000_hw *hw, bool d0_state); + +static inline u16 __er16flash(struct e1000_hw *hw, unsigned long reg) +{ + return readw(hw->flash_address + reg); +} + +static inline u32 __er32flash(struct e1000_hw *hw, unsigned long reg) +{ + return readl(hw->flash_address + reg); +} + +static inline void __ew16flash(struct e1000_hw *hw, unsigned long reg, u16 val) +{ + writew(val, hw->flash_address + reg); +} + +static inline void __ew32flash(struct e1000_hw *hw, unsigned long reg, u32 val) +{ + writel(val, hw->flash_address + reg); +} + +#define er16flash(reg) __er16flash(hw, (reg)) +#define er32flash(reg) __er32flash(hw, (reg)) +#define ew16flash(reg, val) __ew16flash(hw, (reg), (val)) +#define ew32flash(reg, val) __ew32flash(hw, (reg), (val)) + +/** + * e1000_phy_is_accessible_pchlan - Check if able to access PHY registers + * @hw: pointer to the HW structure + * + * Test access to the PHY registers by reading the PHY ID registers. If + * the PHY ID is already known (e.g. resume path) compare it with known ID, + * otherwise assume the read PHY ID is correct if it is valid. + * + * Assumes the sw/fw/hw semaphore is already acquired. + **/ +static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw) +{ + u16 phy_reg = 0; + u32 phy_id = 0; + s32 ret_val = 0; + u16 retry_count; + u32 mac_reg = 0; + + for (retry_count = 0; retry_count < 2; retry_count++) { + ret_val = e1e_rphy_locked(hw, MII_PHYSID1, &phy_reg); + if (ret_val || (phy_reg == 0xFFFF)) + continue; + phy_id = (u32)(phy_reg << 16); + + ret_val = e1e_rphy_locked(hw, MII_PHYSID2, &phy_reg); + if (ret_val || (phy_reg == 0xFFFF)) { + phy_id = 0; + continue; + } + phy_id |= (u32)(phy_reg & PHY_REVISION_MASK); + break; + } + + if (hw->phy.id) { + if (hw->phy.id == phy_id) + goto out; + } else if (phy_id) { + hw->phy.id = phy_id; + hw->phy.revision = (u32)(phy_reg & ~PHY_REVISION_MASK); + goto out; + } + + /* In case the PHY needs to be in mdio slow mode, + * set slow mode and try to get the PHY id again. + */ + if (hw->mac.type < e1000_pch_lpt) { + hw->phy.ops.release(hw); + ret_val = e1000_set_mdio_slow_mode_hv(hw); + if (!ret_val) + ret_val = e1000e_get_phy_id(hw); + hw->phy.ops.acquire(hw); + } + + if (ret_val) + return false; +out: + if ((hw->mac.type == e1000_pch_lpt) || (hw->mac.type == e1000_pch_spt)) { + /* Unforce SMBus mode in PHY */ + e1e_rphy_locked(hw, CV_SMB_CTRL, &phy_reg); + phy_reg &= ~CV_SMB_CTRL_FORCE_SMBUS; + e1e_wphy_locked(hw, CV_SMB_CTRL, phy_reg); + + /* Unforce SMBus mode in MAC */ + mac_reg = er32(CTRL_EXT); + mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS; + ew32(CTRL_EXT, mac_reg); + } + + return true; +} + +/** + * e1000_toggle_lanphypc_pch_lpt - toggle the LANPHYPC pin value + * @hw: pointer to the HW structure + * + * Toggling the LANPHYPC pin value fully power-cycles the PHY and is + * used to reset the PHY to a quiescent state when necessary. + **/ +static void e1000_toggle_lanphypc_pch_lpt(struct e1000_hw *hw) +{ + u32 mac_reg; + + /* Set Phy Config Counter to 50msec */ + mac_reg = er32(FEXTNVM3); + mac_reg &= ~E1000_FEXTNVM3_PHY_CFG_COUNTER_MASK; + mac_reg |= E1000_FEXTNVM3_PHY_CFG_COUNTER_50MSEC; + ew32(FEXTNVM3, mac_reg); + + /* Toggle LANPHYPC Value bit */ + mac_reg = er32(CTRL); + mac_reg |= E1000_CTRL_LANPHYPC_OVERRIDE; + mac_reg &= ~E1000_CTRL_LANPHYPC_VALUE; + ew32(CTRL, mac_reg); + e1e_flush(); + usleep_range(10, 20); + mac_reg &= ~E1000_CTRL_LANPHYPC_OVERRIDE; + ew32(CTRL, mac_reg); + e1e_flush(); + + if (hw->mac.type < e1000_pch_lpt) { + msleep(50); + } else { + u16 count = 20; + + do { + usleep_range(5000, 10000); + } while (!(er32(CTRL_EXT) & E1000_CTRL_EXT_LPCD) && count--); + + msleep(30); + } +} + +/** + * e1000_init_phy_workarounds_pchlan - PHY initialization workarounds + * @hw: pointer to the HW structure + * + * Workarounds/flow necessary for PHY initialization during driver load + * and resume paths. + **/ +static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw) +{ + struct e1000_adapter *adapter = hw->adapter; + u32 mac_reg, fwsm = er32(FWSM); + s32 ret_val; + + /* Gate automatic PHY configuration by hardware on managed and + * non-managed 82579 and newer adapters. + */ + e1000_gate_hw_phy_config_ich8lan(hw, true); + + /* It is not possible to be certain of the current state of ULP + * so forcibly disable it. + */ + hw->dev_spec.ich8lan.ulp_state = e1000_ulp_state_unknown; + e1000_disable_ulp_lpt_lp(hw, true); + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) { + e_dbg("Failed to initialize PHY flow\n"); + goto out; + } + + /* The MAC-PHY interconnect may be in SMBus mode. If the PHY is + * inaccessible and resetting the PHY is not blocked, toggle the + * LANPHYPC Value bit to force the interconnect to PCIe mode. + */ + switch (hw->mac.type) { + case e1000_pch_lpt: + case e1000_pch_spt: + if (e1000_phy_is_accessible_pchlan(hw)) + break; + + /* Before toggling LANPHYPC, see if PHY is accessible by + * forcing MAC to SMBus mode first. + */ + mac_reg = er32(CTRL_EXT); + mac_reg |= E1000_CTRL_EXT_FORCE_SMBUS; + ew32(CTRL_EXT, mac_reg); + + /* Wait 50 milliseconds for MAC to finish any retries + * that it might be trying to perform from previous + * attempts to acknowledge any phy read requests. + */ + msleep(50); + + /* fall-through */ + case e1000_pch2lan: + if (e1000_phy_is_accessible_pchlan(hw)) + break; + + /* fall-through */ + case e1000_pchlan: + if ((hw->mac.type == e1000_pchlan) && + (fwsm & E1000_ICH_FWSM_FW_VALID)) + break; + + if (hw->phy.ops.check_reset_block(hw)) { + e_dbg("Required LANPHYPC toggle blocked by ME\n"); + ret_val = -E1000_ERR_PHY; + break; + } + + /* Toggle LANPHYPC Value bit */ + e1000_toggle_lanphypc_pch_lpt(hw); + if (hw->mac.type >= e1000_pch_lpt) { + if (e1000_phy_is_accessible_pchlan(hw)) + break; + + /* Toggling LANPHYPC brings the PHY out of SMBus mode + * so ensure that the MAC is also out of SMBus mode + */ + mac_reg = er32(CTRL_EXT); + mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS; + ew32(CTRL_EXT, mac_reg); + + if (e1000_phy_is_accessible_pchlan(hw)) + break; + + ret_val = -E1000_ERR_PHY; + } + break; + default: + break; + } + + hw->phy.ops.release(hw); + if (!ret_val) { + + /* Check to see if able to reset PHY. Print error if not */ + if (hw->phy.ops.check_reset_block(hw)) { + e_err("Reset blocked by ME\n"); + goto out; + } + + /* Reset the PHY before any access to it. Doing so, ensures + * that the PHY is in a known good state before we read/write + * PHY registers. The generic reset is sufficient here, + * because we haven't determined the PHY type yet. + */ + ret_val = e1000e_phy_hw_reset_generic(hw); + if (ret_val) + goto out; + + /* On a successful reset, possibly need to wait for the PHY + * to quiesce to an accessible state before returning control + * to the calling function. If the PHY does not quiesce, then + * return E1000E_BLK_PHY_RESET, as this is the condition that + * the PHY is in. + */ + ret_val = hw->phy.ops.check_reset_block(hw); + if (ret_val) + e_err("ME blocked access to PHY after reset\n"); + } + +out: + /* Ungate automatic PHY configuration on non-managed 82579 */ + if ((hw->mac.type == e1000_pch2lan) && + !(fwsm & E1000_ICH_FWSM_FW_VALID)) { + usleep_range(10000, 20000); + e1000_gate_hw_phy_config_ich8lan(hw, false); + } + + return ret_val; +} + +/** + * e1000_init_phy_params_pchlan - Initialize PHY function pointers + * @hw: pointer to the HW structure + * + * Initialize family-specific PHY parameters and function pointers. + **/ +static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) +{ + struct e1000_phy_info *phy = &hw->phy; + s32 ret_val; + + phy->addr = 1; + phy->reset_delay_us = 100; + + phy->ops.set_page = e1000_set_page_igp; + phy->ops.read_reg = e1000_read_phy_reg_hv; + phy->ops.read_reg_locked = e1000_read_phy_reg_hv_locked; + phy->ops.read_reg_page = e1000_read_phy_reg_page_hv; + phy->ops.set_d0_lplu_state = e1000_set_lplu_state_pchlan; + phy->ops.set_d3_lplu_state = e1000_set_lplu_state_pchlan; + phy->ops.write_reg = e1000_write_phy_reg_hv; + phy->ops.write_reg_locked = e1000_write_phy_reg_hv_locked; + phy->ops.write_reg_page = e1000_write_phy_reg_page_hv; + phy->ops.power_up = e1000_power_up_phy_copper; + phy->ops.power_down = e1000_power_down_phy_copper_ich8lan; + phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; + + phy->id = e1000_phy_unknown; + + ret_val = e1000_init_phy_workarounds_pchlan(hw); + if (ret_val) + return ret_val; + + if (phy->id == e1000_phy_unknown) + switch (hw->mac.type) { + default: + ret_val = e1000e_get_phy_id(hw); + if (ret_val) + return ret_val; + if ((phy->id != 0) && (phy->id != PHY_REVISION_MASK)) + break; + /* fall-through */ + case e1000_pch2lan: + case e1000_pch_lpt: + case e1000_pch_spt: + /* In case the PHY needs to be in mdio slow mode, + * set slow mode and try to get the PHY id again. + */ + ret_val = e1000_set_mdio_slow_mode_hv(hw); + if (ret_val) + return ret_val; + ret_val = e1000e_get_phy_id(hw); + if (ret_val) + return ret_val; + break; + } + phy->type = e1000e_get_phy_type_from_id(phy->id); + + switch (phy->type) { + case e1000_phy_82577: + case e1000_phy_82579: + case e1000_phy_i217: + phy->ops.check_polarity = e1000_check_polarity_82577; + phy->ops.force_speed_duplex = + e1000_phy_force_speed_duplex_82577; + phy->ops.get_cable_length = e1000_get_cable_length_82577; + phy->ops.get_info = e1000_get_phy_info_82577; + phy->ops.commit = e1000e_phy_sw_reset; + break; + case e1000_phy_82578: + phy->ops.check_polarity = e1000_check_polarity_m88; + phy->ops.force_speed_duplex = e1000e_phy_force_speed_duplex_m88; + phy->ops.get_cable_length = e1000e_get_cable_length_m88; + phy->ops.get_info = e1000e_get_phy_info_m88; + break; + default: + ret_val = -E1000_ERR_PHY; + break; + } + + return ret_val; +} + +/** + * e1000_init_phy_params_ich8lan - Initialize PHY function pointers + * @hw: pointer to the HW structure + * + * Initialize family-specific PHY parameters and function pointers. + **/ +static s32 e1000_init_phy_params_ich8lan(struct e1000_hw *hw) +{ + struct e1000_phy_info *phy = &hw->phy; + s32 ret_val; + u16 i = 0; + + phy->addr = 1; + phy->reset_delay_us = 100; + + phy->ops.power_up = e1000_power_up_phy_copper; + phy->ops.power_down = e1000_power_down_phy_copper_ich8lan; + + /* We may need to do this twice - once for IGP and if that fails, + * we'll set BM func pointers and try again + */ + ret_val = e1000e_determine_phy_address(hw); + if (ret_val) { + phy->ops.write_reg = e1000e_write_phy_reg_bm; + phy->ops.read_reg = e1000e_read_phy_reg_bm; + ret_val = e1000e_determine_phy_address(hw); + if (ret_val) { + e_dbg("Cannot determine PHY addr. Erroring out\n"); + return ret_val; + } + } + + phy->id = 0; + while ((e1000_phy_unknown == e1000e_get_phy_type_from_id(phy->id)) && + (i++ < 100)) { + usleep_range(1000, 2000); + ret_val = e1000e_get_phy_id(hw); + if (ret_val) + return ret_val; + } + + /* Verify phy id */ + switch (phy->id) { + case IGP03E1000_E_PHY_ID: + phy->type = e1000_phy_igp_3; + phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; + phy->ops.read_reg_locked = e1000e_read_phy_reg_igp_locked; + phy->ops.write_reg_locked = e1000e_write_phy_reg_igp_locked; + phy->ops.get_info = e1000e_get_phy_info_igp; + phy->ops.check_polarity = e1000_check_polarity_igp; + phy->ops.force_speed_duplex = e1000e_phy_force_speed_duplex_igp; + break; + case IFE_E_PHY_ID: + case IFE_PLUS_E_PHY_ID: + case IFE_C_E_PHY_ID: + phy->type = e1000_phy_ife; + phy->autoneg_mask = E1000_ALL_NOT_GIG; + phy->ops.get_info = e1000_get_phy_info_ife; + phy->ops.check_polarity = e1000_check_polarity_ife; + phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_ife; + break; + case BME1000_E_PHY_ID: + phy->type = e1000_phy_bm; + phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; + phy->ops.read_reg = e1000e_read_phy_reg_bm; + phy->ops.write_reg = e1000e_write_phy_reg_bm; + phy->ops.commit = e1000e_phy_sw_reset; + phy->ops.get_info = e1000e_get_phy_info_m88; + phy->ops.check_polarity = e1000_check_polarity_m88; + phy->ops.force_speed_duplex = e1000e_phy_force_speed_duplex_m88; + break; + default: + return -E1000_ERR_PHY; + break; + } + + return 0; +} + +/** + * e1000_init_nvm_params_ich8lan - Initialize NVM function pointers + * @hw: pointer to the HW structure + * + * Initialize family-specific NVM parameters and function + * pointers. + **/ +static s32 e1000_init_nvm_params_ich8lan(struct e1000_hw *hw) +{ + struct e1000_nvm_info *nvm = &hw->nvm; + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + u32 gfpreg, sector_base_addr, sector_end_addr; + u16 i; + u32 nvm_size; + + /* Can't read flash registers if the register set isn't mapped. */ + nvm->type = e1000_nvm_flash_sw; + /* in SPT, gfpreg doesn't exist. NVM size is taken from the + * STRAP register + */ + if (hw->mac.type == e1000_pch_spt) { + nvm->flash_base_addr = 0; + nvm_size = (((er32(STRAP) >> 1) & 0x1F) + 1) + * NVM_SIZE_MULTIPLIER; + nvm->flash_bank_size = nvm_size / 2; + /* Adjust to word count */ + nvm->flash_bank_size /= sizeof(u16); + /* Set the base address for flash register access */ + hw->flash_address = hw->hw_addr + E1000_FLASH_BASE_ADDR; + } else { + if (!hw->flash_address) { + e_dbg("ERROR: Flash registers not mapped\n"); + return -E1000_ERR_CONFIG; + } + + gfpreg = er32flash(ICH_FLASH_GFPREG); + + /* sector_X_addr is a "sector"-aligned address (4096 bytes) + * Add 1 to sector_end_addr since this sector is included in + * the overall size. + */ + sector_base_addr = gfpreg & FLASH_GFPREG_BASE_MASK; + sector_end_addr = ((gfpreg >> 16) & FLASH_GFPREG_BASE_MASK) + 1; + + /* flash_base_addr is byte-aligned */ + nvm->flash_base_addr = sector_base_addr + << FLASH_SECTOR_ADDR_SHIFT; + + /* find total size of the NVM, then cut in half since the total + * size represents two separate NVM banks. + */ + nvm->flash_bank_size = ((sector_end_addr - sector_base_addr) + << FLASH_SECTOR_ADDR_SHIFT); + nvm->flash_bank_size /= 2; + /* Adjust to word count */ + nvm->flash_bank_size /= sizeof(u16); + } + + nvm->word_size = E1000_ICH8_SHADOW_RAM_WORDS; + + /* Clear shadow ram */ + for (i = 0; i < nvm->word_size; i++) { + dev_spec->shadow_ram[i].modified = false; + dev_spec->shadow_ram[i].value = 0xFFFF; + } + + return 0; +} + +/** + * e1000_init_mac_params_ich8lan - Initialize MAC function pointers + * @hw: pointer to the HW structure + * + * Initialize family-specific MAC parameters and function + * pointers. + **/ +static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw) +{ + struct e1000_mac_info *mac = &hw->mac; + u16 pci_cfg; + + /* Set media type function pointer */ + hw->phy.media_type = e1000_media_type_copper; + + /* Set mta register count */ + mac->mta_reg_count = 32; + /* Set rar entry count */ + mac->rar_entry_count = E1000_ICH_RAR_ENTRIES; + if (mac->type == e1000_ich8lan) + mac->rar_entry_count--; + /* FWSM register */ + mac->has_fwsm = true; + /* ARC subsystem not supported */ + mac->arc_subsystem_valid = false; + /* Adaptive IFS supported */ + mac->adaptive_ifs = true; + + /* LED and other operations */ + switch (mac->type) { + case e1000_ich8lan: + case e1000_ich9lan: + case e1000_ich10lan: + /* check management mode */ + mac->ops.check_mng_mode = e1000_check_mng_mode_ich8lan; + /* ID LED init */ + mac->ops.id_led_init = e1000e_id_led_init_generic; + /* blink LED */ + mac->ops.blink_led = e1000e_blink_led_generic; + /* setup LED */ + mac->ops.setup_led = e1000e_setup_led_generic; + /* cleanup LED */ + mac->ops.cleanup_led = e1000_cleanup_led_ich8lan; + /* turn on/off LED */ + mac->ops.led_on = e1000_led_on_ich8lan; + mac->ops.led_off = e1000_led_off_ich8lan; + break; + case e1000_pch2lan: + mac->rar_entry_count = E1000_PCH2_RAR_ENTRIES; + mac->ops.rar_set = e1000_rar_set_pch2lan; + /* fall-through */ + case e1000_pch_lpt: + case e1000_pch_spt: + case e1000_pchlan: + /* save PCH revision_id */ + pci_read_config_word(hw->adapter->pdev, + E1000_PCI_REVISION_ID_REG, &pci_cfg); + hw->adapter->revision_id = (u8)(pci_cfg &= 0x000F); + /* check management mode */ + mac->ops.check_mng_mode = e1000_check_mng_mode_pchlan; + /* ID LED init */ + mac->ops.id_led_init = e1000_id_led_init_pchlan; + /* setup LED */ + mac->ops.setup_led = e1000_setup_led_pchlan; + /* cleanup LED */ + mac->ops.cleanup_led = e1000_cleanup_led_pchlan; + /* turn on/off LED */ + mac->ops.led_on = e1000_led_on_pchlan; + mac->ops.led_off = e1000_led_off_pchlan; + break; + default: + break; + } + + if ((mac->type == e1000_pch_lpt) || (mac->type == e1000_pch_spt)) { + mac->rar_entry_count = E1000_PCH_LPT_RAR_ENTRIES; + mac->ops.rar_set = e1000_rar_set_pch_lpt; + mac->ops.setup_physical_interface = + e1000_setup_copper_link_pch_lpt; + mac->ops.rar_get_count = e1000_rar_get_count_pch_lpt; + } + + /* Enable PCS Lock-loss workaround for ICH8 */ + if (mac->type == e1000_ich8lan) + e1000e_set_kmrn_lock_loss_workaround_ich8lan(hw, true); + + return 0; +} + +/** + * __e1000_access_emi_reg_locked - Read/write EMI register + * @hw: pointer to the HW structure + * @addr: EMI address to program + * @data: pointer to value to read/write from/to the EMI address + * @read: boolean flag to indicate read or write + * + * This helper function assumes the SW/FW/HW Semaphore is already acquired. + **/ +static s32 __e1000_access_emi_reg_locked(struct e1000_hw *hw, u16 address, + u16 *data, bool read) +{ + s32 ret_val; + + ret_val = e1e_wphy_locked(hw, I82579_EMI_ADDR, address); + if (ret_val) + return ret_val; + + if (read) + ret_val = e1e_rphy_locked(hw, I82579_EMI_DATA, data); + else + ret_val = e1e_wphy_locked(hw, I82579_EMI_DATA, *data); + + return ret_val; +} + +/** + * e1000_read_emi_reg_locked - Read Extended Management Interface register + * @hw: pointer to the HW structure + * @addr: EMI address to program + * @data: value to be read from the EMI address + * + * Assumes the SW/FW/HW Semaphore is already acquired. + **/ +s32 e1000_read_emi_reg_locked(struct e1000_hw *hw, u16 addr, u16 *data) +{ + return __e1000_access_emi_reg_locked(hw, addr, data, true); +} + +/** + * e1000_write_emi_reg_locked - Write Extended Management Interface register + * @hw: pointer to the HW structure + * @addr: EMI address to program + * @data: value to be written to the EMI address + * + * Assumes the SW/FW/HW Semaphore is already acquired. + **/ +s32 e1000_write_emi_reg_locked(struct e1000_hw *hw, u16 addr, u16 data) +{ + return __e1000_access_emi_reg_locked(hw, addr, &data, false); +} + +/** + * e1000_set_eee_pchlan - Enable/disable EEE support + * @hw: pointer to the HW structure + * + * Enable/disable EEE based on setting in dev_spec structure, the duplex of + * the link and the EEE capabilities of the link partner. The LPI Control + * register bits will remain set only if/when link is up. + * + * EEE LPI must not be asserted earlier than one second after link is up. + * On 82579, EEE LPI should not be enabled until such time otherwise there + * can be link issues with some switches. Other devices can have EEE LPI + * enabled immediately upon link up since they have a timer in hardware which + * prevents LPI from being asserted too early. + **/ +s32 e1000_set_eee_pchlan(struct e1000_hw *hw) +{ + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + s32 ret_val; + u16 lpa, pcs_status, adv, adv_addr, lpi_ctrl, data; + + switch (hw->phy.type) { + case e1000_phy_82579: + lpa = I82579_EEE_LP_ABILITY; + pcs_status = I82579_EEE_PCS_STATUS; + adv_addr = I82579_EEE_ADVERTISEMENT; + break; + case e1000_phy_i217: + lpa = I217_EEE_LP_ABILITY; + pcs_status = I217_EEE_PCS_STATUS; + adv_addr = I217_EEE_ADVERTISEMENT; + break; + default: + return 0; + } + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return ret_val; + + ret_val = e1e_rphy_locked(hw, I82579_LPI_CTRL, &lpi_ctrl); + if (ret_val) + goto release; + + /* Clear bits that enable EEE in various speeds */ + lpi_ctrl &= ~I82579_LPI_CTRL_ENABLE_MASK; + + /* Enable EEE if not disabled by user */ + if (!dev_spec->eee_disable) { + /* Save off link partner's EEE ability */ + ret_val = e1000_read_emi_reg_locked(hw, lpa, + &dev_spec->eee_lp_ability); + if (ret_val) + goto release; + + /* Read EEE advertisement */ + ret_val = e1000_read_emi_reg_locked(hw, adv_addr, &adv); + if (ret_val) + goto release; + + /* Enable EEE only for speeds in which the link partner is + * EEE capable and for which we advertise EEE. + */ + if (adv & dev_spec->eee_lp_ability & I82579_EEE_1000_SUPPORTED) + lpi_ctrl |= I82579_LPI_CTRL_1000_ENABLE; + + if (adv & dev_spec->eee_lp_ability & I82579_EEE_100_SUPPORTED) { + e1e_rphy_locked(hw, MII_LPA, &data); + if (data & LPA_100FULL) + lpi_ctrl |= I82579_LPI_CTRL_100_ENABLE; + else + /* EEE is not supported in 100Half, so ignore + * partner's EEE in 100 ability if full-duplex + * is not advertised. + */ + dev_spec->eee_lp_ability &= + ~I82579_EEE_100_SUPPORTED; + } + } + + if (hw->phy.type == e1000_phy_82579) { + ret_val = e1000_read_emi_reg_locked(hw, I82579_LPI_PLL_SHUT, + &data); + if (ret_val) + goto release; + + data &= ~I82579_LPI_100_PLL_SHUT; + ret_val = e1000_write_emi_reg_locked(hw, I82579_LPI_PLL_SHUT, + data); + } + + /* R/Clr IEEE MMD 3.1 bits 11:10 - Tx/Rx LPI Received */ + ret_val = e1000_read_emi_reg_locked(hw, pcs_status, &data); + if (ret_val) + goto release; + + ret_val = e1e_wphy_locked(hw, I82579_LPI_CTRL, lpi_ctrl); +release: + hw->phy.ops.release(hw); + + return ret_val; +} + +/** + * e1000_k1_workaround_lpt_lp - K1 workaround on Lynxpoint-LP + * @hw: pointer to the HW structure + * @link: link up bool flag + * + * When K1 is enabled for 1Gbps, the MAC can miss 2 DMA completion indications + * preventing further DMA write requests. Workaround the issue by disabling + * the de-assertion of the clock request when in 1Gpbs mode. + * Also, set appropriate Tx re-transmission timeouts for 10 and 100Half link + * speeds in order to avoid Tx hangs. + **/ +static s32 e1000_k1_workaround_lpt_lp(struct e1000_hw *hw, bool link) +{ + u32 fextnvm6 = er32(FEXTNVM6); + u32 status = er32(STATUS); + s32 ret_val = 0; + u16 reg; + + if (link && (status & E1000_STATUS_SPEED_1000)) { + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return ret_val; + + ret_val = + e1000e_read_kmrn_reg_locked(hw, E1000_KMRNCTRLSTA_K1_CONFIG, + ®); + if (ret_val) + goto release; + + ret_val = + e1000e_write_kmrn_reg_locked(hw, + E1000_KMRNCTRLSTA_K1_CONFIG, + reg & + ~E1000_KMRNCTRLSTA_K1_ENABLE); + if (ret_val) + goto release; + + usleep_range(10, 20); + + ew32(FEXTNVM6, fextnvm6 | E1000_FEXTNVM6_REQ_PLL_CLK); + + ret_val = + e1000e_write_kmrn_reg_locked(hw, + E1000_KMRNCTRLSTA_K1_CONFIG, + reg); +release: + hw->phy.ops.release(hw); + } else { + /* clear FEXTNVM6 bit 8 on link down or 10/100 */ + fextnvm6 &= ~E1000_FEXTNVM6_REQ_PLL_CLK; + + if (!link || ((status & E1000_STATUS_SPEED_100) && + (status & E1000_STATUS_FD))) + goto update_fextnvm6; + + ret_val = e1e_rphy(hw, I217_INBAND_CTRL, ®); + if (ret_val) + return ret_val; + + /* Clear link status transmit timeout */ + reg &= ~I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_MASK; + + if (status & E1000_STATUS_SPEED_100) { + /* Set inband Tx timeout to 5x10us for 100Half */ + reg |= 5 << I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_SHIFT; + + /* Do not extend the K1 entry latency for 100Half */ + fextnvm6 &= ~E1000_FEXTNVM6_ENABLE_K1_ENTRY_CONDITION; + } else { + /* Set inband Tx timeout to 50x10us for 10Full/Half */ + reg |= 50 << + I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_SHIFT; + + /* Extend the K1 entry latency for 10 Mbps */ + fextnvm6 |= E1000_FEXTNVM6_ENABLE_K1_ENTRY_CONDITION; + } + + ret_val = e1e_wphy(hw, I217_INBAND_CTRL, reg); + if (ret_val) + return ret_val; + +update_fextnvm6: + ew32(FEXTNVM6, fextnvm6); + } + + return ret_val; +} + +/** + * e1000_platform_pm_pch_lpt - Set platform power management values + * @hw: pointer to the HW structure + * @link: bool indicating link status + * + * Set the Latency Tolerance Reporting (LTR) values for the "PCIe-like" + * GbE MAC in the Lynx Point PCH based on Rx buffer size and link speed + * when link is up (which must not exceed the maximum latency supported + * by the platform), otherwise specify there is no LTR requirement. + * Unlike true-PCIe devices which set the LTR maximum snoop/no-snoop + * latencies in the LTR Extended Capability Structure in the PCIe Extended + * Capability register set, on this device LTR is set by writing the + * equivalent snoop/no-snoop latencies in the LTRV register in the MAC and + * set the SEND bit to send an Intel On-chip System Fabric sideband (IOSF-SB) + * message to the PMC. + **/ +static s32 e1000_platform_pm_pch_lpt(struct e1000_hw *hw, bool link) +{ + u32 reg = link << (E1000_LTRV_REQ_SHIFT + E1000_LTRV_NOSNOOP_SHIFT) | + link << E1000_LTRV_REQ_SHIFT | E1000_LTRV_SEND; + u16 lat_enc = 0; /* latency encoded */ + + if (link) { + u16 speed, duplex, scale = 0; + u16 max_snoop, max_nosnoop; + u16 max_ltr_enc; /* max LTR latency encoded */ + s64 lat_ns; /* latency (ns) */ + s64 value; + u32 rxa; + + if (!hw->adapter->max_frame_size) { + e_dbg("max_frame_size not set.\n"); + return -E1000_ERR_CONFIG; + } + + hw->mac.ops.get_link_up_info(hw, &speed, &duplex); + if (!speed) { + e_dbg("Speed not set.\n"); + return -E1000_ERR_CONFIG; + } + + /* Rx Packet Buffer Allocation size (KB) */ + rxa = er32(PBA) & E1000_PBA_RXA_MASK; + + /* Determine the maximum latency tolerated by the device. + * + * Per the PCIe spec, the tolerated latencies are encoded as + * a 3-bit encoded scale (only 0-5 are valid) multiplied by + * a 10-bit value (0-1023) to provide a range from 1 ns to + * 2^25*(2^10-1) ns. The scale is encoded as 0=2^0ns, + * 1=2^5ns, 2=2^10ns,...5=2^25ns. + */ + lat_ns = ((s64)rxa * 1024 - + (2 * (s64)hw->adapter->max_frame_size)) * 8 * 1000; + if (lat_ns < 0) + lat_ns = 0; + else + do_div(lat_ns, speed); + + value = lat_ns; + while (value > PCI_LTR_VALUE_MASK) { + scale++; + value = DIV_ROUND_UP(value, (1 << 5)); + } + if (scale > E1000_LTRV_SCALE_MAX) { + e_dbg("Invalid LTR latency scale %d\n", scale); + return -E1000_ERR_CONFIG; + } + lat_enc = (u16)((scale << PCI_LTR_SCALE_SHIFT) | value); + + /* Determine the maximum latency tolerated by the platform */ + pci_read_config_word(hw->adapter->pdev, E1000_PCI_LTR_CAP_LPT, + &max_snoop); + pci_read_config_word(hw->adapter->pdev, + E1000_PCI_LTR_CAP_LPT + 2, &max_nosnoop); + max_ltr_enc = max_t(u16, max_snoop, max_nosnoop); + + if (lat_enc > max_ltr_enc) + lat_enc = max_ltr_enc; +#ifdef DYNAMIC_LTR_SUPPORT + hw->dev_spec.ich8lan.lat_enc = lat_enc; + hw->dev_spec.ich8lan.max_ltr_enc = max_ltr_enc; + if ((hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_LM3) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_V3)) + lat_enc = max_ltr_enc; + +#endif /* DYNAMIC_LTR_SUPPORT */ + } + + /* Set Snoop and No-Snoop latencies the same */ + reg |= lat_enc | (lat_enc << E1000_LTRV_NOSNOOP_SHIFT); + ew32(LTRV, reg); + + return 0; +} + +#ifdef DYNAMIC_LTR_SUPPORT +/** + * e1000_demote_ltr - Demote/Promote the LTR value + * @hw: pointer to the HW structure + * @demote: boolean value to control whether we are demoting or promoting + * the LTR value (promoting allows deeper C-States). + * @link: boolean value stating whether we currently have link + * + * Configure the LTRV register with the proper LTR value + **/ +void e1000_demote_ltr(struct e1000_hw *hw, bool demote, bool link) +{ + u32 reg = link << (E1000_LTRV_REQ_SHIFT + E1000_LTRV_NOSNOOP_SHIFT) | + link << E1000_LTRV_REQ_SHIFT | E1000_LTRV_SEND; + + if ((hw->adapter->pdev->device != E1000_DEV_ID_PCH_I218_LM3) && + (hw->adapter->pdev->device != E1000_DEV_ID_PCH_I218_V3)) + return; + + if (demote) { + reg |= hw->dev_spec.ich8lan.lat_enc | + (hw->dev_spec.ich8lan.lat_enc << E1000_LTRV_NOSNOOP_SHIFT); + } else { + reg |= hw->dev_spec.ich8lan.max_ltr_enc | + (hw->dev_spec.ich8lan.max_ltr_enc << + E1000_LTRV_NOSNOOP_SHIFT); + } + + ew32(LTRV, reg); + return; +} + +#endif /* DYNAMIC_LTR_SUPPORT */ +/** + * e1000_enable_ulp_lpt_lp - configure Ultra Low Power mode for LynxPoint-LP + * @hw: pointer to the HW structure + * @to_sx: boolean indicating a system power state transition to Sx + * + * When link is down, configure ULP mode to significantly reduce the power + * to the PHY. If on a Manageability Engine (ME) enabled system, tell the + * ME firmware to start the ULP configuration. If not on an ME enabled + * system, configure the ULP mode by software. + */ +s32 e1000_enable_ulp_lpt_lp(struct e1000_hw *hw, bool to_sx) +{ + u32 mac_reg; + s32 ret_val = 0; + u16 phy_reg; + + if ((hw->mac.type < e1000_pch_lpt) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPT_I217_LM) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPT_I217_V) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_LM2) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_V2) || + (hw->dev_spec.ich8lan.ulp_state == e1000_ulp_state_on)) + return 0; + + if (er32(FWSM) & E1000_ICH_FWSM_FW_VALID) { + /* Request ME configure ULP mode in the PHY */ + mac_reg = er32(H2ME); + mac_reg |= E1000_H2ME_ULP | E1000_H2ME_ENFORCE_SETTINGS; + ew32(H2ME, mac_reg); + + goto out; + } + + if (!to_sx) { + int i = 0; + + /* Poll up to 5 seconds for Cable Disconnected indication */ + while (!(er32(FEXT) & E1000_FEXT_PHY_CABLE_DISCONNECTED)) { + /* Bail if link is re-acquired */ + if (er32(STATUS) & E1000_STATUS_LU) + return -E1000_ERR_PHY; + + if (i++ == 100) + break; + + msleep(50); + } + e_dbg("CABLE_DISCONNECTED %s set after %dmsec\n", + (er32(FEXT) & + E1000_FEXT_PHY_CABLE_DISCONNECTED) ? "" : "not", i * 50); + } + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + goto out; + + /* Si workaround for ULP entry flow on i127/rev6 h/w. Enable + * LPLU and disable Gig speed when entering ULP + */ + if ((hw->phy.type == e1000_phy_i217) && (hw->phy.revision == 6)) { + ret_val = e1000_read_phy_reg_hv_locked(hw, HV_OEM_BITS, + &phy_reg); + if (ret_val) + goto release; + phy_reg |= HV_OEM_BITS_LPLU | HV_OEM_BITS_GBE_DIS; + ret_val = e1000_write_phy_reg_hv_locked(hw, HV_OEM_BITS, + phy_reg); + if (ret_val) + goto release; + } + + /* Force SMBus mode in PHY */ + ret_val = e1000_read_phy_reg_hv_locked(hw, CV_SMB_CTRL, &phy_reg); + if (ret_val) + goto release; + phy_reg |= CV_SMB_CTRL_FORCE_SMBUS; + e1000_write_phy_reg_hv_locked(hw, CV_SMB_CTRL, phy_reg); + + /* Force SMBus mode in MAC */ + mac_reg = er32(CTRL_EXT); + mac_reg |= E1000_CTRL_EXT_FORCE_SMBUS; + ew32(CTRL_EXT, mac_reg); + + /* Set Inband ULP Exit, Reset to SMBus mode and + * Disable SMBus Release on PERST# in PHY + */ + ret_val = e1000_read_phy_reg_hv_locked(hw, I218_ULP_CONFIG1, &phy_reg); + if (ret_val) + goto release; + phy_reg |= (I218_ULP_CONFIG1_RESET_TO_SMBUS | + I218_ULP_CONFIG1_DISABLE_SMB_PERST); + if (to_sx) { + if (er32(WUFC) & E1000_WUFC_LNKC) + phy_reg |= I218_ULP_CONFIG1_WOL_HOST; + + phy_reg |= I218_ULP_CONFIG1_STICKY_ULP; + } else { + phy_reg |= I218_ULP_CONFIG1_INBAND_EXIT; + } + e1000_write_phy_reg_hv_locked(hw, I218_ULP_CONFIG1, phy_reg); + + /* Set Disable SMBus Release on PERST# in MAC */ + mac_reg = er32(FEXTNVM7); + mac_reg |= E1000_FEXTNVM7_DISABLE_SMB_PERST; + ew32(FEXTNVM7, mac_reg); + + /* Commit ULP changes in PHY by starting auto ULP configuration */ + phy_reg |= I218_ULP_CONFIG1_START; + e1000_write_phy_reg_hv_locked(hw, I218_ULP_CONFIG1, phy_reg); +release: + hw->phy.ops.release(hw); +out: + if (ret_val) + e_dbg("Error in ULP enable flow: %d\n", ret_val); + else + hw->dev_spec.ich8lan.ulp_state = e1000_ulp_state_on; + + return ret_val; +} + +/** + * e1000_disable_ulp_lpt_lp - unconfigure Ultra Low Power mode for LynxPoint-LP + * @hw: pointer to the HW structure + * @force: boolean indicating whether or not to force disabling ULP + * + * Un-configure ULP mode when link is up, the system is transitioned from + * Sx or the driver is unloaded. If on a Manageability Engine (ME) enabled + * system, poll for an indication from ME that ULP has been un-configured. + * If not on an ME enabled system, un-configure the ULP mode by software. + * + * During nominal operation, this function is called when link is acquired + * to disable ULP mode (force=false); otherwise, for example when unloading + * the driver or during Sx->S0 transitions, this is called with force=true + * to forcibly disable ULP. + */ +static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force) +{ + s32 ret_val = 0; + u32 mac_reg; + u16 phy_reg; + int i = 0; + + if ((hw->mac.type < e1000_pch_lpt) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPT_I217_LM) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPT_I217_V) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_LM2) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_V2) || + (hw->dev_spec.ich8lan.ulp_state == e1000_ulp_state_off)) + return 0; + + if (er32(FWSM) & E1000_ICH_FWSM_FW_VALID) { + if (force) { + /* Request ME un-configure ULP mode in the PHY */ + mac_reg = er32(H2ME); + mac_reg &= ~E1000_H2ME_ULP; + mac_reg |= E1000_H2ME_ENFORCE_SETTINGS; + ew32(H2ME, mac_reg); + } + + /* Poll up to 100msec for ME to clear ULP_CFG_DONE */ + while (er32(FWSM) & E1000_FWSM_ULP_CFG_DONE) { + if (i++ == 10) { + ret_val = -E1000_ERR_PHY; + goto out; + } + + usleep_range(10000, 20000); + } + e_dbg("ULP_CONFIG_DONE cleared after %dmsec\n", i * 10); + + if (force) { + mac_reg = er32(H2ME); + mac_reg &= ~E1000_H2ME_ENFORCE_SETTINGS; + ew32(H2ME, mac_reg); + } else { + /* Clear H2ME.ULP after ME ULP configuration */ + mac_reg = er32(H2ME); + mac_reg &= ~E1000_H2ME_ULP; + ew32(H2ME, mac_reg); + } + + goto out; + } + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + goto out; + + if (force) + /* Toggle LANPHYPC Value bit */ + e1000_toggle_lanphypc_pch_lpt(hw); + + /* Unforce SMBus mode in PHY */ + ret_val = e1000_read_phy_reg_hv_locked(hw, CV_SMB_CTRL, &phy_reg); + if (ret_val) { + /* The MAC might be in PCIe mode, so temporarily force to + * SMBus mode in order to access the PHY. + */ + mac_reg = er32(CTRL_EXT); + mac_reg |= E1000_CTRL_EXT_FORCE_SMBUS; + ew32(CTRL_EXT, mac_reg); + + msleep(50); + + ret_val = e1000_read_phy_reg_hv_locked(hw, CV_SMB_CTRL, + &phy_reg); + if (ret_val) + goto release; + } + phy_reg &= ~CV_SMB_CTRL_FORCE_SMBUS; + e1000_write_phy_reg_hv_locked(hw, CV_SMB_CTRL, phy_reg); + + /* Unforce SMBus mode in MAC */ + mac_reg = er32(CTRL_EXT); + mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS; + ew32(CTRL_EXT, mac_reg); + + /* When ULP mode was previously entered, K1 was disabled by the + * hardware. Re-Enable K1 in the PHY when exiting ULP. + */ + ret_val = e1000_read_phy_reg_hv_locked(hw, HV_PM_CTRL, &phy_reg); + if (ret_val) + goto release; + phy_reg |= HV_PM_CTRL_K1_ENABLE; + e1000_write_phy_reg_hv_locked(hw, HV_PM_CTRL, phy_reg); + + /* Clear ULP enabled configuration */ + ret_val = e1000_read_phy_reg_hv_locked(hw, I218_ULP_CONFIG1, &phy_reg); + if (ret_val) + goto release; + phy_reg &= ~(I218_ULP_CONFIG1_IND | + I218_ULP_CONFIG1_STICKY_ULP | + I218_ULP_CONFIG1_RESET_TO_SMBUS | + I218_ULP_CONFIG1_WOL_HOST | + I218_ULP_CONFIG1_INBAND_EXIT | + I218_ULP_CONFIG1_DISABLE_SMB_PERST); + e1000_write_phy_reg_hv_locked(hw, I218_ULP_CONFIG1, phy_reg); + + /* Commit ULP changes by starting auto ULP configuration */ + phy_reg |= I218_ULP_CONFIG1_START; + e1000_write_phy_reg_hv_locked(hw, I218_ULP_CONFIG1, phy_reg); + + /* Clear Disable SMBus Release on PERST# in MAC */ + mac_reg = er32(FEXTNVM7); + mac_reg &= ~E1000_FEXTNVM7_DISABLE_SMB_PERST; + ew32(FEXTNVM7, mac_reg); + +release: + hw->phy.ops.release(hw); + if (force) { + e1000_phy_hw_reset(hw); + msleep(50); + } +out: + if (ret_val) + e_dbg("Error in ULP disable flow: %d\n", ret_val); + else + hw->dev_spec.ich8lan.ulp_state = e1000_ulp_state_off; + + return ret_val; +} + +/** + * e1000_check_for_copper_link_ich8lan - Check for link (Copper) + * @hw: pointer to the HW structure + * + * Checks to see of the link status of the hardware has changed. If a + * change in link status has been detected, then we read the PHY registers + * to get the current speed/duplex if link exists. + **/ +static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw) +{ + struct e1000_mac_info *mac = &hw->mac; + s32 ret_val; + bool link; + u16 phy_reg; + + /* We only want to go out to the PHY registers to see if Auto-Neg + * has completed and/or if our link status has changed. The + * get_link_status flag is set upon receiving a Link Status + * Change or Rx Sequence Error interrupt. + */ + if (!mac->get_link_status) + return 0; + + /* First we want to see if the MII Status Register reports + * link. If so, then we want to get the current speed/duplex + * of the PHY. + */ + ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); + if (ret_val) + return ret_val; + + if (hw->mac.type == e1000_pchlan) { + ret_val = e1000_k1_gig_workaround_hv(hw, link); + if (ret_val) + return ret_val; + } + + /* When connected at 10Mbps half-duplex, some parts are excessively + * aggressive resulting in many collisions. To avoid this, increase + * the IPG and reduce Rx latency in the PHY. + */ + if (((hw->mac.type == e1000_pch2lan) || + (hw->mac.type == e1000_pch_lpt) || + (hw->mac.type == e1000_pch_spt)) && link) { + u32 reg; + reg = er32(STATUS); + if (!(reg & (E1000_STATUS_FD | E1000_STATUS_SPEED_MASK))) { + u16 emi_addr; + + reg = er32(TIPG); + reg &= ~E1000_TIPG_IPGT_MASK; + reg |= 0xFF; + ew32(TIPG, reg); + + /* Reduce Rx latency in analog PHY */ + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return ret_val; + + if (hw->mac.type == e1000_pch2lan) + emi_addr = I82579_RX_CONFIG; + else + emi_addr = I217_RX_CONFIG; + ret_val = e1000_write_emi_reg_locked(hw, emi_addr, 0); + + hw->phy.ops.release(hw); + + if (ret_val) + return ret_val; + } + } + + /* Work-around I218 hang issue */ + if ((hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_LM) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_V) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_LM3) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_V3)) { + ret_val = e1000_k1_workaround_lpt_lp(hw, link); + if (ret_val) + return ret_val; + } + if ((hw->mac.type == e1000_pch_lpt) || (hw->mac.type == e1000_pch_spt)) { + /* Set platform power management values for + * Latency Tolerance Reporting (LTR) + */ + ret_val = e1000_platform_pm_pch_lpt(hw, link); + if (ret_val) + return ret_val; + } + + /* Clear link partner's EEE ability */ + hw->dev_spec.ich8lan.eee_lp_ability = 0; + + if (!link) + return 0; /* No link detected */ + + mac->get_link_status = false; + + switch (hw->mac.type) { + case e1000_pch2lan: + ret_val = e1000_k1_workaround_lv(hw); + if (ret_val) + return ret_val; + /* fall-thru */ + case e1000_pchlan: + if (hw->phy.type == e1000_phy_82578) { + ret_val = e1000_link_stall_workaround_hv(hw); + if (ret_val) + return ret_val; + } + + /* Workaround for PCHx parts in half-duplex: + * Set the number of preambles removed from the packet + * when it is passed from the PHY to the MAC to prevent + * the MAC from misinterpreting the packet type. + */ + e1e_rphy(hw, HV_KMRN_FIFO_CTRLSTA, &phy_reg); + phy_reg &= ~HV_KMRN_FIFO_CTRLSTA_PREAMBLE_MASK; + + if ((er32(STATUS) & E1000_STATUS_FD) != E1000_STATUS_FD) + phy_reg |= (1 << HV_KMRN_FIFO_CTRLSTA_PREAMBLE_SHIFT); + + e1e_wphy(hw, HV_KMRN_FIFO_CTRLSTA, phy_reg); + break; + default: + break; + } + + /* Check if there was DownShift, must be checked + * immediately after link-up + */ + e1000e_check_downshift(hw); + + /* Enable/Disable EEE after link up */ + if (hw->phy.type > e1000_phy_82579) { + ret_val = e1000_set_eee_pchlan(hw); + if (ret_val) + return ret_val; + } + + /* If we are forcing speed/duplex, then we simply return since + * we have already determined whether we have link or not. + */ + if (!mac->autoneg) + return -E1000_ERR_CONFIG; + + /* Auto-Neg is enabled. Auto Speed Detection takes care + * of MAC speed/duplex configuration. So we only need to + * configure Collision Distance in the MAC. + */ + mac->ops.config_collision_dist(hw); + + /* Configure Flow Control now that Auto-Neg has completed. + * First, we need to restore the desired flow control + * settings because we may have had to re-autoneg with a + * different link partner. + */ + ret_val = e1000e_config_fc_after_link_up(hw); + if (ret_val) + e_dbg("Error configuring flow control\n"); + + return ret_val; +} + +static s32 e1000_get_variants_ich8lan(struct e1000_adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + s32 rc; + + rc = e1000_init_mac_params_ich8lan(hw); + if (rc) + return rc; + + rc = e1000_init_nvm_params_ich8lan(hw); + if (rc) + return rc; + + switch (hw->mac.type) { + case e1000_ich8lan: + case e1000_ich9lan: + case e1000_ich10lan: + rc = e1000_init_phy_params_ich8lan(hw); + break; + case e1000_pchlan: + case e1000_pch2lan: + case e1000_pch_lpt: + case e1000_pch_spt: + rc = e1000_init_phy_params_pchlan(hw); + break; + default: + break; + } + if (rc) + return rc; + + /* Disable Jumbo Frame support on parts with Intel 10/100 PHY or + * on parts with MACsec enabled in NVM (reflected in CTRL_EXT). + */ + if ((adapter->hw.phy.type == e1000_phy_ife) || + ((adapter->hw.mac.type >= e1000_pch2lan) && + (!(er32(CTRL_EXT) & E1000_CTRL_EXT_LSECCK)))) { + adapter->flags &= ~FLAG_HAS_JUMBO_FRAMES; + adapter->max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN; + + hw->mac.ops.blink_led = NULL; + } + + if ((adapter->hw.mac.type == e1000_ich8lan) && + (adapter->hw.phy.type != e1000_phy_ife)) + adapter->flags |= FLAG_LSC_GIG_SPEED_DROP; + + /* Enable workaround for 82579 w/ ME enabled */ + if ((adapter->hw.mac.type == e1000_pch2lan) && + (er32(FWSM) & E1000_ICH_FWSM_FW_VALID)) + adapter->flags2 |= FLAG2_PCIM2PCI_ARBITER_WA; + + return 0; +} + +static DEFINE_MUTEX(nvm_mutex); + +/** + * e1000_acquire_nvm_ich8lan - Acquire NVM mutex + * @hw: pointer to the HW structure + * + * Acquires the mutex for performing NVM operations. + **/ +static s32 e1000_acquire_nvm_ich8lan(struct e1000_hw __always_unused *hw) +{ + mutex_lock(&nvm_mutex); + + return 0; +} + +/** + * e1000_release_nvm_ich8lan - Release NVM mutex + * @hw: pointer to the HW structure + * + * Releases the mutex used while performing NVM operations. + **/ +static void e1000_release_nvm_ich8lan(struct e1000_hw __always_unused *hw) +{ + mutex_unlock(&nvm_mutex); +} + +/** + * e1000_acquire_swflag_ich8lan - Acquire software control flag + * @hw: pointer to the HW structure + * + * Acquires the software control flag for performing PHY and select + * MAC CSR accesses. + **/ +static s32 e1000_acquire_swflag_ich8lan(struct e1000_hw *hw) +{ + u32 extcnf_ctrl, timeout = PHY_CFG_TIMEOUT; + s32 ret_val = 0; + + if (test_and_set_bit(__E1000_ACCESS_SHARED_RESOURCE, + &hw->adapter->state)) { + e_dbg("contention for Phy access\n"); + return -E1000_ERR_PHY; + } + + while (timeout) { + extcnf_ctrl = er32(EXTCNF_CTRL); + if (!(extcnf_ctrl & E1000_EXTCNF_CTRL_SWFLAG)) + break; + + mdelay(1); + timeout--; + } + + if (!timeout) { + e_dbg("SW has already locked the resource.\n"); + ret_val = -E1000_ERR_CONFIG; + goto out; + } + + timeout = SW_FLAG_TIMEOUT; + + extcnf_ctrl |= E1000_EXTCNF_CTRL_SWFLAG; + ew32(EXTCNF_CTRL, extcnf_ctrl); + + while (timeout) { + extcnf_ctrl = er32(EXTCNF_CTRL); + if (extcnf_ctrl & E1000_EXTCNF_CTRL_SWFLAG) + break; + + mdelay(1); + timeout--; + } + + if (!timeout) { + e_dbg("Failed to acquire the semaphore, FW or HW has it: FWSM=0x%8.8x EXTCNF_CTRL=0x%8.8x)\n", + er32(FWSM), extcnf_ctrl); + extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG; + ew32(EXTCNF_CTRL, extcnf_ctrl); + ret_val = -E1000_ERR_CONFIG; + goto out; + } + +out: + if (ret_val) + clear_bit(__E1000_ACCESS_SHARED_RESOURCE, &hw->adapter->state); + + return ret_val; +} + +/** + * e1000_release_swflag_ich8lan - Release software control flag + * @hw: pointer to the HW structure + * + * Releases the software control flag for performing PHY and select + * MAC CSR accesses. + **/ +static void e1000_release_swflag_ich8lan(struct e1000_hw *hw) +{ + u32 extcnf_ctrl; + + extcnf_ctrl = er32(EXTCNF_CTRL); + + if (extcnf_ctrl & E1000_EXTCNF_CTRL_SWFLAG) { + extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG; + ew32(EXTCNF_CTRL, extcnf_ctrl); + } else { + e_dbg("Semaphore unexpectedly released by sw/fw/hw\n"); + } + + clear_bit(__E1000_ACCESS_SHARED_RESOURCE, &hw->adapter->state); +} + +/** + * e1000_check_mng_mode_ich8lan - Checks management mode + * @hw: pointer to the HW structure + * + * This checks if the adapter has any manageability enabled. + * This is a function pointer entry point only called by read/write + * routines for the PHY and NVM parts. + **/ +static bool e1000_check_mng_mode_ich8lan(struct e1000_hw *hw) +{ + u32 fwsm; + + fwsm = er32(FWSM); + return (fwsm & E1000_ICH_FWSM_FW_VALID) && + ((fwsm & E1000_FWSM_MODE_MASK) == + (E1000_ICH_MNG_IAMT_MODE << E1000_FWSM_MODE_SHIFT)); +} + +/** + * e1000_check_mng_mode_pchlan - Checks management mode + * @hw: pointer to the HW structure + * + * This checks if the adapter has iAMT enabled. + * This is a function pointer entry point only called by read/write + * routines for the PHY and NVM parts. + **/ +static bool e1000_check_mng_mode_pchlan(struct e1000_hw *hw) +{ + u32 fwsm; + + fwsm = er32(FWSM); + return (fwsm & E1000_ICH_FWSM_FW_VALID) && + (fwsm & (E1000_ICH_MNG_IAMT_MODE << E1000_FWSM_MODE_SHIFT)); +} + +/** + * e1000_rar_set_pch2lan - Set receive address register + * @hw: pointer to the HW structure + * @addr: pointer to the receive address + * @index: receive address array register + * + * Sets the receive address array register at index to the address passed + * in by addr. For 82579, RAR[0] is the base address register that is to + * contain the MAC address but RAR[1-6] are reserved for manageability (ME). + * Use SHRA[0-3] in place of those reserved for ME. + **/ +static int e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index) +{ + u32 rar_low, rar_high; + + /* HW expects these in little endian so we reverse the byte order + * from network order (big endian) to little endian + */ + rar_low = ((u32)addr[0] | + ((u32)addr[1] << 8) | + ((u32)addr[2] << 16) | ((u32)addr[3] << 24)); + + rar_high = ((u32)addr[4] | ((u32)addr[5] << 8)); + + /* If MAC address zero, no need to set the AV bit */ + if (rar_low || rar_high) + rar_high |= E1000_RAH_AV; + + if (index == 0) { + ew32(RAL(index), rar_low); + e1e_flush(); + ew32(RAH(index), rar_high); + e1e_flush(); + return 0; + } + + /* RAR[1-6] are owned by manageability. Skip those and program the + * next address into the SHRA register array. + */ + if (index < (u32)(hw->mac.rar_entry_count)) { + s32 ret_val; + + ret_val = e1000_acquire_swflag_ich8lan(hw); + if (ret_val) + goto out; + + ew32(SHRAL(index - 1), rar_low); + e1e_flush(); + ew32(SHRAH(index - 1), rar_high); + e1e_flush(); + + e1000_release_swflag_ich8lan(hw); + + /* verify the register updates */ + if ((er32(SHRAL(index - 1)) == rar_low) && + (er32(SHRAH(index - 1)) == rar_high)) + return 0; + + e_dbg("SHRA[%d] might be locked by ME - FWSM=0x%8.8x\n", + (index - 1), er32(FWSM)); + } + +out: + e_dbg("Failed to write receive address at index %d\n", index); + return -E1000_ERR_CONFIG; +} + +/** + * e1000_rar_get_count_pch_lpt - Get the number of available SHRA + * @hw: pointer to the HW structure + * + * Get the number of available recieve registers that the Host can + * programm. SHRA[0-10] are the shared receive address registers + * that are shared between the Host and manageability engine (ME). + * ME can reserve any number of addresses and the host needs to be + * able to tell how many available registers it has access to so it + * can correctly determine if it can program them or turn on + * promiscuous mode. + **/ +static u32 e1000_rar_get_count_pch_lpt(struct e1000_hw *hw) +{ + u32 wlock_mac; + u32 num_entries; + + wlock_mac = er32(FWSM) & E1000_FWSM_WLOCK_MAC_MASK; + wlock_mac >>= E1000_FWSM_WLOCK_MAC_SHIFT; + + switch (wlock_mac) { + case 0: + /* All SHRA[0..10] and RAR[0] available */ + num_entries = hw->mac.rar_entry_count; + break; + case 1: + /* Only RAR[0] available */ + num_entries = 1; + break; + default: + /* SHRA[0..(wlock_mac - 1)] available + RAR[0] */ + num_entries = wlock_mac + 1; + break; + } + + return num_entries; +} + +/** + * e1000_rar_set_pch_lpt - Set receive address registers + * @hw: pointer to the HW structure + * @addr: pointer to the receive address + * @index: receive address array register + * + * Sets the receive address register array at index to the address passed + * in by addr. For LPT, RAR[0] is the base address register that is to + * contain the MAC address. SHRA[0-10] are the shared receive address + * registers that are shared between the Host and manageability engine (ME). + **/ +static int e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index) +{ + u32 rar_low, rar_high; + u32 wlock_mac; + + /* HW expects these in little endian so we reverse the byte order + * from network order (big endian) to little endian + */ + rar_low = ((u32)addr[0] | ((u32)addr[1] << 8) | + ((u32)addr[2] << 16) | ((u32)addr[3] << 24)); + + rar_high = ((u32)addr[4] | ((u32)addr[5] << 8)); + + /* If MAC address zero, no need to set the AV bit */ + if (rar_low || rar_high) + rar_high |= E1000_RAH_AV; + + if (index == 0) { + ew32(RAL(index), rar_low); + e1e_flush(); + ew32(RAH(index), rar_high); + e1e_flush(); + return 0; + } + + /* The manageability engine (ME) can lock certain SHRAR registers that + * it is using - those registers are unavailable for use. + */ + if (index < hw->mac.rar_entry_count) { + wlock_mac = er32(FWSM) & E1000_FWSM_WLOCK_MAC_MASK; + wlock_mac >>= E1000_FWSM_WLOCK_MAC_SHIFT; + + /* Check if all SHRAR registers are locked */ + if (wlock_mac == 1) + goto out; + + if ((wlock_mac == 0) || (index <= wlock_mac)) { + s32 ret_val; + + ret_val = e1000_acquire_swflag_ich8lan(hw); + + if (ret_val) + goto out; + + ew32(SHRAL_PCH_LPT(index - 1), rar_low); + e1e_flush(); + ew32(SHRAH_PCH_LPT(index - 1), rar_high); + e1e_flush(); + + e1000_release_swflag_ich8lan(hw); + + /* verify the register updates */ + if ((er32(SHRAL_PCH_LPT(index - 1)) == rar_low) && + (er32(SHRAH_PCH_LPT(index - 1)) == rar_high)) + return 0; + } + } + +out: + e_dbg("Failed to write receive address at index %d\n", index); + return -E1000_ERR_CONFIG; +} + +/** + * e1000_check_reset_block_ich8lan - Check if PHY reset is blocked + * @hw: pointer to the HW structure + * + * Checks if firmware is blocking the reset of the PHY. + * This is a function pointer entry point only called by + * reset routines. + **/ +static s32 e1000_check_reset_block_ich8lan(struct e1000_hw *hw) +{ + bool blocked = false; + int i = 0; + + while ((blocked = !(er32(FWSM) & E1000_ICH_FWSM_RSPCIPHY)) && + (i++ < 10)) + usleep_range(10000, 20000); + return blocked ? E1000_BLK_PHY_RESET : 0; +} + +/** + * e1000_write_smbus_addr - Write SMBus address to PHY needed during Sx states + * @hw: pointer to the HW structure + * + * Assumes semaphore already acquired. + * + **/ +static s32 e1000_write_smbus_addr(struct e1000_hw *hw) +{ + u16 phy_data; + u32 strap = er32(STRAP); + u32 freq = (strap & E1000_STRAP_SMT_FREQ_MASK) >> + E1000_STRAP_SMT_FREQ_SHIFT; + s32 ret_val; + + strap &= E1000_STRAP_SMBUS_ADDRESS_MASK; + + ret_val = e1000_read_phy_reg_hv_locked(hw, HV_SMB_ADDR, &phy_data); + if (ret_val) + return ret_val; + + phy_data &= ~HV_SMB_ADDR_MASK; + phy_data |= (strap >> E1000_STRAP_SMBUS_ADDRESS_SHIFT); + phy_data |= HV_SMB_ADDR_PEC_EN | HV_SMB_ADDR_VALID; + + if (hw->phy.type == e1000_phy_i217) { + /* Restore SMBus frequency */ + if (freq--) { + phy_data &= ~HV_SMB_ADDR_FREQ_MASK; + phy_data |= (freq & (1 << 0)) << + HV_SMB_ADDR_FREQ_LOW_SHIFT; + phy_data |= (freq & (1 << 1)) << + (HV_SMB_ADDR_FREQ_HIGH_SHIFT - 1); + } else { + e_dbg("Unsupported SMB frequency in PHY\n"); + } + } + + return e1000_write_phy_reg_hv_locked(hw, HV_SMB_ADDR, phy_data); +} + +/** + * e1000_sw_lcd_config_ich8lan - SW-based LCD Configuration + * @hw: pointer to the HW structure + * + * SW should configure the LCD from the NVM extended configuration region + * as a workaround for certain parts. + **/ +static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw) +{ + struct e1000_phy_info *phy = &hw->phy; + u32 i, data, cnf_size, cnf_base_addr, sw_cfg_mask; + s32 ret_val = 0; + u16 word_addr, reg_data, reg_addr, phy_page = 0; + + /* Initialize the PHY from the NVM on ICH platforms. This + * is needed due to an issue where the NVM configuration is + * not properly autoloaded after power transitions. + * Therefore, after each PHY reset, we will load the + * configuration data out of the NVM manually. + */ + switch (hw->mac.type) { + case e1000_ich8lan: + if (phy->type != e1000_phy_igp_3) + return ret_val; + + if ((hw->adapter->pdev->device == E1000_DEV_ID_ICH8_IGP_AMT) || + (hw->adapter->pdev->device == E1000_DEV_ID_ICH8_IGP_C)) { + sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG; + break; + } + /* Fall-thru */ + case e1000_pchlan: + case e1000_pch2lan: + case e1000_pch_lpt: + case e1000_pch_spt: + sw_cfg_mask = E1000_FEXTNVM_SW_CONFIG_ICH8M; + break; + default: + return ret_val; + } + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return ret_val; + + data = er32(FEXTNVM); + if (!(data & sw_cfg_mask)) + goto release; + + /* Make sure HW does not configure LCD from PHY + * extended configuration before SW configuration + */ + data = er32(EXTCNF_CTRL); + if ((hw->mac.type < e1000_pch2lan) && + (data & E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE)) + goto release; + + cnf_size = er32(EXTCNF_SIZE); + cnf_size &= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK; + cnf_size >>= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT; + if (!cnf_size) + goto release; + + cnf_base_addr = data & E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK; + cnf_base_addr >>= E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT; + + if (((hw->mac.type == e1000_pchlan) && + !(data & E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE)) || + (hw->mac.type > e1000_pchlan)) { + /* HW configures the SMBus address and LEDs when the + * OEM and LCD Write Enable bits are set in the NVM. + * When both NVM bits are cleared, SW will configure + * them instead. + */ + ret_val = e1000_write_smbus_addr(hw); + if (ret_val) + goto release; + + data = er32(LEDCTL); + ret_val = e1000_write_phy_reg_hv_locked(hw, HV_LED_CONFIG, + (u16)data); + if (ret_val) + goto release; + } + + /* Configure LCD from extended configuration region. */ + + /* cnf_base_addr is in DWORD */ + word_addr = (u16)(cnf_base_addr << 1); + + for (i = 0; i < cnf_size; i++) { + ret_val = e1000_read_nvm(hw, (word_addr + i * 2), 1, ®_data); + if (ret_val) + goto release; + + ret_val = e1000_read_nvm(hw, (word_addr + i * 2 + 1), + 1, ®_addr); + if (ret_val) + goto release; + + /* Save off the PHY page for future writes. */ + if (reg_addr == IGP01E1000_PHY_PAGE_SELECT) { + phy_page = reg_data; + continue; + } + + reg_addr &= PHY_REG_MASK; + reg_addr |= phy_page; + + ret_val = e1e_wphy_locked(hw, (u32)reg_addr, reg_data); + if (ret_val) + goto release; + } + +release: + hw->phy.ops.release(hw); + return ret_val; +} + +/** + * e1000_k1_gig_workaround_hv - K1 Si workaround + * @hw: pointer to the HW structure + * @link: link up bool flag + * + * If K1 is enabled for 1Gbps, the MAC might stall when transitioning + * from a lower speed. This workaround disables K1 whenever link is at 1Gig + * If link is down, the function will restore the default K1 setting located + * in the NVM. + **/ +static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link) +{ + s32 ret_val = 0; + u16 status_reg = 0; + bool k1_enable = hw->dev_spec.ich8lan.nvm_k1_enabled; + + if (hw->mac.type != e1000_pchlan) + return 0; + + /* Wrap the whole flow with the sw flag */ + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return ret_val; + + /* Disable K1 when link is 1Gbps, otherwise use the NVM setting */ + if (link) { + if (hw->phy.type == e1000_phy_82578) { + ret_val = e1e_rphy_locked(hw, BM_CS_STATUS, + &status_reg); + if (ret_val) + goto release; + + status_reg &= (BM_CS_STATUS_LINK_UP | + BM_CS_STATUS_RESOLVED | + BM_CS_STATUS_SPEED_MASK); + + if (status_reg == (BM_CS_STATUS_LINK_UP | + BM_CS_STATUS_RESOLVED | + BM_CS_STATUS_SPEED_1000)) + k1_enable = false; + } + + if (hw->phy.type == e1000_phy_82577) { + ret_val = e1e_rphy_locked(hw, HV_M_STATUS, &status_reg); + if (ret_val) + goto release; + + status_reg &= (HV_M_STATUS_LINK_UP | + HV_M_STATUS_AUTONEG_COMPLETE | + HV_M_STATUS_SPEED_MASK); + + if (status_reg == (HV_M_STATUS_LINK_UP | + HV_M_STATUS_AUTONEG_COMPLETE | + HV_M_STATUS_SPEED_1000)) + k1_enable = false; + } + + /* Link stall fix for link up */ + ret_val = e1e_wphy_locked(hw, PHY_REG(770, 19), 0x0100); + if (ret_val) + goto release; + + } else { + /* Link stall fix for link down */ + ret_val = e1e_wphy_locked(hw, PHY_REG(770, 19), 0x4100); + if (ret_val) + goto release; + } + + ret_val = e1000_configure_k1_ich8lan(hw, k1_enable); + +release: + hw->phy.ops.release(hw); + + return ret_val; +} + +/** + * e1000_configure_k1_ich8lan - Configure K1 power state + * @hw: pointer to the HW structure + * @enable: K1 state to configure + * + * Configure the K1 power state based on the provided parameter. + * Assumes semaphore already acquired. + * + * Success returns 0, Failure returns -E1000_ERR_PHY (-2) + **/ +s32 e1000_configure_k1_ich8lan(struct e1000_hw *hw, bool k1_enable) +{ + s32 ret_val; + u32 ctrl_reg = 0; + u32 ctrl_ext = 0; + u32 reg = 0; + u16 kmrn_reg = 0; + + ret_val = e1000e_read_kmrn_reg_locked(hw, E1000_KMRNCTRLSTA_K1_CONFIG, + &kmrn_reg); + if (ret_val) + return ret_val; + + if (k1_enable) + kmrn_reg |= E1000_KMRNCTRLSTA_K1_ENABLE; + else + kmrn_reg &= ~E1000_KMRNCTRLSTA_K1_ENABLE; + + ret_val = e1000e_write_kmrn_reg_locked(hw, E1000_KMRNCTRLSTA_K1_CONFIG, + kmrn_reg); + if (ret_val) + return ret_val; + + usleep_range(20, 40); + ctrl_ext = er32(CTRL_EXT); + ctrl_reg = er32(CTRL); + + reg = ctrl_reg & ~(E1000_CTRL_SPD_1000 | E1000_CTRL_SPD_100); + reg |= E1000_CTRL_FRCSPD; + ew32(CTRL, reg); + + ew32(CTRL_EXT, ctrl_ext | E1000_CTRL_EXT_SPD_BYPS); + e1e_flush(); + usleep_range(20, 40); + ew32(CTRL, ctrl_reg); + ew32(CTRL_EXT, ctrl_ext); + e1e_flush(); + usleep_range(20, 40); + + return 0; +} + +/** + * e1000_oem_bits_config_ich8lan - SW-based LCD Configuration + * @hw: pointer to the HW structure + * @d0_state: boolean if entering d0 or d3 device state + * + * SW will configure Gbe Disable and LPLU based on the NVM. The four bits are + * collectively called OEM bits. The OEM Write Enable bit and SW Config bit + * in NVM determines whether HW should configure LPLU and Gbe Disable. + **/ +static s32 e1000_oem_bits_config_ich8lan(struct e1000_hw *hw, bool d0_state) +{ + s32 ret_val = 0; + u32 mac_reg; + u16 oem_reg; + + if (hw->mac.type < e1000_pchlan) + return ret_val; + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return ret_val; + + if (hw->mac.type == e1000_pchlan) { + mac_reg = er32(EXTCNF_CTRL); + if (mac_reg & E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE) + goto release; + } + + mac_reg = er32(FEXTNVM); + if (!(mac_reg & E1000_FEXTNVM_SW_CONFIG_ICH8M)) + goto release; + + mac_reg = er32(PHY_CTRL); + + ret_val = e1e_rphy_locked(hw, HV_OEM_BITS, &oem_reg); + if (ret_val) + goto release; + + oem_reg &= ~(HV_OEM_BITS_GBE_DIS | HV_OEM_BITS_LPLU); + + if (d0_state) { + if (mac_reg & E1000_PHY_CTRL_GBE_DISABLE) + oem_reg |= HV_OEM_BITS_GBE_DIS; + + if (mac_reg & E1000_PHY_CTRL_D0A_LPLU) + oem_reg |= HV_OEM_BITS_LPLU; + } else { + if (mac_reg & (E1000_PHY_CTRL_GBE_DISABLE | + E1000_PHY_CTRL_NOND0A_GBE_DISABLE)) + oem_reg |= HV_OEM_BITS_GBE_DIS; + + if (mac_reg & (E1000_PHY_CTRL_D0A_LPLU | + E1000_PHY_CTRL_NOND0A_LPLU)) + oem_reg |= HV_OEM_BITS_LPLU; + } + + /* Set Restart auto-neg to activate the bits */ + if ((d0_state || (hw->mac.type != e1000_pchlan)) && + !hw->phy.ops.check_reset_block(hw)) + oem_reg |= HV_OEM_BITS_RESTART_AN; + + ret_val = e1e_wphy_locked(hw, HV_OEM_BITS, oem_reg); + +release: + hw->phy.ops.release(hw); + + return ret_val; +} + +/** + * e1000_set_mdio_slow_mode_hv - Set slow MDIO access mode + * @hw: pointer to the HW structure + **/ +static s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw) +{ + s32 ret_val; + u16 data; + + ret_val = e1e_rphy(hw, HV_KMRN_MODE_CTRL, &data); + if (ret_val) + return ret_val; + + data |= HV_KMRN_MDIO_SLOW; + + ret_val = e1e_wphy(hw, HV_KMRN_MODE_CTRL, data); + + return ret_val; +} + +/** + * e1000_hv_phy_workarounds_ich8lan - A series of Phy workarounds to be + * done after every PHY reset. + **/ +static s32 e1000_hv_phy_workarounds_ich8lan(struct e1000_hw *hw) +{ + s32 ret_val = 0; + u16 phy_data; + + if (hw->mac.type != e1000_pchlan) + return 0; + + /* Set MDIO slow mode before any other MDIO access */ + if (hw->phy.type == e1000_phy_82577) { + ret_val = e1000_set_mdio_slow_mode_hv(hw); + if (ret_val) + return ret_val; + } + + if (((hw->phy.type == e1000_phy_82577) && + ((hw->phy.revision == 1) || (hw->phy.revision == 2))) || + ((hw->phy.type == e1000_phy_82578) && (hw->phy.revision == 1))) { + /* Disable generation of early preamble */ + ret_val = e1e_wphy(hw, PHY_REG(769, 25), 0x4431); + if (ret_val) + return ret_val; + + /* Preamble tuning for SSC */ + ret_val = e1e_wphy(hw, HV_KMRN_FIFO_CTRLSTA, 0xA204); + if (ret_val) + return ret_val; + } + + if (hw->phy.type == e1000_phy_82578) { + /* Return registers to default by doing a soft reset then + * writing 0x3140 to the control register. + */ + if (hw->phy.revision < 2) { + e1000e_phy_sw_reset(hw); + ret_val = e1e_wphy(hw, MII_BMCR, 0x3140); + } + } + + /* Select page 0 */ + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return ret_val; + + hw->phy.addr = 1; + ret_val = e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, 0); + hw->phy.ops.release(hw); + if (ret_val) + return ret_val; + + /* Configure the K1 Si workaround during phy reset assuming there is + * link so that it disables K1 if link is in 1Gbps. + */ + ret_val = e1000_k1_gig_workaround_hv(hw, true); + if (ret_val) + return ret_val; + + /* Workaround for link disconnects on a busy hub in half duplex */ + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return ret_val; + ret_val = e1e_rphy_locked(hw, BM_PORT_GEN_CFG, &phy_data); + if (ret_val) + goto release; + ret_val = e1e_wphy_locked(hw, BM_PORT_GEN_CFG, phy_data & 0x00FF); + if (ret_val) + goto release; + + /* set MSE higher to enable link to stay up when noise is high */ + ret_val = e1000_write_emi_reg_locked(hw, I82577_MSE_THRESHOLD, 0x0034); +release: + hw->phy.ops.release(hw); + + return ret_val; +} + +/** + * e1000_copy_rx_addrs_to_phy_ich8lan - Copy Rx addresses from MAC to PHY + * @hw: pointer to the HW structure + **/ +void e1000_copy_rx_addrs_to_phy_ich8lan(struct e1000_hw *hw) +{ + u32 mac_reg; + u16 i, phy_reg = 0; + s32 ret_val; + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return; + ret_val = e1000_enable_phy_wakeup_reg_access_bm(hw, &phy_reg); + if (ret_val) + goto release; + + /* Copy both RAL/H (rar_entry_count) and SHRAL/H to PHY */ + for (i = 0; i < (hw->mac.rar_entry_count); i++) { + mac_reg = er32(RAL(i)); + hw->phy.ops.write_reg_page(hw, BM_RAR_L(i), + (u16)(mac_reg & 0xFFFF)); + hw->phy.ops.write_reg_page(hw, BM_RAR_M(i), + (u16)((mac_reg >> 16) & 0xFFFF)); + + mac_reg = er32(RAH(i)); + hw->phy.ops.write_reg_page(hw, BM_RAR_H(i), + (u16)(mac_reg & 0xFFFF)); + hw->phy.ops.write_reg_page(hw, BM_RAR_CTRL(i), + (u16)((mac_reg & E1000_RAH_AV) + >> 16)); + } + + e1000_disable_phy_wakeup_reg_access_bm(hw, &phy_reg); + +release: + hw->phy.ops.release(hw); +} + +/** + * e1000_lv_jumbo_workaround_ich8lan - required for jumbo frame operation + * with 82579 PHY + * @hw: pointer to the HW structure + * @enable: flag to enable/disable workaround when enabling/disabling jumbos + **/ +s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable) +{ + s32 ret_val = 0; + u16 phy_reg, data; + u32 mac_reg; + u16 i; + + if (hw->mac.type < e1000_pch2lan) + return 0; + + /* disable Rx path while enabling/disabling workaround */ + e1e_rphy(hw, PHY_REG(769, 20), &phy_reg); + ret_val = e1e_wphy(hw, PHY_REG(769, 20), phy_reg | (1 << 14)); + if (ret_val) + return ret_val; + + if (enable) { + /* Write Rx addresses (rar_entry_count for RAL/H, and + * SHRAL/H) and initial CRC values to the MAC + */ + for (i = 0; i < hw->mac.rar_entry_count; i++) { + u8 mac_addr[ETH_ALEN] = { 0 }; + u32 addr_high, addr_low; + + addr_high = er32(RAH(i)); + if (!(addr_high & E1000_RAH_AV)) + continue; + addr_low = er32(RAL(i)); + mac_addr[0] = (addr_low & 0xFF); + mac_addr[1] = ((addr_low >> 8) & 0xFF); + mac_addr[2] = ((addr_low >> 16) & 0xFF); + mac_addr[3] = ((addr_low >> 24) & 0xFF); + mac_addr[4] = (addr_high & 0xFF); + mac_addr[5] = ((addr_high >> 8) & 0xFF); + + ew32(PCH_RAICC(i), ~ether_crc_le(ETH_ALEN, mac_addr)); + } + + /* Write Rx addresses to the PHY */ + e1000_copy_rx_addrs_to_phy_ich8lan(hw); + + /* Enable jumbo frame workaround in the MAC */ + mac_reg = er32(FFLT_DBG); + mac_reg &= ~(1 << 14); + mac_reg |= (7 << 15); + ew32(FFLT_DBG, mac_reg); + + mac_reg = er32(RCTL); + mac_reg |= E1000_RCTL_SECRC; + ew32(RCTL, mac_reg); + + ret_val = e1000e_read_kmrn_reg(hw, + E1000_KMRNCTRLSTA_CTRL_OFFSET, + &data); + if (ret_val) + return ret_val; + ret_val = e1000e_write_kmrn_reg(hw, + E1000_KMRNCTRLSTA_CTRL_OFFSET, + data | (1 << 0)); + if (ret_val) + return ret_val; + ret_val = e1000e_read_kmrn_reg(hw, + E1000_KMRNCTRLSTA_HD_CTRL, + &data); + if (ret_val) + return ret_val; + data &= ~(0xF << 8); + data |= (0xB << 8); + ret_val = e1000e_write_kmrn_reg(hw, + E1000_KMRNCTRLSTA_HD_CTRL, + data); + if (ret_val) + return ret_val; + + /* Enable jumbo frame workaround in the PHY */ + e1e_rphy(hw, PHY_REG(769, 23), &data); + data &= ~(0x7F << 5); + data |= (0x37 << 5); + ret_val = e1e_wphy(hw, PHY_REG(769, 23), data); + if (ret_val) + return ret_val; + e1e_rphy(hw, PHY_REG(769, 16), &data); + data &= ~(1 << 13); + ret_val = e1e_wphy(hw, PHY_REG(769, 16), data); + if (ret_val) + return ret_val; + e1e_rphy(hw, PHY_REG(776, 20), &data); + data &= ~(0x3FF << 2); + data |= (E1000_TX_PTR_GAP << 2); + ret_val = e1e_wphy(hw, PHY_REG(776, 20), data); + if (ret_val) + return ret_val; + ret_val = e1e_wphy(hw, PHY_REG(776, 23), 0xF100); + if (ret_val) + return ret_val; + e1e_rphy(hw, HV_PM_CTRL, &data); + ret_val = e1e_wphy(hw, HV_PM_CTRL, data | (1 << 10)); + if (ret_val) + return ret_val; + } else { + /* Write MAC register values back to h/w defaults */ + mac_reg = er32(FFLT_DBG); + mac_reg &= ~(0xF << 14); + ew32(FFLT_DBG, mac_reg); + + mac_reg = er32(RCTL); + mac_reg &= ~E1000_RCTL_SECRC; + ew32(RCTL, mac_reg); + + ret_val = e1000e_read_kmrn_reg(hw, + E1000_KMRNCTRLSTA_CTRL_OFFSET, + &data); + if (ret_val) + return ret_val; + ret_val = e1000e_write_kmrn_reg(hw, + E1000_KMRNCTRLSTA_CTRL_OFFSET, + data & ~(1 << 0)); + if (ret_val) + return ret_val; + ret_val = e1000e_read_kmrn_reg(hw, + E1000_KMRNCTRLSTA_HD_CTRL, + &data); + if (ret_val) + return ret_val; + data &= ~(0xF << 8); + data |= (0xB << 8); + ret_val = e1000e_write_kmrn_reg(hw, + E1000_KMRNCTRLSTA_HD_CTRL, + data); + if (ret_val) + return ret_val; + + /* Write PHY register values back to h/w defaults */ + e1e_rphy(hw, PHY_REG(769, 23), &data); + data &= ~(0x7F << 5); + ret_val = e1e_wphy(hw, PHY_REG(769, 23), data); + if (ret_val) + return ret_val; + e1e_rphy(hw, PHY_REG(769, 16), &data); + data |= (1 << 13); + ret_val = e1e_wphy(hw, PHY_REG(769, 16), data); + if (ret_val) + return ret_val; + e1e_rphy(hw, PHY_REG(776, 20), &data); + data &= ~(0x3FF << 2); + data |= (0x8 << 2); + ret_val = e1e_wphy(hw, PHY_REG(776, 20), data); + if (ret_val) + return ret_val; + ret_val = e1e_wphy(hw, PHY_REG(776, 23), 0x7E00); + if (ret_val) + return ret_val; + e1e_rphy(hw, HV_PM_CTRL, &data); + ret_val = e1e_wphy(hw, HV_PM_CTRL, data & ~(1 << 10)); + if (ret_val) + return ret_val; + } + + /* re-enable Rx path after enabling/disabling workaround */ + return e1e_wphy(hw, PHY_REG(769, 20), phy_reg & ~(1 << 14)); +} + +/** + * e1000_lv_phy_workarounds_ich8lan - A series of Phy workarounds to be + * done after every PHY reset. + **/ +static s32 e1000_lv_phy_workarounds_ich8lan(struct e1000_hw *hw) +{ + s32 ret_val = 0; + + if (hw->mac.type != e1000_pch2lan) + return 0; + + /* Set MDIO slow mode before any other MDIO access */ + ret_val = e1000_set_mdio_slow_mode_hv(hw); + if (ret_val) + return ret_val; + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return ret_val; + /* set MSE higher to enable link to stay up when noise is high */ + ret_val = e1000_write_emi_reg_locked(hw, I82579_MSE_THRESHOLD, 0x0034); + if (ret_val) + goto release; + /* drop link after 5 times MSE threshold was reached */ + ret_val = e1000_write_emi_reg_locked(hw, I82579_MSE_LINK_DOWN, 0x0005); +release: + hw->phy.ops.release(hw); + + return ret_val; +} + +/** + * e1000_k1_gig_workaround_lv - K1 Si workaround + * @hw: pointer to the HW structure + * + * Workaround to set the K1 beacon duration for 82579 parts in 10Mbps + * Disable K1 for 1000 and 100 speeds + **/ +static s32 e1000_k1_workaround_lv(struct e1000_hw *hw) +{ + s32 ret_val = 0; + u16 status_reg = 0; + + if (hw->mac.type != e1000_pch2lan) + return 0; + + /* Set K1 beacon duration based on 10Mbs speed */ + ret_val = e1e_rphy(hw, HV_M_STATUS, &status_reg); + if (ret_val) + return ret_val; + + if ((status_reg & (HV_M_STATUS_LINK_UP | HV_M_STATUS_AUTONEG_COMPLETE)) + == (HV_M_STATUS_LINK_UP | HV_M_STATUS_AUTONEG_COMPLETE)) { + if (status_reg & + (HV_M_STATUS_SPEED_1000 | HV_M_STATUS_SPEED_100)) { + u16 pm_phy_reg; + + /* LV 1G/100 Packet drop issue wa */ + ret_val = e1e_rphy(hw, HV_PM_CTRL, &pm_phy_reg); + if (ret_val) + return ret_val; + pm_phy_reg &= ~HV_PM_CTRL_K1_ENABLE; + ret_val = e1e_wphy(hw, HV_PM_CTRL, pm_phy_reg); + if (ret_val) + return ret_val; + } else { + u32 mac_reg; + mac_reg = er32(FEXTNVM4); + mac_reg &= ~E1000_FEXTNVM4_BEACON_DURATION_MASK; + mac_reg |= E1000_FEXTNVM4_BEACON_DURATION_16USEC; + ew32(FEXTNVM4, mac_reg); + } + } + + return ret_val; +} + +/** + * e1000_gate_hw_phy_config_ich8lan - disable PHY config via hardware + * @hw: pointer to the HW structure + * @gate: boolean set to true to gate, false to ungate + * + * Gate/ungate the automatic PHY configuration via hardware; perform + * the configuration via software instead. + **/ +static void e1000_gate_hw_phy_config_ich8lan(struct e1000_hw *hw, bool gate) +{ + u32 extcnf_ctrl; + + if (hw->mac.type < e1000_pch2lan) + return; + + extcnf_ctrl = er32(EXTCNF_CTRL); + + if (gate) + extcnf_ctrl |= E1000_EXTCNF_CTRL_GATE_PHY_CFG; + else + extcnf_ctrl &= ~E1000_EXTCNF_CTRL_GATE_PHY_CFG; + + ew32(EXTCNF_CTRL, extcnf_ctrl); +} + +/** + * e1000_lan_init_done_ich8lan - Check for PHY config completion + * @hw: pointer to the HW structure + * + * Check the appropriate indication the MAC has finished configuring the + * PHY after a software reset. + **/ +static void e1000_lan_init_done_ich8lan(struct e1000_hw *hw) +{ + u32 data, loop = E1000_ICH8_LAN_INIT_TIMEOUT; + + /* Wait for basic configuration completes before proceeding */ + do { + data = er32(STATUS); + data &= E1000_STATUS_LAN_INIT_DONE; + usleep_range(100, 200); + } while ((!data) && --loop); + + /* If basic configuration is incomplete before the above loop + * count reaches 0, loading the configuration from NVM will + * leave the PHY in a bad state possibly resulting in no link. + */ + if (loop == 0) + e_dbg("LAN_INIT_DONE not set, increase timeout\n"); + + /* Clear the Init Done bit for the next init event */ + data = er32(STATUS); + data &= ~E1000_STATUS_LAN_INIT_DONE; + ew32(STATUS, data); +} + +/** + * e1000_post_phy_reset_ich8lan - Perform steps required after a PHY reset + * @hw: pointer to the HW structure + **/ +static s32 e1000_post_phy_reset_ich8lan(struct e1000_hw *hw) +{ + s32 ret_val = 0; + u16 reg; + + if (hw->phy.ops.check_reset_block(hw)) + return 0; + + /* Allow time for h/w to get to quiescent state after reset */ + usleep_range(10000, 20000); + + /* Perform any necessary post-reset workarounds */ + switch (hw->mac.type) { + case e1000_pchlan: + ret_val = e1000_hv_phy_workarounds_ich8lan(hw); + if (ret_val) + return ret_val; + break; + case e1000_pch2lan: + ret_val = e1000_lv_phy_workarounds_ich8lan(hw); + if (ret_val) + return ret_val; + break; + default: + break; + } + + /* Clear the host wakeup bit after lcd reset */ + if (hw->mac.type >= e1000_pchlan) { + e1e_rphy(hw, BM_PORT_GEN_CFG, ®); + reg &= ~BM_WUC_HOST_WU_BIT; + e1e_wphy(hw, BM_PORT_GEN_CFG, reg); + } + + /* Configure the LCD with the extended configuration region in NVM */ + ret_val = e1000_sw_lcd_config_ich8lan(hw); + if (ret_val) + return ret_val; + + /* Configure the LCD with the OEM bits in NVM */ + ret_val = e1000_oem_bits_config_ich8lan(hw, true); + + if (hw->mac.type == e1000_pch2lan) { + /* Ungate automatic PHY configuration on non-managed 82579 */ + if (!(er32(FWSM) & E1000_ICH_FWSM_FW_VALID)) { + usleep_range(10000, 20000); + e1000_gate_hw_phy_config_ich8lan(hw, false); + } + + /* Set EEE LPI Update Timer to 200usec */ + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return ret_val; + ret_val = e1000_write_emi_reg_locked(hw, + I82579_LPI_UPDATE_TIMER, + 0x1387); + hw->phy.ops.release(hw); + } + + return ret_val; +} + +/** + * e1000_phy_hw_reset_ich8lan - Performs a PHY reset + * @hw: pointer to the HW structure + * + * Resets the PHY + * This is a function pointer entry point called by drivers + * or other shared routines. + **/ +static s32 e1000_phy_hw_reset_ich8lan(struct e1000_hw *hw) +{ + s32 ret_val = 0; + + /* Gate automatic PHY configuration by hardware on non-managed 82579 */ + if ((hw->mac.type == e1000_pch2lan) && + !(er32(FWSM) & E1000_ICH_FWSM_FW_VALID)) + e1000_gate_hw_phy_config_ich8lan(hw, true); + + ret_val = e1000e_phy_hw_reset_generic(hw); + if (ret_val) + return ret_val; + + return e1000_post_phy_reset_ich8lan(hw); +} + +/** + * e1000_set_lplu_state_pchlan - Set Low Power Link Up state + * @hw: pointer to the HW structure + * @active: true to enable LPLU, false to disable + * + * Sets the LPLU state according to the active flag. For PCH, if OEM write + * bit are disabled in the NVM, writing the LPLU bits in the MAC will not set + * the phy speed. This function will manually set the LPLU bit and restart + * auto-neg as hw would do. D3 and D0 LPLU will call the same function + * since it configures the same bit. + **/ +static s32 e1000_set_lplu_state_pchlan(struct e1000_hw *hw, bool active) +{ + s32 ret_val; + u16 oem_reg; + + ret_val = e1e_rphy(hw, HV_OEM_BITS, &oem_reg); + if (ret_val) + return ret_val; + + if (active) + oem_reg |= HV_OEM_BITS_LPLU; + else + oem_reg &= ~HV_OEM_BITS_LPLU; + + if (!hw->phy.ops.check_reset_block(hw)) + oem_reg |= HV_OEM_BITS_RESTART_AN; + + return e1e_wphy(hw, HV_OEM_BITS, oem_reg); +} + +/** + * e1000_set_d0_lplu_state_ich8lan - Set Low Power Linkup D0 state + * @hw: pointer to the HW structure + * @active: true to enable LPLU, false to disable + * + * Sets the LPLU D0 state according to the active flag. When + * activating LPLU this function also disables smart speed + * and vice versa. LPLU will not be activated unless the + * device autonegotiation advertisement meets standards of + * either 10 or 10/100 or 10/100/1000 at all duplexes. + * This is a function pointer entry point only called by + * PHY setup routines. + **/ +static s32 e1000_set_d0_lplu_state_ich8lan(struct e1000_hw *hw, bool active) +{ + struct e1000_phy_info *phy = &hw->phy; + u32 phy_ctrl; + s32 ret_val = 0; + u16 data; + + if (phy->type == e1000_phy_ife) + return 0; + + phy_ctrl = er32(PHY_CTRL); + + if (active) { + phy_ctrl |= E1000_PHY_CTRL_D0A_LPLU; + ew32(PHY_CTRL, phy_ctrl); + + if (phy->type != e1000_phy_igp_3) + return 0; + + /* Call gig speed drop workaround on LPLU before accessing + * any PHY registers + */ + if (hw->mac.type == e1000_ich8lan) + e1000e_gig_downshift_workaround_ich8lan(hw); + + /* When LPLU is enabled, we should disable SmartSpeed */ + ret_val = e1e_rphy(hw, IGP01E1000_PHY_PORT_CONFIG, &data); + if (ret_val) + return ret_val; + data &= ~IGP01E1000_PSCFR_SMART_SPEED; + ret_val = e1e_wphy(hw, IGP01E1000_PHY_PORT_CONFIG, data); + if (ret_val) + return ret_val; + } else { + phy_ctrl &= ~E1000_PHY_CTRL_D0A_LPLU; + ew32(PHY_CTRL, phy_ctrl); + + if (phy->type != e1000_phy_igp_3) + return 0; + + /* LPLU and SmartSpeed are mutually exclusive. LPLU is used + * during Dx states where the power conservation is most + * important. During driver activity we should enable + * SmartSpeed, so performance is maintained. + */ + if (phy->smart_speed == e1000_smart_speed_on) { + ret_val = e1e_rphy(hw, + IGP01E1000_PHY_PORT_CONFIG, &data); + if (ret_val) + return ret_val; + + data |= IGP01E1000_PSCFR_SMART_SPEED; + ret_val = e1e_wphy(hw, + IGP01E1000_PHY_PORT_CONFIG, data); + if (ret_val) + return ret_val; + } else if (phy->smart_speed == e1000_smart_speed_off) { + ret_val = e1e_rphy(hw, + IGP01E1000_PHY_PORT_CONFIG, &data); + if (ret_val) + return ret_val; + + data &= ~IGP01E1000_PSCFR_SMART_SPEED; + ret_val = e1e_wphy(hw, + IGP01E1000_PHY_PORT_CONFIG, data); + if (ret_val) + return ret_val; + } + } + + return 0; +} + +/** + * e1000_set_d3_lplu_state_ich8lan - Set Low Power Linkup D3 state + * @hw: pointer to the HW structure + * @active: true to enable LPLU, false to disable + * + * Sets the LPLU D3 state according to the active flag. When + * activating LPLU this function also disables smart speed + * and vice versa. LPLU will not be activated unless the + * device autonegotiation advertisement meets standards of + * either 10 or 10/100 or 10/100/1000 at all duplexes. + * This is a function pointer entry point only called by + * PHY setup routines. + **/ +static s32 e1000_set_d3_lplu_state_ich8lan(struct e1000_hw *hw, bool active) +{ + struct e1000_phy_info *phy = &hw->phy; + u32 phy_ctrl; + s32 ret_val = 0; + u16 data; + + phy_ctrl = er32(PHY_CTRL); + + if (!active) { + phy_ctrl &= ~E1000_PHY_CTRL_NOND0A_LPLU; + ew32(PHY_CTRL, phy_ctrl); + + if (phy->type != e1000_phy_igp_3) + return 0; + + /* LPLU and SmartSpeed are mutually exclusive. LPLU is used + * during Dx states where the power conservation is most + * important. During driver activity we should enable + * SmartSpeed, so performance is maintained. + */ + if (phy->smart_speed == e1000_smart_speed_on) { + ret_val = e1e_rphy(hw, + IGP01E1000_PHY_PORT_CONFIG, &data); + if (ret_val) + return ret_val; + + data |= IGP01E1000_PSCFR_SMART_SPEED; + ret_val = e1e_wphy(hw, + IGP01E1000_PHY_PORT_CONFIG, data); + if (ret_val) + return ret_val; + } else if (phy->smart_speed == e1000_smart_speed_off) { + ret_val = e1e_rphy(hw, + IGP01E1000_PHY_PORT_CONFIG, &data); + if (ret_val) + return ret_val; + + data &= ~IGP01E1000_PSCFR_SMART_SPEED; + ret_val = e1e_wphy(hw, + IGP01E1000_PHY_PORT_CONFIG, data); + if (ret_val) + return ret_val; + } + } else if ((phy->autoneg_advertised == E1000_ALL_SPEED_DUPLEX) || + (phy->autoneg_advertised == E1000_ALL_NOT_GIG) || + (phy->autoneg_advertised == E1000_ALL_10_SPEED)) { + phy_ctrl |= E1000_PHY_CTRL_NOND0A_LPLU; + ew32(PHY_CTRL, phy_ctrl); + + if (phy->type != e1000_phy_igp_3) + return 0; + + /* Call gig speed drop workaround on LPLU before accessing + * any PHY registers + */ + if (hw->mac.type == e1000_ich8lan) + e1000e_gig_downshift_workaround_ich8lan(hw); + + /* When LPLU is enabled, we should disable SmartSpeed */ + ret_val = e1e_rphy(hw, IGP01E1000_PHY_PORT_CONFIG, &data); + if (ret_val) + return ret_val; + + data &= ~IGP01E1000_PSCFR_SMART_SPEED; + ret_val = e1e_wphy(hw, IGP01E1000_PHY_PORT_CONFIG, data); + } + + return ret_val; +} + +/** + * e1000_valid_nvm_bank_detect_ich8lan - finds out the valid bank 0 or 1 + * @hw: pointer to the HW structure + * @bank: pointer to the variable that returns the active bank + * + * Reads signature byte from the NVM using the flash access registers. + * Word 0x13 bits 15:14 = 10b indicate a valid signature for that bank. + **/ +static s32 e1000_valid_nvm_bank_detect_ich8lan(struct e1000_hw *hw, u32 *bank) +{ + u32 eecd; + struct e1000_nvm_info *nvm = &hw->nvm; + u32 bank1_offset = nvm->flash_bank_size * sizeof(u16); + u32 act_offset = E1000_ICH_NVM_SIG_WORD * 2 + 1; + u8 sig_byte = 0; + s32 ret_val; + + switch (hw->mac.type) { + /* In SPT, read from the CTRL_EXT reg instead of + * accessing the sector valid bits from the nvm + */ + case e1000_pch_spt: + *bank = er32(CTRL_EXT) + & E1000_CTRL_EXT_NVMVS; + if ((*bank == 0) || (*bank == 1)) { + e_dbg("ERROR: No valid NVM bank present\n"); + return -E1000_ERR_NVM; + } else { + *bank = *bank - 2; + return 0; + } + break; + case e1000_ich8lan: + case e1000_ich9lan: + eecd = er32(EECD); + if ((eecd & E1000_EECD_SEC1VAL_VALID_MASK) == + E1000_EECD_SEC1VAL_VALID_MASK) { + if (eecd & E1000_EECD_SEC1VAL) + *bank = 1; + else + *bank = 0; + + return 0; + } + e_dbg("Unable to determine valid NVM bank via EEC - reading flash signature\n"); + /* fall-thru */ + default: + /* set bank to 0 in case flash read fails */ + *bank = 0; + + /* Check bank 0 */ + ret_val = e1000_read_flash_byte_ich8lan(hw, act_offset, + &sig_byte); + if (ret_val) + return ret_val; + if ((sig_byte & E1000_ICH_NVM_VALID_SIG_MASK) == + E1000_ICH_NVM_SIG_VALUE) { + *bank = 0; + return 0; + } + + /* Check bank 1 */ + ret_val = e1000_read_flash_byte_ich8lan(hw, act_offset + + bank1_offset, + &sig_byte); + if (ret_val) + return ret_val; + if ((sig_byte & E1000_ICH_NVM_VALID_SIG_MASK) == + E1000_ICH_NVM_SIG_VALUE) { + *bank = 1; + return 0; + } + + e_dbg("ERROR: No valid NVM bank present\n"); + return -E1000_ERR_NVM; + } +} + +/** + * e1000_read_nvm_spt - NVM access for SPT + * @hw: pointer to the HW structure + * @offset: The offset (in bytes) of the word(s) to read. + * @words: Size of data to read in words. + * @data: pointer to the word(s) to read at offset. + * + * Reads a word(s) from the NVM + **/ +static s32 e1000_read_nvm_spt(struct e1000_hw *hw, u16 offset, u16 words, + u16 *data) +{ + struct e1000_nvm_info *nvm = &hw->nvm; + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + u32 act_offset; + s32 ret_val = 0; + u32 bank = 0; + u32 dword = 0; + u16 offset_to_read; + u16 i; + + if ((offset >= nvm->word_size) || (words > nvm->word_size - offset) || + (words == 0)) { + e_dbg("nvm parameter(s) out of bounds\n"); + ret_val = -E1000_ERR_NVM; + goto out; + } + + nvm->ops.acquire(hw); + + ret_val = e1000_valid_nvm_bank_detect_ich8lan(hw, &bank); + if (ret_val) { + e_dbg("Could not detect valid bank, assuming bank 0\n"); + bank = 0; + } + + act_offset = (bank) ? nvm->flash_bank_size : 0; + act_offset += offset; + + ret_val = 0; + + for (i = 0; i < words; i += 2) { + if (words - i == 1) { + if (dev_spec->shadow_ram[offset + i].modified) { + data[i] = + dev_spec->shadow_ram[offset + i].value; + } else { + offset_to_read = act_offset + i - + ((act_offset + i) % 2); + ret_val = + e1000_read_flash_dword_ich8lan(hw, + offset_to_read, + &dword); + if (ret_val) + break; + if ((act_offset + i) % 2 == 0) + data[i] = (u16)(dword & 0xFFFF); + else + data[i] = (u16)((dword >> 16) & 0xFFFF); + } + } else { + offset_to_read = act_offset + i; + if (!(dev_spec->shadow_ram[offset + i].modified) || + !(dev_spec->shadow_ram[offset + i + 1].modified)) { + ret_val = + e1000_read_flash_dword_ich8lan(hw, + offset_to_read, + &dword); + if (ret_val) + break; + } + if (dev_spec->shadow_ram[offset + i].modified) + data[i] = + dev_spec->shadow_ram[offset + i].value; + else + data[i] = (u16)(dword & 0xFFFF); + if (dev_spec->shadow_ram[offset + i].modified) + data[i + 1] = + dev_spec->shadow_ram[offset + i + 1].value; + else + data[i + 1] = (u16)(dword >> 16 & 0xFFFF); + } + } + + nvm->ops.release(hw); + +out: + if (ret_val) + e_dbg("NVM read error: %d\n", ret_val); + + return ret_val; +} + +/** + * e1000_read_nvm_ich8lan - Read word(s) from the NVM + * @hw: pointer to the HW structure + * @offset: The offset (in bytes) of the word(s) to read. + * @words: Size of data to read in words + * @data: Pointer to the word(s) to read at offset. + * + * Reads a word(s) from the NVM using the flash access registers. + **/ +static s32 e1000_read_nvm_ich8lan(struct e1000_hw *hw, u16 offset, u16 words, + u16 *data) +{ + struct e1000_nvm_info *nvm = &hw->nvm; + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + u32 act_offset; + s32 ret_val = 0; + u32 bank = 0; + u16 i, word; + + if ((offset >= nvm->word_size) || (words > nvm->word_size - offset) || + (words == 0)) { + e_dbg("nvm parameter(s) out of bounds\n"); + ret_val = -E1000_ERR_NVM; + goto out; + } + + nvm->ops.acquire(hw); + + ret_val = e1000_valid_nvm_bank_detect_ich8lan(hw, &bank); + if (ret_val) { + e_dbg("Could not detect valid bank, assuming bank 0\n"); + bank = 0; + } + + act_offset = (bank) ? nvm->flash_bank_size : 0; + act_offset += offset; + + ret_val = 0; + for (i = 0; i < words; i++) { + if (dev_spec->shadow_ram[offset + i].modified) { + data[i] = dev_spec->shadow_ram[offset + i].value; + } else { + ret_val = e1000_read_flash_word_ich8lan(hw, + act_offset + i, + &word); + if (ret_val) + break; + data[i] = word; + } + } + + nvm->ops.release(hw); + +out: + if (ret_val) + e_dbg("NVM read error: %d\n", ret_val); + + return ret_val; +} + +/** + * e1000_flash_cycle_init_ich8lan - Initialize flash + * @hw: pointer to the HW structure + * + * This function does initial flash setup so that a new read/write/erase cycle + * can be started. + **/ +static s32 e1000_flash_cycle_init_ich8lan(struct e1000_hw *hw) +{ + union ich8_hws_flash_status hsfsts; + s32 ret_val = -E1000_ERR_NVM; + + hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); + + /* Check if the flash descriptor is valid */ + if (!hsfsts.hsf_status.fldesvalid) { + e_dbg("Flash descriptor invalid. SW Sequencing must be used.\n"); + return -E1000_ERR_NVM; + } + + /* Clear FCERR and DAEL in hw status by writing 1 */ + hsfsts.hsf_status.flcerr = 1; + hsfsts.hsf_status.dael = 1; + if (hw->mac.type == e1000_pch_spt) + ew32flash(ICH_FLASH_HSFSTS, hsfsts.regval & 0xFFFF); + else + ew16flash(ICH_FLASH_HSFSTS, hsfsts.regval); + + /* Either we should have a hardware SPI cycle in progress + * bit to check against, in order to start a new cycle or + * FDONE bit should be changed in the hardware so that it + * is 1 after hardware reset, which can then be used as an + * indication whether a cycle is in progress or has been + * completed. + */ + + if (!hsfsts.hsf_status.flcinprog) { + /* There is no cycle running at present, + * so we can start a cycle. + * Begin by setting Flash Cycle Done. + */ + hsfsts.hsf_status.flcdone = 1; + if (hw->mac.type == e1000_pch_spt) + ew32flash(ICH_FLASH_HSFSTS, hsfsts.regval & 0xFFFF); + else + ew16flash(ICH_FLASH_HSFSTS, hsfsts.regval); + ret_val = 0; + } else { + s32 i; + + /* Otherwise poll for sometime so the current + * cycle has a chance to end before giving up. + */ + for (i = 0; i < ICH_FLASH_READ_COMMAND_TIMEOUT; i++) { + hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); + if (!hsfsts.hsf_status.flcinprog) { + ret_val = 0; + break; + } + udelay(1); + } + if (!ret_val) { + /* Successful in waiting for previous cycle to timeout, + * now set the Flash Cycle Done. + */ + hsfsts.hsf_status.flcdone = 1; + if (hw->mac.type == e1000_pch_spt) + ew32flash(ICH_FLASH_HSFSTS, + hsfsts.regval & 0xFFFF); + else + ew16flash(ICH_FLASH_HSFSTS, hsfsts.regval); + } else { + e_dbg("Flash controller busy, cannot get access\n"); + } + } + + return ret_val; +} + +/** + * e1000_flash_cycle_ich8lan - Starts flash cycle (read/write/erase) + * @hw: pointer to the HW structure + * @timeout: maximum time to wait for completion + * + * This function starts a flash cycle and waits for its completion. + **/ +static s32 e1000_flash_cycle_ich8lan(struct e1000_hw *hw, u32 timeout) +{ + union ich8_hws_flash_ctrl hsflctl; + union ich8_hws_flash_status hsfsts; + u32 i = 0; + + /* Start a cycle by writing 1 in Flash Cycle Go in Hw Flash Control */ + if (hw->mac.type == e1000_pch_spt) + hsflctl.regval = er32flash(ICH_FLASH_HSFSTS) >> 16; + else + hsflctl.regval = er16flash(ICH_FLASH_HSFCTL); + hsflctl.hsf_ctrl.flcgo = 1; + + if (hw->mac.type == e1000_pch_spt) + ew32flash(ICH_FLASH_HSFSTS, hsflctl.regval << 16); + else + ew16flash(ICH_FLASH_HSFCTL, hsflctl.regval); + + /* wait till FDONE bit is set to 1 */ + do { + hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); + if (hsfsts.hsf_status.flcdone) + break; + udelay(1); + } while (i++ < timeout); + + if (hsfsts.hsf_status.flcdone && !hsfsts.hsf_status.flcerr) + return 0; + + return -E1000_ERR_NVM; +} + +/** + * e1000_read_flash_dword_ich8lan - Read dword from flash + * @hw: pointer to the HW structure + * @offset: offset to data location + * @data: pointer to the location for storing the data + * + * Reads the flash dword at offset into data. Offset is converted + * to bytes before read. + **/ +static s32 e1000_read_flash_dword_ich8lan(struct e1000_hw *hw, u32 offset, + u32 *data) +{ + /* Must convert word offset into bytes. */ + offset <<= 1; + return e1000_read_flash_data32_ich8lan(hw, offset, data); +} + +/** + * e1000_read_flash_word_ich8lan - Read word from flash + * @hw: pointer to the HW structure + * @offset: offset to data location + * @data: pointer to the location for storing the data + * + * Reads the flash word at offset into data. Offset is converted + * to bytes before read. + **/ +static s32 e1000_read_flash_word_ich8lan(struct e1000_hw *hw, u32 offset, + u16 *data) +{ + /* Must convert offset into bytes. */ + offset <<= 1; + return e1000_read_flash_data_ich8lan(hw, offset, 2, data); +} + +/** + * e1000_read_flash_byte_ich8lan - Read byte from flash + * @hw: pointer to the HW structure + * @offset: The offset of the byte to read. + * @data: Pointer to a byte to store the value read. + * + * Reads a single byte from the NVM using the flash access registers. + **/ +static s32 e1000_read_flash_byte_ich8lan(struct e1000_hw *hw, u32 offset, + u8 *data) +{ + s32 ret_val; + u16 word = 0; + + /* In SPT, only 32 bits access is supported, + * so this function should not be called. + */ + if (hw->mac.type == e1000_pch_spt) + return -E1000_ERR_NVM; + else + ret_val = e1000_read_flash_data_ich8lan(hw, offset, 1, &word); + + if (ret_val) + return ret_val; + + *data = (u8)word; + + return 0; +} + +/** + * e1000_read_flash_data_ich8lan - Read byte or word from NVM + * @hw: pointer to the HW structure + * @offset: The offset (in bytes) of the byte or word to read. + * @size: Size of data to read, 1=byte 2=word + * @data: Pointer to the word to store the value read. + * + * Reads a byte or word from the NVM using the flash access registers. + **/ +static s32 e1000_read_flash_data_ich8lan(struct e1000_hw *hw, u32 offset, + u8 size, u16 *data) +{ + union ich8_hws_flash_status hsfsts; + union ich8_hws_flash_ctrl hsflctl; + u32 flash_linear_addr; + u32 flash_data = 0; + s32 ret_val = -E1000_ERR_NVM; + u8 count = 0; + + if (size < 1 || size > 2 || offset > ICH_FLASH_LINEAR_ADDR_MASK) + return -E1000_ERR_NVM; + flash_linear_addr = ((ICH_FLASH_LINEAR_ADDR_MASK & offset) + + hw->nvm.flash_base_addr); + + do { + udelay(1); + /* Steps */ + ret_val = e1000_flash_cycle_init_ich8lan(hw); + if (ret_val) + break; + hsflctl.regval = er16flash(ICH_FLASH_HSFCTL); + + /* 0b/1b corresponds to 1 or 2 byte size, respectively. */ + hsflctl.hsf_ctrl.fldbcount = size - 1; + hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_READ; + ew16flash(ICH_FLASH_HSFCTL, hsflctl.regval); + ew32flash(ICH_FLASH_FADDR, flash_linear_addr); + + ret_val = e1000_flash_cycle_ich8lan(hw, + ICH_FLASH_READ_COMMAND_TIMEOUT); + + /* Check if FCERR is set to 1, if set to 1, clear it + * and try the whole sequence a few more times, else + * read in (shift in) the Flash Data0, the order is + * least significant byte first msb to lsb + */ + if (!ret_val) { + flash_data = er32flash(ICH_FLASH_FDATA0); + if (size == 1) + *data = (u8)(flash_data & 0x000000FF); + else if (size == 2) + *data = (u16)(flash_data & 0x0000FFFF); + break; + } else { + /* If we've gotten here, then things are probably + * completely hosed, but if the error condition is + * detected, it won't hurt to give it another try... + * ICH_FLASH_CYCLE_REPEAT_COUNT times. + */ + hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); + if (hsfsts.hsf_status.flcerr) { + /* Repeat for some time before giving up. */ + continue; + } else if (!hsfsts.hsf_status.flcdone) { + e_dbg("Timeout error - flash cycle did not complete.\n"); + break; + } + } + } while (count++ < ICH_FLASH_CYCLE_REPEAT_COUNT); + + return ret_val; +} + +/** + * e1000_read_flash_data32_ich8lan - Read dword from NVM + * @hw: pointer to the HW structure + * @offset: The offset (in bytes) of the dword to read. + * @data: Pointer to the dword to store the value read. + * + * Reads a byte or word from the NVM using the flash access registers. + **/ + +static s32 e1000_read_flash_data32_ich8lan(struct e1000_hw *hw, u32 offset, + u32 *data) +{ + union ich8_hws_flash_status hsfsts; + union ich8_hws_flash_ctrl hsflctl; + u32 flash_linear_addr; + s32 ret_val = -E1000_ERR_NVM; + u8 count = 0; + + if (offset > ICH_FLASH_LINEAR_ADDR_MASK || + hw->mac.type != e1000_pch_spt) + return -E1000_ERR_NVM; + flash_linear_addr = ((ICH_FLASH_LINEAR_ADDR_MASK & offset) + + hw->nvm.flash_base_addr); + + do { + udelay(1); + /* Steps */ + ret_val = e1000_flash_cycle_init_ich8lan(hw); + if (ret_val) + break; + /* In SPT, This register is in Lan memory space, not flash. + * Therefore, only 32 bit access is supported + */ + hsflctl.regval = er32flash(ICH_FLASH_HSFSTS) >> 16; + + /* 0b/1b corresponds to 1 or 2 byte size, respectively. */ + hsflctl.hsf_ctrl.fldbcount = sizeof(u32) - 1; + hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_READ; + /* In SPT, This register is in Lan memory space, not flash. + * Therefore, only 32 bit access is supported + */ + ew32flash(ICH_FLASH_HSFSTS, (u32)hsflctl.regval << 16); + ew32flash(ICH_FLASH_FADDR, flash_linear_addr); + + ret_val = e1000_flash_cycle_ich8lan(hw, + ICH_FLASH_READ_COMMAND_TIMEOUT); + + /* Check if FCERR is set to 1, if set to 1, clear it + * and try the whole sequence a few more times, else + * read in (shift in) the Flash Data0, the order is + * least significant byte first msb to lsb + */ + if (!ret_val) { + *data = er32flash(ICH_FLASH_FDATA0); + break; + } else { + /* If we've gotten here, then things are probably + * completely hosed, but if the error condition is + * detected, it won't hurt to give it another try... + * ICH_FLASH_CYCLE_REPEAT_COUNT times. + */ + hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); + if (hsfsts.hsf_status.flcerr) { + /* Repeat for some time before giving up. */ + continue; + } else if (!hsfsts.hsf_status.flcdone) { + e_dbg("Timeout error - flash cycle did not complete.\n"); + break; + } + } + } while (count++ < ICH_FLASH_CYCLE_REPEAT_COUNT); + + return ret_val; +} + +/** + * e1000_write_nvm_ich8lan - Write word(s) to the NVM + * @hw: pointer to the HW structure + * @offset: The offset (in bytes) of the word(s) to write. + * @words: Size of data to write in words + * @data: Pointer to the word(s) to write at offset. + * + * Writes a byte or word to the NVM using the flash access registers. + **/ +static s32 e1000_write_nvm_ich8lan(struct e1000_hw *hw, u16 offset, u16 words, + u16 *data) +{ + struct e1000_nvm_info *nvm = &hw->nvm; + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + u16 i; + + if ((offset >= nvm->word_size) || (words > nvm->word_size - offset) || + (words == 0)) { + e_dbg("nvm parameter(s) out of bounds\n"); + return -E1000_ERR_NVM; + } + + nvm->ops.acquire(hw); + + for (i = 0; i < words; i++) { + dev_spec->shadow_ram[offset + i].modified = true; + dev_spec->shadow_ram[offset + i].value = data[i]; + } + + nvm->ops.release(hw); + + return 0; +} + +/** + * e1000_update_nvm_checksum_spt - Update the checksum for NVM + * @hw: pointer to the HW structure + * + * The NVM checksum is updated by calling the generic update_nvm_checksum, + * which writes the checksum to the shadow ram. The changes in the shadow + * ram are then committed to the EEPROM by processing each bank at a time + * checking for the modified bit and writing only the pending changes. + * After a successful commit, the shadow ram is cleared and is ready for + * future writes. + **/ +static s32 e1000_update_nvm_checksum_spt(struct e1000_hw *hw) +{ + struct e1000_nvm_info *nvm = &hw->nvm; + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + u32 i, act_offset, new_bank_offset, old_bank_offset, bank; + s32 ret_val; + u32 dword = 0; + + ret_val = e1000e_update_nvm_checksum_generic(hw); + if (ret_val) + goto out; + + if (nvm->type != e1000_nvm_flash_sw) + goto out; + + nvm->ops.acquire(hw); + + /* We're writing to the opposite bank so if we're on bank 1, + * write to bank 0 etc. We also need to erase the segment that + * is going to be written + */ + ret_val = e1000_valid_nvm_bank_detect_ich8lan(hw, &bank); + if (ret_val) { + e_dbg("Could not detect valid bank, assuming bank 0\n"); + bank = 0; + } + + if (bank == 0) { + new_bank_offset = nvm->flash_bank_size; + old_bank_offset = 0; + ret_val = e1000_erase_flash_bank_ich8lan(hw, 1); + if (ret_val) + goto release; + } else { + old_bank_offset = nvm->flash_bank_size; + new_bank_offset = 0; + ret_val = e1000_erase_flash_bank_ich8lan(hw, 0); + if (ret_val) + goto release; + } + for (i = 0; i < E1000_ICH8_SHADOW_RAM_WORDS; i += 2) { + /* Determine whether to write the value stored + * in the other NVM bank or a modified value stored + * in the shadow RAM + */ + ret_val = e1000_read_flash_dword_ich8lan(hw, + i + old_bank_offset, + &dword); + + if (dev_spec->shadow_ram[i].modified) { + dword &= 0xffff0000; + dword |= (dev_spec->shadow_ram[i].value & 0xffff); + } + if (dev_spec->shadow_ram[i + 1].modified) { + dword &= 0x0000ffff; + dword |= ((dev_spec->shadow_ram[i + 1].value & 0xffff) + << 16); + } + if (ret_val) + break; + + /* If the word is 0x13, then make sure the signature bits + * (15:14) are 11b until the commit has completed. + * This will allow us to write 10b which indicates the + * signature is valid. We want to do this after the write + * has completed so that we don't mark the segment valid + * while the write is still in progress + */ + if (i == E1000_ICH_NVM_SIG_WORD - 1) + dword |= E1000_ICH_NVM_SIG_MASK << 16; + + /* Convert offset to bytes. */ + act_offset = (i + new_bank_offset) << 1; + + usleep_range(100, 200); + + /* Write the data to the new bank. Offset in words */ + act_offset = i + new_bank_offset; + ret_val = e1000_retry_write_flash_dword_ich8lan(hw, act_offset, + dword); + if (ret_val) + break; + } + + /* Don't bother writing the segment valid bits if sector + * programming failed. + */ + if (ret_val) { + e_dbg("Flash commit failed.\n"); + goto release; + } + + /* Finally validate the new segment by setting bit 15:14 + * to 10b in word 0x13 , this can be done without an + * erase as well since these bits are 11 to start with + * and we need to change bit 14 to 0b + */ + act_offset = new_bank_offset + E1000_ICH_NVM_SIG_WORD; + + /*offset in words but we read dword */ + --act_offset; + ret_val = e1000_read_flash_dword_ich8lan(hw, act_offset, &dword); + + if (ret_val) + goto release; + + dword &= 0xBFFFFFFF; + ret_val = e1000_retry_write_flash_dword_ich8lan(hw, act_offset, dword); + + if (ret_val) + goto release; + + /* And invalidate the previously valid segment by setting + * its signature word (0x13) high_byte to 0b. This can be + * done without an erase because flash erase sets all bits + * to 1's. We can write 1's to 0's without an erase + */ + act_offset = (old_bank_offset + E1000_ICH_NVM_SIG_WORD) * 2 + 1; + + /* offset in words but we read dword */ + act_offset = old_bank_offset + E1000_ICH_NVM_SIG_WORD - 1; + ret_val = e1000_read_flash_dword_ich8lan(hw, act_offset, &dword); + + if (ret_val) + goto release; + + dword &= 0x00FFFFFF; + ret_val = e1000_retry_write_flash_dword_ich8lan(hw, act_offset, dword); + + if (ret_val) + goto release; + + /* Great! Everything worked, we can now clear the cached entries. */ + for (i = 0; i < E1000_ICH8_SHADOW_RAM_WORDS; i++) { + dev_spec->shadow_ram[i].modified = false; + dev_spec->shadow_ram[i].value = 0xFFFF; + } + +release: + nvm->ops.release(hw); + + /* Reload the EEPROM, or else modifications will not appear + * until after the next adapter reset. + */ + if (!ret_val) { + nvm->ops.reload(hw); + usleep_range(10000, 20000); + } + +out: + if (ret_val) + e_dbg("NVM update error: %d\n", ret_val); + + return ret_val; +} + +/** + * e1000_update_nvm_checksum_ich8lan - Update the checksum for NVM + * @hw: pointer to the HW structure + * + * The NVM checksum is updated by calling the generic update_nvm_checksum, + * which writes the checksum to the shadow ram. The changes in the shadow + * ram are then committed to the EEPROM by processing each bank at a time + * checking for the modified bit and writing only the pending changes. + * After a successful commit, the shadow ram is cleared and is ready for + * future writes. + **/ +static s32 e1000_update_nvm_checksum_ich8lan(struct e1000_hw *hw) +{ + struct e1000_nvm_info *nvm = &hw->nvm; + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + u32 i, act_offset, new_bank_offset, old_bank_offset, bank; + s32 ret_val; + u16 data = 0; + + ret_val = e1000e_update_nvm_checksum_generic(hw); + if (ret_val) + goto out; + + if (nvm->type != e1000_nvm_flash_sw) + goto out; + + nvm->ops.acquire(hw); + + /* We're writing to the opposite bank so if we're on bank 1, + * write to bank 0 etc. We also need to erase the segment that + * is going to be written + */ + ret_val = e1000_valid_nvm_bank_detect_ich8lan(hw, &bank); + if (ret_val) { + e_dbg("Could not detect valid bank, assuming bank 0\n"); + bank = 0; + } + + if (bank == 0) { + new_bank_offset = nvm->flash_bank_size; + old_bank_offset = 0; + ret_val = e1000_erase_flash_bank_ich8lan(hw, 1); + if (ret_val) + goto release; + } else { + old_bank_offset = nvm->flash_bank_size; + new_bank_offset = 0; + ret_val = e1000_erase_flash_bank_ich8lan(hw, 0); + if (ret_val) + goto release; + } + for (i = 0; i < E1000_ICH8_SHADOW_RAM_WORDS; i++) { + if (dev_spec->shadow_ram[i].modified) { + data = dev_spec->shadow_ram[i].value; + } else { + ret_val = e1000_read_flash_word_ich8lan(hw, i + + old_bank_offset, + &data); + if (ret_val) + break; + } + /* If the word is 0x13, then make sure the signature bits + * (15:14) are 11b until the commit has completed. + * This will allow us to write 10b which indicates the + * signature is valid. We want to do this after the write + * has completed so that we don't mark the segment valid + * while the write is still in progress + */ + if (i == E1000_ICH_NVM_SIG_WORD) + data |= E1000_ICH_NVM_SIG_MASK; + + /* Convert offset to bytes. */ + act_offset = (i + new_bank_offset) << 1; + + usleep_range(100, 200); + + /* Write the bytes to the new bank. */ + ret_val = e1000_retry_write_flash_byte_ich8lan(hw, + act_offset, + (u8)data); + if (ret_val) + break; + + usleep_range(100, 200); + ret_val = e1000_retry_write_flash_byte_ich8lan(hw, + act_offset + 1, + (u8)(data >> 8)); + if (ret_val) + break; + } + + /* Don't bother writing the segment valid bits if sector + * programming failed. + */ + if (ret_val) { + e_dbg("Flash commit failed.\n"); + goto release; + } + + /* Finally validate the new segment by setting bit 15:14 + * to 10b in word 0x13 , this can be done without an + * erase as well since these bits are 11 to start with + * and we need to change bit 14 to 0b + */ + act_offset = new_bank_offset + E1000_ICH_NVM_SIG_WORD; + ret_val = e1000_read_flash_word_ich8lan(hw, act_offset, &data); + if (ret_val) + goto release; + + data &= 0xBFFF; + ret_val = e1000_retry_write_flash_byte_ich8lan(hw, act_offset * 2 + 1, + (u8)(data >> 8)); + if (ret_val) + goto release; + + /* And invalidate the previously valid segment by setting + * its signature word (0x13) high_byte to 0b. This can be + * done without an erase because flash erase sets all bits + * to 1's. We can write 1's to 0's without an erase + */ + act_offset = (old_bank_offset + E1000_ICH_NVM_SIG_WORD) * 2 + 1; + + ret_val = e1000_retry_write_flash_byte_ich8lan(hw, act_offset, 0); + + if (ret_val) + goto release; + + /* Great! Everything worked, we can now clear the cached entries. */ + for (i = 0; i < E1000_ICH8_SHADOW_RAM_WORDS; i++) { + dev_spec->shadow_ram[i].modified = false; + dev_spec->shadow_ram[i].value = 0xFFFF; + } + +release: + nvm->ops.release(hw); + + /* Reload the EEPROM, or else modifications will not appear + * until after the next adapter reset. + */ + if (!ret_val) { + nvm->ops.reload(hw); + usleep_range(10000, 20000); + } + +out: + if (ret_val) + e_dbg("NVM update error: %d\n", ret_val); + + return ret_val; +} + +/** + * e1000_validate_nvm_checksum_ich8lan - Validate EEPROM checksum + * @hw: pointer to the HW structure + * + * Check to see if checksum needs to be fixed by reading bit 6 in word 0x19. + * If the bit is 0, that the EEPROM had been modified, but the checksum was not + * calculated, in which case we need to calculate the checksum and set bit 6. + **/ +static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw) +{ + s32 ret_val; + u16 data; + u16 word; + u16 valid_csum_mask; + + /* Read NVM and check Invalid Image CSUM bit. If this bit is 0, + * the checksum needs to be fixed. This bit is an indication that + * the NVM was prepared by OEM software and did not calculate + * the checksum...a likely scenario. + */ + switch (hw->mac.type) { + case e1000_pch_lpt: + case e1000_pch_spt: + word = NVM_COMPAT; + valid_csum_mask = NVM_COMPAT_VALID_CSUM; + break; + default: + word = NVM_FUTURE_INIT_WORD1; + valid_csum_mask = NVM_FUTURE_INIT_WORD1_VALID_CSUM; + break; + } + + ret_val = e1000_read_nvm(hw, word, 1, &data); + if (ret_val) + return ret_val; + + if (!(data & valid_csum_mask)) { + data |= valid_csum_mask; + ret_val = e1000_write_nvm(hw, word, 1, &data); + if (ret_val) + return ret_val; + ret_val = e1000e_update_nvm_checksum(hw); + if (ret_val) + return ret_val; + } + + return e1000e_validate_nvm_checksum_generic(hw); +} + +#ifdef __VMKLNX__ +/** + * e1000e_write_protect_nvm_ich8lan - Make the NVM read-only + * @hw: pointer to the HW structure + * + * To prevent malicious write/erase of the NVM, set it to be read-only + * so that the hardware ignores all write/erase cycles of the NVM via + * the flash control registers. The shadow-ram copy of the NVM will + * still be updated, however any updates to this copy will not stick + * across driver reloads. + **/ +void e1000e_write_protect_nvm_ich8lan(struct e1000_hw *hw) +{ + union ich8_flash_protected_range pr0; + union ich8_hws_flash_status hsfsts; + u32 gfpreg; + s32 ret_val; + + ret_val = e1000_acquire_swflag_ich8lan(hw); + if (ret_val) + return; + + /* E1000_READ_FLASH_* are now replaced with inline e(r/w)(32/16)flash + * defined in e1000.h. + */ + gfpreg = er32flash(ICH_FLASH_GFPREG); + + /* Write-protect GbE Sector of NVM */ + pr0.regval = er32flash(ICH_FLASH_PR0); + pr0.range.base = gfpreg & FLASH_GFPREG_BASE_MASK; + pr0.range.limit = ((gfpreg >> 16) & FLASH_GFPREG_BASE_MASK); + pr0.range.wpe = true; + ew32flash(ICH_FLASH_PR0, pr0.regval); + + /* + * Lock down a subset of GbE Flash Control Registers, e.g. + * PR0 to prevent the write-protection from being lifted. + * Once FLOCKDN is set, the registers protected by it cannot + * be written until FLOCKDN is cleared by a hardware reset. + */ + hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); + hsfsts.hsf_status.flockdn = true; + ew32flash(ICH_FLASH_HSFSTS, hsfsts.regval); + + e1000_release_swflag_ich8lan(hw); + printk("e1000e EEPROM NVM section is write protected to gaurd against malicious corruption\n"); +} +#endif /* __VMKLNX__ */ + +/** + * e1000_write_flash_data_ich8lan - Writes bytes to the NVM + * @hw: pointer to the HW structure + * @offset: The offset (in bytes) of the byte/word to read. + * @size: Size of data to read, 1=byte 2=word + * @data: The byte(s) to write to the NVM. + * + * Writes one/two bytes to the NVM using the flash access registers. + **/ +static s32 e1000_write_flash_data_ich8lan(struct e1000_hw *hw, u32 offset, + u8 size, u16 data) +{ + union ich8_hws_flash_status hsfsts; + union ich8_hws_flash_ctrl hsflctl; + u32 flash_linear_addr; + u32 flash_data = 0; + s32 ret_val; + u8 count = 0; + + if (hw->mac.type == e1000_pch_spt) { + if (size != 4 || offset > ICH_FLASH_LINEAR_ADDR_MASK) + return -E1000_ERR_NVM; + } else { + if (size < 1 || size > 2 || offset > ICH_FLASH_LINEAR_ADDR_MASK) + return -E1000_ERR_NVM; + } + + flash_linear_addr = ((ICH_FLASH_LINEAR_ADDR_MASK & offset) + + hw->nvm.flash_base_addr); + + do { + udelay(1); + /* Steps */ + ret_val = e1000_flash_cycle_init_ich8lan(hw); + if (ret_val) + break; + /* In SPT, This register is in Lan memory space, not + * flash. Therefore, only 32 bit access is supported + */ + if (hw->mac.type == e1000_pch_spt) + hsflctl.regval = er32flash(ICH_FLASH_HSFSTS) >> 16; + else + hsflctl.regval = er16flash(ICH_FLASH_HSFCTL); + + /* 0b/1b corresponds to 1 or 2 byte size, respectively. */ + hsflctl.hsf_ctrl.fldbcount = size - 1; + hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_WRITE; + /* In SPT, This register is in Lan memory space, + * not flash. Therefore, only 32 bit access is + * supported + */ + if (hw->mac.type == e1000_pch_spt) + ew32flash(ICH_FLASH_HSFSTS, hsflctl.regval << 16); + else + ew16flash(ICH_FLASH_HSFCTL, hsflctl.regval); + + ew32flash(ICH_FLASH_FADDR, flash_linear_addr); + + if (size == 1) + flash_data = (u32)data & 0x00FF; + else + flash_data = (u32)data; + + ew32flash(ICH_FLASH_FDATA0, flash_data); + + /* check if FCERR is set to 1 , if set to 1, clear it + * and try the whole sequence a few more times else done + */ + ret_val = + e1000_flash_cycle_ich8lan(hw, + ICH_FLASH_WRITE_COMMAND_TIMEOUT); + if (!ret_val) + break; + + /* If we're here, then things are most likely + * completely hosed, but if the error condition + * is detected, it won't hurt to give it another + * try...ICH_FLASH_CYCLE_REPEAT_COUNT times. + */ + hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); + if (hsfsts.hsf_status.flcerr) + /* Repeat for some time before giving up. */ + continue; + if (!hsfsts.hsf_status.flcdone) { + e_dbg("Timeout error - flash cycle did not complete.\n"); + break; + } + } while (count++ < ICH_FLASH_CYCLE_REPEAT_COUNT); + + return ret_val; +} + +/** +* e1000_write_flash_data32_ich8lan - Writes 4 bytes to the NVM +* @hw: pointer to the HW structure +* @offset: The offset (in bytes) of the dwords to read. +* @data: The 4 bytes to write to the NVM. +* +* Writes one/two/four bytes to the NVM using the flash access registers. +**/ +static s32 e1000_write_flash_data32_ich8lan(struct e1000_hw *hw, u32 offset, + u32 data) +{ + union ich8_hws_flash_status hsfsts; + union ich8_hws_flash_ctrl hsflctl; + u32 flash_linear_addr; + s32 ret_val; + u8 count = 0; + + if (hw->mac.type == e1000_pch_spt) { + if (offset > ICH_FLASH_LINEAR_ADDR_MASK) + return -E1000_ERR_NVM; + } + flash_linear_addr = ((ICH_FLASH_LINEAR_ADDR_MASK & offset) + + hw->nvm.flash_base_addr); + do { + udelay(1); + /* Steps */ + ret_val = e1000_flash_cycle_init_ich8lan(hw); + if (ret_val) + break; + + /* In SPT, This register is in Lan memory space, not + * flash. Therefore, only 32 bit access is supported + */ + if (hw->mac.type == e1000_pch_spt) + hsflctl.regval = er32flash(ICH_FLASH_HSFSTS) + >> 16; + else + hsflctl.regval = er16flash(ICH_FLASH_HSFCTL); + + hsflctl.hsf_ctrl.fldbcount = sizeof(u32) - 1; + hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_WRITE; + + /* In SPT, This register is in Lan memory space, + * not flash. Therefore, only 32 bit access is + * supported + */ + if (hw->mac.type == e1000_pch_spt) + ew32flash(ICH_FLASH_HSFSTS, hsflctl.regval << 16); + else + ew16flash(ICH_FLASH_HSFCTL, hsflctl.regval); + + ew32flash(ICH_FLASH_FADDR, flash_linear_addr); + + ew32flash(ICH_FLASH_FDATA0, data); + + /* check if FCERR is set to 1 , if set to 1, clear it + * and try the whole sequence a few more times else done + */ + ret_val = e1000_flash_cycle_ich8lan(hw, + ICH_FLASH_WRITE_COMMAND_TIMEOUT); + + if (!ret_val) + break; + + /* If we're here, then things are most likely + * completely hosed, but if the error condition + * is detected, it won't hurt to give it another + * try...ICH_FLASH_CYCLE_REPEAT_COUNT times. + */ + hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); + + if (hsfsts.hsf_status.flcerr) + /* Repeat for some time before giving up. */ + continue; + if (!hsfsts.hsf_status.flcdone) { + e_dbg("Timeout error - flash cycle did not complete.\n"); + break; + } + } while (count++ < ICH_FLASH_CYCLE_REPEAT_COUNT); + + return ret_val; +} + +/** + * e1000_write_flash_byte_ich8lan - Write a single byte to NVM + * @hw: pointer to the HW structure + * @offset: The index of the byte to read. + * @data: The byte to write to the NVM. + * + * Writes a single byte to the NVM using the flash access registers. + **/ +static s32 e1000_write_flash_byte_ich8lan(struct e1000_hw *hw, u32 offset, + u8 data) +{ + u16 word = (u16)data; + + return e1000_write_flash_data_ich8lan(hw, offset, 1, word); +} + +/** +* e1000_retry_write_flash_dword_ich8lan - Writes a dword to NVM +* @hw: pointer to the HW structure +* @offset: The offset of the word to write. +* @dword: The dword to write to the NVM. +* +* Writes a single dword to the NVM using the flash access registers. +* Goes through a retry algorithm before giving up. +**/ +static s32 e1000_retry_write_flash_dword_ich8lan(struct e1000_hw *hw, + u32 offset, u32 dword) +{ + s32 ret_val; + u16 program_retries; + + /* Must convert word offset into bytes. */ + offset <<= 1; + ret_val = e1000_write_flash_data32_ich8lan(hw, offset, dword); + + if (!ret_val) + return ret_val; + for (program_retries = 0; program_retries < 100; program_retries++) { + e_dbg("Retrying Byte %8.8X at offset %u\n", dword, offset); + usleep_range(100, 200); + ret_val = e1000_write_flash_data32_ich8lan(hw, offset, dword); + if (!ret_val) + break; + } + if (program_retries == 100) + return -E1000_ERR_NVM; + + return 0; +} + +/** + * e1000_retry_write_flash_byte_ich8lan - Writes a single byte to NVM + * @hw: pointer to the HW structure + * @offset: The offset of the byte to write. + * @byte: The byte to write to the NVM. + * + * Writes a single byte to the NVM using the flash access registers. + * Goes through a retry algorithm before giving up. + **/ +static s32 e1000_retry_write_flash_byte_ich8lan(struct e1000_hw *hw, + u32 offset, u8 byte) +{ + s32 ret_val; + u16 program_retries; + + ret_val = e1000_write_flash_byte_ich8lan(hw, offset, byte); + if (!ret_val) + return ret_val; + + for (program_retries = 0; program_retries < 100; program_retries++) { + e_dbg("Retrying Byte %2.2X at offset %u\n", byte, offset); + usleep_range(100, 200); + ret_val = e1000_write_flash_byte_ich8lan(hw, offset, byte); + if (!ret_val) + break; + } + if (program_retries == 100) + return -E1000_ERR_NVM; + + return 0; +} + +/** + * e1000_erase_flash_bank_ich8lan - Erase a bank (4k) from NVM + * @hw: pointer to the HW structure + * @bank: 0 for first bank, 1 for second bank, etc. + * + * Erases the bank specified. Each bank is a 4k block. Banks are 0 based. + * bank N is 4096 * N + flash_reg_addr. + **/ +static s32 e1000_erase_flash_bank_ich8lan(struct e1000_hw *hw, u32 bank) +{ + struct e1000_nvm_info *nvm = &hw->nvm; + union ich8_hws_flash_status hsfsts; + union ich8_hws_flash_ctrl hsflctl; + u32 flash_linear_addr; + /* bank size is in 16bit words - adjust to bytes */ + u32 flash_bank_size = nvm->flash_bank_size * 2; + s32 ret_val; + s32 count = 0; + s32 j, iteration, sector_size; + + hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); + + /* Determine HW Sector size: Read BERASE bits of hw flash status + * register + * 00: The Hw sector is 256 bytes, hence we need to erase 16 + * consecutive sectors. The start index for the nth Hw sector + * can be calculated as = bank * 4096 + n * 256 + * 01: The Hw sector is 4K bytes, hence we need to erase 1 sector. + * The start index for the nth Hw sector can be calculated + * as = bank * 4096 + * 10: The Hw sector is 8K bytes, nth sector = bank * 8192 + * (ich9 only, otherwise error condition) + * 11: The Hw sector is 64K bytes, nth sector = bank * 65536 + */ + switch (hsfsts.hsf_status.berasesz) { + case 0: + /* Hw sector size 256 */ + sector_size = ICH_FLASH_SEG_SIZE_256; + iteration = flash_bank_size / ICH_FLASH_SEG_SIZE_256; + break; + case 1: + sector_size = ICH_FLASH_SEG_SIZE_4K; + iteration = 1; + break; + case 2: + sector_size = ICH_FLASH_SEG_SIZE_8K; + iteration = 1; + break; + case 3: + sector_size = ICH_FLASH_SEG_SIZE_64K; + iteration = 1; + break; + default: + return -E1000_ERR_NVM; + } + + /* Start with the base address, then add the sector offset. */ + flash_linear_addr = hw->nvm.flash_base_addr; + flash_linear_addr += (bank) ? flash_bank_size : 0; + + for (j = 0; j < iteration; j++) { + do { + u32 timeout = ICH_FLASH_ERASE_COMMAND_TIMEOUT; + + /* Steps */ + ret_val = e1000_flash_cycle_init_ich8lan(hw); + if (ret_val) + return ret_val; + + /* Write a value 11 (block Erase) in Flash + * Cycle field in hw flash control + */ + if (hw->mac.type == e1000_pch_spt) + hsflctl.regval = + er32flash(ICH_FLASH_HSFSTS) >> 16; + else + hsflctl.regval = er16flash(ICH_FLASH_HSFCTL); + + hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_ERASE; + if (hw->mac.type == e1000_pch_spt) + ew32flash(ICH_FLASH_HSFSTS, + hsflctl.regval << 16); + else + ew16flash(ICH_FLASH_HSFCTL, hsflctl.regval); + + /* Write the last 24 bits of an index within the + * block into Flash Linear address field in Flash + * Address. + */ + flash_linear_addr += (j * sector_size); + ew32flash(ICH_FLASH_FADDR, flash_linear_addr); + + ret_val = e1000_flash_cycle_ich8lan(hw, timeout); + if (!ret_val) + break; + + /* Check if FCERR is set to 1. If 1, + * clear it and try the whole sequence + * a few more times else Done + */ + hsfsts.regval = er16flash(ICH_FLASH_HSFSTS); + if (hsfsts.hsf_status.flcerr) + /* repeat for some time before giving up */ + continue; + else if (!hsfsts.hsf_status.flcdone) + return ret_val; + } while (++count < ICH_FLASH_CYCLE_REPEAT_COUNT); + } + + return 0; +} + +/** + * e1000_valid_led_default_ich8lan - Set the default LED settings + * @hw: pointer to the HW structure + * @data: Pointer to the LED settings + * + * Reads the LED default settings from the NVM to data. If the NVM LED + * settings is all 0's or F's, set the LED default to a valid LED default + * setting. + **/ +static s32 e1000_valid_led_default_ich8lan(struct e1000_hw *hw, u16 *data) +{ + s32 ret_val; + + ret_val = e1000_read_nvm(hw, NVM_ID_LED_SETTINGS, 1, data); + if (ret_val) { + e_dbg("NVM Read Error\n"); + return ret_val; + } + + if (*data == ID_LED_RESERVED_0000 || *data == ID_LED_RESERVED_FFFF) + *data = ID_LED_DEFAULT_ICH8LAN; + + return 0; +} + +/** + * e1000_id_led_init_pchlan - store LED configurations + * @hw: pointer to the HW structure + * + * PCH does not control LEDs via the LEDCTL register, rather it uses + * the PHY LED configuration register. + * + * PCH also does not have an "always on" or "always off" mode which + * complicates the ID feature. Instead of using the "on" mode to indicate + * in ledctl_mode2 the LEDs to use for ID (see e1000e_id_led_init_generic()), + * use "link_up" mode. The LEDs will still ID on request if there is no + * link based on logic in e1000_led_[on|off]_pchlan(). + **/ +static s32 e1000_id_led_init_pchlan(struct e1000_hw *hw) +{ + struct e1000_mac_info *mac = &hw->mac; + s32 ret_val; + const u32 ledctl_on = E1000_LEDCTL_MODE_LINK_UP; + const u32 ledctl_off = E1000_LEDCTL_MODE_LINK_UP | E1000_PHY_LED0_IVRT; + u16 data, i, temp, shift; + + /* Get default ID LED modes */ + ret_val = hw->nvm.ops.valid_led_default(hw, &data); + if (ret_val) + return ret_val; + + mac->ledctl_default = er32(LEDCTL); + mac->ledctl_mode1 = mac->ledctl_default; + mac->ledctl_mode2 = mac->ledctl_default; + + for (i = 0; i < 4; i++) { + temp = (data >> (i << 2)) & E1000_LEDCTL_LED0_MODE_MASK; + shift = (i * 5); + switch (temp) { + case ID_LED_ON1_DEF2: + case ID_LED_ON1_ON2: + case ID_LED_ON1_OFF2: + mac->ledctl_mode1 &= ~(E1000_PHY_LED0_MASK << shift); + mac->ledctl_mode1 |= (ledctl_on << shift); + break; + case ID_LED_OFF1_DEF2: + case ID_LED_OFF1_ON2: + case ID_LED_OFF1_OFF2: + mac->ledctl_mode1 &= ~(E1000_PHY_LED0_MASK << shift); + mac->ledctl_mode1 |= (ledctl_off << shift); + break; + default: + /* Do nothing */ + break; + } + switch (temp) { + case ID_LED_DEF1_ON2: + case ID_LED_ON1_ON2: + case ID_LED_OFF1_ON2: + mac->ledctl_mode2 &= ~(E1000_PHY_LED0_MASK << shift); + mac->ledctl_mode2 |= (ledctl_on << shift); + break; + case ID_LED_DEF1_OFF2: + case ID_LED_ON1_OFF2: + case ID_LED_OFF1_OFF2: + mac->ledctl_mode2 &= ~(E1000_PHY_LED0_MASK << shift); + mac->ledctl_mode2 |= (ledctl_off << shift); + break; + default: + /* Do nothing */ + break; + } + } + + return 0; +} + +/** + * e1000_get_bus_info_ich8lan - Get/Set the bus type and width + * @hw: pointer to the HW structure + * + * ICH8 use the PCI Express bus, but does not contain a PCI Express Capability + * register, so the the bus width is hard coded. + **/ +static s32 e1000_get_bus_info_ich8lan(struct e1000_hw *hw) +{ + struct e1000_bus_info *bus = &hw->bus; + s32 ret_val; + + ret_val = e1000e_get_bus_info_pcie(hw); + + /* ICH devices are "PCI Express"-ish. They have + * a configuration space, but do not contain + * PCI Express Capability registers, so bus width + * must be hardcoded. + */ + if (bus->width == e1000_bus_width_unknown) + bus->width = e1000_bus_width_pcie_x1; + + return ret_val; +} + +/** + * e1000_reset_hw_ich8lan - Reset the hardware + * @hw: pointer to the HW structure + * + * Does a full reset of the hardware which includes a reset of the PHY and + * MAC. + **/ +static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) +{ + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + u16 kum_cfg; + u32 ctrl, reg; + s32 ret_val; + + /* Prevent the PCI-E bus from sticking if there is no TLP connection + * on the last TLP read/write transaction when MAC is reset. + */ + ret_val = e1000e_disable_pcie_master(hw); + if (ret_val) + e_dbg("PCI-E Master disable polling has failed.\n"); + + e_dbg("Masking off all interrupts\n"); + ew32(IMC, 0xffffffff); + + /* Disable the Transmit and Receive units. Then delay to allow + * any pending transactions to complete before we hit the MAC + * with the global reset. + */ + ew32(RCTL, 0); + ew32(TCTL, E1000_TCTL_PSP); + e1e_flush(); + + usleep_range(10000, 20000); + + /* Workaround for ICH8 bit corruption issue in FIFO memory */ + if (hw->mac.type == e1000_ich8lan) { + /* Set Tx and Rx buffer allocation to 8k apiece. */ + ew32(PBA, E1000_PBA_8K); + /* Set Packet Buffer Size to 16k. */ + ew32(PBS, E1000_PBS_16K); + } + + if (hw->mac.type == e1000_pchlan) { + /* Save the NVM K1 bit setting */ + ret_val = e1000_read_nvm(hw, E1000_NVM_K1_CONFIG, 1, &kum_cfg); + if (ret_val) + return ret_val; + + if (kum_cfg & E1000_NVM_K1_ENABLE) + dev_spec->nvm_k1_enabled = true; + else + dev_spec->nvm_k1_enabled = false; + } + + ctrl = er32(CTRL); + + if (!hw->phy.ops.check_reset_block(hw)) { + /* Full-chip reset requires MAC and PHY reset at the same + * time to make sure the interface between MAC and the + * external PHY is reset. + */ + ctrl |= E1000_CTRL_PHY_RST; + + /* Gate automatic PHY configuration by hardware on + * non-managed 82579 + */ + if ((hw->mac.type == e1000_pch2lan) && + !(er32(FWSM) & E1000_ICH_FWSM_FW_VALID)) + e1000_gate_hw_phy_config_ich8lan(hw, true); + } + ret_val = e1000_acquire_swflag_ich8lan(hw); + e_dbg("Issuing a global reset to ich8lan\n"); + ew32(CTRL, (ctrl | E1000_CTRL_RST)); + /* cannot issue a flush here because it hangs the hardware */ + msleep(20); + + /* Set Phy Config Counter to 50msec */ + if (hw->mac.type == e1000_pch2lan) { + reg = er32(FEXTNVM3); + reg &= ~E1000_FEXTNVM3_PHY_CFG_COUNTER_MASK; + reg |= E1000_FEXTNVM3_PHY_CFG_COUNTER_50MSEC; + ew32(FEXTNVM3, reg); + } + + if (!ret_val) + clear_bit(__E1000_ACCESS_SHARED_RESOURCE, &hw->adapter->state); + + if (ctrl & E1000_CTRL_PHY_RST) { + ret_val = hw->phy.ops.get_cfg_done(hw); + if (ret_val) + return ret_val; + + ret_val = e1000_post_phy_reset_ich8lan(hw); + if (ret_val) + return ret_val; + } + + /* For PCH, this write will make sure that any noise + * will be detected as a CRC error and be dropped rather than show up + * as a bad packet to the DMA engine. + */ + if (hw->mac.type == e1000_pchlan) + ew32(CRC_OFFSET, 0x65656565); + + ew32(IMC, 0xffffffff); + er32(ICR); + + reg = er32(KABGTXD); + reg |= E1000_KABGTXD_BGSQLBIAS; + ew32(KABGTXD, reg); + + return 0; +} + +/** + * e1000_init_hw_ich8lan - Initialize the hardware + * @hw: pointer to the HW structure + * + * Prepares the hardware for transmit and receive by doing the following: + * - initialize hardware bits + * - initialize LED identification + * - setup receive address registers + * - setup flow control + * - setup transmit descriptors + * - clear statistics + **/ +static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw) +{ + struct e1000_mac_info *mac = &hw->mac; + u32 ctrl_ext, txdctl, snoop; + s32 ret_val; + u16 i; + + e1000_initialize_hw_bits_ich8lan(hw); + + /* Initialize identification LED */ + ret_val = mac->ops.id_led_init(hw); + /* An error is not fatal and we should not stop init due to this */ + if (ret_val) + e_dbg("Error initializing identification LED\n"); + + /* Setup the receive address. */ + e1000e_init_rx_addrs(hw, mac->rar_entry_count); + + /* Zero out the Multicast HASH table */ + e_dbg("Zeroing the MTA\n"); + for (i = 0; i < mac->mta_reg_count; i++) + E1000_WRITE_REG_ARRAY(hw, E1000_MTA, i, 0); + + /* The 82578 Rx buffer will stall if wakeup is enabled in host and + * the ME. Disable wakeup by clearing the host wakeup bit. + * Reset the phy after disabling host wakeup to reset the Rx buffer. + */ + if (hw->phy.type == e1000_phy_82578) { + e1e_rphy(hw, BM_PORT_GEN_CFG, &i); + i &= ~BM_WUC_HOST_WU_BIT; + e1e_wphy(hw, BM_PORT_GEN_CFG, i); + ret_val = e1000_phy_hw_reset_ich8lan(hw); + if (ret_val) + return ret_val; + } + + /* Setup link and flow control */ + ret_val = mac->ops.setup_link(hw); + + /* Set the transmit descriptor write-back policy for both queues */ + txdctl = er32(TXDCTL(0)); + txdctl = ((txdctl & ~E1000_TXDCTL_WTHRESH) | + E1000_TXDCTL_FULL_TX_DESC_WB); + txdctl = ((txdctl & ~E1000_TXDCTL_PTHRESH) | + E1000_TXDCTL_MAX_TX_DESC_PREFETCH); + ew32(TXDCTL(0), txdctl); + txdctl = er32(TXDCTL(1)); + txdctl = ((txdctl & ~E1000_TXDCTL_WTHRESH) | + E1000_TXDCTL_FULL_TX_DESC_WB); + txdctl = ((txdctl & ~E1000_TXDCTL_PTHRESH) | + E1000_TXDCTL_MAX_TX_DESC_PREFETCH); + ew32(TXDCTL(1), txdctl); + + /* ICH8 has opposite polarity of no_snoop bits. + * By default, we should use snoop behavior. + */ + if (mac->type == e1000_ich8lan) + snoop = PCIE_ICH8_SNOOP_ALL; + else + snoop = (u32)~(PCIE_NO_SNOOP_ALL); + e1000e_set_pcie_no_snoop(hw, snoop); + + ctrl_ext = er32(CTRL_EXT); + ctrl_ext |= E1000_CTRL_EXT_RO_DIS; + ew32(CTRL_EXT, ctrl_ext); + + /* Clear all of the statistics registers (clear on read). It is + * important that we do this after we have tried to establish link + * because the symbol error count will increment wildly if there + * is no link. + */ + e1000_clear_hw_cntrs_ich8lan(hw); + + return ret_val; +} + +/** + * e1000_initialize_hw_bits_ich8lan - Initialize required hardware bits + * @hw: pointer to the HW structure + * + * Sets/Clears required hardware bits necessary for correctly setting up the + * hardware for transmit and receive. + **/ +static void e1000_initialize_hw_bits_ich8lan(struct e1000_hw *hw) +{ + u32 reg; + + /* Extended Device Control */ + reg = er32(CTRL_EXT); + reg |= (1 << 22); + /* Enable PHY low-power state when MAC is at D3 w/o WoL */ + if (hw->mac.type >= e1000_pchlan) + reg |= E1000_CTRL_EXT_PHYPDEN; + ew32(CTRL_EXT, reg); + + /* Transmit Descriptor Control 0 */ + reg = er32(TXDCTL(0)); + reg |= (1 << 22); + ew32(TXDCTL(0), reg); + + /* Transmit Descriptor Control 1 */ + reg = er32(TXDCTL(1)); + reg |= (1 << 22); + ew32(TXDCTL(1), reg); + + /* Transmit Arbitration Control 0 */ + reg = er32(TARC(0)); + if (hw->mac.type == e1000_ich8lan) + reg |= (1 << 28) | (1 << 29); + reg |= (1 << 23) | (1 << 24) | (1 << 26) | (1 << 27); + ew32(TARC(0), reg); + + /* Transmit Arbitration Control 1 */ + reg = er32(TARC(1)); + if (er32(TCTL) & E1000_TCTL_MULR) + reg &= ~(1 << 28); + else + reg |= (1 << 28); + reg |= (1 << 24) | (1 << 26) | (1 << 30); + ew32(TARC(1), reg); + + /* Device Status */ + if (hw->mac.type == e1000_ich8lan) { + reg = er32(STATUS); + reg &= ~(1 << 31); + ew32(STATUS, reg); + } + + /* work-around descriptor data corruption issue during nfs v2 udp + * traffic, just disable the nfs filtering capability + */ + reg = er32(RFCTL); + reg |= (E1000_RFCTL_NFSW_DIS | E1000_RFCTL_NFSR_DIS); + + /* Disable IPv6 extension header parsing because some malformed + * IPv6 headers can hang the Rx. + */ + if (hw->mac.type == e1000_ich8lan) + reg |= (E1000_RFCTL_IPV6_EX_DIS | E1000_RFCTL_NEW_IPV6_EXT_DIS); + ew32(RFCTL, reg); + + /* Enable ECC on Lynxpoint */ + if ((hw->mac.type == e1000_pch_lpt) || (hw->mac.type == e1000_pch_spt)) { + reg = er32(PBECCSTS); + reg |= E1000_PBECCSTS_ECC_ENABLE; + ew32(PBECCSTS, reg); + + reg = er32(CTRL); + reg |= E1000_CTRL_MEHE; + ew32(CTRL, reg); + } +} + +/** + * e1000_setup_link_ich8lan - Setup flow control and link settings + * @hw: pointer to the HW structure + * + * Determines which flow control settings to use, then configures flow + * control. Calls the appropriate media-specific link configuration + * function. Assuming the adapter has a valid link partner, a valid link + * should be established. Assumes the hardware has previously been reset + * and the transmitter and receiver are not enabled. + **/ +static s32 e1000_setup_link_ich8lan(struct e1000_hw *hw) +{ + s32 ret_val; + + if (hw->phy.ops.check_reset_block(hw)) + return 0; + + /* ICH parts do not have a word in the NVM to determine + * the default flow control setting, so we explicitly + * set it to full. + */ + if (hw->fc.requested_mode == e1000_fc_default) { + /* Workaround h/w hang when Tx flow control enabled */ + if (hw->mac.type == e1000_pchlan) + hw->fc.requested_mode = e1000_fc_rx_pause; + else + hw->fc.requested_mode = e1000_fc_full; + } + + /* Save off the requested flow control mode for use later. Depending + * on the link partner's capabilities, we may or may not use this mode. + */ + hw->fc.current_mode = hw->fc.requested_mode; + + e_dbg("After fix-ups FlowControl is now = %x\n", hw->fc.current_mode); + + /* Continue to configure the copper link. */ + ret_val = hw->mac.ops.setup_physical_interface(hw); + if (ret_val) + return ret_val; + + ew32(FCTTV, hw->fc.pause_time); + if ((hw->phy.type == e1000_phy_82578) || + (hw->phy.type == e1000_phy_82579) || + (hw->phy.type == e1000_phy_i217) || + (hw->phy.type == e1000_phy_82577)) { + ew32(FCRTV_PCH, hw->fc.refresh_time); + + ret_val = e1e_wphy(hw, + PHY_REG(BM_PORT_CTRL_PAGE, 27), + hw->fc.pause_time); + if (ret_val) + return ret_val; + } + + return e1000e_set_fc_watermarks(hw); +} + +/** + * e1000_setup_copper_link_ich8lan - Configure MAC/PHY interface + * @hw: pointer to the HW structure + * + * Configures the kumeran interface to the PHY to wait the appropriate time + * when polling the PHY, then call the generic setup_copper_link to finish + * configuring the copper link. + **/ +static s32 e1000_setup_copper_link_ich8lan(struct e1000_hw *hw) +{ + u32 ctrl; + s32 ret_val; + u16 reg_data; + + ctrl = er32(CTRL); + ctrl |= E1000_CTRL_SLU; + ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX); + ew32(CTRL, ctrl); + + /* Set the mac to wait the maximum time between each iteration + * and increase the max iterations when polling the phy; + * this fixes erroneous timeouts at 10Mbps. + */ + ret_val = e1000e_write_kmrn_reg(hw, E1000_KMRNCTRLSTA_TIMEOUTS, 0xFFFF); + if (ret_val) + return ret_val; + ret_val = e1000e_read_kmrn_reg(hw, + E1000_KMRNCTRLSTA_INBAND_PARAM, + ®_data); + if (ret_val) + return ret_val; + reg_data |= 0x3F; + ret_val = e1000e_write_kmrn_reg(hw, + E1000_KMRNCTRLSTA_INBAND_PARAM, + reg_data); + if (ret_val) + return ret_val; + + switch (hw->phy.type) { + case e1000_phy_igp_3: + ret_val = e1000e_copper_link_setup_igp(hw); + if (ret_val) + return ret_val; + break; + case e1000_phy_bm: + case e1000_phy_82578: + ret_val = e1000e_copper_link_setup_m88(hw); + if (ret_val) + return ret_val; + break; + case e1000_phy_82577: + case e1000_phy_82579: + ret_val = e1000_copper_link_setup_82577(hw); + if (ret_val) + return ret_val; + break; + case e1000_phy_ife: + ret_val = e1e_rphy(hw, IFE_PHY_MDIX_CONTROL, ®_data); + if (ret_val) + return ret_val; + + reg_data &= ~IFE_PMC_AUTO_MDIX; + + switch (hw->phy.mdix) { + case 1: + reg_data &= ~IFE_PMC_FORCE_MDIX; + break; + case 2: + reg_data |= IFE_PMC_FORCE_MDIX; + break; + case 0: + default: + reg_data |= IFE_PMC_AUTO_MDIX; + break; + } + ret_val = e1e_wphy(hw, IFE_PHY_MDIX_CONTROL, reg_data); + if (ret_val) + return ret_val; + break; + default: + break; + } + + return e1000e_setup_copper_link(hw); +} + +/** + * e1000_setup_copper_link_pch_lpt - Configure MAC/PHY interface + * @hw: pointer to the HW structure + * + * Calls the PHY specific link setup function and then calls the + * generic setup_copper_link to finish configuring the link for + * Lynxpoint PCH devices + **/ +static s32 e1000_setup_copper_link_pch_lpt(struct e1000_hw *hw) +{ + u32 ctrl; + s32 ret_val; + + ctrl = er32(CTRL); + ctrl |= E1000_CTRL_SLU; + ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX); + ew32(CTRL, ctrl); + + ret_val = e1000_copper_link_setup_82577(hw); + if (ret_val) + return ret_val; + + return e1000e_setup_copper_link(hw); +} + +/** + * e1000_get_link_up_info_ich8lan - Get current link speed and duplex + * @hw: pointer to the HW structure + * @speed: pointer to store current link speed + * @duplex: pointer to store the current link duplex + * + * Calls the generic get_speed_and_duplex to retrieve the current link + * information and then calls the Kumeran lock loss workaround for links at + * gigabit speeds. + **/ +static s32 e1000_get_link_up_info_ich8lan(struct e1000_hw *hw, u16 *speed, + u16 *duplex) +{ + s32 ret_val; + + ret_val = e1000e_get_speed_and_duplex_copper(hw, speed, duplex); + if (ret_val) + return ret_val; + + if ((hw->mac.type == e1000_ich8lan) && + (hw->phy.type == e1000_phy_igp_3) && (*speed == SPEED_1000)) { + ret_val = e1000_kmrn_lock_loss_workaround_ich8lan(hw); + } + + return ret_val; +} + +/** + * e1000_kmrn_lock_loss_workaround_ich8lan - Kumeran workaround + * @hw: pointer to the HW structure + * + * Work-around for 82566 Kumeran PCS lock loss: + * On link status change (i.e. PCI reset, speed change) and link is up and + * speed is gigabit- + * 0) if workaround is optionally disabled do nothing + * 1) wait 1ms for Kumeran link to come up + * 2) check Kumeran Diagnostic register PCS lock loss bit + * 3) if not set the link is locked (all is good), otherwise... + * 4) reset the PHY + * 5) repeat up to 10 times + * Note: this is only called for IGP3 copper when speed is 1gb. + **/ +static s32 e1000_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw) +{ + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + u32 phy_ctrl; + s32 ret_val; + u16 i, data; + bool link; + + if (!dev_spec->kmrn_lock_loss_workaround_enabled) + return 0; + + /* Make sure link is up before proceeding. If not just return. + * Attempting this while link is negotiating fouled up link + * stability + */ + ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); + if (!link) + return 0; + + for (i = 0; i < 10; i++) { + /* read once to clear */ + ret_val = e1e_rphy(hw, IGP3_KMRN_DIAG, &data); + if (ret_val) + return ret_val; + /* and again to get new status */ + ret_val = e1e_rphy(hw, IGP3_KMRN_DIAG, &data); + if (ret_val) + return ret_val; + + /* check for PCS lock */ + if (!(data & IGP3_KMRN_DIAG_PCS_LOCK_LOSS)) + return 0; + + /* Issue PHY reset */ + e1000_phy_hw_reset(hw); + mdelay(5); + } + /* Disable GigE link negotiation */ + phy_ctrl = er32(PHY_CTRL); + phy_ctrl |= (E1000_PHY_CTRL_GBE_DISABLE | + E1000_PHY_CTRL_NOND0A_GBE_DISABLE); + ew32(PHY_CTRL, phy_ctrl); + + /* Call gig speed drop workaround on Gig disable before accessing + * any PHY registers + */ + e1000e_gig_downshift_workaround_ich8lan(hw); + + /* unable to acquire PCS lock */ + return -E1000_ERR_PHY; +} + +/** + * e1000e_set_kmrn_lock_loss_workaround_ich8lan - Set Kumeran workaround state + * @hw: pointer to the HW structure + * @state: boolean value used to set the current Kumeran workaround state + * + * If ICH8, set the current Kumeran workaround state (enabled - true + * /disabled - false). + **/ +void e1000e_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw, + bool state) +{ + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + + if (hw->mac.type != e1000_ich8lan) { + e_dbg("Workaround applies to ICH8 only.\n"); + return; + } + + dev_spec->kmrn_lock_loss_workaround_enabled = state; +} + +/** + * e1000_ipg3_phy_powerdown_workaround_ich8lan - Power down workaround on D3 + * @hw: pointer to the HW structure + * + * Workaround for 82566 power-down on D3 entry: + * 1) disable gigabit link + * 2) write VR power-down enable + * 3) read it back + * Continue if successful, else issue LCD reset and repeat + **/ +void e1000e_igp3_phy_powerdown_workaround_ich8lan(struct e1000_hw *hw) +{ + u32 reg; + u16 data; + u8 retry = 0; + + if (hw->phy.type != e1000_phy_igp_3) + return; + + /* Try the workaround twice (if needed) */ + do { + /* Disable link */ + reg = er32(PHY_CTRL); + reg |= (E1000_PHY_CTRL_GBE_DISABLE | + E1000_PHY_CTRL_NOND0A_GBE_DISABLE); + ew32(PHY_CTRL, reg); + + /* Call gig speed drop workaround on Gig disable before + * accessing any PHY registers + */ + if (hw->mac.type == e1000_ich8lan) + e1000e_gig_downshift_workaround_ich8lan(hw); + + /* Write VR power-down enable */ + e1e_rphy(hw, IGP3_VR_CTRL, &data); + data &= ~IGP3_VR_CTRL_DEV_POWERDOWN_MODE_MASK; + e1e_wphy(hw, IGP3_VR_CTRL, data | IGP3_VR_CTRL_MODE_SHUTDOWN); + + /* Read it back and test */ + e1e_rphy(hw, IGP3_VR_CTRL, &data); + data &= IGP3_VR_CTRL_DEV_POWERDOWN_MODE_MASK; + if ((data == IGP3_VR_CTRL_MODE_SHUTDOWN) || retry) + break; + + /* Issue PHY reset and repeat at most one more time */ + reg = er32(CTRL); + ew32(CTRL, reg | E1000_CTRL_PHY_RST); + retry++; + } while (retry); +} + +/** + * e1000e_gig_downshift_workaround_ich8lan - WoL from S5 stops working + * @hw: pointer to the HW structure + * + * Steps to take when dropping from 1Gb/s (eg. link cable removal (LSC), + * LPLU, Gig disable, MDIC PHY reset): + * 1) Set Kumeran Near-end loopback + * 2) Clear Kumeran Near-end loopback + * Should only be called for ICH8[m] devices with any 1G Phy. + **/ +void e1000e_gig_downshift_workaround_ich8lan(struct e1000_hw *hw) +{ + s32 ret_val; + u16 reg_data; + + if ((hw->mac.type != e1000_ich8lan) || (hw->phy.type == e1000_phy_ife)) + return; + + ret_val = e1000e_read_kmrn_reg(hw, E1000_KMRNCTRLSTA_DIAG_OFFSET, + ®_data); + if (ret_val) + return; + reg_data |= E1000_KMRNCTRLSTA_DIAG_NELPBK; + ret_val = e1000e_write_kmrn_reg(hw, + E1000_KMRNCTRLSTA_DIAG_OFFSET, + reg_data); + if (ret_val) + return; + reg_data &= ~E1000_KMRNCTRLSTA_DIAG_NELPBK; + e1000e_write_kmrn_reg(hw, E1000_KMRNCTRLSTA_DIAG_OFFSET, reg_data); +} + +/** + * e1000_suspend_workarounds_ich8lan - workarounds needed during S0->Sx + * @hw: pointer to the HW structure + * + * During S0 to Sx transition, it is possible the link remains at gig + * instead of negotiating to a lower speed. Before going to Sx, set + * 'Gig Disable' to force link speed negotiation to a lower speed based on + * the LPLU setting in the NVM or custom setting. For PCH and newer parts, + * the OEM bits PHY register (LED, GbE disable and LPLU configurations) also + * needs to be written. + * Parts that support (and are linked to a partner which support) EEE in + * 100Mbps should disable LPLU since 100Mbps w/ EEE requires less power + * than 10Mbps w/o EEE. + **/ +void e1000_suspend_workarounds_ich8lan(struct e1000_hw *hw) +{ + struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; + u32 phy_ctrl; + s32 ret_val; + + phy_ctrl = er32(PHY_CTRL); + phy_ctrl |= E1000_PHY_CTRL_GBE_DISABLE; + + if (hw->phy.type == e1000_phy_i217) { + u16 phy_reg, device_id = hw->adapter->pdev->device; + + if ((device_id == E1000_DEV_ID_PCH_LPTLP_I218_LM) || + (device_id == E1000_DEV_ID_PCH_LPTLP_I218_V) || + (device_id == E1000_DEV_ID_PCH_I218_LM3) || + (device_id == E1000_DEV_ID_PCH_I218_V3)) { + u32 fextnvm6 = er32(FEXTNVM6); + + ew32(FEXTNVM6, fextnvm6 & ~E1000_FEXTNVM6_REQ_PLL_CLK); + } + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + goto out; + + if (!dev_spec->eee_disable) { + u16 eee_advert; + + ret_val = + e1000_read_emi_reg_locked(hw, + I217_EEE_ADVERTISEMENT, + &eee_advert); + if (ret_val) + goto release; + + /* Disable LPLU if both link partners support 100BaseT + * EEE and 100Full is advertised on both ends of the + * link, and enable Auto Enable LPI since there will + * be no driver to enable LPI while in Sx. + */ + if ((eee_advert & I82579_EEE_100_SUPPORTED) && + (dev_spec->eee_lp_ability & + I82579_EEE_100_SUPPORTED) && + (hw->phy.autoneg_advertised & ADVERTISE_100_FULL)) { + phy_ctrl &= ~(E1000_PHY_CTRL_D0A_LPLU | + E1000_PHY_CTRL_NOND0A_LPLU); + + /* Set Auto Enable LPI after link up */ + e1e_rphy_locked(hw, + I217_LPI_GPIO_CTRL, &phy_reg); + phy_reg |= I217_LPI_GPIO_CTRL_AUTO_EN_LPI; + e1e_wphy_locked(hw, + I217_LPI_GPIO_CTRL, phy_reg); + } + } + + /* For i217 Intel Rapid Start Technology support, + * when the system is going into Sx and no manageability engine + * is present, the driver must configure proxy to reset only on + * power good. LPI (Low Power Idle) state must also reset only + * on power good, as well as the MTA (Multicast table array). + * The SMBus release must also be disabled on LCD reset. + */ + if (!(er32(FWSM) & E1000_ICH_FWSM_FW_VALID)) { + /* Enable proxy to reset only on power good. */ + e1e_rphy_locked(hw, I217_PROXY_CTRL, &phy_reg); + phy_reg |= I217_PROXY_CTRL_AUTO_DISABLE; + e1e_wphy_locked(hw, I217_PROXY_CTRL, phy_reg); + + /* Set bit enable LPI (EEE) to reset only on + * power good. + */ + e1e_rphy_locked(hw, I217_SxCTRL, &phy_reg); + phy_reg |= I217_SxCTRL_ENABLE_LPI_RESET; + e1e_wphy_locked(hw, I217_SxCTRL, phy_reg); + + /* Disable the SMB release on LCD reset. */ + e1e_rphy_locked(hw, I217_MEMPWR, &phy_reg); + phy_reg &= ~I217_MEMPWR_DISABLE_SMB_RELEASE; + e1e_wphy_locked(hw, I217_MEMPWR, phy_reg); + } + + /* Enable MTA to reset for Intel Rapid Start Technology + * Support + */ + e1e_rphy_locked(hw, I217_CGFREG, &phy_reg); + phy_reg |= I217_CGFREG_ENABLE_MTA_RESET; + e1e_wphy_locked(hw, I217_CGFREG, phy_reg); + +release: + hw->phy.ops.release(hw); + } +out: + ew32(PHY_CTRL, phy_ctrl); + + if (hw->mac.type == e1000_ich8lan) + e1000e_gig_downshift_workaround_ich8lan(hw); + + if (hw->mac.type >= e1000_pchlan) { + e1000_oem_bits_config_ich8lan(hw, false); + + /* Reset PHY to activate OEM bits on 82577/8 */ + if (hw->mac.type == e1000_pchlan) + e1000e_phy_hw_reset_generic(hw); + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return; + e1000_write_smbus_addr(hw); + hw->phy.ops.release(hw); + } +} + +/** + * e1000_resume_workarounds_pchlan - workarounds needed during Sx->S0 + * @hw: pointer to the HW structure + * + * During Sx to S0 transitions on non-managed devices or managed devices + * on which PHY resets are not blocked, if the PHY registers cannot be + * accessed properly by the s/w toggle the LANPHYPC value to power cycle + * the PHY. + * On i217, setup Intel Rapid Start Technology. + **/ +void e1000_resume_workarounds_pchlan(struct e1000_hw *hw) +{ + s32 ret_val; + + if (hw->mac.type < e1000_pch2lan) + return; + + ret_val = e1000_init_phy_workarounds_pchlan(hw); + if (ret_val) { + e_dbg("Failed to init PHY flow ret_val=%d\n", ret_val); + return; + } + + /* For i217 Intel Rapid Start Technology support when the system + * is transitioning from Sx and no manageability engine is present + * configure SMBus to restore on reset, disable proxy, and enable + * the reset on MTA (Multicast table array). + */ + if (hw->phy.type == e1000_phy_i217) { + u16 phy_reg; + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) { + e_dbg("Failed to setup iRST\n"); + return; + } + + /* Clear Auto Enable LPI after link up */ + e1e_rphy_locked(hw, I217_LPI_GPIO_CTRL, &phy_reg); + phy_reg &= ~I217_LPI_GPIO_CTRL_AUTO_EN_LPI; + e1e_wphy_locked(hw, I217_LPI_GPIO_CTRL, phy_reg); + + if (!(er32(FWSM) & E1000_ICH_FWSM_FW_VALID)) { + /* Restore clear on SMB if no manageability engine + * is present + */ + ret_val = e1e_rphy_locked(hw, I217_MEMPWR, &phy_reg); + if (ret_val) + goto release; + phy_reg |= I217_MEMPWR_DISABLE_SMB_RELEASE; + e1e_wphy_locked(hw, I217_MEMPWR, phy_reg); + + /* Disable Proxy */ + e1e_wphy_locked(hw, I217_PROXY_CTRL, 0); + } + /* Enable reset on MTA */ + ret_val = e1e_rphy_locked(hw, I217_CGFREG, &phy_reg); + if (ret_val) + goto release; + phy_reg &= ~I217_CGFREG_ENABLE_MTA_RESET; + e1e_wphy_locked(hw, I217_CGFREG, phy_reg); +release: + if (ret_val) + e_dbg("Error %d in resume workarounds\n", ret_val); + hw->phy.ops.release(hw); + } +} + +/** + * e1000_cleanup_led_ich8lan - Restore the default LED operation + * @hw: pointer to the HW structure + * + * Return the LED back to the default configuration. + **/ +static s32 e1000_cleanup_led_ich8lan(struct e1000_hw *hw) +{ + if (hw->phy.type == e1000_phy_ife) + return e1e_wphy(hw, IFE_PHY_SPECIAL_CONTROL_LED, 0); + + ew32(LEDCTL, hw->mac.ledctl_default); + return 0; +} + +/** + * e1000_led_on_ich8lan - Turn LEDs on + * @hw: pointer to the HW structure + * + * Turn on the LEDs. + **/ +static s32 e1000_led_on_ich8lan(struct e1000_hw *hw) +{ + if (hw->phy.type == e1000_phy_ife) + return e1e_wphy(hw, IFE_PHY_SPECIAL_CONTROL_LED, + (IFE_PSCL_PROBE_MODE | IFE_PSCL_PROBE_LEDS_ON)); + + ew32(LEDCTL, hw->mac.ledctl_mode2); + return 0; +} + +/** + * e1000_led_off_ich8lan - Turn LEDs off + * @hw: pointer to the HW structure + * + * Turn off the LEDs. + **/ +static s32 e1000_led_off_ich8lan(struct e1000_hw *hw) +{ + if (hw->phy.type == e1000_phy_ife) + return e1e_wphy(hw, IFE_PHY_SPECIAL_CONTROL_LED, + (IFE_PSCL_PROBE_MODE | + IFE_PSCL_PROBE_LEDS_OFF)); + + ew32(LEDCTL, hw->mac.ledctl_mode1); + return 0; +} + +/** + * e1000_setup_led_pchlan - Configures SW controllable LED + * @hw: pointer to the HW structure + * + * This prepares the SW controllable LED for use. + **/ +static s32 e1000_setup_led_pchlan(struct e1000_hw *hw) +{ + return e1e_wphy(hw, HV_LED_CONFIG, (u16)hw->mac.ledctl_mode1); +} + +/** + * e1000_cleanup_led_pchlan - Restore the default LED operation + * @hw: pointer to the HW structure + * + * Return the LED back to the default configuration. + **/ +static s32 e1000_cleanup_led_pchlan(struct e1000_hw *hw) +{ + return e1e_wphy(hw, HV_LED_CONFIG, (u16)hw->mac.ledctl_default); +} + +/** + * e1000_led_on_pchlan - Turn LEDs on + * @hw: pointer to the HW structure + * + * Turn on the LEDs. + **/ +static s32 e1000_led_on_pchlan(struct e1000_hw *hw) +{ + u16 data = (u16)hw->mac.ledctl_mode2; + u32 i, led; + + /* If no link, then turn LED on by setting the invert bit + * for each LED that's mode is "link_up" in ledctl_mode2. + */ + if (!(er32(STATUS) & E1000_STATUS_LU)) { + for (i = 0; i < 3; i++) { + led = (data >> (i * 5)) & E1000_PHY_LED0_MASK; + if ((led & E1000_PHY_LED0_MODE_MASK) != + E1000_LEDCTL_MODE_LINK_UP) + continue; + if (led & E1000_PHY_LED0_IVRT) + data &= ~(E1000_PHY_LED0_IVRT << (i * 5)); + else + data |= (E1000_PHY_LED0_IVRT << (i * 5)); + } + } + + return e1e_wphy(hw, HV_LED_CONFIG, data); +} + +/** + * e1000_led_off_pchlan - Turn LEDs off + * @hw: pointer to the HW structure + * + * Turn off the LEDs. + **/ +static s32 e1000_led_off_pchlan(struct e1000_hw *hw) +{ + u16 data = (u16)hw->mac.ledctl_mode1; + u32 i, led; + + /* If no link, then turn LED off by clearing the invert bit + * for each LED that's mode is "link_up" in ledctl_mode1. + */ + if (!(er32(STATUS) & E1000_STATUS_LU)) { + for (i = 0; i < 3; i++) { + led = (data >> (i * 5)) & E1000_PHY_LED0_MASK; + if ((led & E1000_PHY_LED0_MODE_MASK) != + E1000_LEDCTL_MODE_LINK_UP) + continue; + if (led & E1000_PHY_LED0_IVRT) + data &= ~(E1000_PHY_LED0_IVRT << (i * 5)); + else + data |= (E1000_PHY_LED0_IVRT << (i * 5)); + } + } + + return e1e_wphy(hw, HV_LED_CONFIG, data); +} + +/** + * e1000_get_cfg_done_ich8lan - Read config done bit after Full or PHY reset + * @hw: pointer to the HW structure + * + * Read appropriate register for the config done bit for completion status + * and configure the PHY through s/w for EEPROM-less parts. + * + * NOTE: some silicon which is EEPROM-less will fail trying to read the + * config done bit, so only an error is logged and continues. If we were + * to return with error, EEPROM-less silicon would not be able to be reset + * or change link. + **/ +static s32 e1000_get_cfg_done_ich8lan(struct e1000_hw *hw) +{ + s32 ret_val = 0; + u32 bank = 0; + u32 status; + + e1000e_get_cfg_done_generic(hw); + + /* Wait for indication from h/w that it has completed basic config */ + if (hw->mac.type >= e1000_ich10lan) { + e1000_lan_init_done_ich8lan(hw); + } else { + ret_val = e1000e_get_auto_rd_done(hw); + if (ret_val) { + /* When auto config read does not complete, do not + * return with an error. This can happen in situations + * where there is no eeprom and prevents getting link. + */ + e_dbg("Auto Read Done did not complete\n"); + ret_val = 0; + } + } + + /* Clear PHY Reset Asserted bit */ + status = er32(STATUS); + if (status & E1000_STATUS_PHYRA) + ew32(STATUS, status & ~E1000_STATUS_PHYRA); + else + e_dbg("PHY Reset Asserted not set - needs delay\n"); + + /* If EEPROM is not marked present, init the IGP 3 PHY manually */ + if (hw->mac.type <= e1000_ich9lan) { + if (!(er32(EECD) & E1000_EECD_PRES) && + (hw->phy.type == e1000_phy_igp_3)) { + e1000e_phy_init_script_igp3(hw); + } + } else { + if (e1000_valid_nvm_bank_detect_ich8lan(hw, &bank)) { + /* Maybe we should do a basic PHY config */ + e_dbg("EEPROM not present\n"); + ret_val = -E1000_ERR_CONFIG; + } + } + + return ret_val; +} + +/** + * e1000_power_down_phy_copper_ich8lan - Remove link during PHY power down + * @hw: pointer to the HW structure + * + * In the case of a PHY power down to save power, or to turn off link during a + * driver unload, or wake on lan is not enabled, remove the link. + **/ +static void e1000_power_down_phy_copper_ich8lan(struct e1000_hw *hw) +{ + /* If the management interface is not enabled, then power down */ + if (!(hw->mac.ops.check_mng_mode(hw) || + hw->phy.ops.check_reset_block(hw))) + e1000_power_down_phy_copper(hw); +} + +/** + * e1000_clear_hw_cntrs_ich8lan - Clear statistical counters + * @hw: pointer to the HW structure + * + * Clears hardware counters specific to the silicon family and calls + * clear_hw_cntrs_generic to clear all general purpose counters. + **/ +static void e1000_clear_hw_cntrs_ich8lan(struct e1000_hw *hw) +{ + u16 phy_data; + s32 ret_val; + + e1000e_clear_hw_cntrs_base(hw); + + er32(ALGNERRC); + er32(RXERRC); + er32(TNCRS); + er32(CEXTERR); + er32(TSCTC); + er32(TSCTFC); + + er32(MGTPRC); + er32(MGTPDC); + er32(MGTPTC); + + er32(IAC); + er32(ICRXOC); + + /* Clear PHY statistics registers */ + if ((hw->phy.type == e1000_phy_82578) || + (hw->phy.type == e1000_phy_82579) || + (hw->phy.type == e1000_phy_i217) || + (hw->phy.type == e1000_phy_82577)) { + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return; + ret_val = hw->phy.ops.set_page(hw, + HV_STATS_PAGE << IGP_PAGE_SHIFT); + if (ret_val) + goto release; + hw->phy.ops.read_reg_page(hw, HV_SCC_UPPER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_SCC_LOWER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_ECOL_UPPER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_ECOL_LOWER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_MCC_UPPER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_MCC_LOWER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_LATECOL_UPPER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_LATECOL_LOWER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_COLC_UPPER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_COLC_LOWER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_DC_UPPER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_DC_LOWER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_TNCRS_UPPER, &phy_data); + hw->phy.ops.read_reg_page(hw, HV_TNCRS_LOWER, &phy_data); +release: + hw->phy.ops.release(hw); + } +} + +static const struct e1000_mac_operations ich8_mac_ops = { + /* check_mng_mode dependent on mac type */ + .check_for_link = e1000_check_for_copper_link_ich8lan, + /* cleanup_led dependent on mac type */ + .clear_hw_cntrs = e1000_clear_hw_cntrs_ich8lan, + .get_bus_info = e1000_get_bus_info_ich8lan, + .set_lan_id = e1000_set_lan_id_single_port, + .get_link_up_info = e1000_get_link_up_info_ich8lan, + /* led_on dependent on mac type */ + /* led_off dependent on mac type */ + .update_mc_addr_list = e1000e_update_mc_addr_list_generic, + .reset_hw = e1000_reset_hw_ich8lan, + .init_hw = e1000_init_hw_ich8lan, + .setup_link = e1000_setup_link_ich8lan, + .setup_physical_interface = e1000_setup_copper_link_ich8lan, + /* id_led_init dependent on mac type */ + .config_collision_dist = e1000e_config_collision_dist_generic, + .rar_set = e1000e_rar_set_generic, + .rar_get_count = e1000e_rar_get_count_generic, + .validate_mdi_setting = e1000e_validate_mdi_setting_generic, +}; + +static const struct e1000_phy_operations ich8_phy_ops = { + .acquire = e1000_acquire_swflag_ich8lan, + .check_reset_block = e1000_check_reset_block_ich8lan, + .commit = NULL, + .get_cfg_done = e1000_get_cfg_done_ich8lan, + .get_cable_length = e1000e_get_cable_length_igp_2, + .read_reg = e1000e_read_phy_reg_igp, + .release = e1000_release_swflag_ich8lan, + .reset = e1000_phy_hw_reset_ich8lan, + .set_d0_lplu_state = e1000_set_d0_lplu_state_ich8lan, + .set_d3_lplu_state = e1000_set_d3_lplu_state_ich8lan, + .write_reg = e1000e_write_phy_reg_igp, +}; + +static const struct e1000_nvm_operations ich8_nvm_ops = { + .acquire = e1000_acquire_nvm_ich8lan, + .release = e1000_release_nvm_ich8lan, + .read = e1000_read_nvm_ich8lan, + .update = e1000_update_nvm_checksum_ich8lan, + .reload = e1000e_reload_nvm_generic, + .valid_led_default = e1000_valid_led_default_ich8lan, + .validate = e1000_validate_nvm_checksum_ich8lan, + .write = e1000_write_nvm_ich8lan, +}; + +static const struct e1000_nvm_operations spt_nvm_ops = { + .acquire = e1000_acquire_nvm_ich8lan, + .release = e1000_release_nvm_ich8lan, + .read = e1000_read_nvm_spt, + .update = e1000_update_nvm_checksum_spt, + .reload = e1000e_reload_nvm_generic, + .valid_led_default = e1000_valid_led_default_ich8lan, + .validate = e1000_validate_nvm_checksum_ich8lan, + .write = e1000_write_nvm_ich8lan, +}; + +const struct e1000_info e1000_ich8_info = { + .mac = e1000_ich8lan, + .flags = FLAG_HAS_WOL + | FLAG_IS_ICH +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_HAS_AMT + | FLAG_HAS_FLASH + | FLAG_APME_IN_WUC, + .pba = 8, + .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN, + .get_variants = e1000_get_variants_ich8lan, + .mac_ops = &ich8_mac_ops, + .phy_ops = &ich8_phy_ops, + .nvm_ops = &ich8_nvm_ops, +}; + +const struct e1000_info e1000_ich9_info = { + .mac = e1000_ich9lan, + .flags = FLAG_HAS_JUMBO_FRAMES + | FLAG_IS_ICH + | FLAG_HAS_WOL +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_HAS_AMT + | FLAG_HAS_FLASH + | FLAG_APME_IN_WUC, + .pba = 18, + .max_hw_frame_size = DEFAULT_JUMBO, + .get_variants = e1000_get_variants_ich8lan, + .mac_ops = &ich8_mac_ops, + .phy_ops = &ich8_phy_ops, + .nvm_ops = &ich8_nvm_ops, +}; + +const struct e1000_info e1000_ich10_info = { + .mac = e1000_ich10lan, + .flags = FLAG_HAS_JUMBO_FRAMES + | FLAG_IS_ICH + | FLAG_HAS_WOL +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_HAS_AMT + | FLAG_HAS_FLASH + | FLAG_APME_IN_WUC, + .pba = 18, + .max_hw_frame_size = DEFAULT_JUMBO, + .get_variants = e1000_get_variants_ich8lan, + .mac_ops = &ich8_mac_ops, + .phy_ops = &ich8_phy_ops, + .nvm_ops = &ich8_nvm_ops, +}; + +const struct e1000_info e1000_pch_info = { + .mac = e1000_pchlan, + .flags = FLAG_IS_ICH + | FLAG_HAS_WOL +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_HAS_AMT + | FLAG_HAS_FLASH + | FLAG_HAS_JUMBO_FRAMES + | FLAG_DISABLE_FC_PAUSE_TIME /* errata */ + | FLAG_APME_IN_WUC, + .flags2 = FLAG2_HAS_PHY_STATS, + .pba = 26, + .max_hw_frame_size = 4096, + .get_variants = e1000_get_variants_ich8lan, + .mac_ops = &ich8_mac_ops, + .phy_ops = &ich8_phy_ops, + .nvm_ops = &ich8_nvm_ops, +}; + +const struct e1000_info e1000_pch2_info = { + .mac = e1000_pch2lan, + .flags = FLAG_IS_ICH + | FLAG_HAS_WOL + | FLAG_HAS_HW_TIMESTAMP +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_HAS_AMT + | FLAG_HAS_FLASH + | FLAG_HAS_JUMBO_FRAMES + | FLAG_APME_IN_WUC, + .flags2 = FLAG2_HAS_PHY_STATS +#ifdef __VMKLNX__ +/* EEE is disabled for 82579LM as a workaround for RX hang. See PR 1069059. */ + | 0, +#else + | FLAG2_HAS_EEE, +#endif /* __VMKLNX__ */ + .pba = 26, + .max_hw_frame_size = 9018, + .get_variants = e1000_get_variants_ich8lan, + .mac_ops = &ich8_mac_ops, + .phy_ops = &ich8_phy_ops, + .nvm_ops = &ich8_nvm_ops, +}; + +const struct e1000_info e1000_pch_lpt_info = { + .mac = e1000_pch_lpt, + .flags = FLAG_IS_ICH + | FLAG_HAS_WOL + | FLAG_HAS_HW_TIMESTAMP +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_HAS_AMT + | FLAG_HAS_FLASH + | FLAG_HAS_JUMBO_FRAMES + | FLAG_APME_IN_WUC, + .flags2 = FLAG2_HAS_PHY_STATS + | FLAG2_HAS_EEE, + .pba = 26, + .max_hw_frame_size = 9018, + .get_variants = e1000_get_variants_ich8lan, + .mac_ops = &ich8_mac_ops, + .phy_ops = &ich8_phy_ops, + .nvm_ops = &ich8_nvm_ops, +}; + +const struct e1000_info e1000_pch_spt_info = { + .mac = e1000_pch_spt, + .flags = FLAG_IS_ICH + | FLAG_HAS_WOL + | FLAG_HAS_HW_TIMESTAMP +#ifndef HAVE_NDO_SET_FEATURES + | FLAG_RX_CSUM_ENABLED +#endif + | FLAG_HAS_CTRLEXT_ON_LOAD + | FLAG_HAS_AMT + | FLAG_HAS_FLASH + | FLAG_HAS_JUMBO_FRAMES + | FLAG_APME_IN_WUC, + .flags2 = FLAG2_HAS_PHY_STATS + | FLAG2_HAS_EEE, + .pba = 26, + .max_hw_frame_size = 9018, + .get_variants = e1000_get_variants_ich8lan, + .mac_ops = &ich8_mac_ops, + .phy_ops = &ich8_phy_ops, + .nvm_ops = &spt_nvm_ops, +}; diff --git a/vmkdrivers/src_9/drivers/net/e1000e/ich8lan.h b/vmkdrivers/src_9/drivers/net/e1000e/ich8lan.h new file mode 100644 index 0000000000000000000000000000000000000000..3c7d072ff71f6b6339ba56d149e1d06206441275 --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/ich8lan.h @@ -0,0 +1,308 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +#ifndef _E1000E_ICH8LAN_H_ +#define _E1000E_ICH8LAN_H_ + +#define ICH_FLASH_GFPREG 0x0000 +#define ICH_FLASH_HSFSTS 0x0004 +#define ICH_FLASH_HSFCTL 0x0006 +#define ICH_FLASH_FADDR 0x0008 +#define ICH_FLASH_FDATA0 0x0010 + +#ifdef __VMKLNX__ +#define ICH_FLASH_PR0 0x0074 +#endif /* __VMKLNX__ */ + +/* Requires up to 10 seconds when MNG might be accessing part. */ +#define ICH_FLASH_READ_COMMAND_TIMEOUT 10000000 +#define ICH_FLASH_WRITE_COMMAND_TIMEOUT 10000000 +#define ICH_FLASH_ERASE_COMMAND_TIMEOUT 10000000 +#define ICH_FLASH_LINEAR_ADDR_MASK 0x00FFFFFF +#define ICH_FLASH_CYCLE_REPEAT_COUNT 10 + +#define ICH_CYCLE_READ 0 +#define ICH_CYCLE_WRITE 2 +#define ICH_CYCLE_ERASE 3 + +#define FLASH_GFPREG_BASE_MASK 0x1FFF +#define FLASH_SECTOR_ADDR_SHIFT 12 + +#define ICH_FLASH_SEG_SIZE_256 256 +#define ICH_FLASH_SEG_SIZE_4K 4096 +#define ICH_FLASH_SEG_SIZE_8K 8192 +#define ICH_FLASH_SEG_SIZE_64K 65536 + +#define E1000_ICH_FWSM_RSPCIPHY 0x00000040 /* Reset PHY on PCI Reset */ +/* FW established a valid mode */ +#define E1000_ICH_FWSM_FW_VALID 0x00008000 +#define E1000_ICH_FWSM_PCIM2PCI 0x01000000 /* ME PCIm-to-PCI active */ +#define E1000_ICH_FWSM_PCIM2PCI_COUNT 2000 + +#define E1000_ICH_MNG_IAMT_MODE 0x2 + +#define E1000_FWSM_WLOCK_MAC_MASK 0x0380 +#define E1000_FWSM_WLOCK_MAC_SHIFT 7 +#define E1000_FWSM_ULP_CFG_DONE 0x00000400 /* Low power cfg done */ + +/* Shared Receive Address Registers */ +#define E1000_SHRAL_PCH_LPT(_i) (0x05408 + ((_i) * 8)) +#define E1000_SHRAH_PCH_LPT(_i) (0x0540C + ((_i) * 8)) + +#define E1000_H2ME 0x05B50 /* Host to ME */ +#define E1000_H2ME_ULP 0x00000800 /* ULP Indication Bit */ +#define E1000_H2ME_ENFORCE_SETTINGS 0x00001000 /* Enforce Settings */ + +#define ID_LED_DEFAULT_ICH8LAN ((ID_LED_DEF1_DEF2 << 12) | \ + (ID_LED_OFF1_OFF2 << 8) | \ + (ID_LED_OFF1_ON2 << 4) | \ + (ID_LED_DEF1_DEF2)) + +#define E1000_ICH_NVM_SIG_WORD 0x13 +#define E1000_ICH_NVM_SIG_MASK 0xC000 +#define E1000_ICH_NVM_VALID_SIG_MASK 0xC0 +#define E1000_ICH_NVM_SIG_VALUE 0x80 + +#define E1000_ICH8_LAN_INIT_TIMEOUT 1500 + +/* FEXT register bit definition */ +#define E1000_FEXT_PHY_CABLE_DISCONNECTED 0x00000004 + +#define E1000_FEXTNVM_SW_CONFIG 1 +#define E1000_FEXTNVM_SW_CONFIG_ICH8M (1 << 27) /* different on ICH8M */ + +#define E1000_FEXTNVM3_PHY_CFG_COUNTER_MASK 0x0C000000 +#define E1000_FEXTNVM3_PHY_CFG_COUNTER_50MSEC 0x08000000 + +#define E1000_FEXTNVM4_BEACON_DURATION_MASK 0x7 +#define E1000_FEXTNVM4_BEACON_DURATION_8USEC 0x7 +#define E1000_FEXTNVM4_BEACON_DURATION_16USEC 0x3 + +#define E1000_FEXTNVM6_REQ_PLL_CLK 0x00000100 +#define E1000_FEXTNVM6_ENABLE_K1_ENTRY_CONDITION 0x00000200 + +#define E1000_FEXTNVM7_DISABLE_SMB_PERST 0x00000020 + +#define NVM_SIZE_MULTIPLIER 4096 /*multiplier for NVMS field */ +#define E1000_FLASH_BASE_ADDR 0xE000 /*offset of NVM access regs */ +#define E1000_CTRL_EXT_NVMVS 0x3 /*NVM valid sector */ + +#define PCIE_ICH8_SNOOP_ALL PCIE_NO_SNOOP_ALL + +#define E1000_ICH_RAR_ENTRIES 7 +#define E1000_PCH2_RAR_ENTRIES 5 /* RAR[0], SHRA[0-3] */ +#define E1000_PCH_LPT_RAR_ENTRIES 12 /* RAR[0], SHRA[0-10] */ + +#define PHY_PAGE_SHIFT 5 +#define PHY_REG(page, reg) (((page) << PHY_PAGE_SHIFT) | \ + ((reg) & MAX_PHY_REG_ADDRESS)) +#define IGP3_KMRN_DIAG PHY_REG(770, 19) /* KMRN Diagnostic */ +#define IGP3_VR_CTRL PHY_REG(776, 18) /* Voltage Regulator Control */ + +#define IGP3_KMRN_DIAG_PCS_LOCK_LOSS 0x0002 +#define IGP3_VR_CTRL_DEV_POWERDOWN_MODE_MASK 0x0300 +#define IGP3_VR_CTRL_MODE_SHUTDOWN 0x0200 + +/* PHY Wakeup Registers and defines */ +#define BM_PORT_GEN_CFG PHY_REG(BM_PORT_CTRL_PAGE, 17) +#define BM_RCTL PHY_REG(BM_WUC_PAGE, 0) +#define BM_WUC PHY_REG(BM_WUC_PAGE, 1) +#define BM_WUFC PHY_REG(BM_WUC_PAGE, 2) +#define BM_WUS PHY_REG(BM_WUC_PAGE, 3) +#define BM_RAR_L(_i) (BM_PHY_REG(BM_WUC_PAGE, 16 + ((_i) << 2))) +#define BM_RAR_M(_i) (BM_PHY_REG(BM_WUC_PAGE, 17 + ((_i) << 2))) +#define BM_RAR_H(_i) (BM_PHY_REG(BM_WUC_PAGE, 18 + ((_i) << 2))) +#define BM_RAR_CTRL(_i) (BM_PHY_REG(BM_WUC_PAGE, 19 + ((_i) << 2))) +#define BM_MTA(_i) (BM_PHY_REG(BM_WUC_PAGE, 128 + ((_i) << 1))) + +#define BM_RCTL_UPE 0x0001 /* Unicast Promiscuous Mode */ +#define BM_RCTL_MPE 0x0002 /* Multicast Promiscuous Mode */ +#define BM_RCTL_MO_SHIFT 3 /* Multicast Offset Shift */ +#define BM_RCTL_MO_MASK (3 << 3) /* Multicast Offset Mask */ +#define BM_RCTL_BAM 0x0020 /* Broadcast Accept Mode */ +#define BM_RCTL_PMCF 0x0040 /* Pass MAC Control Frames */ +#define BM_RCTL_RFCE 0x0080 /* Rx Flow Control Enable */ + +#define HV_LED_CONFIG PHY_REG(768, 30) /* LED Configuration */ +#define HV_MUX_DATA_CTRL PHY_REG(776, 16) +#define HV_MUX_DATA_CTRL_GEN_TO_MAC 0x0400 +#define HV_MUX_DATA_CTRL_FORCE_SPEED 0x0004 +#define HV_STATS_PAGE 778 +/* Half-duplex collision counts */ +#define HV_SCC_UPPER PHY_REG(HV_STATS_PAGE, 16) /* Single Collision */ +#define HV_SCC_LOWER PHY_REG(HV_STATS_PAGE, 17) +#define HV_ECOL_UPPER PHY_REG(HV_STATS_PAGE, 18) /* Excessive Coll. */ +#define HV_ECOL_LOWER PHY_REG(HV_STATS_PAGE, 19) +#define HV_MCC_UPPER PHY_REG(HV_STATS_PAGE, 20) /* Multiple Collision */ +#define HV_MCC_LOWER PHY_REG(HV_STATS_PAGE, 21) +#define HV_LATECOL_UPPER PHY_REG(HV_STATS_PAGE, 23) /* Late Collision */ +#define HV_LATECOL_LOWER PHY_REG(HV_STATS_PAGE, 24) +#define HV_COLC_UPPER PHY_REG(HV_STATS_PAGE, 25) /* Collision */ +#define HV_COLC_LOWER PHY_REG(HV_STATS_PAGE, 26) +#define HV_DC_UPPER PHY_REG(HV_STATS_PAGE, 27) /* Defer Count */ +#define HV_DC_LOWER PHY_REG(HV_STATS_PAGE, 28) +#define HV_TNCRS_UPPER PHY_REG(HV_STATS_PAGE, 29) /* Tx with no CRS */ +#define HV_TNCRS_LOWER PHY_REG(HV_STATS_PAGE, 30) + +#define E1000_FCRTV_PCH 0x05F40 /* PCH Flow Control Refresh Timer Value */ + +#define E1000_NVM_K1_CONFIG 0x1B /* NVM K1 Config Word */ +#define E1000_NVM_K1_ENABLE 0x1 /* NVM Enable K1 bit */ + +/* SMBus Control Phy Register */ +#define CV_SMB_CTRL PHY_REG(769, 23) +#define CV_SMB_CTRL_FORCE_SMBUS 0x0001 + +/* I218 Ultra Low Power Configuration 1 Register */ +#define I218_ULP_CONFIG1 PHY_REG(779, 16) +#define I218_ULP_CONFIG1_START 0x0001 /* Start auto ULP config */ +#define I218_ULP_CONFIG1_IND 0x0004 /* Pwr up from ULP indication */ +#define I218_ULP_CONFIG1_STICKY_ULP 0x0010 /* Set sticky ULP mode */ +#define I218_ULP_CONFIG1_INBAND_EXIT 0x0020 /* Inband on ULP exit */ +#define I218_ULP_CONFIG1_WOL_HOST 0x0040 /* WoL Host on ULP exit */ +#define I218_ULP_CONFIG1_RESET_TO_SMBUS 0x0100 /* Reset to SMBus mode */ +#define I218_ULP_CONFIG1_DISABLE_SMB_PERST 0x1000 /* Disable on PERST# */ + +/* SMBus Address Phy Register */ +#define HV_SMB_ADDR PHY_REG(768, 26) +#define HV_SMB_ADDR_MASK 0x007F +#define HV_SMB_ADDR_PEC_EN 0x0200 +#define HV_SMB_ADDR_VALID 0x0080 +#define HV_SMB_ADDR_FREQ_MASK 0x1100 +#define HV_SMB_ADDR_FREQ_LOW_SHIFT 8 +#define HV_SMB_ADDR_FREQ_HIGH_SHIFT 12 + +/* Strapping Option Register - RO */ +#define E1000_STRAP 0x0000C +#define E1000_STRAP_SMBUS_ADDRESS_MASK 0x00FE0000 +#define E1000_STRAP_SMBUS_ADDRESS_SHIFT 17 +#define E1000_STRAP_SMT_FREQ_MASK 0x00003000 +#define E1000_STRAP_SMT_FREQ_SHIFT 12 + +/* OEM Bits Phy Register */ +#define HV_OEM_BITS PHY_REG(768, 25) +#define HV_OEM_BITS_LPLU 0x0004 /* Low Power Link Up */ +#define HV_OEM_BITS_GBE_DIS 0x0040 /* Gigabit Disable */ +#define HV_OEM_BITS_RESTART_AN 0x0400 /* Restart Auto-negotiation */ + +/* KMRN Mode Control */ +#define HV_KMRN_MODE_CTRL PHY_REG(769, 16) +#define HV_KMRN_MDIO_SLOW 0x0400 + +/* KMRN FIFO Control and Status */ +#define HV_KMRN_FIFO_CTRLSTA PHY_REG(770, 16) +#define HV_KMRN_FIFO_CTRLSTA_PREAMBLE_MASK 0x7000 +#define HV_KMRN_FIFO_CTRLSTA_PREAMBLE_SHIFT 12 + +/* PHY Power Management Control */ +#define HV_PM_CTRL PHY_REG(770, 17) +#define HV_PM_CTRL_PLL_STOP_IN_K1_GIGA 0x100 +#define HV_PM_CTRL_K1_ENABLE 0x4000 + +#define SW_FLAG_TIMEOUT 1000 /* SW Semaphore flag timeout in ms */ + +/* Inband Control */ +#define I217_INBAND_CTRL PHY_REG(770, 18) +#define I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_MASK 0x3F00 +#define I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_SHIFT 8 + +/* Low Power Idle GPIO Control */ +#define I217_LPI_GPIO_CTRL PHY_REG(772, 18) +#define I217_LPI_GPIO_CTRL_AUTO_EN_LPI 0x0800 + +/* PHY Low Power Idle Control */ +#define I82579_LPI_CTRL PHY_REG(772, 20) +#define I82579_LPI_CTRL_100_ENABLE 0x2000 +#define I82579_LPI_CTRL_1000_ENABLE 0x4000 +#define I82579_LPI_CTRL_ENABLE_MASK 0x6000 + +/* 82579 DFT Control */ +#define I82579_DFT_CTRL PHY_REG(769, 20) +#define I82579_DFT_CTRL_GATE_PHY_RESET 0x0040 /* Gate PHY Reset on MAC Reset */ + +/* Extended Management Interface (EMI) Registers */ +#define I82579_EMI_ADDR 0x10 +#define I82579_EMI_DATA 0x11 +#define I82579_LPI_UPDATE_TIMER 0x4805 /* in 40ns units + 40 ns base value */ +#define I82579_MSE_THRESHOLD 0x084F /* 82579 Mean Square Error Threshold */ +#define I82577_MSE_THRESHOLD 0x0887 /* 82577 Mean Square Error Threshold */ +#define I82579_MSE_LINK_DOWN 0x2411 /* MSE count before dropping link */ +#define I82579_RX_CONFIG 0x3412 /* Receive configuration */ +#define I82579_LPI_PLL_SHUT 0x4412 /* LPI PLL Shut Enable */ +#define I82579_EEE_PCS_STATUS 0x182E /* IEEE MMD Register 3.1 >> 8 */ +#define I82579_EEE_CAPABILITY 0x0410 /* IEEE MMD Register 3.20 */ +#define I82579_EEE_ADVERTISEMENT 0x040E /* IEEE MMD Register 7.60 */ +#define I82579_EEE_LP_ABILITY 0x040F /* IEEE MMD Register 7.61 */ +#define I82579_EEE_100_SUPPORTED (1 << 1) /* 100BaseTx EEE */ +#define I82579_EEE_1000_SUPPORTED (1 << 2) /* 1000BaseTx EEE */ +#define I82579_LPI_100_PLL_SHUT (1 << 2) /* 100M LPI PLL Shut Enabled */ +#define I217_EEE_PCS_STATUS 0x9401 /* IEEE MMD Register 3.1 */ +#define I217_EEE_CAPABILITY 0x8000 /* IEEE MMD Register 3.20 */ +#define I217_EEE_ADVERTISEMENT 0x8001 /* IEEE MMD Register 7.60 */ +#define I217_EEE_LP_ABILITY 0x8002 /* IEEE MMD Register 7.61 */ +#define I217_RX_CONFIG 0xB20C /* Receive configuration */ + +#define E1000_EEE_RX_LPI_RCVD 0x0400 /* Tx LP idle received */ +#define E1000_EEE_TX_LPI_RCVD 0x0800 /* Rx LP idle received */ + +/* Intel Rapid Start Technology Support */ +#define I217_PROXY_CTRL BM_PHY_REG(BM_WUC_PAGE, 70) +#define I217_PROXY_CTRL_AUTO_DISABLE 0x0080 +#define I217_SxCTRL PHY_REG(BM_PORT_CTRL_PAGE, 28) +#define I217_SxCTRL_ENABLE_LPI_RESET 0x1000 +#define I217_CGFREG PHY_REG(772, 29) +#define I217_CGFREG_ENABLE_MTA_RESET 0x0002 +#define I217_MEMPWR PHY_REG(772, 26) +#define I217_MEMPWR_DISABLE_SMB_RELEASE 0x0010 + +/* Receive Address Initial CRC Calculation */ +#define E1000_PCH_RAICC(_n) (0x05F50 + ((_n) * 4)) + +/* Latency Tolerance Reporting */ +#define E1000_LTRV 0x000F8 +#define E1000_LTRV_SCALE_MAX 5 +#define E1000_LTRV_SCALE_FACTOR 5 +#define E1000_LTRV_REQ_SHIFT 15 +#define E1000_LTRV_NOSNOOP_SHIFT 16 +#define E1000_LTRV_SEND (1 << 30) + +/* Proprietary Latency Tolerance Reporting PCI Capability */ +#define E1000_PCI_LTR_CAP_LPT 0xA8 + +#define E1000_PCI_REVISION_ID_REG 0x08 +void e1000e_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw, + bool state); +void e1000e_igp3_phy_powerdown_workaround_ich8lan(struct e1000_hw *hw); +void e1000e_gig_downshift_workaround_ich8lan(struct e1000_hw *hw); +void e1000_suspend_workarounds_ich8lan(struct e1000_hw *hw); +void e1000_resume_workarounds_pchlan(struct e1000_hw *hw); +s32 e1000_configure_k1_ich8lan(struct e1000_hw *hw, bool k1_enable); +void e1000_copy_rx_addrs_to_phy_ich8lan(struct e1000_hw *hw); +s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable); +s32 e1000_read_emi_reg_locked(struct e1000_hw *hw, u16 addr, u16 *data); +s32 e1000_write_emi_reg_locked(struct e1000_hw *hw, u16 addr, u16 data); +s32 e1000_set_eee_pchlan(struct e1000_hw *hw); +s32 e1000_enable_ulp_lpt_lp(struct e1000_hw *hw, bool to_sx); +#endif /* _E1000E_ICH8LAN_H_ */ +#ifdef DYNAMIC_LTR_SUPPORT +void e1000_demote_ltr(struct e1000_hw *hw, bool demote, bool link); +#endif /* DYNAMIC_LTR_SUPPORT */ diff --git a/vmkdrivers/src_9/drivers/net/e1000e/kcompat.c b/vmkdrivers/src_9/drivers/net/e1000e/kcompat.c index 8b6c5ac8a53097ce14214ed86c023952a47128dd..11651cba08304a222652ea53f7aa49b020b6a575 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/kcompat.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/kcompat.c @@ -1,57 +1,389 @@ -/******************************************************************************* +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. +#include "e1000.h" +#include "kcompat.h" - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,8) ) +/* From lib/vsprintf.c */ +#include - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. +static int skip_atoi(const char **s) +{ + int i = 0; - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + while (isdigit(**s)) + i = i * 10 + *((*s)++) - '0'; + return i; +} - The full GNU General Public License is included in this distribution in - the file called "COPYING". +#define _kc_ZEROPAD 1 /* pad with zero */ +#define _kc_SIGN 2 /* unsigned/signed long */ +#define _kc_PLUS 4 /* show plus */ +#define _kc_SPACE 8 /* space if plus */ +#define _kc_LEFT 16 /* left justified */ +#define _kc_SPECIAL 32 /* 0x */ +#define _kc_LARGE 64 /* use 'ABCDEF' instead of 'abcdef' */ - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 +static char *number(char *buf, char *end, long long num, int base, int size, + int precision, int type) +{ + char c, sign, tmp[66]; + const char *digits; + const char small_digits[] = "0123456789abcdefghijklmnopqrstuvwxyz"; + const char large_digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + int i; -*******************************************************************************/ + digits = (type & _kc_LARGE) ? large_digits : small_digits; + if (type & _kc_LEFT) + type &= ~_kc_ZEROPAD; + if (base < 2 || base > 36) + return 0; + c = (type & _kc_ZEROPAD) ? '0' : ' '; + sign = 0; + if (type & _kc_SIGN) { + if (num < 0) { + sign = '-'; + num = -num; + size--; + } else if (type & _kc_PLUS) { + sign = '+'; + size--; + } else if (type & _kc_SPACE) { + sign = ' '; + size--; + } + } + if (type & _kc_SPECIAL) { + if (base == 16) + size -= 2; + else if (base == 8) + size--; + } + i = 0; + if (num == 0) + tmp[i++] = '0'; + else + while (num != 0) + tmp[i++] = digits[do_div(num, base)]; + if (i > precision) + precision = i; + size -= precision; + if (!(type & (_kc_ZEROPAD + _kc_LEFT))) { + while (size-- > 0) { + if (buf <= end) + *buf = ' '; + ++buf; + } + } + if (sign) { + if (buf <= end) + *buf = sign; + ++buf; + } + if (type & _kc_SPECIAL) { + if (base == 8) { + if (buf <= end) + *buf = '0'; + ++buf; + } else if (base == 16) { + if (buf <= end) + *buf = '0'; + ++buf; + if (buf <= end) + *buf = digits[33]; + ++buf; + } + } + if (!(type & _kc_LEFT)) { + while (size-- > 0) { + if (buf <= end) + *buf = c; + ++buf; + } + } + while (i < precision--) { + if (buf <= end) + *buf = '0'; + ++buf; + } + while (i-- > 0) { + if (buf <= end) + *buf = tmp[i]; + ++buf; + } + while (size-- > 0) { + if (buf <= end) + *buf = ' '; + ++buf; + } + return buf; +} -#ifdef DRIVER_E1000E -#include "e1000.h" -#endif -#include "kcompat.h" +int _kc_vsnprintf(char *buf, size_t size, const char *fmt, va_list args) +{ + int len; + unsigned long long num; + int i, base; + char *str, *end, c; + const char *s; + + int flags; /* flags to number() */ + + int field_width; /* width of output field */ + int precision; /* min. # of digits for integers; max + number of chars for from string */ + int qualifier; /* 'h', 'l', or 'L' for integer fields */ + /* 'z' support added 23/7/1999 S.H. */ + /* 'z' changed to 'Z' --davidm 1/25/99 */ + + str = buf; + end = buf + size - 1; + + if (end < buf - 1) { + end = ((void *)-1); + size = end - buf + 1; + } -/*****************************************************************************/ -#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,21) ) -struct sk_buff * -_kc_skb_pad(struct sk_buff *skb, int pad) -{ - struct sk_buff *nskb; - - /* If the skbuff is non linear tailroom is always zero.. */ - if(skb_tailroom(skb) >= pad) - { - memset(skb->data+skb->len, 0, pad); - return skb; - } - - nskb = skb_copy_expand(skb, skb_headroom(skb), skb_tailroom(skb) + pad, GFP_ATOMIC); - kfree_skb(skb); - if(nskb) - memset(nskb->data+nskb->len, 0, pad); - return nskb; -} -#endif /* < 2.4.21 */ + for (; *fmt; ++fmt) { + if (*fmt != '%') { + if (str <= end) + *str = *fmt; + ++str; + continue; + } + + /* process flags */ + flags = 0; +repeat: + ++fmt; /* this also skips first '%' */ + switch (*fmt) { + case '-': + flags |= _kc_LEFT; + goto repeat; + case '+': + flags |= _kc_PLUS; + goto repeat; + case ' ': + flags |= _kc_SPACE; + goto repeat; + case '#': + flags |= _kc_SPECIAL; + goto repeat; + case '0': + flags |= _kc_ZEROPAD; + goto repeat; + } + + /* get field width */ + field_width = -1; + if (isdigit(*fmt)) + field_width = skip_atoi(&fmt); + else if (*fmt == '*') { + ++fmt; + /* it's the next argument */ + field_width = va_arg(args, int); + if (field_width < 0) { + field_width = -field_width; + flags |= _kc_LEFT; + } + } + + /* get the precision */ + precision = -1; + if (*fmt == '.') { + ++fmt; + if (isdigit(*fmt)) + precision = skip_atoi(&fmt); + else if (*fmt == '*') { + ++fmt; + /* it's the next argument */ + precision = va_arg(args, int); + } + if (precision < 0) + precision = 0; + } + + /* get the conversion qualifier */ + qualifier = -1; + if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || *fmt == 'Z') { + qualifier = *fmt; + ++fmt; + } + + /* default base */ + base = 10; + + switch (*fmt) { + case 'c': + if (!(flags & _kc_LEFT)) { + while (--field_width > 0) { + if (str <= end) + *str = ' '; + ++str; + } + } + c = (unsigned char)va_arg(args, int); + if (str <= end) + *str = c; + ++str; + while (--field_width > 0) { + if (str <= end) + *str = ' '; + ++str; + } + continue; + + case 's': + s = va_arg(args, char *); + if (!s) + s = ""; + + len = strnlen(s, precision); + + if (!(flags & _kc_LEFT)) { + while (len < field_width--) { + if (str <= end) + *str = ' '; + ++str; + } + } + for (i = 0; i < len; ++i) { + if (str <= end) + *str = *s; + ++str; + ++s; + } + while (len < field_width--) { + if (str <= end) + *str = ' '; + ++str; + } + continue; + + case 'p': + if (field_width == -1) { + field_width = 2 * sizeof(void *); + flags |= _kc_ZEROPAD; + } + str = number(str, end, + (unsigned long)va_arg(args, void *), + 16, field_width, precision, flags); + continue; + + case 'n': + /* FIXME: + * What does C99 say about the overflow case here? */ + if (qualifier == 'l') { + long *ip = va_arg(args, long *); + *ip = (str - buf); + } else if (qualifier == 'Z') { + size_t *ip = va_arg(args, size_t *); + *ip = (str - buf); + } else { + int *ip = va_arg(args, int *); + *ip = (str - buf); + } + continue; + + case '%': + if (str <= end) + *str = '%'; + ++str; + continue; + + /* integer number formats - set up the flags and "break" */ + case 'o': + base = 8; + break; + + case 'X': + flags |= _kc_LARGE; + case 'x': + base = 16; + break; + + case 'd': + case 'i': + flags |= _kc_SIGN; + case 'u': + break; + + default: + if (str <= end) + *str = '%'; + ++str; + if (*fmt) { + if (str <= end) + *str = *fmt; + ++str; + } else { + --fmt; + } + continue; + } + if (qualifier == 'L') + num = va_arg(args, long long); + else if (qualifier == 'l') { + num = va_arg(args, unsigned long); + if (flags & _kc_SIGN) + num = (signed long)num; + } else if (qualifier == 'Z') { + num = va_arg(args, size_t); + } else if (qualifier == 'h') { + num = (unsigned short)va_arg(args, int); + if (flags & _kc_SIGN) + num = (signed short)num; + } else { + num = va_arg(args, unsigned int); + if (flags & _kc_SIGN) + num = (signed int)num; + } + str = number(str, end, num, base, + field_width, precision, flags); + } + if (str <= end) + *str = '\0'; + else if (size > 0) + /* don't write out a null byte if the buf size is zero */ + *end = '\0'; + /* the trailing null byte doesn't count towards the total + * ++str; + */ + return str - buf; +} + +int _kc_snprintf(char *buf, size_t size, const char *fmt, ...) +{ + va_list args; + int i; + + va_start(args, fmt); + i = _kc_vsnprintf(buf, size, fmt, args); + va_end(args); + return i; +} +#endif /* < 2.4.8 */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,13) ) @@ -67,9 +399,9 @@ _kc_skb_pad(struct sk_buff *skb, int pad) u64 _kc_pci_map_page(struct pci_dev *dev, struct page *page, unsigned long offset, - size_t size, int direction) + size_t size, int direction) { - return (((u64) (page - mem_map) << PAGE_SHIFT) + offset + + return (((u64)(page - mem_map) << PAGE_SHIFT) + offset + PCI_DRAM_OFFSET); } @@ -77,7 +409,7 @@ _kc_pci_map_page(struct pci_dev *dev, struct page *page, unsigned long offset, u64 _kc_pci_map_page(struct pci_dev *dev, struct page *page, unsigned long offset, - size_t size, int direction) + size_t size, int direction) { return pci_map_single(dev, (void *)page_address(page) + offset, size, direction); @@ -87,7 +419,7 @@ _kc_pci_map_page(struct pci_dev *dev, struct page *page, unsigned long offset, void _kc_pci_unmap_page(struct pci_dev *dev, u64 dma_addr, size_t size, - int direction) + int direction) { return pci_unmap_single(dev, dma_addr, size, direction); } @@ -100,8 +432,7 @@ _kc_pci_unmap_page(struct pci_dev *dev, u64 dma_addr, size_t size, /**************************************/ /* PCI DRIVER API */ -int -_kc_pci_set_dma_mask(struct pci_dev *dev, dma_addr_t mask) +int _kc_pci_set_dma_mask(struct pci_dev *dev, dma_addr_t mask) { if (!pci_dma_supported(dev, mask)) return -EIO; @@ -109,8 +440,7 @@ _kc_pci_set_dma_mask(struct pci_dev *dev, dma_addr_t mask) return 0; } -int -_kc_pci_request_regions(struct pci_dev *dev, char *res_name) +int _kc_pci_request_regions(struct pci_dev *dev, char *res_name) { int i; @@ -119,12 +449,16 @@ _kc_pci_request_regions(struct pci_dev *dev, char *res_name) continue; if (pci_resource_flags(dev, i) & IORESOURCE_IO) { - if (!request_region(pci_resource_start(dev, i), pci_resource_len(dev, i), res_name)) { + if (!request_region + (pci_resource_start(dev, i), + pci_resource_len(dev, i), res_name)) { pci_release_regions(dev); return -EBUSY; } } else if (pci_resource_flags(dev, i) & IORESOURCE_MEM) { - if (!request_mem_region(pci_resource_start(dev, i), pci_resource_len(dev, i), res_name)) { + if (!request_mem_region + (pci_resource_start(dev, i), + pci_resource_len(dev, i), res_name)) { pci_release_regions(dev); return -EBUSY; } @@ -133,8 +467,7 @@ _kc_pci_request_regions(struct pci_dev *dev, char *res_name) return 0; } -void -_kc_pci_release_regions(struct pci_dev *dev) +void _kc_pci_release_regions(struct pci_dev *dev) { int i; @@ -143,38 +476,37 @@ _kc_pci_release_regions(struct pci_dev *dev) continue; if (pci_resource_flags(dev, i) & IORESOURCE_IO) - release_region(pci_resource_start(dev, i), pci_resource_len(dev, i)); + release_region(pci_resource_start(dev, i), + pci_resource_len(dev, i)); else if (pci_resource_flags(dev, i) & IORESOURCE_MEM) - release_mem_region(pci_resource_start(dev, i), pci_resource_len(dev, i)); + release_mem_region(pci_resource_start(dev, i), + pci_resource_len(dev, i)); } } /**************************************/ /* NETWORK DRIVER API */ -struct net_device * -_kc_alloc_etherdev(int sizeof_priv) +struct net_device *_kc_alloc_etherdev(int sizeof_priv) { struct net_device *dev; int alloc_size; alloc_size = sizeof(*dev) + sizeof_priv + IFNAMSIZ + 31; - dev = kmalloc(alloc_size, GFP_KERNEL); + dev = kzalloc(alloc_size, GFP_KERNEL); if (!dev) return NULL; - memset(dev, 0, alloc_size); if (sizeof_priv) - dev->priv = (void *) (((unsigned long)(dev + 1) + 31) & ~31); + dev->priv = (void *)(((unsigned long)(dev + 1) + 31) & ~31); dev->name[0] = '\0'; ether_setup(dev); return dev; } -int -_kc_is_valid_ether_addr(u8 *addr) +int _kc_is_valid_ether_addr(u8 *addr) { const char zaddr[6] = { 0, }; @@ -186,14 +518,12 @@ _kc_is_valid_ether_addr(u8 *addr) /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,6) ) -int -_kc_pci_set_power_state(struct pci_dev *dev, int state) +int _kc_pci_set_power_state(struct pci_dev *dev, int state) { return 0; } -int -_kc_pci_enable_wake(struct pci_dev *pdev, u32 state, int enable) +int _kc_pci_enable_wake(struct pci_dev *pdev, u32 state, int enable) { return 0; } @@ -203,7 +533,7 @@ _kc_pci_enable_wake(struct pci_dev *pdev, u32 state, int enable) /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ) void _kc_skb_fill_page_desc(struct sk_buff *skb, int i, struct page *page, - int off, int size) + int off, int size) { skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; frag->page = page; @@ -227,10 +557,10 @@ void _kc_skb_fill_page_desc(struct sk_buff *skb, int i, struct page *page, * @size: The maximum size to search */ unsigned long find_next_bit(const unsigned long *addr, unsigned long size, - unsigned long offset) + unsigned long offset) { const unsigned long *p = addr + BITOP_WORD(offset); - unsigned long result = offset & ~(BITS_PER_LONG-1); + unsigned long result = offset & ~(BITS_PER_LONG - 1); unsigned long tmp; if (offset >= size) @@ -247,7 +577,7 @@ unsigned long find_next_bit(const unsigned long *addr, unsigned long size, size -= BITS_PER_LONG; result += BITS_PER_LONG; } - while (size & ~(BITS_PER_LONG-1)) { + while (size & ~(BITS_PER_LONG - 1)) { if ((tmp = *(p++))) goto found_middle; result += BITS_PER_LONG; @@ -265,8 +595,94 @@ found_middle: return result + ffs(tmp); } +size_t _kc_strlcpy(char *dest, const char *src, size_t size) +{ + size_t ret = strlen(src); + + if (size) { + size_t len = (ret >= size) ? size - 1 : ret; + memcpy(dest, src, len); + dest[len] = '\0'; + } + return ret; +} + +#ifndef do_div +#if BITS_PER_LONG == 32 +uint32_t __attribute__ ((weak)) _kc__div64_32(uint64_t * n, uint32_t base) +{ + uint64_t rem = *n; + uint64_t b = base; + uint64_t res, d = 1; + uint32_t high = rem >> 32; + + /* Reduce the thing a bit first */ + res = 0; + if (high >= base) { + high /= base; + res = (uint64_t) high << 32; + rem -= (uint64_t) (high * base) << 32; + } + + while ((int64_t) b > 0 && b < rem) { + b = b + b; + d = d + d; + } + + do { + if (rem >= b) { + rem -= b; + res += d; + } + b >>= 1; + d >>= 1; + } while (d); + + *n = res; + return rem; +} +#endif /* BITS_PER_LONG == 32 */ +#endif /* do_div */ #endif /* 2.6.0 => 2.4.6 */ +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,4) ) +int _kc_scnprintf(char *buf, size_t size, const char *fmt, ...) +{ + va_list args; + int i; + + va_start(args, fmt); + i = vsnprintf(buf, size, fmt, args); + va_end(args); + return (i >= size) ? (size - 1) : i; +} +#endif /* < 2.6.4 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10) ) +DECLARE_BITMAP(_kcompat_node_online_map, MAX_NUMNODES) = { +1}; +#endif /* < 2.6.10 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) ) +char *_kc_kstrdup(const char *s, unsigned int gfp) +{ + size_t len; + char *buf; + + if (!s) + return NULL; + + len = strlen(s) + 1; + buf = kmalloc(len, gfp); + if (buf) + memcpy(buf, s, len); + return buf; +} +#endif /* < 2.6.13 */ + /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) ) void *_kc_kzalloc(size_t size, int flags) @@ -279,37 +695,54 @@ void *_kc_kzalloc(size_t size, int flags) #endif /* <= 2.6.13 */ /*****************************************************************************/ -#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) ) -struct sk_buff *_kc_netdev_alloc_skb(struct net_device *dev, - unsigned int length) +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) ) +int _kc_skb_pad(struct sk_buff *skb, int pad) { - /* 16 == NET_PAD_SKB */ - struct sk_buff *skb; - skb = alloc_skb(length + 16, GFP_ATOMIC); - if (likely(skb != NULL)) { - skb_reserve(skb, 16); - skb->dev = dev; + int ntail; + + /* If the skbuff is non linear tailroom is always zero.. */ + if (!skb_cloned(skb) && skb_tailroom(skb) >= pad) { + memset(skb->data + skb->len, 0, pad); + return 0; } - return skb; + + ntail = skb->data_len + pad - (skb->end - skb->tail); + if (likely(skb_cloned(skb) || ntail > 0)) { + if (pskb_expand_head(skb, 0, ntail, GFP_ATOMIC)) ; + goto free_skb; + } +#ifdef MAX_SKB_FRAGS + if (skb_is_nonlinear(skb) && !__pskb_pull_tail(skb, skb->data_len)) + goto free_skb; + +#endif + memset(skb->data + skb->len, 0, pad); + return 0; + +free_skb: + kfree_skb(skb); + return -ENOMEM; } -#endif /* <= 2.6.17 */ -#if !defined(__VMKLNX__) -/*****************************************************************************/ -#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) ) +#ifndef __VMKLNX__ +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(5,4))) int _kc_pci_save_state(struct pci_dev *pdev) { struct net_device *netdev = pci_get_drvdata(pdev); struct adapter_struct *adapter = netdev_priv(netdev); int size = PCI_CONFIG_SPACE_LEN, i; - u16 pcie_cap_offset = pci_find_capability(pdev, PCI_CAP_ID_EXP); - u16 pcie_link_status; + u16 pcie_cap_offset, pcie_link_status; +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ) + /* no ->dev for 2.4 kernels */ + WARN_ON(pdev->dev.driver_data == NULL); +#endif + pcie_cap_offset = pci_find_capability(pdev, PCI_CAP_ID_EXP); if (pcie_cap_offset) { if (!pci_read_config_word(pdev, - pcie_cap_offset + PCIE_LINK_STATUS, - &pcie_link_status)) - size = PCIE_CONFIG_SPACE_LEN; + pcie_cap_offset + PCIE_LINK_STATUS, + &pcie_link_status)) + size = PCIE_CONFIG_SPACE_LEN; } pci_config_space_ich8lan(); #ifdef HAVE_PCI_ERS @@ -317,7 +750,7 @@ int _kc_pci_save_state(struct pci_dev *pdev) #else WARN_ON(adapter->config_space != NULL); #endif - adapter->config_space = kmalloc(size, GFP_KERNEL); + adapter->config_space = kmalloc(size, GFP_KERNEL); if (!adapter->config_space) { printk(KERN_ERR "Out of memory in pci_save_state\n"); return -ENOMEM; @@ -327,10 +760,14 @@ int _kc_pci_save_state(struct pci_dev *pdev) return 0; } -void _kc_pci_restore_state(struct pci_dev * pdev) +void _kc_pci_restore_state(struct pci_dev *pdev) { +#if defined(DRIVER_IXGBE) || defined(DRIVER_I40E) || defined(DRIVER_IXGBEVF) + struct adapter_struct *adapter = pci_get_drvdata(pdev); +#else struct net_device *netdev = pci_get_drvdata(pdev); struct adapter_struct *adapter = netdev_priv(netdev); +#endif int size = PCI_CONFIG_SPACE_LEN, i; u16 pcie_cap_offset; u16 pcie_link_status; @@ -339,19 +776,21 @@ void _kc_pci_restore_state(struct pci_dev * pdev) pcie_cap_offset = pci_find_capability(pdev, PCI_CAP_ID_EXP); if (pcie_cap_offset && !pci_read_config_word(pdev, - pcie_cap_offset + PCIE_LINK_STATUS, - &pcie_link_status)) + pcie_cap_offset + PCIE_LINK_STATUS, + &pcie_link_status)) size = PCIE_CONFIG_SPACE_LEN; pci_config_space_ich8lan(); for (i = 0; i < (size / 4); i++) - pci_write_config_dword(pdev, i * 4, adapter->config_space[i]); + pci_write_config_dword(pdev, i * 4, + adapter->config_space[i]); #ifndef HAVE_PCI_ERS kfree(adapter->config_space); adapter->config_space = NULL; #endif } } +#endif /* !(RHEL_RELEASE_CODE >= RHEL 5.4) */ #ifdef HAVE_PCI_ERS void _kc_free_netdev(struct net_device *netdev) @@ -373,18 +812,178 @@ void _kc_free_netdev(struct net_device *netdev) #endif } #endif -#endif /* <= 2.6.18 */ +void *_kc_kmemdup(const void *src, size_t len, unsigned gfp) +{ + void *p; + + p = kzalloc(len, gfp); + if (p) + memcpy(p, src, len); + return p; +} +#endif /* <= 2.6.19 */ +#endif /* !__VMKLNX__ */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21) ) +struct pci_dev *_kc_netdev_to_pdev(struct net_device *netdev) +{ + return ((struct adapter_struct *)netdev_priv(netdev))->pdev; +} +#endif /* < 2.6.21 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) ) +/* hexdump code taken from lib/hexdump.c */ +static void _kc_hex_dump_to_buffer(const void *buf, size_t len, int rowsize, + int groupsize, unsigned char *linebuf, + size_t linebuflen, bool ascii) +{ + const u8 *ptr = buf; + u8 ch; + int j, lx = 0; + int ascii_column; + + if (rowsize != 16 && rowsize != 32) + rowsize = 16; + + if (!len) + goto nil; + if (len > rowsize) /* limit to one line at a time */ + len = rowsize; + if ((len % groupsize) != 0) /* no mixed size output */ + groupsize = 1; + + switch (groupsize) { + case 8:{ + const u64 *ptr8 = buf; + int ngroups = len / groupsize; + + for (j = 0; j < ngroups; j++) + lx += + scnprintf((char *)(linebuf + lx), + linebuflen - lx, "%s%16.16llx", + j ? " " : "", + (unsigned long long)*(ptr8 + j)); + ascii_column = 17 * ngroups + 2; + break; + } + + case 4:{ + const u32 *ptr4 = buf; + int ngroups = len / groupsize; + + for (j = 0; j < ngroups; j++) + lx += + scnprintf((char *)(linebuf + lx), + linebuflen - lx, "%s%8.8x", + j ? " " : "", *(ptr4 + j)); + ascii_column = 9 * ngroups + 2; + break; + } + + case 2:{ + const u16 *ptr2 = buf; + int ngroups = len / groupsize; + + for (j = 0; j < ngroups; j++) + lx += + scnprintf((char *)(linebuf + lx), + linebuflen - lx, "%s%4.4x", + j ? " " : "", *(ptr2 + j)); + ascii_column = 5 * ngroups + 2; + break; + } + + default: + for (j = 0; (j < len) && (lx + 3) <= linebuflen; j++) { + ch = ptr[j]; + linebuf[lx++] = hex_asc(ch >> 4); + linebuf[lx++] = hex_asc(ch & 0x0f); + linebuf[lx++] = ' '; + } + if (j) + lx--; + + ascii_column = 3 * rowsize + 2; + break; + } + if (!ascii) + goto nil; + + while (lx < (linebuflen - 1) && lx < (ascii_column - 1)) + linebuf[lx++] = ' '; + for (j = 0; (j < len) && (lx + 2) < linebuflen; j++) + linebuf[lx++] = (isascii(ptr[j]) && isprint(ptr[j])) ? ptr[j] + : '.'; +nil: + linebuf[lx++] = '\0'; +} + +void _kc_print_hex_dump(const char *level, + const char *prefix_str, int prefix_type, + int rowsize, int groupsize, + const void *buf, size_t len, bool ascii) +{ + const u8 *ptr = buf; + int i, linelen, remaining = len; + unsigned char linebuf[200]; + + if (rowsize != 16 && rowsize != 32) + rowsize = 16; + + for (i = 0; i < len; i += rowsize) { + linelen = min(remaining, rowsize); + remaining -= rowsize; + _kc_hex_dump_to_buffer(ptr + i, linelen, rowsize, groupsize, + linebuf, sizeof(linebuf), ascii); + + switch (prefix_type) { + case DUMP_PREFIX_ADDRESS: + printk("%s%s%*p: %s\n", level, prefix_str, + (int)(2 * sizeof(void *)), ptr + i, linebuf); + break; + case DUMP_PREFIX_OFFSET: + printk("%s%s%.8x: %s\n", level, prefix_str, i, linebuf); + break; + default: + printk("%s%s%s\n", level, prefix_str, linebuf); + break; + } + } +} + +#endif /* < 2.6.22 */ + +#ifndef __VMKLNX__ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) ) #ifdef NAPI +#if defined(DRIVER_IXGBE) || defined(DRIVER_IGB) || defined(DRIVER_I40E) || \ + defined(DRIVER_IXGBEVF) +struct net_device *napi_to_poll_dev(const struct napi_struct *napi) +{ + struct adapter_q_vector *q_vector = container_of(napi, + struct + adapter_q_vector, + napi); + return &q_vector->poll_dev; +} +#endif int __kc_adapter_clean(struct net_device *netdev, int *budget) { int work_done; int work_to_do = min(*budget, netdev->quota); +#if defined(DRIVER_IXGBE) || defined(DRIVER_IGB) || defined(DRIVER_I40E) || \ + defined(E1000E_MQ) || defined(DRIVER_IXGBEVF) + /* kcompat.h netif_napi_add puts napi struct in "fake netdev->priv" */ + struct napi_struct *napi = netdev->priv; +#else struct adapter_struct *adapter = netdev_priv(netdev); struct napi_struct *napi = &adapter->napi; +#endif work_done = napi->poll(napi, work_to_do); *budget -= work_done; netdev->quota -= work_done; @@ -393,6 +992,26 @@ int __kc_adapter_clean(struct net_device *netdev, int *budget) #endif /* NAPI */ #endif /* <= 2.6.24 */ +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) ) +void _kc_pci_disable_link_state(struct pci_dev *pdev, int state) +{ + struct pci_dev *parent = pdev->bus->self; + u16 link_state; + int pos; + + if (!parent) + return; + + pos = pci_find_capability(parent, PCI_CAP_ID_EXP); + if (pos) { + pci_read_config_word(parent, pos + PCI_EXP_LNKCTL, &link_state); + link_state &= ~state; + pci_write_config_word(parent, pos + PCI_EXP_LNKCTL, link_state); + } +} +#endif /* < 2.6.26 */ + /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) ) #ifdef HAVE_TX_MQ @@ -406,6 +1025,7 @@ void _kc_netif_tx_stop_all_queues(struct net_device *netdev) for (i = 0; i < adapter->num_tx_queues; i++) netif_stop_subqueue(netdev, i); } + void _kc_netif_tx_wake_all_queues(struct net_device *netdev) { struct adapter_struct *adapter = netdev_priv(netdev); @@ -416,6 +1036,7 @@ void _kc_netif_tx_wake_all_queues(struct net_device *netdev) for (i = 0; i < adapter->num_tx_queues; i++) netif_wake_subqueue(netdev, i); } + void _kc_netif_tx_start_all_queues(struct net_device *netdev) { struct adapter_struct *adapter = netdev_priv(netdev); @@ -427,13 +1048,28 @@ void _kc_netif_tx_start_all_queues(struct net_device *netdev) netif_start_subqueue(netdev, i); } #endif /* HAVE_TX_MQ */ + +#ifndef __WARN_printf +void __kc_warn_slowpath(const char *file, int line, const char *fmt, ...) +{ + va_list args; + + printk(KERN_WARNING "------------[ cut here ]------------\n"); + printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file, line); + va_start(args, fmt); + vprintk(fmt, args); + va_end(args); + + dump_stack(); +} +#endif /* __WARN_printf */ #endif /* < 2.6.27 */ +#endif /* !__VMKLNX__ */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ) -int -_kc_pci_prepare_to_sleep(struct pci_dev *dev) +int _kc_pci_prepare_to_sleep(struct pci_dev *dev) { pci_power_t target_state; int error; @@ -450,8 +1086,7 @@ _kc_pci_prepare_to_sleep(struct pci_dev *dev) return error; } -int -_kc_pci_wake_from_d3(struct pci_dev *dev, bool enable) +int _kc_pci_wake_from_d3(struct pci_dev *dev, bool enable) { int err; @@ -466,11 +1101,521 @@ out: } #endif /* < 2.6.28 */ -#endif /* !defined(__VMKLNX__) */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) ) +static void __kc_pci_set_master(struct pci_dev *pdev, bool enable) +{ + u16 old_cmd, cmd; + + pci_read_config_word(pdev, PCI_COMMAND, &old_cmd); + if (enable) + cmd = old_cmd | PCI_COMMAND_MASTER; + else + cmd = old_cmd & ~PCI_COMMAND_MASTER; + if (cmd != old_cmd) { + dev_dbg(pci_dev_to_dev(pdev), "%s bus mastering\n", + enable ? "enabling" : "disabling"); + pci_write_config_word(pdev, PCI_COMMAND, cmd); + } +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7) ) + pdev->is_busmaster = enable; +#endif +} + +void _kc_pci_clear_master(struct pci_dev *dev) +{ + __kc_pci_set_master(dev, false); +} #endif /* < 2.6.29 */ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) ) +#if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(6,0)) +int _kc_pci_num_vf(struct pci_dev __maybe_unused * dev) +{ + int num_vf = 0; +#ifdef CONFIG_PCI_IOV + struct pci_dev *vfdev; + + /* loop through all ethernet devices starting at PF dev */ + vfdev = pci_get_class(PCI_CLASS_NETWORK_ETHERNET << 8, NULL); + while (vfdev) { + if (vfdev->is_virtfn && vfdev->physfn == dev) + num_vf++; + + vfdev = pci_get_class(PCI_CLASS_NETWORK_ETHERNET << 8, vfdev); + } + +#endif + return num_vf; +} +#endif /* RHEL_RELEASE_CODE */ +#endif /* < 2.6.34 */ + +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ) +#if defined(DRIVER_IXGBE) || defined(DRIVER_IGB) || defined(DRIVER_I40E) || \ + defined(DRIVER_IXGBEVF) || defined(DRIVER_FM10K) +#ifdef HAVE_TX_MQ +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,0))) +#ifndef CONFIG_NETDEVICES_MULTIQUEUE +void _kc_netif_set_real_num_tx_queues(struct net_device *dev, unsigned int txq) +{ + unsigned int real_num = dev->real_num_tx_queues; + struct Qdisc *qdisc; + int i; + + if (unlikely(txq > dev->num_tx_queues)) ; + else if (txq > real_num) + dev->real_num_tx_queues = txq; + else if (txq < real_num) { + dev->real_num_tx_queues = txq; + for (i = txq; i < dev->num_tx_queues; i++) { + qdisc = netdev_get_tx_queue(dev, i)->qdisc; + if (qdisc) { + spin_lock_bh(qdisc_lock(qdisc)); + qdisc_reset(qdisc); + spin_unlock_bh(qdisc_lock(qdisc)); + } + } + } +} +#endif /* CONFIG_NETDEVICES_MULTIQUEUE */ +#endif /* !(RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,0)) */ +#endif /* HAVE_TX_MQ */ + +ssize_t _kc_simple_write_to_buffer(void *to, size_t available, loff_t * ppos, + const void __user * from, size_t count) +{ + loff_t pos = *ppos; + size_t res; + + if (pos < 0) + return -EINVAL; + if (pos >= available || !count) + return 0; + if (count > available - pos) + count = available - pos; + res = copy_from_user(to + pos, from, count); + if (res == count) + return -EFAULT; + count -= res; + *ppos = pos + count; + return count; +} + +#endif /* defined(DRIVER_IXGBE) || defined(DRIVER_IGB) || defined(DRIVER_I40E) */ +#endif /* < 2.6.35 */ + /*****************************************************************************/ -#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) ) -#endif /* < 2.6.30 */ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36) ) +static const u32 _kc_flags_dup_features = + (ETH_FLAG_LRO | ETH_FLAG_NTUPLE | ETH_FLAG_RXHASH); + +u32 _kc_ethtool_op_get_flags(struct net_device *dev) +{ + return dev->features & _kc_flags_dup_features; +} + +int _kc_ethtool_op_set_flags(struct net_device *dev, u32 data, u32 supported) +{ + if (data & ~supported) + return -EINVAL; + + dev->features = ((dev->features & ~_kc_flags_dup_features) | + (data & _kc_flags_dup_features)); + return 0; +} +#endif /* < 2.6.36 */ + +/******************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39) ) +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(6,0))) + +#endif /* !(RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(6,0)) */ +#endif /* < 2.6.39 */ + +/******************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0) ) +void _kc_skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, + int off, int size, unsigned int truesize) +{ + skb_fill_page_desc(skb, i, page, off, size); + skb->len += size; + skb->data_len += size; + skb->truesize += truesize; +} + +#ifndef __VMKLNX__ +#if !(SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(11,3,0)) +int _kc_simple_open(struct inode *inode, struct file *file) +{ + if (inode->i_private) + file->private_data = inode->i_private; + + return 0; +} +#endif /* SLE_VERSION < 11,3,0 */ +#endif /* !__VMKLNX__ */ +#endif /* < 3.4.0 */ + +/******************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) ) +static inline int __kc_pcie_cap_version(struct pci_dev *dev) +{ + int pos; + u16 reg16; + + pos = pci_find_capability(dev, PCI_CAP_ID_EXP); + if (!pos) + return 0; + pci_read_config_word(dev, pos + PCI_EXP_FLAGS, ®16); + return reg16 & PCI_EXP_FLAGS_VERS; +} + +static inline bool __kc_pcie_cap_has_devctl(const struct pci_dev __always_unused + *dev) +{ + return true; +} + +static inline bool __kc_pcie_cap_has_lnkctl(struct pci_dev *dev) +{ + int type = pci_pcie_type(dev); + + return __kc_pcie_cap_version(dev) > 1 || + type == PCI_EXP_TYPE_ROOT_PORT || + type == PCI_EXP_TYPE_ENDPOINT || type == PCI_EXP_TYPE_LEG_END; +} + +static inline bool __kc_pcie_cap_has_sltctl(struct pci_dev *dev) +{ + int type = pci_pcie_type(dev); + int pos; + u16 pcie_flags_reg; + + pos = pci_find_capability(dev, PCI_CAP_ID_EXP); + if (!pos) + return false; + pci_read_config_word(dev, pos + PCI_EXP_FLAGS, &pcie_flags_reg); + + return __kc_pcie_cap_version(dev) > 1 || + type == PCI_EXP_TYPE_ROOT_PORT || + (type == PCI_EXP_TYPE_DOWNSTREAM && + pcie_flags_reg & PCI_EXP_FLAGS_SLOT); +} + +static inline bool __kc_pcie_cap_has_rtctl(struct pci_dev *dev) +{ + int type = pci_pcie_type(dev); + + return __kc_pcie_cap_version(dev) > 1 || + type == PCI_EXP_TYPE_ROOT_PORT || type == PCI_EXP_TYPE_RC_EC; +} + +static bool __kc_pcie_capability_reg_implemented(struct pci_dev *dev, int pos) +{ + if (!pci_is_pcie(dev)) + return false; + + switch (pos) { + case PCI_EXP_FLAGS_TYPE: + return true; + case PCI_EXP_DEVCAP: + case PCI_EXP_DEVCTL: + case PCI_EXP_DEVSTA: + return __kc_pcie_cap_has_devctl(dev); + case PCI_EXP_LNKCAP: + case PCI_EXP_LNKCTL: + case PCI_EXP_LNKSTA: + return __kc_pcie_cap_has_lnkctl(dev); + case PCI_EXP_SLTCAP: + case PCI_EXP_SLTCTL: + case PCI_EXP_SLTSTA: + return __kc_pcie_cap_has_sltctl(dev); + case PCI_EXP_RTCTL: + case PCI_EXP_RTCAP: + case PCI_EXP_RTSTA: + return __kc_pcie_cap_has_rtctl(dev); + case PCI_EXP_DEVCAP2: + case PCI_EXP_DEVCTL2: + case PCI_EXP_LNKCAP2: + case PCI_EXP_LNKCTL2: + case PCI_EXP_LNKSTA2: + return __kc_pcie_cap_version(dev) > 1; + default: + return false; + } +} + +/* + * Note that these accessor functions are only for the "PCI Express + * Capability" (see PCIe spec r3.0, sec 7.8). They do not apply to the + * other "PCI Express Extended Capabilities" (AER, VC, ACS, MFVC, etc.) + */ +int __kc_pcie_capability_read_word(struct pci_dev *dev, int pos, u16 *val) +{ + int ret; + + *val = 0; + if (pos & 1) + return -EINVAL; + + if (__kc_pcie_capability_reg_implemented(dev, pos)) { + ret = pci_read_config_word(dev, pci_pcie_cap(dev) + pos, val); + /* + * Reset *val to 0 if pci_read_config_word() fails, it may + * have been written as 0xFFFF if hardware error happens + * during pci_read_config_word(). + */ + if (ret) + *val = 0; + return ret; + } + + /* + * For Functions that do not implement the Slot Capabilities, + * Slot Status, and Slot Control registers, these spaces must + * be hardwired to 0b, with the exception of the Presence Detect + * State bit in the Slot Status register of Downstream Ports, + * which must be hardwired to 1b. (PCIe Base Spec 3.0, sec 7.8) + */ + if (pci_is_pcie(dev) && pos == PCI_EXP_SLTSTA && + pci_pcie_type(dev) == PCI_EXP_TYPE_DOWNSTREAM) { + *val = PCI_EXP_SLTSTA_PDS; + } + + return 0; +} + +int __kc_pcie_capability_write_word(struct pci_dev *dev, int pos, u16 val) +{ + if (pos & 1) + return -EINVAL; + + if (!__kc_pcie_capability_reg_implemented(dev, pos)) + return 0; + + return pci_write_config_word(dev, pci_pcie_cap(dev) + pos, val); +} + +int __kc_pcie_capability_clear_and_set_word(struct pci_dev *dev, int pos, + u16 clear, u16 set) +{ + int ret; + u16 val; + + ret = __kc_pcie_capability_read_word(dev, pos, &val); + if (!ret) { + val &= ~clear; + val |= set; + ret = __kc_pcie_capability_write_word(dev, pos, val); + } + + return ret; +} + +int __kc_pcie_capability_clear_word(struct pci_dev *dev, int pos, u16 clear) +{ + return __kc_pcie_capability_clear_and_set_word(dev, pos, clear, 0); +} +#endif /* < 3.7.0 */ + +/******************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0) ) +#endif /* 3.9.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) ) +#endif /* 3.10.0 */ + +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0) ) +int __kc_dma_set_mask_and_coherent(struct device *dev, u64 mask) +{ + int err = dma_set_mask(dev, mask); + + if (!err) + /* coherent mask for the same size will always succeed if + * dma_set_mask does. However we store the error anyways, due + * to some kernels which use gcc's warn_unused_result on their + * definition of dma_set_coherent_mask. + */ + err = dma_set_coherent_mask(dev, mask); + return err; +} +#endif /* 3.13.0 */ + +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) ) +int __kc_pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries, + int minvec, int maxvec) +{ + int nvec = maxvec; + int rc; + + if (maxvec < minvec) + return -ERANGE; + + do { + rc = pci_enable_msix(dev, entries, nvec); + if (rc < 0) { + return rc; + } else if (rc > 0) { + if (rc < minvec) + return -ENOSPC; + nvec = rc; + } + } while (rc); + + return nvec; +} +#endif /* 3.14.0 */ + +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0) ) +#ifdef HAVE_SET_RX_MODE +#ifdef NETDEV_HW_ADDR_T_UNICAST +int __kc_hw_addr_sync_dev(struct netdev_hw_addr_list *list, + struct net_device *dev, + int (*sync) (struct net_device *, + const unsigned char *), + int (*unsync) (struct net_device *, + const unsigned char *)) +{ + struct netdev_hw_addr *ha, *tmp; + int err; + + /* first go through and flush out any stale entries */ + list_for_each_entry_safe(ha, tmp, &list->list, list) { +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) ) + if (!ha->synced || ha->refcount != 1) +#else + if (!ha->sync_cnt || ha->refcount != 1) +#endif + continue; + + if (unsync && unsync(dev, ha->addr)) + continue; + + list_del_rcu(&ha->list); + kfree_rcu(ha, rcu_head); + list->count--; + } + + /* go through and sync new entries to the list */ + list_for_each_entry_safe(ha, tmp, &list->list, list) { +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) ) + if (ha->synced) +#else + if (ha->sync_cnt) +#endif + continue; + + err = sync(dev, ha->addr); + if (err) + return err; +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) ) + ha->synced = true; +#else + ha->sync_cnt++; +#endif + ha->refcount++; + } + + return 0; +} + +void __kc_hw_addr_unsync_dev(struct netdev_hw_addr_list *list, + struct net_device *dev, + int (*unsync) (struct net_device *, + const unsigned char *)) +{ + struct netdev_hw_addr *ha, *tmp; + + list_for_each_entry_safe(ha, tmp, &list->list, list) { +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) ) + if (!ha->synced) +#else + if (!ha->sync_cnt) +#endif + continue; + + if (unsync && unsync(dev, ha->addr)) + continue; + +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) ) + ha->synced = false; +#else + ha->sync_cnt--; +#endif + if (--ha->refcount) + continue; + + list_del_rcu(&ha->list); + kfree_rcu(ha, rcu_head); + list->count--; + } +} + +#endif /* NETDEV_HW_ADDR_T_UNICAST */ +#ifndef NETDEV_HW_ADDR_T_MULTICAST +int __kc_dev_addr_sync_dev(struct dev_addr_list **list, int *count, + struct net_device *dev, + int (*sync) (struct net_device *, + const unsigned char *), + int (*unsync) (struct net_device *, + const unsigned char *)) +{ + struct dev_addr_list *da, **next = list; + int err; + + /* first go through and flush out any stale entries */ + while ((da = *next) != NULL) { + if (da->da_synced && da->da_users == 1) { + if (!unsync || !unsync(dev, da->da_addr)) { + *next = da->next; + kfree(da); + (*count)--; + continue; + } + } + next = &da->next; + } + + /* go through and sync new entries to the list */ + for (da = *list; da != NULL; da = da->next) { + if (da->da_synced) + continue; + + err = sync(dev, da->da_addr); + if (err) + return err; + + da->da_synced++; + da->da_users++; + } + + return 0; +} + +void __kc_dev_addr_unsync_dev(struct dev_addr_list **list, int *count, + struct net_device *dev, + int (*unsync) (struct net_device *, + const unsigned char *)) +{ + struct dev_addr_list *da; + + while ((da = *list) != NULL) { + if (da->da_synced) { + if (!unsync || !unsync(dev, da->da_addr)) { + da->da_synced--; + if (--da->da_users == 0) { + *list = da->next; + kfree(da); + (*count)--; + continue; + } + } + } + list = &da->next; + } +} +#endif /* NETDEV_HW_ADDR_T_MULTICAST */ +#endif /* HAVE_SET_RX_MODE */ +#endif /* 3.16.0 */ diff --git a/vmkdrivers/src_9/drivers/net/e1000e/kcompat.h b/vmkdrivers/src_9/drivers/net/e1000e/kcompat.h index 1a733f1bec08ca5a06c61adb99c2d819b909469f..f25ed98b16ce6581b90b97d57ce4cc2aa404f611 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/kcompat.h +++ b/vmkdrivers/src_9/drivers/net/e1000e/kcompat.h @@ -1,35 +1,33 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ #ifndef _KCOMPAT_H_ #define _KCOMPAT_H_ +#ifndef LINUX_VERSION_CODE #include +#else +#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) +#endif #include #include #include @@ -47,7 +45,10 @@ #include #include #include +#include #include +#include +#include /* NAPI enable/disable flags here */ #define NAPI @@ -67,6 +68,17 @@ #undef CONFIG_E1000E_NAPI #endif /* NAPI */ +/* Dynamic LTR and deeper C-State support disable/enable */ +#if defined (E1000E_NO_DYN_LTR) +#undef DYNAMIC_LTR_SUPPORT +#else +#define DYNAMIC_LTR_SUPPORT +#endif /* E1000E_NO_DYN_LTR */ + +/* packet split disable/enable */ +#ifdef DISABLE_PACKET_SPLIT +#endif /* DISABLE_PACKET_SPLIT */ + /* MSI compatibility code for all kernels and drivers */ #ifdef DISABLE_PCI_MSI #undef CONFIG_PCI_MSI @@ -74,8 +86,8 @@ #ifndef CONFIG_PCI_MSI #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8) ) struct msix_entry { - u16 vector; /* kernel uses to write allocated vector */ - u16 entry; /* driver uses to specify entry, OS writes */ + u16 vector; /* kernel uses to write allocated vector */ + u16 entry; /* driver uses to specify entry, OS writes */ }; #endif #undef pci_enable_msi @@ -112,12 +124,17 @@ struct msix_entry { #else #define _Bool char #endif -#ifndef bool -#define bool _Bool -#define true 1 -#define false 0 -#endif +#undef __always_unused +#define __always_unused __attribute__((__unused__)) + +#undef __maybe_unused +#define __maybe_unused __attribute__((__unused__)) + +/* kernels less than 2.4.14 don't have this */ +#ifndef ETH_P_8021Q +#define ETH_P_8021Q 0x8100 +#endif #ifndef module_param #define module_param(v,t,p) MODULE_PARM(v, "i"); @@ -135,9 +152,16 @@ struct msix_entry { #define PCI_CAP_ID_EXP 0x10 #endif +#ifndef uninitialized_var +#define uninitialized_var(x) x = x +#endif + #ifndef PCIE_LINK_STATE_L0S #define PCIE_LINK_STATE_L0S 1 #endif +#ifndef PCIE_LINK_STATE_L1 +#define PCIE_LINK_STATE_L1 2 +#endif #ifndef mmiowb #ifdef CONFIG_IA64 @@ -151,7 +175,7 @@ struct msix_entry { #define SET_NETDEV_DEV(net, pdev) #endif -#ifndef HAVE_FREE_NETDEV +#if !defined(HAVE_FREE_NETDEV) && ( LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0) ) #define free_netdev(x) kfree(x) #endif @@ -159,24 +183,6 @@ struct msix_entry { #define CONFIG_NET_POLL_CONTROLLER #endif -#ifndef NETDEV_TX_OK -#define NETDEV_TX_OK 0 -#endif - -#ifndef NETDEV_TX_BUSY -#define NETDEV_TX_BUSY 1 -#endif - -#ifndef NETDEV_TX_LOCKED -#define NETDEV_TX_LOCKED -1 -#endif - -#ifdef CONFIG_PCI_IOV -#define VMDQ_P(p) ((p) + adapter->num_vfs) -#else -#define VMDQ_P(p) (p) -#endif - #ifndef SKB_DATAREF_SHIFT /* if we do not have the infrastructure to detect if skb_header is cloned just return false in all cases */ @@ -198,6 +204,14 @@ struct msix_entry { #define NETIF_F_SCTP_CSUM 0 #endif +#ifndef NETIF_F_LRO +#define NETIF_F_LRO (1 << 15) +#endif + +#ifndef NETIF_F_NTUPLE +#define NETIF_F_NTUPLE (1 << 27) +#endif + #ifndef IPPROTO_SCTP #define IPPROTO_SCTP 132 #endif @@ -211,33 +225,8 @@ struct msix_entry { #define __read_mostly #endif -#ifndef HAVE_NETIF_MSG -#define HAVE_NETIF_MSG 1 -enum { - NETIF_MSG_DRV = 0x0001, - NETIF_MSG_PROBE = 0x0002, - NETIF_MSG_LINK = 0x0004, - NETIF_MSG_TIMER = 0x0008, - NETIF_MSG_IFDOWN = 0x0010, - NETIF_MSG_IFUP = 0x0020, - NETIF_MSG_RX_ERR = 0x0040, - NETIF_MSG_TX_ERR = 0x0080, - NETIF_MSG_TX_QUEUED = 0x0100, - NETIF_MSG_INTR = 0x0200, - NETIF_MSG_TX_DONE = 0x0400, - NETIF_MSG_RX_STATUS = 0x0800, - NETIF_MSG_PKTDATA = 0x1000, - NETIF_MSG_HW = 0x2000, - NETIF_MSG_WOL = 0x4000, -}; - -#else -#define NETIF_MSG_HW 0x2000 -#define NETIF_MSG_WOL 0x4000 -#endif /* HAVE_NETIF_MSG */ - #ifndef MII_RESV1 -#define MII_RESV1 0x17 /* Reserved... */ +#define MII_RESV1 0x17 /* Reserved... */ #endif #ifndef unlikely @@ -255,15 +244,18 @@ enum { .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID #endif +#ifndef node_online +#define node_online(node) ((node) == 0) +#endif + #ifndef num_online_cpus #define num_online_cpus() smp_num_cpus #endif -#ifndef numa_node_id -#define numa_node_id() 0 +#ifndef cpu_online +#define cpu_online(cpuid) test_bit((cpuid), &cpu_online_map) #endif - #ifndef _LINUX_RANDOM_H #include #endif @@ -287,10 +279,77 @@ enum { #define VLAN_ETH_FRAME_LEN 1518 #endif +#if !defined(IXGBE_DCA) && !defined(IGB_DCA) +#define dca_get_tag(b) 0 +#define dca_add_requester(a) -1 +#define dca_remove_requester(b) do { } while(0) +#define DCA_PROVIDER_ADD 0x0001 +#define DCA_PROVIDER_REMOVE 0x0002 +#endif + #ifndef DCA_GET_TAG_TWO_ARGS #define dca3_get_tag(a,b) dca_get_tag(b) #endif +#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS +#if defined(__i386__) || defined(__x86_64__) +#define CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS +#endif +#endif + +/* taken from 2.6.24 definition in linux/kernel.h */ +#ifndef IS_ALIGNED +#define IS_ALIGNED(x,a) (((x) % ((typeof(x))(a))) == 0) +#endif + +#ifdef IS_ENABLED +#undef IS_ENABLED +#undef __ARG_PLACEHOLDER_1 +#undef config_enabled +#undef _config_enabled +#undef __config_enabled +#undef ___config_enabled +#endif + +#define __ARG_PLACEHOLDER_1 0, +#define config_enabled(cfg) _config_enabled(cfg) +#define _config_enabled(value) __config_enabled(__ARG_PLACEHOLDER_##value) +#define __config_enabled(arg1_or_junk) ___config_enabled(arg1_or_junk 1, 0) +#define ___config_enabled(__ignored, val, ...) val + +#define IS_ENABLED(option) \ + (config_enabled(option) || config_enabled(option##_MODULE)) + +#if !defined(NETIF_F_HW_VLAN_TX) && !defined(NETIF_F_HW_VLAN_CTAG_TX) +struct _kc_vlan_ethhdr { + unsigned char h_dest[ETH_ALEN]; + unsigned char h_source[ETH_ALEN]; + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + __be16 h_vlan_encapsulated_proto; +}; +#define vlan_ethhdr _kc_vlan_ethhdr +struct _kc_vlan_hdr { + __be16 h_vlan_TCI; + __be16 h_vlan_encapsulated_proto; +}; +#define vlan_hdr _kc_vlan_hdr +#define vlan_tx_tag_present(_skb) 0 +#define vlan_tx_tag_get(_skb) 0 +#endif /* NETIF_F_HW_VLAN_TX && NETIF_F_HW_VLAN_CTAG_TX */ + +#ifndef VLAN_PRIO_SHIFT +#define VLAN_PRIO_SHIFT 13 +#endif + +#ifndef __GFP_COLD +#define __GFP_COLD 0 +#endif + +#ifndef __GFP_COMP +#define __GFP_COMP 0 +#endif + /*****************************************************************************/ /* Installations with ethtool version without eeprom, adapter id, or statistics * support */ @@ -331,13 +390,13 @@ struct ethtool_stats { #ifndef ETHTOOL_GSTRINGS #define ETHTOOL_GSTRINGS 0x1b enum ethtool_stringset { - ETH_SS_TEST = 0, + ETH_SS_TEST = 0, ETH_SS_STATS, }; struct ethtool_gstrings { - u32 cmd; /* ETHTOOL_GSTRINGS */ - u32 string_set; /* string set id e.c. ETH_SS_TEST, etc*/ - u32 len; /* number of strings in the string set */ + u32 cmd; /* ETHTOOL_GSTRINGS */ + u32 string_set; /* string set id e.c. ETH_SS_TEST, etc */ + u32 len; /* number of strings in the string set */ u8 data[0]; }; #endif /* ETHTOOL_GSTRINGS */ @@ -345,8 +404,8 @@ struct ethtool_gstrings { #ifndef ETHTOOL_TEST #define ETHTOOL_TEST 0x1a enum ethtool_test_flags { - ETH_TEST_FL_OFFLINE = (1 << 0), - ETH_TEST_FL_FAILED = (1 << 1), + ETH_TEST_FL_OFFLINE = (1 << 0), + ETH_TEST_FL_FAILED = (1 << 1), }; struct ethtool_test { u32 cmd; @@ -378,48 +437,60 @@ struct ethtool_value { #define ETHTOOL_GLINK 0xa #endif /* ETHTOOL_GLINK */ +#ifndef ETHTOOL_GWOL +#define ETHTOOL_GWOL 0x5 +#define ETHTOOL_SWOL 0x6 +#define SOPASS_MAX 6 +struct ethtool_wolinfo { + u32 cmd; + u32 supported; + u32 wolopts; + u8 sopass[SOPASS_MAX]; /* SecureOn(tm) password */ +}; +#endif /* ETHTOOL_GWOL */ + #ifndef ETHTOOL_GREGS -#define ETHTOOL_GREGS 0x00000004 /* Get NIC registers */ +#define ETHTOOL_GREGS 0x00000004 /* Get NIC registers */ #define ethtool_regs _kc_ethtool_regs /* for passing big chunks of data */ struct _kc_ethtool_regs { u32 cmd; - u32 version; /* driver-specific, indicates different chips/revs */ - u32 len; /* bytes */ + u32 version; /* driver-specific, indicates different chips/revs */ + u32 len; /* bytes */ u8 data[0]; }; #endif /* ETHTOOL_GREGS */ #ifndef ETHTOOL_GMSGLVL -#define ETHTOOL_GMSGLVL 0x00000007 /* Get driver message level */ +#define ETHTOOL_GMSGLVL 0x00000007 /* Get driver message level */ #endif #ifndef ETHTOOL_SMSGLVL -#define ETHTOOL_SMSGLVL 0x00000008 /* Set driver msg level, priv. */ +#define ETHTOOL_SMSGLVL 0x00000008 /* Set driver msg level, priv. */ #endif #ifndef ETHTOOL_NWAY_RST -#define ETHTOOL_NWAY_RST 0x00000009 /* Restart autonegotiation, priv */ +#define ETHTOOL_NWAY_RST 0x00000009 /* Restart autonegotiation, priv */ #endif #ifndef ETHTOOL_GLINK -#define ETHTOOL_GLINK 0x0000000a /* Get link status */ +#define ETHTOOL_GLINK 0x0000000a /* Get link status */ #endif #ifndef ETHTOOL_GEEPROM -#define ETHTOOL_GEEPROM 0x0000000b /* Get EEPROM data */ +#define ETHTOOL_GEEPROM 0x0000000b /* Get EEPROM data */ #endif #ifndef ETHTOOL_SEEPROM -#define ETHTOOL_SEEPROM 0x0000000c /* Set EEPROM data */ +#define ETHTOOL_SEEPROM 0x0000000c /* Set EEPROM data */ #endif #ifndef ETHTOOL_GCOALESCE -#define ETHTOOL_GCOALESCE 0x0000000e /* Get coalesce config */ +#define ETHTOOL_GCOALESCE 0x0000000e /* Get coalesce config */ /* for configuring coalescing parameters of chip */ #define ethtool_coalesce _kc_ethtool_coalesce struct _kc_ethtool_coalesce { - u32 cmd; /* ETHTOOL_{G,S}COALESCE */ + u32 cmd; /* ETHTOOL_{G,S}COALESCE */ /* How many usecs to delay an RX interrupt after * a packet arrives. If 0, only rx_max_coalesced_frames * is used. */ - u32 rx_coalesce_usecs; + u32 rx_coalesce_usecs; /* How many packets to delay an RX interrupt after * a packet arrives. If 0, only rx_coalesce_usecs is @@ -427,21 +498,21 @@ struct _kc_ethtool_coalesce { * to zero as this would cause RX interrupts to never be * generated. */ - u32 rx_max_coalesced_frames; + u32 rx_max_coalesced_frames; /* Same as above two parameters, except that these values * apply while an IRQ is being serviced by the host. Not * all cards support this feature and the values are ignored * in that case. */ - u32 rx_coalesce_usecs_irq; - u32 rx_max_coalesced_frames_irq; + u32 rx_coalesce_usecs_irq; + u32 rx_max_coalesced_frames_irq; /* How many usecs to delay a TX interrupt after * a packet is sent. If 0, only tx_max_coalesced_frames * is used. */ - u32 tx_coalesce_usecs; + u32 tx_coalesce_usecs; /* How many packets to delay a TX interrupt after * a packet is sent. If 0, only tx_coalesce_usecs is @@ -449,22 +520,22 @@ struct _kc_ethtool_coalesce { * to zero as this would cause TX interrupts to never be * generated. */ - u32 tx_max_coalesced_frames; + u32 tx_max_coalesced_frames; /* Same as above two parameters, except that these values * apply while an IRQ is being serviced by the host. Not * all cards support this feature and the values are ignored * in that case. */ - u32 tx_coalesce_usecs_irq; - u32 tx_max_coalesced_frames_irq; + u32 tx_coalesce_usecs_irq; + u32 tx_max_coalesced_frames_irq; /* How many usecs to delay in-memory statistics * block updates. Some drivers do not have an in-memory * statistic block, and in such cases this value is ignored. * This value must not be zero. */ - u32 stats_block_coalesce_usecs; + u32 stats_block_coalesce_usecs; /* Adaptive RX/TX coalescing is an algorithm implemented by * some drivers to improve latency under low packet rates and @@ -473,18 +544,18 @@ struct _kc_ethtool_coalesce { * not implemented by the driver causes these values to be * silently ignored. */ - u32 use_adaptive_rx_coalesce; - u32 use_adaptive_tx_coalesce; + u32 use_adaptive_rx_coalesce; + u32 use_adaptive_tx_coalesce; /* When the packet rate (measured in packets per second) * is below pkt_rate_low, the {rx,tx}_*_low parameters are * used. */ - u32 pkt_rate_low; - u32 rx_coalesce_usecs_low; - u32 rx_max_coalesced_frames_low; - u32 tx_coalesce_usecs_low; - u32 tx_max_coalesced_frames_low; + u32 pkt_rate_low; + u32 rx_coalesce_usecs_low; + u32 rx_max_coalesced_frames_low; + u32 tx_coalesce_usecs_low; + u32 tx_max_coalesced_frames_low; /* When the packet rate is below pkt_rate_high but above * pkt_rate_low (both measured in packets per second) the @@ -495,57 +566,57 @@ struct _kc_ethtool_coalesce { * is above pkt_rate_high, the {rx,tx}_*_high parameters are * used. */ - u32 pkt_rate_high; - u32 rx_coalesce_usecs_high; - u32 rx_max_coalesced_frames_high; - u32 tx_coalesce_usecs_high; - u32 tx_max_coalesced_frames_high; + u32 pkt_rate_high; + u32 rx_coalesce_usecs_high; + u32 rx_max_coalesced_frames_high; + u32 tx_coalesce_usecs_high; + u32 tx_max_coalesced_frames_high; /* How often to do adaptive coalescing packet rate sampling, * measured in seconds. Must not be zero. */ - u32 rate_sample_interval; + u32 rate_sample_interval; }; #endif /* ETHTOOL_GCOALESCE */ #ifndef ETHTOOL_SCOALESCE -#define ETHTOOL_SCOALESCE 0x0000000f /* Set coalesce config. */ +#define ETHTOOL_SCOALESCE 0x0000000f /* Set coalesce config. */ #endif #ifndef ETHTOOL_GRINGPARAM -#define ETHTOOL_GRINGPARAM 0x00000010 /* Get ring parameters */ +#define ETHTOOL_GRINGPARAM 0x00000010 /* Get ring parameters */ /* for configuring RX/TX ring parameters */ #define ethtool_ringparam _kc_ethtool_ringparam struct _kc_ethtool_ringparam { - u32 cmd; /* ETHTOOL_{G,S}RINGPARAM */ + u32 cmd; /* ETHTOOL_{G,S}RINGPARAM */ /* Read only attributes. These indicate the maximum number * of pending RX/TX ring entries the driver will allow the * user to set. */ - u32 rx_max_pending; - u32 rx_mini_max_pending; - u32 rx_jumbo_max_pending; - u32 tx_max_pending; + u32 rx_max_pending; + u32 rx_mini_max_pending; + u32 rx_jumbo_max_pending; + u32 tx_max_pending; /* Values changeable by the user. The valid values are * in the range 1 to the "*_max_pending" counterpart above. */ - u32 rx_pending; - u32 rx_mini_pending; - u32 rx_jumbo_pending; - u32 tx_pending; + u32 rx_pending; + u32 rx_mini_pending; + u32 rx_jumbo_pending; + u32 tx_pending; }; #endif /* ETHTOOL_GRINGPARAM */ #ifndef ETHTOOL_SRINGPARAM -#define ETHTOOL_SRINGPARAM 0x00000011 /* Set ring parameters, priv. */ +#define ETHTOOL_SRINGPARAM 0x00000011 /* Set ring parameters, priv. */ #endif #ifndef ETHTOOL_GPAUSEPARAM -#define ETHTOOL_GPAUSEPARAM 0x00000012 /* Get pause parameters */ +#define ETHTOOL_GPAUSEPARAM 0x00000012 /* Get pause parameters */ /* for configuring link flow control parameters */ #define ethtool_pauseparam _kc_ethtool_pauseparam struct _kc_ethtool_pauseparam { - u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */ + u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */ /* If the link is being auto-negotiated (via ethtool_cmd.autoneg * being true) the user may set 'autoneg' here non-zero to have the @@ -557,58 +628,119 @@ struct _kc_ethtool_pauseparam { * then {rx,tx}_pause force the driver to use/not-use pause * flow control. */ - u32 autoneg; - u32 rx_pause; - u32 tx_pause; + u32 autoneg; + u32 rx_pause; + u32 tx_pause; }; #endif /* ETHTOOL_GPAUSEPARAM */ #ifndef ETHTOOL_SPAUSEPARAM -#define ETHTOOL_SPAUSEPARAM 0x00000013 /* Set pause parameters. */ +#define ETHTOOL_SPAUSEPARAM 0x00000013 /* Set pause parameters. */ #endif #ifndef ETHTOOL_GRXCSUM -#define ETHTOOL_GRXCSUM 0x00000014 /* Get RX hw csum enable (ethtool_value) */ +#define ETHTOOL_GRXCSUM 0x00000014 /* Get RX hw csum enable (ethtool_value) */ #endif #ifndef ETHTOOL_SRXCSUM -#define ETHTOOL_SRXCSUM 0x00000015 /* Set RX hw csum enable (ethtool_value) */ +#define ETHTOOL_SRXCSUM 0x00000015 /* Set RX hw csum enable (ethtool_value) */ #endif #ifndef ETHTOOL_GTXCSUM -#define ETHTOOL_GTXCSUM 0x00000016 /* Get TX hw csum enable (ethtool_value) */ +#define ETHTOOL_GTXCSUM 0x00000016 /* Get TX hw csum enable (ethtool_value) */ #endif #ifndef ETHTOOL_STXCSUM -#define ETHTOOL_STXCSUM 0x00000017 /* Set TX hw csum enable (ethtool_value) */ +#define ETHTOOL_STXCSUM 0x00000017 /* Set TX hw csum enable (ethtool_value) */ #endif #ifndef ETHTOOL_GSG -#define ETHTOOL_GSG 0x00000018 /* Get scatter-gather enable - * (ethtool_value) */ +#define ETHTOOL_GSG 0x00000018 /* Get scatter-gather enable + * (ethtool_value) */ #endif #ifndef ETHTOOL_SSG -#define ETHTOOL_SSG 0x00000019 /* Set scatter-gather enable - * (ethtool_value). */ +#define ETHTOOL_SSG 0x00000019 /* Set scatter-gather enable + * (ethtool_value). */ #endif #ifndef ETHTOOL_TEST -#define ETHTOOL_TEST 0x0000001a /* execute NIC self-test, priv. */ +#define ETHTOOL_TEST 0x0000001a /* execute NIC self-test, priv. */ #endif #ifndef ETHTOOL_GSTRINGS -#define ETHTOOL_GSTRINGS 0x0000001b /* get specified string set */ +#define ETHTOOL_GSTRINGS 0x0000001b /* get specified string set */ #endif #ifndef ETHTOOL_PHYS_ID -#define ETHTOOL_PHYS_ID 0x0000001c /* identify the NIC */ +#define ETHTOOL_PHYS_ID 0x0000001c /* identify the NIC */ #endif #ifndef ETHTOOL_GSTATS -#define ETHTOOL_GSTATS 0x0000001d /* get NIC-specific statistics */ +#define ETHTOOL_GSTATS 0x0000001d /* get NIC-specific statistics */ #endif #ifndef ETHTOOL_GTSO -#define ETHTOOL_GTSO 0x0000001e /* Get TSO enable (ethtool_value) */ +#define ETHTOOL_GTSO 0x0000001e /* Get TSO enable (ethtool_value) */ #endif #ifndef ETHTOOL_STSO -#define ETHTOOL_STSO 0x0000001f /* Set TSO enable (ethtool_value) */ +#define ETHTOOL_STSO 0x0000001f /* Set TSO enable (ethtool_value) */ #endif #ifndef ETHTOOL_BUSINFO_LEN #define ETHTOOL_BUSINFO_LEN 32 #endif +#ifndef RHEL_RELEASE_VERSION +#define RHEL_RELEASE_VERSION(a,b) (((a) << 8) + (b)) +#endif +#ifndef AX_RELEASE_VERSION +#define AX_RELEASE_VERSION(a,b) (((a) << 8) + (b)) +#endif + +#ifndef AX_RELEASE_CODE +#define AX_RELEASE_CODE 0 +#endif + +#if (AX_RELEASE_CODE && AX_RELEASE_CODE == AX_RELEASE_VERSION(3,0)) +#define RHEL_RELEASE_CODE RHEL_RELEASE_VERSION(5,0) +#elif (AX_RELEASE_CODE && AX_RELEASE_CODE == AX_RELEASE_VERSION(3,1)) +#define RHEL_RELEASE_CODE RHEL_RELEASE_VERSION(5,1) +#elif (AX_RELEASE_CODE && AX_RELEASE_CODE == AX_RELEASE_VERSION(3,2)) +#define RHEL_RELEASE_CODE RHEL_RELEASE_VERSION(5,3) +#endif + +#ifndef RHEL_RELEASE_CODE +/* NOTE: RHEL_RELEASE_* introduced in RHEL4.5 */ +#define RHEL_RELEASE_CODE 0 +#endif + +/* SuSE version macro is the same as Linux kernel version */ +#ifndef SLE_VERSION +#define SLE_VERSION(a,b,c) KERNEL_VERSION(a,b,c) +#endif +#ifdef CONFIG_SUSE_KERNEL +#if ( LINUX_VERSION_CODE == KERNEL_VERSION(2,6,27) ) +/* SLES11 GA is 2.6.27 based */ +#define SLE_VERSION_CODE SLE_VERSION(11,0,0) +#elif ( LINUX_VERSION_CODE == KERNEL_VERSION(2,6,32) ) +/* SLES11 SP1 is 2.6.32 based */ +#define SLE_VERSION_CODE SLE_VERSION(11,1,0) +#elif ( LINUX_VERSION_CODE == KERNEL_VERSION(3,0,13) ) +/* SLES11 SP2 is 3.0.13 based */ +#define SLE_VERSION_CODE SLE_VERSION(11,2,0) +#elif ((LINUX_VERSION_CODE == KERNEL_VERSION(3,0,76))) +/* SLES11 SP3 is 3.0.76 based */ +#define SLE_VERSION_CODE SLE_VERSION(11,3,0) +/* new SLES kernels must be added here with >= based on kernel + * the idea is to order from newest to oldest and just catch all + * of them using the >= + */ +#elif ((LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))) +/* SLES12 GA is 3.12.y based */ +#define SLE_VERSION_CODE SLE_VERSION(12,0,0) +#endif /* LINUX_VERSION_CODE == KERNEL_VERSION(x,y,z) */ +#endif /* CONFIG_SUSE_KERNEL */ +#ifndef SLE_VERSION_CODE +#define SLE_VERSION_CODE 0 +#endif /* SLE_VERSION_CODE */ + +#ifdef __KLOCWORK__ +#ifdef ARRAY_SIZE +#undef ARRAY_SIZE +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +#endif +#endif /* __KLOCWORK__ */ + /*****************************************************************************/ /* 2.4.3 => 2.4.0 */ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,3) ) @@ -636,7 +768,7 @@ extern void _kc_pci_release_regions(struct pci_dev *pdev); #ifndef alloc_etherdev #define alloc_etherdev _kc_alloc_etherdev -extern struct net_device * _kc_alloc_etherdev(int sizeof_priv); +extern struct net_device *_kc_alloc_etherdev(int sizeof_priv); #endif #ifndef is_valid_ether_addr @@ -662,33 +794,33 @@ extern int _kc_is_valid_ether_addr(u8 *addr); /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,5) ) /* Generic MII registers. */ -#define MII_BMCR 0x00 /* Basic mode control register */ -#define MII_BMSR 0x01 /* Basic mode status register */ -#define MII_PHYSID1 0x02 /* PHYS ID 1 */ -#define MII_PHYSID2 0x03 /* PHYS ID 2 */ -#define MII_ADVERTISE 0x04 /* Advertisement control reg */ -#define MII_LPA 0x05 /* Link partner ability reg */ -#define MII_EXPANSION 0x06 /* Expansion register */ +#define MII_BMCR 0x00 /* Basic mode control register */ +#define MII_BMSR 0x01 /* Basic mode status register */ +#define MII_PHYSID1 0x02 /* PHYS ID 1 */ +#define MII_PHYSID2 0x03 /* PHYS ID 2 */ +#define MII_ADVERTISE 0x04 /* Advertisement control reg */ +#define MII_LPA 0x05 /* Link partner ability reg */ +#define MII_EXPANSION 0x06 /* Expansion register */ /* Basic mode control register. */ -#define BMCR_FULLDPLX 0x0100 /* Full duplex */ -#define BMCR_ANENABLE 0x1000 /* Enable auto negotiation */ +#define BMCR_FULLDPLX 0x0100 /* Full duplex */ +#define BMCR_ANENABLE 0x1000 /* Enable auto negotiation */ /* Basic mode status register. */ -#define BMSR_ERCAP 0x0001 /* Ext-reg capability */ -#define BMSR_ANEGCAPABLE 0x0008 /* Able to do auto-negotiation */ -#define BMSR_10HALF 0x0800 /* Can do 10mbps, half-duplex */ -#define BMSR_10FULL 0x1000 /* Can do 10mbps, full-duplex */ -#define BMSR_100HALF 0x2000 /* Can do 100mbps, half-duplex */ -#define BMSR_100FULL 0x4000 /* Can do 100mbps, full-duplex */ +#define BMSR_ERCAP 0x0001 /* Ext-reg capability */ +#define BMSR_ANEGCAPABLE 0x0008 /* Able to do auto-negotiation */ +#define BMSR_10HALF 0x0800 /* Can do 10mbps, half-duplex */ +#define BMSR_10FULL 0x1000 /* Can do 10mbps, full-duplex */ +#define BMSR_100HALF 0x2000 /* Can do 100mbps, half-duplex */ +#define BMSR_100FULL 0x4000 /* Can do 100mbps, full-duplex */ /* Advertisement control register. */ -#define ADVERTISE_CSMA 0x0001 /* Only selector supported */ -#define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */ -#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */ -#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */ -#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */ +#define ADVERTISE_CSMA 0x0001 /* Only selector supported */ +#define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */ +#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */ +#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */ +#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */ #define ADVERTISE_ALL (ADVERTISE_10HALF | ADVERTISE_10FULL | \ ADVERTISE_100HALF | ADVERTISE_100FULL) /* Expansion register for auto-negotiation. */ -#define EXPANSION_ENABLENPAGE 0x0004 /* This enables npage words */ +#define EXPANSION_ENABLENPAGE 0x0004 /* This enables npage words */ #endif /*****************************************************************************/ @@ -717,10 +849,8 @@ extern void _kc_pci_disable_device(struct pci_dev *pdev); #ifndef HAVE_PCI_SET_MWI #define pci_set_mwi(X) pci_write_config_word(X, \ - PCI_COMMAND, adapter->hw.bus.pci_cmd_word | \ PCI_COMMAND_INVALIDATE); #define pci_clear_mwi(X) pci_write_config_word(X, \ - PCI_COMMAND, adapter->hw.bus.pci_cmd_word & \ ~PCI_COMMAND_INVALIDATE); #endif @@ -732,7 +862,7 @@ extern void _kc_pci_disable_device(struct pci_dev *pdev); /* MODULE API */ #ifndef MODULE_LICENSE - #define MODULE_LICENSE(X) +#define MODULE_LICENSE(X) #endif /**************************************/ @@ -768,28 +898,85 @@ extern void _kc_pci_disable_device(struct pci_dev *pdev); pos = n, n = pos->next) #endif +#ifndef ____cacheline_aligned_in_smp +#ifdef CONFIG_SMP +#define ____cacheline_aligned_in_smp ____cacheline_aligned +#else +#define ____cacheline_aligned_in_smp +#endif /* CONFIG_SMP */ +#endif + +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,8) ) +extern int _kc_snprintf(char *buf, size_t size, const char *fmt, ...); +#define snprintf(buf, size, fmt, args...) _kc_snprintf(buf, size, fmt, ##args) +extern int _kc_vsnprintf(char *buf, size_t size, const char *fmt, va_list args); +#define vsnprintf(buf, size, fmt, args) _kc_vsnprintf(buf, size, fmt, args) +#else /* 2.4.8 => 2.4.9 */ +extern int snprintf(char *buf, size_t size, const char *fmt, ...); +extern int vsnprintf(char *buf, size_t size, const char *fmt, va_list args); +#endif #endif /* 2.4.10 -> 2.4.6 */ +/*****************************************************************************/ +/* 2.4.12 => 2.4.10 */ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,12) ) +#ifndef HAVE_NETIF_MSG +#define HAVE_NETIF_MSG 1 +enum { + NETIF_MSG_DRV = 0x0001, + NETIF_MSG_PROBE = 0x0002, + NETIF_MSG_LINK = 0x0004, + NETIF_MSG_TIMER = 0x0008, + NETIF_MSG_IFDOWN = 0x0010, + NETIF_MSG_IFUP = 0x0020, + NETIF_MSG_RX_ERR = 0x0040, + NETIF_MSG_TX_ERR = 0x0080, + NETIF_MSG_TX_QUEUED = 0x0100, + NETIF_MSG_INTR = 0x0200, + NETIF_MSG_TX_DONE = 0x0400, + NETIF_MSG_RX_STATUS = 0x0800, + NETIF_MSG_PKTDATA = 0x1000, + NETIF_MSG_HW = 0x2000, + NETIF_MSG_WOL = 0x4000, +}; + +#define netif_msg_drv(p) ((p)->msg_enable & NETIF_MSG_DRV) +#define netif_msg_probe(p) ((p)->msg_enable & NETIF_MSG_PROBE) +#define netif_msg_link(p) ((p)->msg_enable & NETIF_MSG_LINK) +#define netif_msg_timer(p) ((p)->msg_enable & NETIF_MSG_TIMER) +#define netif_msg_ifdown(p) ((p)->msg_enable & NETIF_MSG_IFDOWN) +#define netif_msg_ifup(p) ((p)->msg_enable & NETIF_MSG_IFUP) +#define netif_msg_rx_err(p) ((p)->msg_enable & NETIF_MSG_RX_ERR) +#define netif_msg_tx_err(p) ((p)->msg_enable & NETIF_MSG_TX_ERR) +#define netif_msg_tx_queued(p) ((p)->msg_enable & NETIF_MSG_TX_QUEUED) +#define netif_msg_intr(p) ((p)->msg_enable & NETIF_MSG_INTR) +#define netif_msg_tx_done(p) ((p)->msg_enable & NETIF_MSG_TX_DONE) +#define netif_msg_rx_status(p) ((p)->msg_enable & NETIF_MSG_RX_STATUS) +#define netif_msg_pktdata(p) ((p)->msg_enable & NETIF_MSG_PKTDATA) +#endif /* !HAVE_NETIF_MSG */ +#endif /* 2.4.12 => 2.4.10 */ /*****************************************************************************/ -/* 2.4.13 => 2.4.10 */ +/* 2.4.13 => 2.4.12 */ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,13) ) /**************************************/ /* PCI DMA MAPPING */ #ifndef virt_to_page - #define virt_to_page(v) (mem_map + (virt_to_phys(v) >> PAGE_SHIFT)) +#define virt_to_page(v) (mem_map + (virt_to_phys(v) >> PAGE_SHIFT)) #endif #ifndef pci_map_page #define pci_map_page _kc_pci_map_page -extern u64 _kc_pci_map_page(struct pci_dev *dev, struct page *page, unsigned long offset, size_t size, int direction); +extern u64 _kc_pci_map_page(struct pci_dev *dev, struct page *page, + unsigned long offset, size_t size, int direction); #endif #ifndef pci_unmap_page #define pci_unmap_page _kc_pci_unmap_page -extern void _kc_pci_unmap_page(struct pci_dev *dev, u64 dma_addr, size_t size, int direction); +extern void _kc_pci_unmap_page(struct pci_dev *dev, u64 dma_addr, size_t size, + int direction); #endif /* pci_set_dma_mask takes dma_addr_t, which is only 32-bits prior to 2.4.13 */ @@ -813,18 +1000,56 @@ struct vlan_ethhdr { unsigned short h_vlan_TCI; unsigned short h_vlan_encapsulated_proto; }; -#endif /* 2.4.13 => 2.4.10 */ +#endif /* 2.4.13 => 2.4.12 */ /*****************************************************************************/ /* 2.4.17 => 2.4.12 */ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,17) ) #ifndef __devexit_p - #define __devexit_p(x) &(x) +#define __devexit_p(x) &(x) #endif #endif /* 2.4.17 => 2.4.13 */ +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,18) ) +#define NETIF_MSG_HW 0x2000 +#define NETIF_MSG_WOL 0x4000 + +#ifndef netif_msg_hw +#define netif_msg_hw(p) ((p)->msg_enable & NETIF_MSG_HW) +#endif +#ifndef netif_msg_wol +#define netif_msg_wol(p) ((p)->msg_enable & NETIF_MSG_WOL) +#endif +#endif /* 2.4.18 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,19) ) || \ + (( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ) && !defined(CONFIG_CRC32)) +#undef ether_crc_le +#define ether_crc_le(length, data) _kc_ether_crc_le(length, data) +static inline unsigned _kc_ether_crc_le(int length, unsigned char *data) +{ + unsigned int crc = 0xffffffff; /* Initial value. */ + while (--length >= 0) { + unsigned char current_octet = *data++; + int bit; + for (bit = 8; --bit >= 0; current_octet >>= 1) { + if ((crc ^ current_octet) & 1) { + crc >>= 1; + crc ^= 0xedb88320U; + } else + crc >>= 1; + } + } + return crc; +} +#else /* < 2.4.19 || (>=2.6.0 && !defined(CONFIG_CRC32)) */ +#include +#endif /* < 2.4.19 || (>=2.6.0 && !defined(CONFIG_CRC32)) */ + /*****************************************************************************/ /* 2.4.20 => 2.4.19 */ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20) ) @@ -837,17 +1062,17 @@ struct vlan_ethhdr { #endif /* 2.4.20 => 2.4.19 */ -/*****************************************************************************/ -/* < 2.4.21 */ -#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,21) ) -#define skb_pad(x,y) _kc_skb_pad(x, y) -struct sk_buff * _kc_skb_pad(struct sk_buff *skb, int pad); -#endif /* < 2.4.21 */ - /*****************************************************************************/ /* 2.4.22 => 2.4.17 */ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,22) ) #define pci_name(x) ((x)->slot_name) + +#ifndef SUPPORTED_10000baseT_Full +#define SUPPORTED_10000baseT_Full (1 << 12) +#endif +#ifndef ADVERTISED_10000baseT_Full +#define ADVERTISED_10000baseT_Full (1 << 12) +#endif #endif /*****************************************************************************/ @@ -884,6 +1109,8 @@ static inline void _kc_netif_tx_disable(struct net_device *dev) spin_unlock_bh(&dev->xmit_lock); } #endif +#else /* 2.4.23 => 2.4.22 */ +#define HAVE_SCTP #endif /* 2.4.23 => 2.4.22 */ /*****************************************************************************/ @@ -894,6 +1121,11 @@ static inline void _kc_netif_tx_disable(struct net_device *dev) #define ETHTOOL_OPS_COMPAT #endif /* 2.6.4 => 2.6.0 */ +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,27) ) +#define __user +#endif /* < 2.4.27 */ + /*****************************************************************************/ /* 2.5.71 => 2.4.x */ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,5,71) ) @@ -909,15 +1141,16 @@ static inline void _kc_netif_tx_disable(struct net_device *dev) #ifndef netif_msg_init #define netif_msg_init _kc_netif_msg_init -static inline u32 _kc_netif_msg_init(int debug_value, int default_msg_enable_bits) +static inline u32 _kc_netif_msg_init(int debug_value, + int default_msg_enable_bits) { /* use default */ if (debug_value < 0 || debug_value >= (sizeof(u32) * 8)) return default_msg_enable_bits; - if (debug_value == 0) /* no output */ + if (debug_value == 0) /* no output */ return 0; /* set low N bits */ - return (1 << debug_value) -1; + return (1 << debug_value) - 1; } #endif @@ -932,15 +1165,80 @@ static inline u32 _kc_netif_msg_init(int debug_value, int default_msg_enable_bit /*****************************************************************************/ /* <= 2.5.0 */ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) ) +#include #undef pci_register_driver #define pci_register_driver pci_module_init -#define dev_err(__unused_dev, format, arg...) \ - printk(KERN_ERR "%s: " format, pci_name(adapter->pdev) , ## arg) -#define dev_info(__unused_dev, format, arg...) \ - printk(KERN_INFO "%s: " format, pci_name(pdev) , ## arg) -#define dev_warn(__unused_dev, format, arg...) \ - printk(KERN_WARNING "%s: " format, pci_name(pdev) , ## arg) +/* + * Most of the dma compat code is copied/modifed from the 2.4.37 + * /include/linux/libata-compat.h header file + */ +/* These definitions mirror those in pci.h, so they can be used + * interchangeably with their PCI_ counterparts */ +enum dma_data_direction { + DMA_BIDIRECTIONAL = 0, + DMA_TO_DEVICE = 1, + DMA_FROM_DEVICE = 2, + DMA_NONE = 3, +}; + +struct device { + struct pci_dev pdev; +}; + +static inline struct pci_dev *to_pci_dev(struct device *dev) +{ + return (struct pci_dev *)dev; +} + +static inline struct device *pci_dev_to_dev(struct pci_dev *pdev) +{ + return (struct device *)pdev; +} + +#define pdev_printk(lvl, pdev, fmt, args...) \ + printk("%s %s: " fmt, lvl, pci_name(pdev), ## args) +#define dev_err(dev, fmt, args...) \ + pdev_printk(KERN_ERR, to_pci_dev(dev), fmt, ## args) +#define dev_info(dev, fmt, args...) \ + pdev_printk(KERN_INFO, to_pci_dev(dev), fmt, ## args) +#define dev_warn(dev, fmt, args...) \ + pdev_printk(KERN_WARNING, to_pci_dev(dev), fmt, ## args) +#define dev_notice(dev, fmt, args...) \ + pdev_printk(KERN_NOTICE, to_pci_dev(dev), fmt, ## args) +#define dev_dbg(dev, fmt, args...) \ + pdev_printk(KERN_DEBUG, to_pci_dev(dev), fmt, ## args) + +/* NOTE: dangerous! we ignore the 'gfp' argument */ +#define dma_alloc_coherent(dev,sz,dma,gfp) \ + pci_alloc_consistent(to_pci_dev(dev),(sz),(dma)) +#define dma_free_coherent(dev,sz,addr,dma_addr) \ + pci_free_consistent(to_pci_dev(dev),(sz),(addr),(dma_addr)) + +#define dma_map_page(dev,a,b,c,d) \ + pci_map_page(to_pci_dev(dev),(a),(b),(c),(d)) +#define dma_unmap_page(dev,a,b,c) \ + pci_unmap_page(to_pci_dev(dev),(a),(b),(c)) + +#define dma_map_single(dev,a,b,c) \ + pci_map_single(to_pci_dev(dev),(a),(b),(c)) +#define dma_unmap_single(dev,a,b,c) \ + pci_unmap_single(to_pci_dev(dev),(a),(b),(c)) + +#define dma_map_sg(dev, sg, nents, dir) \ + pci_map_sg(to_pci_dev(dev), (sg), (nents), (dir) +#define dma_unmap_sg(dev, sg, nents, dir) \ + pci_unmap_sg(to_pci_dev(dev), (sg), (nents), (dir) + +#define dma_sync_single(dev,a,b,c) \ + pci_dma_sync_single(to_pci_dev(dev),(a),(b),(c)) + +/* for range just sync everything, that's all the pci API can do */ +#define dma_sync_single_range(dev,addr,off,sz,dir) \ + pci_dma_sync_single(to_pci_dev(dev),(addr),(off)+(sz),(dir)) + +#define dma_set_mask(dev,mask) \ + pci_set_dma_mask(to_pci_dev(dev),(mask)) /* hlist_* code - double linked lists */ struct hlist_head { @@ -957,7 +1255,7 @@ static inline void __hlist_del(struct hlist_node *n) struct hlist_node **pprev = n->pprev; *pprev = next; if (next) - next->pprev = pprev; + next->pprev = pprev; } static inline void hlist_del(struct hlist_node *n) @@ -981,6 +1279,7 @@ static inline int hlist_empty(const struct hlist_head *h) { return !h->first; } + #define HLIST_HEAD_INIT { .first = NULL } #define HLIST_HEAD(name) struct hlist_head name = { .first = NULL } #define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL) @@ -989,43 +1288,21 @@ static inline void INIT_HLIST_NODE(struct hlist_node *h) h->next = NULL; h->pprev = NULL; } -#define hlist_entry(ptr, type, member) container_of(ptr,type,member) - -#define hlist_for_each_entry(tpos, pos, head, member) \ - for (pos = (head)->first; \ - pos && ({ prefetch(pos->next); 1;}) && \ - ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ - pos = pos->next) - -#define hlist_for_each_entry_safe(tpos, pos, n, head, member) \ - for (pos = (head)->first; \ - pos && ({ n = pos->next; 1; }) && \ - ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ - pos = n) - -/* we ignore GFP here */ -#define dma_alloc_coherent(dv, sz, dma, gfp) \ - pci_alloc_consistent(pdev, (sz), (dma)) -#define dma_free_coherent(dv, sz, addr, dma_addr) \ - pci_free_consistent(pdev, (sz), (addr), (dma_addr)) #ifndef might_sleep #define might_sleep() #endif - +#else +static inline struct device *pci_dev_to_dev(struct pci_dev *pdev) +{ + return &pdev->dev; +} #endif /* <= 2.5.0 */ /*****************************************************************************/ /* 2.5.28 => 2.4.23 */ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,5,28) ) -static inline void _kc_synchronize_irq(void) -{ - synchronize_irq(); -} -#undef synchronize_irq -#define synchronize_irq(X) _kc_synchronize_irq() - #include #define work_struct tq_struct #undef INIT_WORK @@ -1041,6 +1318,14 @@ static inline void _kc_synchronize_irq(void) /*****************************************************************************/ /* 2.6.0 => 2.5.28 */ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ) +#ifndef read_barrier_depends +#define read_barrier_depends() rmb() +#endif + +#undef get_cpu +#define get_cpu() smp_processor_id() +#undef put_cpu +#define put_cpu() do { } while(0) #define MODULE_INFO(version, _version) #ifndef CONFIG_E1000_DISABLE_PACKET_SPLIT #define CONFIG_E1000_DISABLE_PACKET_SPLIT 1 @@ -1049,14 +1334,15 @@ static inline void _kc_synchronize_irq(void) #define CONFIG_IGB_DISABLE_PACKET_SPLIT 1 #endif -#define pci_set_consistent_dma_mask(dev,mask) 1 +#define dma_set_coherent_mask(dev,mask) 1 #undef dev_put #define dev_put(dev) __dev_put(dev) #ifndef skb_fill_page_desc #define skb_fill_page_desc _kc_skb_fill_page_desc -extern void _kc_skb_fill_page_desc(struct sk_buff *skb, int i, struct page *page, int off, int size); +extern void _kc_skb_fill_page_desc(struct sk_buff *skb, int i, + struct page *page, int off, int size); #endif #undef ALIGN @@ -1066,6 +1352,11 @@ extern void _kc_skb_fill_page_desc(struct sk_buff *skb, int i, struct page *page #define page_count(p) atomic_read(&(p)->count) #endif +#ifdef MAX_NUMNODES +#undef MAX_NUMNODES +#endif +#define MAX_NUMNODES 1 + /* find_first_bit and find_next bit are not defined for most * 2.4 kernels (except for the redhat 2.4.21 kernels */ @@ -1074,11 +1365,70 @@ extern void _kc_skb_fill_page_desc(struct sk_buff *skb, int i, struct page *page #undef find_next_bit #define find_next_bit _kc_find_next_bit extern unsigned long _kc_find_next_bit(const unsigned long *addr, - unsigned long size, - unsigned long offset); + unsigned long size, + unsigned long offset); #define find_first_bit(addr, size) find_next_bit((addr), (size), 0) +#ifndef netdev_name +static inline const char *_kc_netdev_name(const struct net_device *dev) +{ + if (strchr(dev->name, '%')) + return "(unregistered net_device)"; + return dev->name; +} + +#define netdev_name(netdev) _kc_netdev_name(netdev) +#endif /* netdev_name */ + +#ifndef strlcpy +#define strlcpy _kc_strlcpy +extern size_t _kc_strlcpy(char *dest, const char *src, size_t size); +#endif /* strlcpy */ + +#ifndef do_div +#if BITS_PER_LONG == 64 +# define do_div(n,base) ({ \ + uint32_t __base = (base); \ + uint32_t __rem; \ + __rem = ((uint64_t)(n)) % __base; \ + (n) = ((uint64_t)(n)) / __base; \ + __rem; \ + }) +#elif BITS_PER_LONG == 32 +extern uint32_t _kc__div64_32(uint64_t * dividend, uint32_t divisor); +# define do_div(n,base) ({ \ + uint32_t __base = (base); \ + uint32_t __rem; \ + if (likely(((n) >> 32) == 0)) { \ + __rem = (uint32_t)(n) % __base; \ + (n) = (uint32_t)(n) / __base; \ + } else \ + __rem = _kc__div64_32(&(n), __base); \ + __rem; \ + }) +#else /* BITS_PER_LONG == ?? */ +# error do_div() does not yet support the C64 +#endif /* BITS_PER_LONG */ +#endif /* do_div */ + +#ifndef NSEC_PER_SEC +#define NSEC_PER_SEC 1000000000L +#endif + +#undef HAVE_I2C_SUPPORT +#else /* 2.6.0 */ + #endif /* 2.6.0 => 2.5.28 */ +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,3) ) +#define dma_pool pci_pool +#define dma_pool_destroy pci_pool_destroy +#define dma_pool_alloc pci_pool_alloc +#define dma_pool_free pci_pool_free + +#define dma_pool_create(name,dev,size,align,allocation) \ + pci_pool_create((name),to_pci_dev(dev),(size),(align),(allocation)) +#endif /* < 2.6.3 */ /*****************************************************************************/ /* 2.6.4 => 2.6.0 */ @@ -1089,10 +1439,25 @@ extern unsigned long _kc_find_next_bit(const unsigned long *addr, /*****************************************************************************/ /* 2.6.5 => 2.6.0 */ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5) ) -#define pci_dma_sync_single_for_cpu pci_dma_sync_single -#define pci_dma_sync_single_for_device pci_dma_sync_single_for_cpu +#define dma_sync_single_for_cpu dma_sync_single +#define dma_sync_single_for_device dma_sync_single +#define dma_sync_single_range_for_cpu dma_sync_single_range +#define dma_sync_single_range_for_device dma_sync_single_range +#ifndef pci_dma_mapping_error +#define pci_dma_mapping_error _kc_pci_dma_mapping_error +static inline int _kc_pci_dma_mapping_error(dma_addr_t dma_addr) +{ + return dma_addr == 0; +} +#endif #endif /* 2.6.5 => 2.6.0 */ +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,4) ) +extern int _kc_scnprintf(char *buf, size_t size, const char *fmt, ...); +#define scnprintf(buf, size, fmt, args...) _kc_scnprintf(buf, size, fmt, ##args) +#endif /* < 2.6.4 */ + /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6) ) /* taken from 2.6 include/linux/bitmap.h */ @@ -1100,21 +1465,15 @@ extern unsigned long _kc_find_next_bit(const unsigned long *addr, #define bitmap_zero _kc_bitmap_zero static inline void _kc_bitmap_zero(unsigned long *dst, int nbits) { - if (nbits <= BITS_PER_LONG) - *dst = 0UL; - else { - int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long); - memset(dst, 0, len); - } + if (nbits <= BITS_PER_LONG) + *dst = 0UL; + else { + int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long); + memset(dst, 0, len); + } } -#define random_ether_addr _kc_random_ether_addr -static inline void _kc_random_ether_addr(u8 *addr) -{ - get_random_bytes(addr, ETH_ALEN); - addr[0] &= 0xfe; /* clear multicast */ - addr[0] |= 0x02; /* set local assignment */ -} -#define page_to_nid() 0 + +#define page_to_nid(x) 0 #endif /* < 2.6.6 */ @@ -1124,8 +1483,12 @@ static inline void _kc_random_ether_addr(u8 *addr) #define if_mii _kc_if_mii static inline struct mii_ioctl_data *_kc_if_mii(struct ifreq *rq) { - return (struct mii_ioctl_data *) &rq->ifr_ifru; + return (struct mii_ioctl_data *)&rq->ifr_ifru; } + +#ifndef __force +#define __force +#endif #endif /* < 2.6.7 */ /*****************************************************************************/ @@ -1136,6 +1499,16 @@ static inline struct mii_ioctl_data *_kc_if_mii(struct ifreq *rq) #ifndef PCI_EXP_DEVCTL_CERE #define PCI_EXP_DEVCTL_CERE 0x0001 #endif +#define PCI_EXP_FLAGS 2 /* Capabilities register */ +#define PCI_EXP_FLAGS_VERS 0x000f /* Capability version */ +#define PCI_EXP_FLAGS_TYPE 0x00f0 /* Device/Port type */ +#define PCI_EXP_TYPE_ENDPOINT 0x0 /* Express Endpoint */ +#define PCI_EXP_TYPE_LEG_END 0x1 /* Legacy Endpoint */ +#define PCI_EXP_TYPE_ROOT_PORT 0x4 /* Root Port */ +#define PCI_EXP_TYPE_DOWNSTREAM 0x6 /* Downstream Port */ +#define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */ +#define PCI_EXP_DEVCAP 4 /* Device capabilities */ +#define PCI_EXP_DEVSTA 10 /* Device Status */ #define msleep(x) do { set_current_state(TASK_UNINTERRUPTIBLE); \ schedule_timeout((x * HZ)/1000 + 2); \ } while (0) @@ -1157,11 +1530,12 @@ static inline unsigned int _kc_jiffies_to_msecs(const unsigned long j) #if HZ <= MSEC_PER_SEC && !(MSEC_PER_SEC % HZ) return (MSEC_PER_SEC / HZ) * j; #elif HZ > MSEC_PER_SEC && !(HZ % MSEC_PER_SEC) - return (j + (HZ / MSEC_PER_SEC) - 1)/(HZ / MSEC_PER_SEC); + return (j + (HZ / MSEC_PER_SEC) - 1) / (HZ / MSEC_PER_SEC); #else return (j * MSEC_PER_SEC) / HZ; #endif } + static inline unsigned long _kc_msecs_to_jiffies(const unsigned int m) { if (m > _kc_jiffies_to_msecs(MAX_JIFFY_OFFSET)) @@ -1188,7 +1562,7 @@ static inline unsigned long _kc_msleep_interruptible(unsigned int msecs) } /* Basic mode control register. */ -#define BMCR_SPEED1000 0x0040 /* MSB of Speed (1000) */ +#define BMCR_SPEED1000 0x0040 /* MSB of Speed (1000) */ #ifndef __le16 #define __le16 u16 @@ -1202,16 +1576,59 @@ static inline unsigned long _kc_msleep_interruptible(unsigned int msecs) #ifndef __be16 #define __be16 u16 #endif - -#ifdef pci_dma_mapping_error -#undef pci_dma_mapping_error +#ifndef __be32 +#define __be32 u32 #endif -#define pci_dma_mapping_error _kc_pci_dma_mapping_error -static inline int _kc_pci_dma_mapping_error(struct pci_dev *pdev, - dma_addr_t dma_addr) +#ifndef __be64 +#define __be64 u64 +#endif + +static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb) { - return dma_addr == 0; + return (struct vlan_ethhdr *)skb->mac.raw; +} + +/* Wake-On-Lan options. */ +#define WAKE_PHY (1 << 0) +#define WAKE_UCAST (1 << 1) +#define WAKE_MCAST (1 << 2) +#define WAKE_BCAST (1 << 3) +#define WAKE_ARP (1 << 4) +#define WAKE_MAGIC (1 << 5) +#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */ + +#define skb_header_pointer _kc_skb_header_pointer +static inline void *_kc_skb_header_pointer(const struct sk_buff *skb, + int offset, int len, void *buffer) +{ + int hlen = skb_headlen(skb); + + if (hlen - offset >= len) + return skb->data + offset; + +#ifdef MAX_SKB_FRAGS + if (skb_copy_bits(skb, offset, buffer, len) < 0) + return NULL; + + return buffer; +#else + return NULL; +#endif + +#ifndef NETDEV_TX_OK +#define NETDEV_TX_OK 0 +#endif +#ifndef NETDEV_TX_BUSY +#define NETDEV_TX_BUSY 1 +#endif +#ifndef NETDEV_TX_LOCKED +#define NETDEV_TX_LOCKED -1 +#endif } + +#ifndef __bitwise +#define __bitwise +#endif #endif /* < 2.6.9 */ /*****************************************************************************/ @@ -1225,6 +1642,16 @@ static inline int _kc_pci_dma_mapping_error(struct pci_dev *pdev, module_param_call(name, param_array_set, param_array_get, \ &__param_arr_##name, perm) #endif /* module_param_array_named */ +/* + * num_online is broken for all < 2.6.10 kernels. This is needed to support + * Node module parameter of ixgbe. + */ +#undef num_online_nodes +#define num_online_nodes(n) 1 +extern DECLARE_BITMAP(_kcompat_node_online_map, MAX_NUMNODES); +#undef node_online_map +#define node_online_map _kcompat_node_online_map +#define pci_get_class pci_find_class #endif /* < 2.6.10 */ /*****************************************************************************/ @@ -1256,11 +1683,12 @@ static inline unsigned int _kc_jiffies_to_usecs(const unsigned long j) #if HZ <= KC_USEC_PER_SEC && !(KC_USEC_PER_SEC % HZ) return (KC_USEC_PER_SEC / HZ) * j; #elif HZ > KC_USEC_PER_SEC && !(HZ % KC_USEC_PER_SEC) - return (j + (HZ / KC_USEC_PER_SEC) - 1)/(HZ / KC_USEC_PER_SEC); + return (j + (HZ / KC_USEC_PER_SEC) - 1) / (HZ / KC_USEC_PER_SEC); #else return (j * KC_USEC_PER_SEC) / HZ; #endif } + static inline unsigned long _kc_usecs_to_jiffies(const unsigned int m) { if (m > _kc_jiffies_to_usecs(MAX_JIFFY_OFFSET)) @@ -1273,6 +1701,15 @@ static inline unsigned long _kc_usecs_to_jiffies(const unsigned int m) return (m * HZ + KC_USEC_PER_SEC - 1) / KC_USEC_PER_SEC; #endif } + +#define PCI_EXP_LNKCAP 12 /* Link Capabilities */ +#define PCI_EXP_LNKSTA 18 /* Link Status */ +#define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ +#define PCI_EXP_SLTCTL 24 /* Slot Control */ +#define PCI_EXP_SLTSTA 26 /* Slot Status */ +#define PCI_EXP_RTCTL 28 /* Root Control */ +#define PCI_EXP_RTCAP 30 /* Root Capabilities */ +#define PCI_EXP_RTSTA 32 /* Root Status */ #endif /* < 2.6.11 */ /*****************************************************************************/ @@ -1281,15 +1718,45 @@ static inline unsigned long _kc_usecs_to_jiffies(const unsigned int m) #define USE_REBOOT_NOTIFIER /* Generic MII registers. */ -#define MII_CTRL1000 0x09 /* 1000BASE-T control */ -#define MII_STAT1000 0x0a /* 1000BASE-T status */ +#define MII_CTRL1000 0x09 /* 1000BASE-T control */ +#define MII_STAT1000 0x0a /* 1000BASE-T status */ /* Advertisement control register. */ -#define ADVERTISE_PAUSE_CAP 0x0400 /* Try for pause */ -#define ADVERTISE_PAUSE_ASYM 0x0800 /* Try for asymmetric pause */ +#define ADVERTISE_PAUSE_CAP 0x0400 /* Try for pause */ +#define ADVERTISE_PAUSE_ASYM 0x0800 /* Try for asymmetric pause */ +/* Link partner ability register. */ +#define LPA_PAUSE_CAP 0x0400 /* Can pause */ +#define LPA_PAUSE_ASYM 0x0800 /* Can pause asymetrically */ /* 1000BASE-T Control register */ -#define ADVERTISE_1000FULL 0x0200 /* Advertise 1000BASE-T full duplex */ +#define ADVERTISE_1000FULL 0x0200 /* Advertise 1000BASE-T full duplex */ +#define ADVERTISE_1000HALF 0x0100 /* Advertise 1000BASE-T half duplex */ +/* 1000BASE-T Status register */ +#define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */ +#define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */ + +#ifndef is_zero_ether_addr +#define is_zero_ether_addr _kc_is_zero_ether_addr +static inline int _kc_is_zero_ether_addr(const u8 *addr) +{ + return !(addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]); +} +#endif /* is_zero_ether_addr */ +#ifndef is_multicast_ether_addr +#define is_multicast_ether_addr _kc_is_multicast_ether_addr +static inline int _kc_is_multicast_ether_addr(const u8 *addr) +{ + return addr[0] & 0x01; +} +#endif /* is_multicast_ether_addr */ #endif /* < 2.6.12 */ +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) ) +#ifndef kstrdup +#define kstrdup _kc_kstrdup +extern char *_kc_kstrdup(const char *s, unsigned int gfp); +#endif +#endif /* < 2.6.13 */ + /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) ) #define pm_message_t u32 @@ -1305,10 +1772,42 @@ extern void *_kc_kzalloc(size_t size, int flags); /* Extended status register. */ #define ESTATUS_1000_TFULL 0x2000 /* Can do 1000BT Full */ #define ESTATUS_1000_THALF 0x1000 /* Can do 1000BT Half */ + +#define SUPPORTED_Pause (1 << 13) +#define SUPPORTED_Asym_Pause (1 << 14) +#define ADVERTISED_Pause (1 << 13) +#define ADVERTISED_Asym_Pause (1 << 14) + +#if (!(RHEL_RELEASE_CODE && \ + (RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(4,3)) && \ + (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(5,0)))) +#if ((LINUX_VERSION_CODE == KERNEL_VERSION(2,6,9)) && !defined(gfp_t)) +#define gfp_t unsigned +#else +typedef unsigned gfp_t; +#endif +#endif /* !RHEL4.3->RHEL5.0 */ + +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,9) ) +#ifdef CONFIG_X86_64 +#define dma_sync_single_range_for_cpu(dev, addr, off, sz, dir) \ + dma_sync_single_for_cpu((dev), (addr), (off) + (sz), (dir)) +#define dma_sync_single_range_for_device(dev, addr, off, sz, dir) \ + dma_sync_single_for_device((dev), (addr), (off) + (sz), (dir)) +#endif +#endif #endif /* < 2.6.14 */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15) ) +#ifndef kfree_rcu +/* this is placed here due to a lack of rcu_barrier in previous kernels */ +#define kfree_rcu(_ptr, _offset) kfree(_ptr) +#endif /* kfree_rcu */ +#ifndef vmalloc_node +#define vmalloc_node(a,b) vmalloc(a) +#endif /* vmalloc_node */ + #define setup_timer(_timer, _function, _data) \ do { \ (_timer)->function = _function; \ @@ -1324,6 +1823,16 @@ do { \ #ifndef device_init_wakeup #define device_init_wakeup(dev,val) do {} while (0) #endif +static inline unsigned _kc_compare_ether_addr(const u8 *addr1, const u8 *addr2) +{ + const u16 *a = (const u16 *)addr1; + const u16 *b = (const u16 *)addr2; + + return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2])) != 0; +} + +#undef compare_ether_addr +#define compare_ether_addr(addr1, addr2) _kc_compare_ether_addr(addr1, addr2) #endif /* < 2.6.15 */ /*****************************************************************************/ @@ -1333,12 +1842,40 @@ do { \ #define mutex_lock(x) down_interruptible(x) #define mutex_unlock(x) up(x) +#ifndef ____cacheline_internodealigned_in_smp +#ifdef CONFIG_SMP +#define ____cacheline_internodealigned_in_smp ____cacheline_aligned_in_smp +#else +#define ____cacheline_internodealigned_in_smp +#endif /* CONFIG_SMP */ +#endif /* ____cacheline_internodealigned_in_smp */ #undef HAVE_PCI_ERS #else /* 2.6.16 and above */ #undef HAVE_PCI_ERS #define HAVE_PCI_ERS +#if ( SLE_VERSION_CODE && SLE_VERSION_CODE == SLE_VERSION(10,4,0) ) +#ifdef device_can_wakeup +#undef device_can_wakeup +#endif /* device_can_wakeup */ +#define device_can_wakeup(dev) 1 +#endif /* SLE_VERSION(10,4,0) */ #endif /* < 2.6.16 */ +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17) ) +#ifndef dev_notice +#define dev_notice(dev, fmt, args...) \ + dev_printk(KERN_NOTICE, dev, fmt, ## args) +#endif + +#ifndef first_online_node +#define first_online_node 0 +#endif +#ifndef NET_SKB_PAD +#define NET_SKB_PAD 16 +#endif +#endif /* < 2.6.17 */ + /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) ) @@ -1368,12 +1905,6 @@ do { \ #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f)) #endif -#ifndef netdev_alloc_skb -#define netdev_alloc_skb _kc_netdev_alloc_skb -extern struct sk_buff *_kc_netdev_alloc_skb(struct net_device *dev, - unsigned int length); -#endif - #ifndef skb_is_gso #ifdef NETIF_F_TSO #define skb_is_gso _kc_skb_is_gso @@ -1386,33 +1917,77 @@ static inline int _kc_skb_is_gso(const struct sk_buff *skb) #endif #endif +#ifndef resource_size_t +#define resource_size_t unsigned long +#endif + +#ifdef skb_pad +#undef skb_pad +#endif +#define skb_pad(x,y) _kc_skb_pad(x, y) +int _kc_skb_pad(struct sk_buff *skb, int pad); +#ifdef skb_padto +#undef skb_padto +#endif +#define skb_padto(x,y) _kc_skb_padto(x, y) +static inline int _kc_skb_padto(struct sk_buff *skb, unsigned int len) +{ + unsigned int size = skb->len; + if (likely(size >= len)) + return 0; + return _kc_skb_pad(skb, len - size); +} + +#ifndef DECLARE_PCI_UNMAP_ADDR +#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ + dma_addr_t ADDR_NAME +#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \ + u32 LEN_NAME +#define pci_unmap_addr(PTR, ADDR_NAME) \ + ((PTR)->ADDR_NAME) +#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) \ + (((PTR)->ADDR_NAME) = (VAL)) +#define pci_unmap_len(PTR, LEN_NAME) \ + ((PTR)->LEN_NAME) +#define pci_unmap_len_set(PTR, LEN_NAME, VAL) \ + (((PTR)->LEN_NAME) = (VAL)) +#endif /* DECLARE_PCI_UNMAP_ADDR */ #endif /* < 2.6.18 */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) ) +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(5,0))) +#define i_private u.generic_ip +#endif /* >= RHEL 5.0 */ + #ifndef DIV_ROUND_UP #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) #endif -#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) ) -#ifndef RHEL_RELEASE_CODE -#define RHEL_RELEASE_CODE 0 +#ifndef __ALIGN_MASK +#define __ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) #endif -#ifndef RHEL_RELEASE_VERSION -#define RHEL_RELEASE_VERSION(a,b) 0 +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) ) +#ifndef __VMKLNX__ +#if (!((RHEL_RELEASE_CODE && \ + ((RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(4,4) && \ + RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(5,0)) || \ + (RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(5,0)))))) +typedef irqreturn_t(*irq_handler_t) (int, void *, struct pt_regs *); #endif -#ifndef AX_RELEASE_CODE -#define AX_RELEASE_CODE 0 +#else /* !__VMKLNX__ */ +#ifndef vmalloc_node +#define vmalloc_node(a,b) vmalloc(a) +#endif /* vmalloc_node */ + +#ifdef skb_pad +#undef skb_pad #endif -#ifndef AX_RELEASE_VERSION -#define AX_RELEASE_VERSION(a,b) 0 -#endif -#if !defined(__VMKLNX__) -#if (!(( RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(4,4) ) && ( RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(5,0) ) || ( RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(5,0) ) || (AX_RELEASE_CODE > AX_RELEASE_VERSION(3,0)))) -typedef irqreturn_t (*irq_handler_t)(int, void*, struct pt_regs *); -#endif -#endif /* !defined(__VMKLNX__) */ -#if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(6,0)) +#define skb_pad(x,y) _kc_skb_pad(x, y) +extern int _kc_skb_pad(struct sk_buff *skb, int pad); +#endif /* !__VMKLNX__ */ + +#if (RHEL_RELEASE_CODE && RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(6,0)) #undef CONFIG_INET_LRO #undef CONFIG_INET_LRO_MODULE #ifdef IXGBE_FCOE @@ -1420,13 +1995,18 @@ typedef irqreturn_t (*irq_handler_t)(int, void*, struct pt_regs *); #undef CONFIG_FCOE_MODULE #endif /* IXGBE_FCOE */ #endif -typedef irqreturn_t (*new_handler_t)(int, void*); -static inline irqreturn_t _kc_request_irq(unsigned int irq, new_handler_t handler, unsigned long flags, const char *devname, void *dev_id) +typedef irqreturn_t(*new_handler_t) (int, void *); +static inline irqreturn_t _kc_request_irq(unsigned int irq, + new_handler_t handler, + unsigned long flags, + const char *devname, void *dev_id) #else /* 2.4.x */ -typedef void (*irq_handler_t)(int, void*, struct pt_regs *); -typedef void (*new_handler_t)(int, void*); -static inline int _kc_request_irq(unsigned int irq, new_handler_t handler, unsigned long flags, const char *devname, void *dev_id) -#endif /* >= 2.5.x */ +typedef void (*irq_handler_t) (int, void *, struct pt_regs *); +typedef void (*new_handler_t) (int, void *); +static inline int _kc_request_irq(unsigned int irq, new_handler_t handler, + unsigned long flags, const char *devname, + void *dev_id) +#endif /* >= 2.5.x */ { irq_handler_t new_handler = (irq_handler_t) handler; return request_irq(irq, new_handler, flags, devname, dev_id); @@ -1436,11 +2016,13 @@ static inline int _kc_request_irq(unsigned int irq, new_handler_t handler, unsig #define request_irq(irq, handler, flags, devname, dev_id) _kc_request_irq((irq), (handler), (flags), (devname), (dev_id)) #define irq_handler_t new_handler_t -#if defined(__VMKLNX__) + +#ifdef __VMKLNX__ #undef irq_handler_t -#endif /* defined(__VMKLNX__) */ +#endif /* __VMKLNX__ */ /* pci_restore_state and pci_save_state handles MSI/PCIE from 2.6.19 */ +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(5,4))) #define PCIE_CONFIG_SPACE_LEN 256 #define PCI_CONFIG_SPACE_LEN 64 #define PCIE_LINK_STATUS 0x12 @@ -1449,33 +2031,47 @@ static inline int _kc_request_irq(unsigned int irq, new_handler_t handler, unsig size = PCIE_CONFIG_SPACE_LEN; \ } -#if !defined(__VMKLNX__) +#ifndef __VMKLNX__ #undef pci_save_state extern int _kc_pci_save_state(struct pci_dev *); #define pci_save_state(pdev) _kc_pci_save_state(pdev) #undef pci_restore_state extern void _kc_pci_restore_state(struct pci_dev *); #define pci_restore_state(pdev) _kc_pci_restore_state(pdev) + #ifdef HAVE_PCI_ERS #undef free_netdev extern void _kc_free_netdev(struct net_device *); #define free_netdev(netdev) _kc_free_netdev(netdev) #endif -#endif /* !defined(__VMKLNX__) */ -static inline int pci_enable_pcie_error_reporting(struct pci_dev *dev) +#endif /* !__VMKLNX__ */ +#endif /* !(RHEL_RELEASE_CODE >= RHEL 5.4) */ + +static inline int pci_enable_pcie_error_reporting(struct pci_dev __always_unused + *dev) { return 0; } + #define pci_disable_pcie_error_reporting(dev) do {} while (0) #define pci_cleanup_aer_uncorrect_error_status(dev) do {} while (0) + +extern void *_kc_kmemdup(const void *src, size_t len, unsigned gfp); +#define kmemdup(src, len, gfp) _kc_kmemdup(src, len, gfp) +#ifndef bool +#define bool _Bool +#define true 1 +#define false 0 +#endif #else /* 2.6.19 */ #include +#include #endif /* < 2.6.19 */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) ) #if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,28) ) -#if !defined(__VMKLNX__) +#ifndef __VMKLNX__ #undef INIT_WORK #define INIT_WORK(_work, _func) \ do { \ @@ -1485,7 +2081,7 @@ do { \ (_work)->data = _work; \ init_timer(&(_work)->timer); \ } while (0) -#endif /* !defined(__VMKLNX__) */ +#endif /* !__VMKLNX__ */ #endif #ifndef PCI_VDEVICE @@ -1494,25 +2090,78 @@ do { \ PCI_ANY_ID, PCI_ANY_ID, 0, 0 #endif +#ifndef PCI_VENDOR_ID_INTEL +#define PCI_VENDOR_ID_INTEL 0x8086 +#endif + #ifndef round_jiffies #define round_jiffies(x) x #endif #define csum_offset csum +#define HAVE_EARLY_VMALLOC_NODE +#define dev_to_node(dev) -1 +#undef set_dev_node +/* remove compiler warning with b=b, for unused variable */ +#define set_dev_node(a, b) do { (b) = (b); } while(0) + +#ifndef __VMKLNX__ +#if (!(RHEL_RELEASE_CODE && \ + (((RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(4,7)) && \ + (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(5,0))) || \ + (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(5,6)))) && \ + !(SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(10,2,0))) +typedef __u16 __bitwise __sum16; +typedef __u32 __bitwise __wsum; +#endif + +#if (!(RHEL_RELEASE_CODE && \ + (((RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(4,7)) && \ + (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(5,0))) || \ + (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(5,4)))) && \ + !(SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(10,2,0))) +static inline __wsum csum_unfold(__sum16 n) +{ + return (__force __wsum) n; +} +#endif +#endif /* !__VMKLNX__ */ + +#else /* < 2.6.20 */ +#define HAVE_DEVICE_NUMA_NODE #endif /* < 2.6.20 */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21) ) #define to_net_dev(class) container_of(class, struct net_device, class_dev) #define NETDEV_CLASS_DEV +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(5,5))) #define vlan_group_get_device(vg, id) (vg->vlan_devices[id]) -#define vlan_group_set_device(vg, id, dev) if (vg) vg->vlan_devices[id] = dev; +#define vlan_group_set_device(vg, id, dev) \ + do { \ + if (vg) vg->vlan_devices[id] = dev; \ + } while (0) +#endif /* !(RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(5,5)) */ #define pci_channel_offline(pdev) (pdev->error_state && \ pdev->error_state != pci_channel_io_normal) #define pci_request_selected_regions(pdev, bars, name) \ pci_request_regions(pdev, name) #define pci_release_selected_regions(pdev, bars) pci_release_regions(pdev); + +#ifndef __aligned +#define __aligned(x) __attribute__((aligned(x))) +#endif + +extern struct pci_dev *_kc_netdev_to_pdev(struct net_device *netdev); +#define netdev_to_dev(netdev) \ + pci_dev_to_dev(_kc_netdev_to_pdev(netdev)) +#else +static inline struct device *netdev_to_dev(struct net_device *netdev) +{ + return &netdev->dev; +} + #endif /* < 2.6.21 */ /*****************************************************************************/ @@ -1526,8 +2175,18 @@ do { \ #define skb_network_offset(skb) (skb->nh.raw - skb->data) #define skb_network_header(skb) (skb->nh.raw) #define skb_tail_pointer(skb) skb->tail +#define skb_reset_tail_pointer(skb) \ + do { \ + skb->tail = skb->data; \ + } while (0) +#define skb_set_tail_pointer(skb, offset) \ + do { \ + skb->tail = skb->data + offset; \ + } while (0) +#define skb_copy_to_linear_data(skb, from, len) \ + memcpy(skb->data, from, len) #define skb_copy_to_linear_data_offset(skb, offset, from, len) \ - memcpy(skb->data + offset, from, len) + memcpy(skb->data + offset, from, len) #define skb_network_header_len(skb) (skb->h.raw - skb->nh.raw) #define pci_register_driver pci_module_init #define skb_mac_header(skb) skb->mac.raw @@ -1541,7 +2200,10 @@ do { \ #ifndef ETH_FCS_LEN #define ETH_FCS_LEN 4 #endif +#ifndef __VMKLNX__ +/* vmklinux has the built-in cancel_work_sync */ #define cancel_work_sync(x) flush_scheduled_work() +#endif /* !__VMKLNX__*/ #ifndef udp_hdr #define udp_hdr _udp_hdr static inline struct udphdr *_udp_hdr(const struct sk_buff *skb) @@ -1549,6 +2211,35 @@ static inline struct udphdr *_udp_hdr(const struct sk_buff *skb) return (struct udphdr *)skb_transport_header(skb); } #endif + +#ifdef cpu_to_be16 +#undef cpu_to_be16 +#endif +#define cpu_to_be16(x) __constant_htons(x) + +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(5,1))) +enum { + DUMP_PREFIX_NONE, + DUMP_PREFIX_ADDRESS, + DUMP_PREFIX_OFFSET +}; +#endif /* !(RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(5,1)) */ +#ifndef hex_asc +#define hex_asc(x) "0123456789abcdef"[x] +#endif +#include +extern void _kc_print_hex_dump(const char *level, const char *prefix_str, + int prefix_type, int rowsize, int groupsize, + const void *buf, size_t len, bool ascii); +#define print_hex_dump(lvl, s, t, r, g, b, l, a) \ + _kc_print_hex_dump(lvl, s, t, r, g, b, l, a) +#ifndef ADVERTISED_2500baseX_Full +#define ADVERTISED_2500baseX_Full (1 << 15) +#endif +#ifndef SUPPORTED_2500baseX_Full +#define SUPPORTED_2500baseX_Full (1 << 15) +#endif + #else /* 2.6.22 */ #define ETH_TYPE_TRANS_SETS_DEV #define HAVE_NETDEV_STATS_IN_NETDEV @@ -1556,7 +2247,6 @@ static inline struct udphdr *_udp_hdr(const struct sk_buff *skb) /*****************************************************************************/ #if ( LINUX_VERSION_CODE > KERNEL_VERSION(2,6,22) ) -#undef ETHTOOL_GPERMADDR #undef SET_MODULE_OWNER #define SET_MODULE_OWNER(dev) do { } while (0) #endif /* > 2.6.22 */ @@ -1564,17 +2254,52 @@ static inline struct udphdr *_udp_hdr(const struct sk_buff *skb) /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) ) #define netif_subqueue_stopped(_a, _b) 0 +#ifndef PTR_ALIGN +#define PTR_ALIGN(p, a) ((typeof(p))ALIGN((unsigned long)(p), (a))) +#endif + +#ifndef CONFIG_PM_SLEEP +#define CONFIG_PM_SLEEP CONFIG_PM +#endif + +#if ( LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13) ) +#define HAVE_ETHTOOL_GET_PERM_ADDR +#endif /* 2.6.14 through 2.6.22 */ #endif /* < 2.6.23 */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) ) -#if !defined(__VMKLNX__) +#ifndef ETH_FLAG_LRO +#define ETH_FLAG_LRO NETIF_F_LRO +#endif + +#ifndef ACCESS_ONCE +#define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x)) +#endif + +#ifdef __VMKLNX__ +/* backport skb_cow_head */ +static inline int skb_cow_head(struct sk_buff *skb, unsigned int headroom) +{ + int delta = 0; + + if (headroom > skb_headroom(skb)) + delta = headroom - skb_headroom(skb); + + if (delta || skb_header_cloned(skb)) + return pskb_expand_head(skb, ALIGN(delta, NET_SKB_PAD), 0, + GFP_ATOMIC); + return 0; +} +#endif /* __VMKLNX__ */ + +#ifndef __VMKLNX__ /* if GRO is supported then the napi struct must already exist */ #ifndef NETIF_F_GRO /* NAPI API changes in 2.6.24 break everything */ struct napi_struct { /* used to look up the real NAPI polling routine */ - int (*poll)(struct napi_struct *, int); + int (*poll) (struct napi_struct *, int); struct net_device *dev; int weight; }; @@ -1582,9 +2307,38 @@ struct napi_struct { #ifdef NAPI extern int __kc_adapter_clean(struct net_device *, int *); +#if defined(DRIVER_IGB) || defined(DRIVER_IXGBE) || defined(DRIVER_I40E) || defined(E1000E_MQ) || defined(DRIVER_IXGBEVF) +extern struct net_device *napi_to_poll_dev(const struct napi_struct *napi); +#define netif_napi_add(_netdev, _napi, _poll, _weight) \ + do { \ + struct napi_struct *__napi = (_napi); \ + struct net_device *poll_dev = napi_to_poll_dev(__napi); \ + poll_dev->poll = &(__kc_adapter_clean); \ + poll_dev->priv = (_napi); \ + poll_dev->weight = (_weight); \ + set_bit(__LINK_STATE_RX_SCHED, &poll_dev->state); \ + set_bit(__LINK_STATE_START, &poll_dev->state);\ + dev_hold(poll_dev); \ + __napi->poll = &(_poll); \ + __napi->weight = (_weight); \ + __napi->dev = (_netdev); \ + } while (0) +#define netif_napi_del(_napi) \ + do { \ + struct net_device *poll_dev = napi_to_poll_dev(_napi); \ + WARN_ON(!test_bit(__LINK_STATE_RX_SCHED, &poll_dev->state)); \ + dev_put(poll_dev); \ + memset(poll_dev, 0, sizeof(struct net_device));\ + } while (0) +#define napi_schedule_prep(_napi) \ + (netif_running((_napi)->dev) && netif_rx_schedule_prep(napi_to_poll_dev(_napi))) +#define napi_schedule(_napi) \ + do { \ + if (napi_schedule_prep(_napi)) \ + __netif_rx_schedule(napi_to_poll_dev(_napi)); \ + } while (0) +#else /* DRIVER_IGB || DRIVER_IXGBE || DRIVER_I40E || E1000E_MQ */ #define napi_to_poll_dev(_napi) (_napi)->dev -#define napi_enable(_napi) netif_poll_enable((_napi)->dev) -#define napi_disable(_napi) netif_poll_disable((_napi)->dev) #define netif_napi_add(_netdev, _napi, _poll, _weight) \ do { \ struct napi_struct *__napi = (_napi); \ @@ -1597,7 +2351,23 @@ extern int __kc_adapter_clean(struct net_device *, int *); } while (0) #define netif_napi_del(_a) do {} while (0) #define napi_schedule_prep(_napi) netif_rx_schedule_prep((_napi)->dev) -#define napi_schedule(_napi) netif_rx_schedule(napi_to_poll_dev(_napi)) +#define napi_schedule(_napi) netif_rx_schedule((_napi)->dev) +#endif /* DRIVER_IGB || DRIVER_IXGBE || DRIVER_I40E || E1000E_MQ */ +#define napi_enable(_napi) netif_poll_enable(napi_to_poll_dev(_napi)) +#define napi_disable(_napi) netif_poll_disable(napi_to_poll_dev(_napi)) +#ifdef CONFIG_SMP +static inline void napi_synchronize(const struct napi_struct *n) +{ + struct net_device *dev = napi_to_poll_dev(n); + + while (test_bit(__LINK_STATE_RX_SCHED, &dev->state)) { + /* No hurry. */ + msleep(1); + } +} +#else +#define napi_synchronize(n) barrier() +#endif /* CONFIG_SMP */ #define __napi_schedule(_napi) __netif_rx_schedule(napi_to_poll_dev(_napi)) #ifndef NETIF_F_GRO #define napi_complete(_napi) netif_rx_complete(napi_to_poll_dev(_napi)) @@ -1620,11 +2390,39 @@ extern int __kc_adapter_clean(struct net_device *, int *); } while (0) #define netif_napi_del(_a) do {} while (0) #endif /* NAPI */ -#endif /* !defined(__VMKLNX__) */ +#endif /* !__VMKLNX__ */ + #undef dev_get_by_name #define dev_get_by_name(_a, _b) dev_get_by_name(_b) #define __netif_subqueue_stopped(_a, _b) netif_subqueue_stopped(_a, _b) -#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) +#ifndef DMA_BIT_MASK +#define DMA_BIT_MASK(n) (((n) == 64) ? DMA_64BIT_MASK : ((1ULL<<(n))-1)) +#endif + +#ifdef NETIF_F_TSO6 +#define skb_is_gso_v6 _kc_skb_is_gso_v6 +static inline int _kc_skb_is_gso_v6(const struct sk_buff *skb) +{ + return skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6; +} +#endif /* NETIF_F_TSO6 */ + +#ifndef KERN_CONT +#define KERN_CONT "" +#endif +#ifndef pr_err +#define pr_err(fmt, arg...) \ + printk(KERN_ERR fmt, ##arg) +#endif + +#ifndef rounddown_pow_of_two +#define rounddown_pow_of_two(n) \ + __builtin_constant_p(n) ? ( \ + (n == 1) ? 0 : \ + (1UL << ilog2(n))) : \ + (1UL << (fls_long(n) - 1)) +#endif + #else /* < 2.6.24 */ #define HAVE_ETHTOOL_GET_SSET_COUNT #define HAVE_NETDEV_NAPI_LIST @@ -1632,7 +2430,11 @@ extern int __kc_adapter_clean(struct net_device *, int *); /*****************************************************************************/ #if ( LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24) ) +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) ) #include +#else /* >= 3.2.0 */ +#include +#endif /* else >= 3.2.0 */ #endif /* > 2.6.24 */ /*****************************************************************************/ @@ -1658,22 +2460,97 @@ extern int __kc_adapter_clean(struct net_device *, int *); pci_name(adapter->pdev)); \ } \ } + #endif /* > 2.6.18 */ #define pci_enable_device_mem(pdev) pci_enable_device(pdev) +#ifndef DEFINE_PCI_DEVICE_TABLE +#define DEFINE_PCI_DEVICE_TABLE(_table) struct pci_device_id _table[] +#endif /* DEFINE_PCI_DEVICE_TABLE */ + +#ifndef strict_strtol +#define strict_strtol(s, b, r) _kc_strict_strtol(s, b, r) +static inline int _kc_strict_strtol(const char *buf, unsigned int base, + long *res) +{ + /* adapted from strict_strtoul() in 2.6.25 */ + char *tail; + long val; + size_t len; + + *res = 0; + len = strlen(buf); + if (!len) + return -EINVAL; + val = simple_strtol(buf, &tail, base); + if (tail == buf) + return -EINVAL; + if ((*tail == '\0') || + ((len == (size_t) (tail - buf) + 1) && (*tail == '\n'))) { + *res = val; + return 0; + } + + return -EINVAL; +} +#endif + +#else /* < 2.6.25 */ + #endif /* < 2.6.25 */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) ) +#ifndef clamp_t +#define clamp_t(type, val, min, max) ({ \ + type __val = (val); \ + type __min = (min); \ + type __max = (max); \ + __val = __val < __min ? __min : __val; \ + __val > __max ? __max : __val; }) +#endif /* clamp_t */ +#undef kzalloc_node +#define kzalloc_node(_size, _flags, _node) kzalloc(_size, _flags) + +extern void _kc_pci_disable_link_state(struct pci_dev *dev, int state); +#define pci_disable_link_state(p, s) _kc_pci_disable_link_state(p, s) #else /* < 2.6.26 */ +#define NETDEV_CAN_SET_GSO_MAX_SIZE #include #define HAVE_NETDEV_VLAN_FEATURES +#ifndef PCI_EXP_LNKCAP_ASPMS +#define PCI_EXP_LNKCAP_ASPMS 0x00000c00 /* ASPM Support */ +#endif /* PCI_EXP_LNKCAP_ASPMS */ #endif /* < 2.6.26 */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) ) +static inline void _kc_ethtool_cmd_speed_set(struct ethtool_cmd *ep, + __u32 speed) +{ + ep->speed = (__u16) speed; + /* ep->speed_hi = (__u16)(speed >> 16); */ +} + +#define ethtool_cmd_speed_set _kc_ethtool_cmd_speed_set + +static inline __u32 _kc_ethtool_cmd_speed(struct ethtool_cmd *ep) +{ + /* no speed_hi before 2.6.27, and probably no need for it yet */ + return (__u32) ep->speed; +} + +#define ethtool_cmd_speed _kc_ethtool_cmd_speed + #if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15) ) -#if (((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)) && defined(CONFIG_PM)) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)) && defined(CONFIG_PM_SLEEP))) +#if ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)) && defined(CONFIG_PM)) +#define ANCIENT_PM 1 +#elif ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)) && \ + (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)) && \ + defined(CONFIG_PM_SLEEP)) +#define NEWER_PM 1 +#endif +#if defined(ANCIENT_PM) || defined(NEWER_PM) #undef device_set_wakeup_enable #define device_set_wakeup_enable(dev, val) \ do { \ @@ -1688,6 +2565,8 @@ extern int __kc_adapter_clean(struct net_device *, int *); } while (0) #endif /* 2.6.15-2.6.22 and CONFIG_PM or 2.6.23-2.6.25 and CONFIG_PM_SLEEP */ #endif /* 2.6.15 through 2.6.27 */ +/* our driver need to call vmklinux's netif_napi_del */ +#ifndef __VMKLNX__ #ifndef netif_napi_del #define netif_napi_del(_a) do {} while (0) #ifdef NAPI @@ -1697,10 +2576,11 @@ extern int __kc_adapter_clean(struct net_device *, int *); #endif #endif #endif /* netif_napi_del */ -#ifndef pci_dma_mapping_error -#define pci_dma_mapping_error(pdev, dma_addr) pci_dma_mapping_error(dma_addr) +#endif /* !__VMKLNX__ */ +#ifdef dma_mapping_error +#undef dma_mapping_error #endif - +#define dma_mapping_error(dev, dma_addr) pci_dma_mapping_error(dma_addr) #ifdef HAVE_TX_MQ extern void _kc_netif_tx_stop_all_queues(struct net_device *); @@ -1739,9 +2619,31 @@ extern void _kc_netif_tx_start_all_queues(struct net_device *); #define netif_is_multiqueue(a) 0 #define netif_wake_subqueue(a, b) #endif /* NETIF_F_MULTI_QUEUE */ + +#ifndef __WARN_printf +extern void __kc_warn_slowpath(const char *file, const int line, + const char *fmt, ...) + __attribute__ ((format(printf, 3, 4))); +#define __WARN_printf(arg...) __kc_warn_slowpath(__FILE__, __LINE__, arg) +#endif /* __WARN_printf */ + +#ifndef WARN +#define WARN(condition, format...) ({ \ + int __ret_warn_on = !!(condition); \ + if (unlikely(__ret_warn_on)) \ + __WARN_printf(format); \ + unlikely(__ret_warn_on); \ +}) +#endif /* WARN */ +#undef HAVE_IXGBE_DEBUG_FS +#undef HAVE_IGB_DEBUG_FS #else /* < 2.6.27 */ #define HAVE_TX_MQ #define HAVE_NETDEV_SELECT_QUEUE +#ifdef CONFIG_DEBUG_FS +#define HAVE_IXGBE_DEBUG_FS +#define HAVE_IGB_DEBUG_FS +#endif /* CONFIG_DEBUG_FS */ #endif /* < 2.6.27 */ /*****************************************************************************/ @@ -1753,13 +2655,50 @@ extern void _kc_netif_tx_start_all_queues(struct net_device *); extern int _kc_pci_wake_from_d3(struct pci_dev *dev, bool enable); extern int _kc_pci_prepare_to_sleep(struct pci_dev *dev); #define netdev_alloc_page(a) alloc_page(GFP_ATOMIC) +#ifndef __skb_queue_head_init +static inline void __kc_skb_queue_head_init(struct sk_buff_head *list) +{ + list->prev = list->next = (struct sk_buff *)list; + list->qlen = 0; +} + +#define __skb_queue_head_init(_q) __kc_skb_queue_head_init(_q) +#endif + +#define PCI_EXP_DEVCAP2 36 /* Device Capabilities 2 */ +#define PCI_EXP_DEVCTL2 40 /* Device Control 2 */ + #endif /* < 2.6.28 */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) ) +#ifndef swap +#define swap(a, b) \ + do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0) +#endif #define pci_request_selected_regions_exclusive(pdev, bars, name) \ pci_request_selected_regions(pdev, bars, name) +#ifndef CONFIG_NR_CPUS +#define CONFIG_NR_CPUS 1 +#endif /* CONFIG_NR_CPUS */ +#ifndef pcie_aspm_enabled +#define pcie_aspm_enabled() (1) +#endif /* pcie_aspm_enabled */ + +#define PCI_EXP_SLTSTA_PDS 0x0040 /* Presence Detect State */ + +#ifndef pci_clear_master +extern void _kc_pci_clear_master(struct pci_dev *dev); +#define pci_clear_master(dev) _kc_pci_clear_master(dev) +#endif + +#ifndef PCI_EXP_LNKCTL_ASPMC +#define PCI_EXP_LNKCTL_ASPMC 0x0003 /* ASPM Control */ +#endif #else /* < 2.6.29 */ +#ifndef HAVE_NET_DEVICE_OPS +#define HAVE_NET_DEVICE_OPS +#endif #ifdef CONFIG_DCB #define HAVE_PFC_MODE_ENABLE #endif /* CONFIG_DCB */ @@ -1767,27 +2706,103 @@ extern int _kc_pci_prepare_to_sleep(struct pci_dev *dev); /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) ) -#ifdef IXGBE_FCOE -#undef CONFIG_FCOE -#undef CONFIG_FCOE_MODULE -#endif /* IXGBE_FCOE */ -extern u16 _kc_skb_tx_hash(struct net_device *dev, struct sk_buff *skb); -#define skb_tx_hash(n, s) _kc_skb_tx_hash(n, s) +#define skb_rx_queue_recorded(a) false +#define skb_get_rx_queue(a) 0 #define skb_record_rx_queue(a, b) do {} while (0) -#else +#define skb_tx_hash(n, s) ___kc_skb_tx_hash((n), (s), (n)->real_num_tx_queues) +#ifndef CONFIG_PCI_IOV +#undef pci_enable_sriov +#define pci_enable_sriov(a, b) -ENOTSUPP +#undef pci_disable_sriov +#define pci_disable_sriov(a) do {} while (0) +#endif /* CONFIG_PCI_IOV */ +#ifndef pr_cont +#define pr_cont(fmt, ...) \ + printk(KERN_CONT fmt, ##__VA_ARGS__) +#endif /* pr_cont */ +static inline void _kc_synchronize_irq(unsigned int a) +{ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,5,28) ) + synchronize_irq(); +#else /* < 2.5.28 */ + synchronize_irq(a); +#endif /* < 2.5.28 */ +} + +#undef synchronize_irq +#define synchronize_irq(a) _kc_synchronize_irq(a) + +#define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ + +#ifdef nr_cpus_node +#undef nr_cpus_node +#define nr_cpus_node(node) cpumask_weight(cpumask_of_node(node)) +#endif + +#else /* < 2.6.30 */ #define HAVE_ASPM_QUIRKS #endif /* < 2.6.30 */ /*****************************************************************************/ #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31) ) #define ETH_P_1588 0x88F7 -#else +#ifndef ETH_P_FIP +#define ETH_P_FIP 0x8914 +#endif /* !ETH_P_FIP */ +#ifndef netdev_uc_count +#define netdev_uc_count(dev) ((dev)->uc_count) +#endif +#ifndef netdev_for_each_uc_addr +#define netdev_for_each_uc_addr(uclist, dev) \ + for (uclist = dev->uc_list; uclist; uclist = uclist->next) +#endif +#ifndef PORT_OTHER +#define PORT_OTHER 0xff +#endif +#ifndef MDIO_PHY_ID_PRTAD +#define MDIO_PHY_ID_PRTAD 0x03e0 +#endif +#ifndef MDIO_PHY_ID_DEVAD +#define MDIO_PHY_ID_DEVAD 0x001f +#endif +#ifndef skb_dst +#define skb_dst(s) ((s)->dst) +#endif + +#ifndef SUPPORTED_1000baseKX_Full +#define SUPPORTED_1000baseKX_Full (1 << 17) +#endif +#ifndef SUPPORTED_10000baseKX4_Full +#define SUPPORTED_10000baseKX4_Full (1 << 18) +#endif +#ifndef SUPPORTED_10000baseKR_Full +#define SUPPORTED_10000baseKR_Full (1 << 19) +#endif + +#ifndef ADVERTISED_1000baseKX_Full +#define ADVERTISED_1000baseKX_Full (1 << 17) +#endif +#ifndef ADVERTISED_10000baseKX4_Full +#define ADVERTISED_10000baseKX4_Full (1 << 18) +#endif +#ifndef ADVERTISED_10000baseKR_Full +#define ADVERTISED_10000baseKR_Full (1 << 19) +#endif + +#else /* < 2.6.31 */ #ifndef HAVE_NETDEV_STORAGE_ADDRESS #define HAVE_NETDEV_STORAGE_ADDRESS #endif #ifndef HAVE_NETDEV_HW_ADDR #define HAVE_NETDEV_HW_ADDR #endif +#ifndef HAVE_TRANS_START_IN_QUEUE +#define HAVE_TRANS_START_IN_QUEUE +#endif +#ifndef HAVE_INCLUDE_LINUX_MDIO_H +#define HAVE_INCLUDE_LINUX_MDIO_H +#endif +#include #endif /* < 2.6.31 */ /*****************************************************************************/ @@ -1799,7 +2814,55 @@ extern u16 _kc_skb_tx_hash(struct net_device *dev, struct sk_buff *skb); #define NETIF_F_FCOE_MTU (1 << 26) #endif #endif /* CONFIG_FCOE || CONFIG_FCOE_MODULE */ -#else + +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ) +static inline int _kc_pm_runtime_get_sync() +{ + return 1; +} + +#define pm_runtime_get_sync(dev) _kc_pm_runtime_get_sync() +#else /* 2.6.0 => 2.6.32 */ +static inline int _kc_pm_runtime_get_sync(struct device __always_unused *dev) +{ + return 1; +} + +#ifndef pm_runtime_get_sync +#define pm_runtime_get_sync(dev) _kc_pm_runtime_get_sync(dev) +#endif +#endif /* 2.6.0 => 2.6.32 */ +#ifndef pm_runtime_put +#define pm_runtime_put(dev) do {} while (0) +#endif +#ifndef pm_runtime_put_sync +#define pm_runtime_put_sync(dev) do {} while (0) +#endif +#ifndef pm_runtime_resume +#define pm_runtime_resume(dev) do {} while (0) +#endif +#ifndef pm_schedule_suspend +#define pm_schedule_suspend(dev, t) do {} while (0) +#endif +#ifndef pm_runtime_set_suspended +#define pm_runtime_set_suspended(dev) do {} while (0) +#endif +#ifndef pm_runtime_disable +#define pm_runtime_disable(dev) do {} while (0) +#endif +#ifndef pm_runtime_put_noidle +#define pm_runtime_put_noidle(dev) do {} while (0) +#endif +#ifndef pm_runtime_set_active +#define pm_runtime_set_active(dev) do {} while (0) +#endif +#ifndef pm_runtime_enable +#define pm_runtime_enable(dev) do {} while (0) +#endif +#ifndef pm_runtime_get_noresume +#define pm_runtime_get_noresume(dev) do {} while (0) +#endif +#else /* < 2.6.32 */ #if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE) #ifndef HAVE_NETDEV_OPS_FCOE_ENABLE #define HAVE_NETDEV_OPS_FCOE_ENABLE @@ -1810,5 +2873,1440 @@ extern u16 _kc_skb_tx_hash(struct net_device *dev, struct sk_buff *skb); #define HAVE_DCBNL_OPS_GETAPP #endif #endif /* CONFIG_DCB */ +#include +/* IOV bad DMA target work arounds require at least this kernel rev support */ +#define HAVE_PCIE_TYPE #endif /* < 2.6.32 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33) ) +#ifndef pci_pcie_cap +#define pci_pcie_cap(pdev) pci_find_capability(pdev, PCI_CAP_ID_EXP) +#endif +#ifndef IPV4_FLOW +#define IPV4_FLOW 0x10 +#endif /* IPV4_FLOW */ +#ifndef IPV6_FLOW +#define IPV6_FLOW 0x11 +#endif /* IPV6_FLOW */ +/* Features back-ported to RHEL6 or SLES11 SP1 after 2.6.32 */ +#if ( (RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,0)) || \ + (SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(11,1,0)) ) +#if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE) +#ifndef HAVE_NETDEV_OPS_FCOE_GETWWN +#define HAVE_NETDEV_OPS_FCOE_GETWWN +#endif +#endif /* CONFIG_FCOE || CONFIG_FCOE_MODULE */ +#endif /* RHEL6 or SLES11 SP1 */ +#ifndef __percpu +#define __percpu +#endif /* __percpu */ +#ifndef PORT_DA +#define PORT_DA PORT_OTHER +#endif +#ifndef PORT_NONE +#define PORT_NONE PORT_OTHER +#endif + +#if ((RHEL_RELEASE_CODE && \ + (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,3)) && \ + (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,0)))) +#if !defined(CONFIG_X86_32) && !defined(CONFIG_NEED_DMA_MAP_STATE) +#undef DEFINE_DMA_UNMAP_ADDR +#define DEFINE_DMA_UNMAP_ADDR(ADDR_NAME) dma_addr_t ADDR_NAME +#undef DEFINE_DMA_UNMAP_LEN +#define DEFINE_DMA_UNMAP_LEN(LEN_NAME) __u32 LEN_NAME +#undef dma_unmap_addr +#define dma_unmap_addr(PTR, ADDR_NAME) ((PTR)->ADDR_NAME) +#undef dma_unmap_addr_set +#define dma_unmap_addr_set(PTR, ADDR_NAME, VAL) (((PTR)->ADDR_NAME) = (VAL)) +#undef dma_unmap_len +#define dma_unmap_len(PTR, LEN_NAME) ((PTR)->LEN_NAME) +#undef dma_unmap_len_set +#define dma_unmap_len_set(PTR, LEN_NAME, VAL) (((PTR)->LEN_NAME) = (VAL)) +#endif /* CONFIG_X86_64 && !CONFIG_NEED_DMA_MAP_STATE */ +#endif /* RHEL_RELEASE_CODE */ + +#if (!(RHEL_RELEASE_CODE && \ + (((RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(5,8)) && \ + (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(6,0))) || \ + ((RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,1)) && \ + (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,0)))))) +static inline bool pci_is_pcie(struct pci_dev *dev) +{ + return !!pci_pcie_cap(dev); +} +#endif /* RHEL_RELEASE_CODE */ + +#if (!(RHEL_RELEASE_CODE && \ + (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,2)))) +#define sk_tx_queue_get(_sk) (-1) +#define sk_tx_queue_set(_sk, _tx_queue) do {} while(0) +#endif /* !(RHEL >= 6.2) */ + +#if (RHEL_RELEASE_CODE && \ + (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,4)) && \ + (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,0))) +#define HAVE_RHEL6_ETHTOOL_OPS_EXT_STRUCT +#define HAVE_ETHTOOL_GRXFHINDIR_SIZE +#define HAVE_ETHTOOL_SET_PHYS_ID +#define HAVE_ETHTOOL_GET_TS_INFO +#endif /* RHEL >= 6.4 && RHEL < 7.0 */ + +#else /* < 2.6.33 */ +#if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE) +#ifndef HAVE_NETDEV_OPS_FCOE_GETWWN +#define HAVE_NETDEV_OPS_FCOE_GETWWN +#endif +#endif /* CONFIG_FCOE || CONFIG_FCOE_MODULE */ +#endif /* < 2.6.33 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) ) +#if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(6,0)) +#ifndef pci_num_vf +#define pci_num_vf(pdev) _kc_pci_num_vf(pdev) +extern int _kc_pci_num_vf(struct pci_dev *dev); +#endif +#endif /* RHEL_RELEASE_CODE */ + +#ifndef ETH_FLAG_NTUPLE +#define ETH_FLAG_NTUPLE NETIF_F_NTUPLE +#endif + +#ifndef netdev_mc_count +#define netdev_mc_count(dev) ((dev)->mc_count) +#endif +#ifndef netdev_mc_empty +#define netdev_mc_empty(dev) (netdev_mc_count(dev) == 0) +#endif +#ifndef netdev_for_each_mc_addr +#define netdev_for_each_mc_addr(mclist, dev) \ + for (mclist = dev->mc_list; mclist; mclist = mclist->next) +#endif +#ifndef netdev_uc_count +#define netdev_uc_count(dev) ((dev)->uc.count) +#endif +#ifndef netdev_uc_empty +#define netdev_uc_empty(dev) (netdev_uc_count(dev) == 0) +#endif +#ifndef netdev_for_each_uc_addr +#define netdev_for_each_uc_addr(ha, dev) \ + list_for_each_entry(ha, &dev->uc.list, list) +#endif +#ifndef dma_set_coherent_mask +#define dma_set_coherent_mask(dev,mask) \ + pci_set_consistent_dma_mask(to_pci_dev(dev),(mask)) +#endif +#ifndef pci_dev_run_wake +#define pci_dev_run_wake(pdev) (0) +#endif + +/* netdev logging taken from include/linux/netdevice.h */ +#ifndef netdev_name +static inline const char *_kc_netdev_name(const struct net_device *dev) +{ + if (dev->reg_state != NETREG_REGISTERED) + return "(unregistered net_device)"; + return dev->name; +} + +#define netdev_name(netdev) _kc_netdev_name(netdev) +#endif /* netdev_name */ + +#undef netdev_printk +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ) +#define netdev_printk(level, netdev, format, args...) \ +do { \ + struct pci_dev *pdev = _kc_netdev_to_pdev(netdev); \ + printk(level "%s: " format, pci_name(pdev), ##args); \ +} while(0) +#elif ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21) ) +#define netdev_printk(level, netdev, format, args...) \ +do { \ + struct pci_dev *pdev = _kc_netdev_to_pdev(netdev); \ + struct device *dev = pci_dev_to_dev(pdev); \ + dev_printk(level, dev, "%s: " format, \ + netdev_name(netdev), ##args); \ +} while(0) +#else /* 2.6.21 => 2.6.34 */ +#define netdev_printk(level, netdev, format, args...) \ + dev_printk(level, (netdev)->dev.parent, \ + "%s: " format, \ + netdev_name(netdev), ##args) +#endif /* <2.6.0 <2.6.21 <2.6.34 */ +#undef netdev_emerg +#define netdev_emerg(dev, format, args...) \ + netdev_printk(KERN_EMERG, dev, format, ##args) +#undef netdev_alert +#define netdev_alert(dev, format, args...) \ + netdev_printk(KERN_ALERT, dev, format, ##args) +#undef netdev_crit +#define netdev_crit(dev, format, args...) \ + netdev_printk(KERN_CRIT, dev, format, ##args) +#undef netdev_err +#define netdev_err(dev, format, args...) \ + netdev_printk(KERN_ERR, dev, format, ##args) +#undef netdev_warn +#define netdev_warn(dev, format, args...) \ + netdev_printk(KERN_WARNING, dev, format, ##args) +#undef netdev_notice +#define netdev_notice(dev, format, args...) \ + netdev_printk(KERN_NOTICE, dev, format, ##args) +#undef netdev_info +#define netdev_info(dev, format, args...) \ + netdev_printk(KERN_INFO, dev, format, ##args) +#undef netdev_dbg +#if defined(CONFIG_DYNAMIC_DEBUG) +#define netdev_dbg(__dev, format, args...) \ +do { \ + dynamic_dev_dbg((__dev)->dev.parent, "%s: " format, \ + netdev_name(__dev), ##args); \ +} while (0) +#else /* DEBUG */ +#define netdev_dbg(__dev, format, args...) \ +({ \ + if (0) \ + netdev_printk(KERN_DEBUG, __dev, format, ##args); \ + 0; \ +}) +#endif /* DEBUG */ + +#undef netif_printk +#define netif_printk(priv, type, level, dev, fmt, args...) \ +do { \ + if (netif_msg_##type(priv)) \ + netdev_printk(level, (dev), fmt, ##args); \ +} while (0) + +#undef netif_emerg +#define netif_emerg(priv, type, dev, fmt, args...) \ + netif_level(emerg, priv, type, dev, fmt, ##args) +#undef netif_alert +#define netif_alert(priv, type, dev, fmt, args...) \ + netif_level(alert, priv, type, dev, fmt, ##args) +#undef netif_crit +#define netif_crit(priv, type, dev, fmt, args...) \ + netif_level(crit, priv, type, dev, fmt, ##args) +#undef netif_err +#define netif_err(priv, type, dev, fmt, args...) \ + netif_level(err, priv, type, dev, fmt, ##args) +#undef netif_warn +#define netif_warn(priv, type, dev, fmt, args...) \ + netif_level(warn, priv, type, dev, fmt, ##args) +#undef netif_notice +#define netif_notice(priv, type, dev, fmt, args...) \ + netif_level(notice, priv, type, dev, fmt, ##args) +#undef netif_info +#define netif_info(priv, type, dev, fmt, args...) \ + netif_level(info, priv, type, dev, fmt, ##args) +#undef netif_dbg +#define netif_dbg(priv, type, dev, fmt, args...) \ + netif_level(dbg, priv, type, dev, fmt, ##args) + +#ifdef SET_SYSTEM_SLEEP_PM_OPS +#define HAVE_SYSTEM_SLEEP_PM_OPS +#endif + +#ifndef for_each_set_bit +#define for_each_set_bit(bit, addr, size) \ + for ((bit) = find_first_bit((addr), (size)); \ + (bit) < (size); \ + (bit) = find_next_bit((addr), (size), (bit) + 1)) +#endif /* for_each_set_bit */ + +#ifndef DEFINE_DMA_UNMAP_ADDR +#define DEFINE_DMA_UNMAP_ADDR DECLARE_PCI_UNMAP_ADDR +#define DEFINE_DMA_UNMAP_LEN DECLARE_PCI_UNMAP_LEN +#define dma_unmap_addr pci_unmap_addr +#define dma_unmap_addr_set pci_unmap_addr_set +#define dma_unmap_len pci_unmap_len +#define dma_unmap_len_set pci_unmap_len_set +#endif /* DEFINE_DMA_UNMAP_ADDR */ + +#if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(6,3)) +#ifdef IGB_HWMON +#ifdef CONFIG_DEBUG_LOCK_ALLOC +#define sysfs_attr_init(attr) \ + do { \ + static struct lock_class_key __key; \ + (attr)->key = &__key; \ + } while (0) +#else +#define sysfs_attr_init(attr) do {} while (0) +#endif /* CONFIG_DEBUG_LOCK_ALLOC */ +#endif /* IGB_HWMON */ +#endif /* RHEL_RELEASE_CODE */ + +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ) +static inline bool _kc_pm_runtime_suspended() +{ + return false; +} + +#define pm_runtime_suspended(dev) _kc_pm_runtime_suspended() +#else /* 2.6.0 => 2.6.34 */ +static inline bool _kc_pm_runtime_suspended(struct device __always_unused *dev) +{ + return false; +} + +#ifndef pm_runtime_suspended +#define pm_runtime_suspended(dev) _kc_pm_runtime_suspended(dev) +#endif +#endif /* 2.6.0 => 2.6.34 */ + +#else /* < 2.6.34 */ +#define HAVE_SYSTEM_SLEEP_PM_OPS +#ifndef HAVE_SET_RX_MODE +#define HAVE_SET_RX_MODE +#endif + +#endif /* < 2.6.34 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ) +ssize_t _kc_simple_write_to_buffer(void *to, size_t available, loff_t * ppos, + const void __user * from, size_t count); +#define simple_write_to_buffer _kc_simple_write_to_buffer + +#ifndef numa_node_id +#define numa_node_id() 0 +#endif +#ifndef numa_mem_id +#define numa_mem_id numa_node_id +#endif +#ifdef HAVE_TX_MQ +#include +#ifndef CONFIG_NETDEVICES_MULTIQUEUE +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,0))) +void _kc_netif_set_real_num_tx_queues(struct net_device *, unsigned int); +#define netif_set_real_num_tx_queues _kc_netif_set_real_num_tx_queues +#endif /* !(RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,0)) */ +#else /* CONFIG_NETDEVICES_MULTI_QUEUE */ +#define netif_set_real_num_tx_queues(_netdev, _count) \ + do { \ + (_netdev)->egress_subqueue_count = _count; \ + } while (0) +#endif /* CONFIG_NETDEVICES_MULTI_QUEUE */ +#else /* HAVE_TX_MQ */ +#define netif_set_real_num_tx_queues(_netdev, _count) do {} while(0) +#endif /* HAVE_TX_MQ */ +#ifndef ETH_FLAG_RXHASH +#define ETH_FLAG_RXHASH (1<<28) +#endif /* ETH_FLAG_RXHASH */ +#if (RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,0)) +#define HAVE_IRQ_AFFINITY_HINT +#endif +#else /* < 2.6.35 */ +#define HAVE_PM_QOS_REQUEST_LIST +#define HAVE_IRQ_AFFINITY_HINT +#endif /* < 2.6.35 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36) ) +extern int _kc_ethtool_op_set_flags(struct net_device *, u32, u32); +#define ethtool_op_set_flags _kc_ethtool_op_set_flags +extern u32 _kc_ethtool_op_get_flags(struct net_device *); +#define ethtool_op_get_flags _kc_ethtool_op_get_flags + +#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS +#ifdef NET_IP_ALIGN +#undef NET_IP_ALIGN +#endif +#define NET_IP_ALIGN 0 +#endif /* CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS */ + +#ifdef NET_SKB_PAD +#undef NET_SKB_PAD +#endif + +#if (L1_CACHE_BYTES > 32) +#define NET_SKB_PAD L1_CACHE_BYTES +#else +#define NET_SKB_PAD 32 +#endif + +static inline struct sk_buff *_kc_netdev_alloc_skb_ip_align(struct net_device + *dev, + unsigned int length) +{ + struct sk_buff *skb; + + skb = alloc_skb(length + NET_SKB_PAD + NET_IP_ALIGN, GFP_ATOMIC); + if (skb) { +#if (NET_IP_ALIGN + NET_SKB_PAD) + skb_reserve(skb, NET_IP_ALIGN + NET_SKB_PAD); +#endif + skb->dev = dev; + } + return skb; +} + +#ifdef netdev_alloc_skb_ip_align +#undef netdev_alloc_skb_ip_align +#endif +#define netdev_alloc_skb_ip_align(n, l) _kc_netdev_alloc_skb_ip_align(n, l) + +#undef netif_level +#define netif_level(level, priv, type, dev, fmt, args...) \ +do { \ + if (netif_msg_##type(priv)) \ + netdev_##level(dev, fmt, ##args); \ +} while (0) + +#undef usleep_range +#define usleep_range(min, max) msleep(DIV_ROUND_UP(min, 1000)) + +#define u64_stats_update_begin(a) do { } while(0) +#define u64_stats_update_end(a) do { } while(0) +#define u64_stats_fetch_begin(a) do { } while(0) +#define u64_stats_fetch_retry_bh(a) (0) +#define u64_stats_fetch_begin_bh(a) (0) + +#if (RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,1)) +#define HAVE_8021P_SUPPORT +#endif + +#else /* < 2.6.36 */ + +#define HAVE_PM_QOS_REQUEST_ACTIVE +#define HAVE_8021P_SUPPORT +#define HAVE_NDO_GET_STATS64 +#endif /* < 2.6.36 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) ) +#ifndef netif_set_real_num_rx_queues +static inline int __kc_netif_set_real_num_rx_queues(struct net_device + __always_unused *dev, + unsigned int __always_unused + rxq) +{ + return 0; +} + +#define netif_set_real_num_rx_queues(dev, rxq) \ + __kc_netif_set_real_num_rx_queues((dev), (rxq)) +#endif +#ifndef ETHTOOL_RXNTUPLE_ACTION_CLEAR +#define ETHTOOL_RXNTUPLE_ACTION_CLEAR (-2) +#endif +#ifndef VLAN_N_VID +#define VLAN_N_VID VLAN_GROUP_ARRAY_LEN +#endif /* VLAN_N_VID */ +#ifndef ETH_FLAG_TXVLAN +#define ETH_FLAG_TXVLAN (1 << 7) +#endif /* ETH_FLAG_TXVLAN */ +#ifndef ETH_FLAG_RXVLAN +#define ETH_FLAG_RXVLAN (1 << 8) +#endif /* ETH_FLAG_RXVLAN */ + +static inline void _kc_skb_checksum_none_assert(struct sk_buff *skb) +{ + WARN_ON(skb->ip_summed != CHECKSUM_NONE); +} + +#define skb_checksum_none_assert(skb) _kc_skb_checksum_none_assert(skb) + +static inline void *_kc_vzalloc_node(unsigned long size, int node) +{ + void *addr = vmalloc_node(size, node); + if (addr) + memset(addr, 0, size); + return addr; +} + +#define vzalloc_node(_size, _node) _kc_vzalloc_node(_size, _node) + +static inline void *_kc_vzalloc(unsigned long size) +{ + void *addr = vmalloc(size); + if (addr) + memset(addr, 0, size); + return addr; +} + +#define vzalloc(_size) _kc_vzalloc(_size) + +#ifndef vlan_get_protocol +static inline __be16 __kc_vlan_get_protocol(const struct sk_buff *skb) +{ + if (vlan_tx_tag_present(skb) || + skb->protocol != cpu_to_be16(ETH_P_8021Q)) + return skb->protocol; + + if (skb_headlen(skb) < sizeof(struct vlan_ethhdr)) + return 0; + + return ((struct vlan_ethhdr *)skb->data)->h_vlan_encapsulated_proto; +} + +#define vlan_get_protocol(_skb) __kc_vlan_get_protocol(_skb) +#endif +#ifdef HAVE_HW_TIME_STAMP +#define SKBTX_HW_TSTAMP (1 << 0) +#define SKBTX_IN_PROGRESS (1 << 2) +#define SKB_SHARED_TX_IS_UNION +#endif + +#ifndef device_wakeup_enable +#define device_wakeup_enable(dev) device_set_wakeup_enable(dev, true) +#endif + +#if ( LINUX_VERSION_CODE > KERNEL_VERSION(2,4,18) ) +#ifndef HAVE_VLAN_RX_REGISTER +#define HAVE_VLAN_RX_REGISTER +#endif +#endif /* > 2.4.18 */ +#endif /* < 2.6.37 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) ) +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) ) +#define skb_checksum_start_offset(skb) skb_transport_offset(skb) +#else /* 2.6.22 -> 2.6.37 */ +static inline int _kc_skb_checksum_start_offset(const struct sk_buff *skb) +{ + return skb->csum_start - skb_headroom(skb); +} + +#define skb_checksum_start_offset(skb) _kc_skb_checksum_start_offset(skb) +#endif /* 2.6.22 -> 2.6.37 */ +#ifdef CONFIG_DCB +#ifndef IEEE_8021QAZ_MAX_TCS +#define IEEE_8021QAZ_MAX_TCS 8 +#endif +#ifndef DCB_CAP_DCBX_HOST +#define DCB_CAP_DCBX_HOST 0x01 +#endif +#ifndef DCB_CAP_DCBX_LLD_MANAGED +#define DCB_CAP_DCBX_LLD_MANAGED 0x02 +#endif +#ifndef DCB_CAP_DCBX_VER_CEE +#define DCB_CAP_DCBX_VER_CEE 0x04 +#endif +#ifndef DCB_CAP_DCBX_VER_IEEE +#define DCB_CAP_DCBX_VER_IEEE 0x08 +#endif +#ifndef DCB_CAP_DCBX_STATIC +#define DCB_CAP_DCBX_STATIC 0x10 +#endif +#endif /* CONFIG_DCB */ +#if (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,2)) +#define CONFIG_XPS +#endif /* RHEL_RELEASE_VERSION(6,2) */ +#endif /* < 2.6.38 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39) ) +#ifndef TC_BITMASK +#define TC_BITMASK 15 +#endif +#ifndef NETIF_F_RXCSUM +#define NETIF_F_RXCSUM (1 << 29) +#endif +#ifndef skb_queue_reverse_walk_safe +#define skb_queue_reverse_walk_safe(queue, skb, tmp) \ + for (skb = (queue)->prev, tmp = skb->prev; \ + skb != (struct sk_buff *)(queue); \ + skb = tmp, tmp = skb->prev) +#endif + +#ifndef udp_csum +#define udp_csum __kc_udp_csum +static inline __wsum __kc_udp_csum(struct sk_buff *skb) +{ + __wsum csum = csum_partial(skb_transport_header(skb), + sizeof(struct udphdr), skb->csum); + + for (skb = skb_shinfo(skb)->frag_list; skb; skb = skb->next) { + csum = csum_add(csum, skb->csum); + } + return csum; +} +#endif /* udp_csum */ +#else /* < 2.6.39 */ +#if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE) +#ifndef HAVE_NETDEV_OPS_FCOE_DDP_TARGET +#define HAVE_NETDEV_OPS_FCOE_DDP_TARGET +#endif +#endif /* CONFIG_FCOE || CONFIG_FCOE_MODULE */ +#ifndef HAVE_MQPRIO +#define HAVE_MQPRIO +#endif +#ifndef HAVE_SETUP_TC +#define HAVE_SETUP_TC +#endif +#ifdef CONFIG_DCB +#ifndef HAVE_DCBNL_IEEE +#define HAVE_DCBNL_IEEE +#endif +#endif /* CONFIG_DCB */ +#ifndef HAVE_NDO_SET_FEATURES +#define HAVE_NDO_SET_FEATURES +#endif +#endif /* < 2.6.39 */ + +/*****************************************************************************/ +/* use < 2.6.40 because of a Fedora 15 kernel update where they + * updated the kernel version to 2.6.40.x and they back-ported 3.0 features + * like set_phys_id for ethtool. + */ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40) ) +#ifdef ETHTOOL_GRXRINGS +#ifndef FLOW_EXT +#define FLOW_EXT 0x80000000 +union _kc_ethtool_flow_union { + struct ethtool_tcpip4_spec tcp_ip4_spec; + struct ethtool_usrip4_spec usr_ip4_spec; + __u8 hdata[60]; +}; +struct _kc_ethtool_flow_ext { + __be16 vlan_etype; + __be16 vlan_tci; + __be32 data[2]; +}; +struct _kc_ethtool_rx_flow_spec { + __u32 flow_type; + union _kc_ethtool_flow_union h_u; + struct _kc_ethtool_flow_ext h_ext; + union _kc_ethtool_flow_union m_u; + struct _kc_ethtool_flow_ext m_ext; + __u64 ring_cookie; + __u32 location; +}; +#define ethtool_rx_flow_spec _kc_ethtool_rx_flow_spec +#endif /* FLOW_EXT */ +#endif + +#define pci_disable_link_state_locked pci_disable_link_state + +#ifndef PCI_LTR_VALUE_MASK +#define PCI_LTR_VALUE_MASK 0x000003ff +#endif +#ifndef PCI_LTR_SCALE_MASK +#define PCI_LTR_SCALE_MASK 0x00001c00 +#endif +#ifndef PCI_LTR_SCALE_SHIFT +#define PCI_LTR_SCALE_SHIFT 10 +#endif + +#else /* < 2.6.40 */ +#define HAVE_ETHTOOL_SET_PHYS_ID +#endif /* < 2.6.40 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) ) +#define USE_LEGACY_PM_SUPPORT +#ifndef kfree_rcu +#define kfree_rcu(_ptr, _rcu_head) kfree(_ptr) +#endif /* kfree_rcu */ + +/* 20000base_blah_full Supported and Advertised Registers */ +#define SUPPORTED_20000baseMLD2_Full (1 << 21) +#define SUPPORTED_20000baseKR2_Full (1 << 22) +#define ADVERTISED_20000baseMLD2_Full (1 << 21) +#define ADVERTISED_20000baseKR2_Full (1 << 22) +#endif /* < 3.0.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0) ) +#ifndef __netdev_alloc_skb_ip_align +#define __netdev_alloc_skb_ip_align(d,l,_g) netdev_alloc_skb_ip_align(d,l) +#endif /* __netdev_alloc_skb_ip_align */ +#define dcb_ieee_setapp(dev, app) dcb_setapp(dev, app) +#define dcb_ieee_delapp(dev, app) 0 +#define dcb_ieee_getapp_mask(dev, app) (1 << app->priority) + +/* 1000BASE-T Control register */ +#define CTL1000_AS_MASTER 0x0800 +#define CTL1000_ENABLE_MASTER 0x1000 + +/* kernels less than 3.0.0 don't have this */ +#ifndef ETH_P_8021AD +#define ETH_P_8021AD 0x88A8 +#endif +#else /* < 3.1.0 */ +#ifndef HAVE_DCBNL_IEEE_DELAPP +#define HAVE_DCBNL_IEEE_DELAPP +#endif +#endif /* < 3.1.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) ) +#ifndef dma_zalloc_coherent +#define dma_zalloc_coherent(d, s, h, f) _kc_dma_zalloc_coherent(d, s, h, f) +static inline void *_kc_dma_zalloc_coherent(struct device *dev, size_t size, + dma_addr_t * dma_handle, gfp_t flag) +{ + void *ret = dma_alloc_coherent(dev, size, dma_handle, flag); + if (ret) + memset(ret, 0, size); + return ret; +} +#endif +#ifdef ETHTOOL_GRXRINGS +#define HAVE_ETHTOOL_GET_RXNFC_VOID_RULE_LOCS +#endif /* ETHTOOL_GRXRINGS */ + +#ifndef skb_frag_size +#define skb_frag_size(frag) _kc_skb_frag_size(frag) +static inline unsigned int _kc_skb_frag_size(const skb_frag_t * frag) +{ + return frag->size; +} +#endif /* skb_frag_size */ + +#ifndef skb_frag_size_sub +#define skb_frag_size_sub(frag, delta) _kc_skb_frag_size_sub(frag, delta) +static inline void _kc_skb_frag_size_sub(skb_frag_t * frag, int delta) +{ + frag->size -= delta; +} +#endif /* skb_frag_size_sub */ + +#ifndef skb_frag_page +#define skb_frag_page(frag) _kc_skb_frag_page(frag) +static inline struct page *_kc_skb_frag_page(const skb_frag_t * frag) +{ + return frag->page; +} +#endif /* skb_frag_page */ + +#ifndef skb_frag_address +#define skb_frag_address(frag) _kc_skb_frag_address(frag) +static inline void *_kc_skb_frag_address(const skb_frag_t * frag) +{ + return page_address(skb_frag_page(frag)) + frag->page_offset; +} +#endif /* skb_frag_address */ + +#ifndef skb_frag_dma_map +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ) +#include +#endif +#define skb_frag_dma_map(dev,frag,offset,size,dir) \ + _kc_skb_frag_dma_map(dev,frag,offset,size,dir) +static inline dma_addr_t _kc_skb_frag_dma_map(struct device *dev, + const skb_frag_t * frag, + size_t offset, size_t size, + enum dma_data_direction dir) +{ + return dma_map_page(dev, skb_frag_page(frag), + frag->page_offset + offset, size, dir); +} +#endif /* skb_frag_dma_map */ + +#ifndef __skb_frag_unref +#define __skb_frag_unref(frag) __kc_skb_frag_unref(frag) +static inline void __kc_skb_frag_unref(skb_frag_t * frag) +{ + put_page(skb_frag_page(frag)); +} +#endif /* __skb_frag_unref */ + +#ifndef SPEED_UNKNOWN +#define SPEED_UNKNOWN -1 +#endif +#ifndef DUPLEX_UNKNOWN +#define DUPLEX_UNKNOWN 0xff +#endif +#if ((RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,3)) ||\ + (SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(11,3,0))) +#ifndef HAVE_PCI_DEV_FLAGS_ASSIGNED +#define HAVE_PCI_DEV_FLAGS_ASSIGNED +#endif +#endif +#else /* < 3.2.0 */ +#ifndef HAVE_PCI_DEV_FLAGS_ASSIGNED +#define HAVE_PCI_DEV_FLAGS_ASSIGNED +#define HAVE_VF_SPOOFCHK_CONFIGURE +#endif +#ifndef HAVE_SKB_L4_RXHASH +#define HAVE_SKB_L4_RXHASH +#endif +#endif /* < 3.2.0 */ + +#if (RHEL_RELEASE_CODE && RHEL_RELEASE_CODE == RHEL_RELEASE_VERSION(6,2)) +#undef ixgbe_get_netdev_tc_txq +#define ixgbe_get_netdev_tc_txq(dev, tc) (&netdev_extended(dev)->qos_data.tc_to_txq[tc]) +#endif +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) ) +#if !(RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,5)) +typedef u32 netdev_features_t; +#endif +#undef PCI_EXP_TYPE_RC_EC +#define PCI_EXP_TYPE_RC_EC 0xa /* Root Complex Event Collector */ +#ifndef CONFIG_BQL +#define netdev_tx_completed_queue(_q, _p, _b) do {} while (0) +#define netdev_completed_queue(_n, _p, _b) do {} while (0) +#define netdev_tx_sent_queue(_q, _b) do {} while (0) +#define netdev_sent_queue(_n, _b) do {} while (0) +#define netdev_tx_reset_queue(_q) do {} while (0) +#define netdev_reset_queue(_n) do {} while (0) +#endif +#if (SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(11,3,0)) +#define HAVE_ETHTOOL_GRXFHINDIR_SIZE +#endif /* SLE_VERSION(11,3,0) */ +#else /* ! < 3.3.0 */ +#define HAVE_ETHTOOL_GRXFHINDIR_SIZE +#define HAVE_INT_NDO_VLAN_RX_ADD_VID +#ifdef ETHTOOL_SRXNTUPLE +#undef ETHTOOL_SRXNTUPLE +#endif +#endif /* < 3.3.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0) ) +#ifndef NETIF_F_RXFCS +#define NETIF_F_RXFCS 0 +#endif /* NETIF_F_RXFCS */ +#ifndef NETIF_F_RXALL +#define NETIF_F_RXALL 0 +#endif /* NETIF_F_RXALL */ + +#if !(SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(11,3,0)) +#define NUMTCS_RETURNS_U8 + +int _kc_simple_open(struct inode *inode, struct file *file); +#define simple_open _kc_simple_open +#endif /* !(SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(11,3,0)) */ + +#include +static inline void *_kc_kmap_atomic(struct page *page) +{ + return kmap_atomic(page, KM_SKB_DATA_SOFTIRQ); +} + +#undef kmap_atomic +#define kmap_atomic(page) _kc_kmap_atomic((page)) + +static inline void _kc_kunmap_atomic(void *addr) +{ + kunmap_atomic(addr, KM_SKB_DATA_SOFTIRQ); +} + +#undef kunmap_atomic +#define kunmap_atomic(addr) _kc_kunmap_atomic((addr)) + +#ifndef skb_add_rx_frag +#define skb_add_rx_frag _kc_skb_add_rx_frag +extern void _kc_skb_add_rx_frag(struct sk_buff *, int, struct page *, + int, int, unsigned int); +#endif +#ifdef NET_ADDR_RANDOM +#define eth_hw_addr_random(N) do { \ + eth_random_addr(N->dev_addr); \ + N->addr_assign_type |= NET_ADDR_RANDOM; \ + } while (0) +#else /* NET_ADDR_RANDOM */ +#define eth_hw_addr_random(N) eth_random_addr(N->dev_addr) +#endif /* NET_ADDR_RANDOM */ +#else /* < 3.4.0 */ +#include +#endif /* >= 3.4.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0) ) || \ + ( RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,4) ) +#if !defined(NO_PTP_SUPPORT) && IS_ENABLED(CONFIG_PTP_1588_CLOCK) +#define HAVE_PTP_1588_CLOCK +#endif /* !NO_PTP_SUPPORT && IS_ENABLED(CONFIG_PTP_1588_CLOCK) */ +#endif /* >= 3.0.0 || RHEL_RELEASE > 6.4 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) ) +#define skb_tx_timestamp(skb) do {} while (0) + +#ifndef ether_addr_equal +static inline bool __kc_ether_addr_equal(const u8 *addr1, const u8 *addr2) +{ + return !compare_ether_addr(addr1, addr2); +} + +#define ether_addr_equal(_addr1, _addr2) __kc_ether_addr_equal((_addr1),(_addr2)) +#endif + +#else +#define HAVE_FDB_OPS +#define HAVE_ETHTOOL_GET_TS_INFO +#endif /* < 3.5.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0) ) +#define PCI_EXP_LNKCAP2 44 /* Link Capability 2 */ + +#ifndef MDIO_EEE_100TX +#define MDIO_EEE_100TX 0x0002 /* 100TX EEE cap */ +#endif +#ifndef MDIO_EEE_1000T +#define MDIO_EEE_1000T 0x0004 /* 1000T EEE cap */ +#endif +#ifndef MDIO_EEE_10GT +#define MDIO_EEE_10GT 0x0008 /* 10GT EEE cap */ +#endif +#ifndef MDIO_EEE_1000KX +#define MDIO_EEE_1000KX 0x0010 /* 1000KX EEE cap */ +#endif +#ifndef MDIO_EEE_10GKX4 +#define MDIO_EEE_10GKX4 0x0020 /* 10G KX4 EEE cap */ +#endif +#ifndef MDIO_EEE_10GKR +#define MDIO_EEE_10GKR 0x0040 /* 10G KR EEE cap */ +#endif + +#ifndef eth_random_addr +#define eth_random_addr _kc_eth_random_addr +static inline void _kc_eth_random_addr(u8 *addr) +{ + get_random_bytes(addr, ETH_ALEN); + addr[0] &= 0xfe; /* clear multicast */ + addr[0] |= 0x02; /* set local assignment */ +} +#endif +#endif /* < 3.6.0 */ + +/******************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) ) +#ifndef ADVERTISED_40000baseKR4_Full +/* these defines were all added in one commit, so should be safe + * to trigger activiation on one define + */ +#define SUPPORTED_40000baseKR4_Full (1 << 23) +#define SUPPORTED_40000baseCR4_Full (1 << 24) +#define SUPPORTED_40000baseSR4_Full (1 << 25) +#define SUPPORTED_40000baseLR4_Full (1 << 26) +#define ADVERTISED_40000baseKR4_Full (1 << 23) +#define ADVERTISED_40000baseCR4_Full (1 << 24) +#define ADVERTISED_40000baseSR4_Full (1 << 25) +#define ADVERTISED_40000baseLR4_Full (1 << 26) +#endif + +#ifndef mmd_eee_cap_to_ethtool_sup_t +/** + * mmd_eee_cap_to_ethtool_sup_t + * @eee_cap: value of the MMD EEE Capability register + * + * A small helper function that translates MMD EEE Capability (3.20) bits + * to ethtool supported settings. + */ +static inline u32 __kc_mmd_eee_cap_to_ethtool_sup_t(u16 eee_cap) +{ + u32 supported = 0; + + if (eee_cap & MDIO_EEE_100TX) + supported |= SUPPORTED_100baseT_Full; + if (eee_cap & MDIO_EEE_1000T) + supported |= SUPPORTED_1000baseT_Full; + if (eee_cap & MDIO_EEE_10GT) + supported |= SUPPORTED_10000baseT_Full; + if (eee_cap & MDIO_EEE_1000KX) + supported |= SUPPORTED_1000baseKX_Full; + if (eee_cap & MDIO_EEE_10GKX4) + supported |= SUPPORTED_10000baseKX4_Full; + if (eee_cap & MDIO_EEE_10GKR) + supported |= SUPPORTED_10000baseKR_Full; + + return supported; +} + +#define mmd_eee_cap_to_ethtool_sup_t(eee_cap) \ + __kc_mmd_eee_cap_to_ethtool_sup_t(eee_cap) +#endif /* mmd_eee_cap_to_ethtool_sup_t */ + +#ifndef mmd_eee_adv_to_ethtool_adv_t +/** + * mmd_eee_adv_to_ethtool_adv_t + * @eee_adv: value of the MMD EEE Advertisement/Link Partner Ability registers + * + * A small helper function that translates the MMD EEE Advertisment (7.60) + * and MMD EEE Link Partner Ability (7.61) bits to ethtool advertisement + * settings. + */ +static inline u32 __kc_mmd_eee_adv_to_ethtool_adv_t(u16 eee_adv) +{ + u32 adv = 0; + + if (eee_adv & MDIO_EEE_100TX) + adv |= ADVERTISED_100baseT_Full; + if (eee_adv & MDIO_EEE_1000T) + adv |= ADVERTISED_1000baseT_Full; + if (eee_adv & MDIO_EEE_10GT) + adv |= ADVERTISED_10000baseT_Full; + if (eee_adv & MDIO_EEE_1000KX) + adv |= ADVERTISED_1000baseKX_Full; + if (eee_adv & MDIO_EEE_10GKX4) + adv |= ADVERTISED_10000baseKX4_Full; + if (eee_adv & MDIO_EEE_10GKR) + adv |= ADVERTISED_10000baseKR_Full; + + return adv; +} + +#define mmd_eee_adv_to_ethtool_adv_t(eee_adv) \ + __kc_mmd_eee_adv_to_ethtool_adv_t(eee_adv) +#endif /* mmd_eee_adv_to_ethtool_adv_t */ + +#ifndef ethtool_adv_to_mmd_eee_adv_t +/** + * ethtool_adv_to_mmd_eee_adv_t + * @adv: the ethtool advertisement settings + * + * A small helper function that translates ethtool advertisement settings + * to EEE advertisements for the MMD EEE Advertisement (7.60) and + * MMD EEE Link Partner Ability (7.61) registers. + */ +static inline u16 __kc_ethtool_adv_to_mmd_eee_adv_t(u32 adv) +{ + u16 reg = 0; + + if (adv & ADVERTISED_100baseT_Full) + reg |= MDIO_EEE_100TX; + if (adv & ADVERTISED_1000baseT_Full) + reg |= MDIO_EEE_1000T; + if (adv & ADVERTISED_10000baseT_Full) + reg |= MDIO_EEE_10GT; + if (adv & ADVERTISED_1000baseKX_Full) + reg |= MDIO_EEE_1000KX; + if (adv & ADVERTISED_10000baseKX4_Full) + reg |= MDIO_EEE_10GKX4; + if (adv & ADVERTISED_10000baseKR_Full) + reg |= MDIO_EEE_10GKR; + + return reg; +} + +#define ethtool_adv_to_mmd_eee_adv_t(adv) __kc_ethtool_adv_to_mmd_eee_adv_t(adv) +#endif /* ethtool_adv_to_mmd_eee_adv_t */ + +#ifndef pci_pcie_type +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) ) +static inline u8 pci_pcie_type(struct pci_dev *pdev) +{ + int pos; + u16 reg16; + + pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); + if (!pos) + BUG(); + pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, ®16); + return (reg16 & PCI_EXP_FLAGS_TYPE) >> 4; +} +#else /* < 2.6.24 */ +#define pci_pcie_type(x) (x)->pcie_type +#endif /* < 2.6.24 */ +#endif /* pci_pcie_type */ + +#if ( ! ( RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,4) ) ) && \ + ( ! ( SLE_VERSION_CODE >= SLE_VERSION(11,3,0) ) ) && \ + ( LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0) ) +#define ptp_clock_register(caps, args...) ptp_clock_register(caps) +#endif + +#ifndef pcie_capability_read_word +int __kc_pcie_capability_read_word(struct pci_dev *dev, int pos, u16 *val); +#define pcie_capability_read_word(d,p,v) __kc_pcie_capability_read_word(d,p,v) +#endif /* pcie_capability_read_word */ + +#ifndef pcie_capability_write_word +int __kc_pcie_capability_write_word(struct pci_dev *dev, int pos, u16 val); +#define pcie_capability_write_word(d,p,v) __kc_pcie_capability_write_word(d,p,v) +#endif /* pcie_capability_write_word */ + +#ifndef pcie_capability_clear_and_set_word +int __kc_pcie_capability_clear_and_set_word(struct pci_dev *dev, int pos, + u16 clear, u16 set); +#define pcie_capability_clear_and_set_word(d,p,c,s) \ + __kc_pcie_capability_clear_and_set_word(d,p,c,s) +#endif /* pcie_capability_clear_and_set_word */ + +#ifndef pcie_capability_clear_word +int __kc_pcie_capability_clear_word(struct pci_dev *dev, int pos, u16 clear); +#define pcie_capability_clear_word(d, p, c) \ + __kc_pcie_capability_clear_word(d, p, c) +#endif /* pcie_capability_clear_word */ + +#ifndef PCI_EXP_LNKSTA2 +#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ +#endif + +#if (SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(11,3,0)) +#define USE_CONST_DEV_UC_CHAR +#endif + +#else /* >= 3.7.0 */ +#define HAVE_CONST_STRUCT_PCI_ERROR_HANDLERS +#define USE_CONST_DEV_UC_CHAR +#endif /* >= 3.7.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0) ) +#ifndef pci_sriov_set_totalvfs +static inline int __kc_pci_sriov_set_totalvfs(struct pci_dev __always_unused + *dev, u16 __always_unused numvfs) +{ + return 0; +} + +#define pci_sriov_set_totalvfs(a, b) __kc_pci_sriov_set_totalvfs((a), (b)) +#endif +#ifndef PCI_EXP_LNKCTL_ASPM_L0S +#define PCI_EXP_LNKCTL_ASPM_L0S 0x01 /* L0s Enable */ +#endif +#ifndef PCI_EXP_LNKCTL_ASPM_L1 +#define PCI_EXP_LNKCTL_ASPM_L1 0x02 /* L1 Enable */ +#endif +#define HAVE_CONFIG_HOTPLUG +/* Reserved Ethernet Addresses per IEEE 802.1Q */ +static const u8 eth_reserved_addr_base[ETH_ALEN] __aligned(2) = { +0x01, 0x80, 0xc2, 0x00, 0x00, 0x00}; + +#ifndef is_link_local_ether_addr +static inline bool __kc_is_link_local_ether_addr(const u8 *addr) +{ + __be16 *a = (__be16 *) addr; + static const __be16 *b = (const __be16 *)eth_reserved_addr_base; + static const __be16 m = cpu_to_be16(0xfff0); + + return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | ((a[2] ^ b[2]) & m)) == 0; +} + +#define is_link_local_ether_addr(addr) __kc_is_link_local_ether_addr(addr) +#endif /* is_link_local_ether_addr */ +#else /* >= 3.8.0 */ +#ifndef __devinit +#define __devinit +#endif + +#ifndef __devinitdata +#define __devinitdata +#endif + +#ifndef __devinitconst +#define __devinitconst +#endif + +#ifndef __devexit +#define __devexit +#endif + +#ifndef __devexit_p +#define __devexit_p +#endif + +#ifndef HAVE_ENCAP_CSUM_OFFLOAD +#define HAVE_ENCAP_CSUM_OFFLOAD +#endif + +#ifndef HAVE_SRIOV_CONFIGURE +#define HAVE_SRIOV_CONFIGURE +#endif + +#define HAVE_BRIDGE_ATTRIBS +#ifndef BRIDGE_MODE_VEB +#define BRIDGE_MODE_VEB 0 /* Default loopback mode */ +#endif /* BRIDGE_MODE_VEB */ +#ifndef BRIDGE_MODE_VEPA +#define BRIDGE_MODE_VEPA 1 /* 802.1Qbg defined VEPA mode */ +#endif /* BRIDGE_MODE_VEPA */ +#endif /* >= 3.8.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0) ) + +#undef hlist_entry +#define hlist_entry(ptr, type, member) container_of(ptr,type,member) + +#undef hlist_entry_safe +#define hlist_entry_safe(ptr, type, member) \ + (ptr) ? hlist_entry(ptr, type, member) : NULL + +#undef hlist_for_each_entry +#define hlist_for_each_entry(pos, head, member) \ + for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member); \ + pos; \ + pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) + +#undef hlist_for_each_entry_safe +#define hlist_for_each_entry_safe(pos, n, head, member) \ + for (pos = hlist_entry_safe((head)->first, typeof(*pos), member); \ + pos && ({ n = pos->member.next; 1; }); \ + pos = hlist_entry_safe(n, typeof(*pos), member)) + +#else +#define HAVE_BRIDGE_FILTER +#define HAVE_FDB_DEL_NLATTR +#endif /* < 3.9.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) ) +#ifndef NAPI_POLL_WEIGHT +#define NAPI_POLL_WEIGHT 64 +#endif + +#ifndef list_first_entry_or_null +#define list_first_entry_or_null(ptr, type, member) \ + (!list_empty(ptr) ? list_first_entry(ptr, type, member) : NULL) +#endif + +#ifndef VLAN_TX_COOKIE_MAGIC +static inline struct sk_buff *__kc__vlan_hwaccel_put_tag(struct sk_buff *skb, + u16 vlan_tci) +{ +#ifdef VLAN_TAG_PRESENT + vlan_tci |= VLAN_TAG_PRESENT; +#endif + skb->vlan_tci = vlan_tci; + return skb; +} + +#define __vlan_hwaccel_put_tag(skb, vlan_proto, vlan_tci) \ + __kc__vlan_hwaccel_put_tag(skb, vlan_tci) +#endif + +#ifdef HAVE_FDB_OPS +#ifdef USE_CONST_DEV_UC_CHAR +extern int __kc_ndo_dflt_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], + struct net_device *dev, + const unsigned char *addr, u16 flags); +#ifdef HAVE_FDB_DEL_NLATTR +extern int __kc_ndo_dflt_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], + struct net_device *dev, + const unsigned char *addr); +#else +extern int __kc_ndo_dflt_fdb_del(struct ndmsg *ndm, struct net_device *dev, + const unsigned char *addr); +#endif +#else +extern int __kc_ndo_dflt_fdb_add(struct ndmsg *ndm, struct net_device *dev, + unsigned char *addr, u16 flags); +extern int __kc_ndo_dflt_fdb_del(struct ndmsg *ndm, struct net_device *dev, + unsigned char *addr); +#endif +#define ndo_dflt_fdb_add __kc_ndo_dflt_fdb_add +#define ndo_dflt_fdb_del __kc_ndo_dflt_fdb_del +#endif /* HAVE_FDB_OPS */ + +#ifndef PCI_DEVID +#define PCI_DEVID(bus, devfn) ((((u16)(bus)) << 8) | (devfn)) +#endif +#else /* >= 3.10.0 */ +#define HAVE_ENCAP_TSO_OFFLOAD +#define USE_DEFAULT_FDB_DEL_DUMP +#endif /* >= 3.10.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0) ) +#else /* >= 3.11.0 */ +#define HAVE_NDO_SET_VF_LINK_STATE +#endif /* >= 3.11.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0) ) +#else /* >= 3.12.0 */ +#if ( SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(12,0,0)) +#define HAVE_NDO_SELECT_QUEUE_ACCEL_FALLBACK +#endif +#define HAVE_VXLAN_RX_OFFLOAD +#define HAVE_NDO_GET_PHYS_PORT_ID +#endif /* >= 3.12.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0) ) +#define dma_set_mask_and_coherent(_p, _m) __kc_dma_set_mask_and_coherent(_p, _m) +extern int __kc_dma_set_mask_and_coherent(struct device *dev, u64 mask); +#else /* >= 3.13.0 */ +#define HAVE_VXLAN_CHECKS +#define HAVE_NDO_SELECT_QUEUE_ACCEL +#endif + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) ) + +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7,0)) && \ + !(SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(12,0,0))) +/* it isn't expected that this would be a #define unless we made it so */ +#ifndef skb_set_hash + +#define PKT_HASH_TYPE_NONE 0 +#define PKT_HASH_TYPE_L2 1 +#define PKT_HASH_TYPE_L3 2 +#define PKT_HASH_TYPE_L4 3 + +#define skb_set_hash __kc_skb_set_hash +static inline void __kc_skb_set_hash(struct sk_buff __maybe_unused * skb, + u32 __maybe_unused hash, + int __maybe_unused type) +{ +#ifdef HAVE_SKB_L4_RXHASH + skb->l4_rxhash = (type == PKT_HASH_TYPE_L4); +#endif +#ifdef NETIF_F_RXHASH + skb->rxhash = hash; +#endif +} +#endif /* !skb_set_hash */ +#endif /* !(RHEL_RELEASE_CODE&&RHEL_RELEASE_CODE>=RHEL_RELEASE_VERSION(7,0)) */ + +#ifndef pci_enable_msix_range +extern int __kc_pci_enable_msix_range(struct pci_dev *dev, + struct msix_entry *entries, + int minvec, int maxvec); +#define pci_enable_msix_range __kc_pci_enable_msix_range +#endif + +#ifndef ether_addr_copy +#define ether_addr_copy __kc_ether_addr_copy +static inline void __kc_ether_addr_copy(u8 *dst, const u8 *src) +{ +#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) + *(u32 *)dst = *(const u32 *)src; + *(u16 *)(dst + 4) = *(const u16 *)(src + 4); +#else + u16 *a = (u16 *)dst; + const u16 *b = (const u16 *)src; + + a[0] = b[0]; + a[1] = b[1]; + a[2] = b[2]; +#endif +} +#endif /* ether_addr_copy */ + +#else /* >= 3.14.0 */ + +/* for ndo_dfwd_ ops add_station, del_station and _start_xmit */ +#ifndef HAVE_NDO_DFWD_OPS +#define HAVE_NDO_DFWD_OPS +#endif +#define HAVE_NDO_SELECT_QUEUE_ACCEL_FALLBACK +#endif /* 3.14.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0) ) +#define u64_stats_fetch_begin_irq u64_stats_fetch_begin_bh +#define u64_stats_fetch_retry_irq u64_stats_fetch_retry_bh +#endif /* 3.15.0 */ + +/*****************************************************************************/ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0) ) +#ifndef __dev_uc_sync +#ifdef HAVE_SET_RX_MODE +#ifdef NETDEV_HW_ADDR_T_UNICAST +int __kc_hw_addr_sync_dev(struct netdev_hw_addr_list *list, + struct net_device *dev, + int (*sync) (struct net_device *, + const unsigned char *), + int (*unsync) (struct net_device *, + const unsigned char *)); +void __kc_hw_addr_unsync_dev(struct netdev_hw_addr_list *list, + struct net_device *dev, + int (*unsync) (struct net_device *, + const unsigned char *)); +#endif +#ifndef NETDEV_HW_ADDR_T_MULTICAST +int __kc_dev_addr_sync_dev(struct dev_addr_list **list, int *count, + struct net_device *dev, + int (*sync) (struct net_device *, + const unsigned char *), + int (*unsync) (struct net_device *, + const unsigned char *)); +void __kc_dev_addr_unsync_dev(struct dev_addr_list **list, int *count, + struct net_device *dev, + int (*unsync) (struct net_device *, + const unsigned char *)); +#endif +#endif /* HAVE_SET_RX_MODE */ + +static inline int __kc_dev_uc_sync(struct net_device __maybe_unused * dev, + int __maybe_unused(*sync) (struct net_device + *, + const unsigned + char *), + int __maybe_unused(*unsync) (struct + net_device *, + const unsigned + char *)) +{ +#ifdef NETDEV_HW_ADDR_T_UNICAST + return __kc_hw_addr_sync_dev(&dev->uc, dev, sync, unsync); +#elif defined(HAVE_SET_RX_MODE) + return __kc_dev_addr_sync_dev(&dev->uc_list, &dev->uc_count, + dev, sync, unsync); +#else + return 0; +#endif +} + +#define __dev_uc_sync __kc_dev_uc_sync + +static inline void __kc_dev_uc_unsync(struct net_device __maybe_unused * dev, + int __maybe_unused(*unsync) (struct + net_device *, + const + unsigned char + *)) +{ +#ifdef HAVE_SET_RX_MODE +#ifdef NETDEV_HW_ADDR_T_UNICAST + __kc_hw_addr_unsync_dev(&dev->uc, dev, unsync); +#else /* NETDEV_HW_ADDR_T_MULTICAST */ + __kc_dev_addr_unsync_dev(&dev->uc_list, &dev->uc_count, dev, unsync); +#endif /* NETDEV_HW_ADDR_T_UNICAST */ +#endif /* HAVE_SET_RX_MODE */ +} + +#define __dev_uc_unsync __kc_dev_uc_unsync + +static inline int __kc_dev_mc_sync(struct net_device __maybe_unused * dev, + int __maybe_unused(*sync) (struct net_device + *, + const unsigned + char *), + int __maybe_unused(*unsync) (struct + net_device *, + const unsigned + char *)) +{ +#ifdef NETDEV_HW_ADDR_T_MULTICAST + return __kc_hw_addr_sync_dev(&dev->mc, dev, sync, unsync); +#elif defined(HAVE_SET_RX_MODE) + return __kc_dev_addr_sync_dev(&dev->mc_list, &dev->mc_count, + dev, sync, unsync); +#else + return 0; +#endif + +} + +#define __dev_mc_sync __kc_dev_mc_sync + +static inline void __kc_dev_mc_unsync(struct net_device __maybe_unused * dev, + int __maybe_unused(*unsync) (struct + net_device *, + const + unsigned char + *)) +{ +#ifdef HAVE_SET_RX_MODE +#ifdef NETDEV_HW_ADDR_T_MULTICAST + __kc_hw_addr_unsync_dev(&dev->mc, dev, unsync); +#else /* NETDEV_HW_ADDR_T_MULTICAST */ + __kc_dev_addr_unsync_dev(&dev->mc_list, &dev->mc_count, dev, unsync); +#endif /* NETDEV_HW_ADDR_T_MULTICAST */ +#endif /* HAVE_SET_RX_MODE */ +} + +#define __dev_mc_unsync __kc_dev_mc_unsync +#endif /* __dev_uc_sync */ +#else +#define HAVE_NDO_SET_VF_MIN_MAX_TX_RATE +#define HAVE_DCBNL_OPS_SETAPP_RETURN_INT +#endif /* 3.16.0 */ + +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0) ) +#define hlist_add_behind(_a, _b) hlist_add_after(_b, _a) +#endif #endif /* _KCOMPAT_H_ */ diff --git a/vmkdrivers/src_9/drivers/net/e1000e/kcompat_ethtool.c b/vmkdrivers/src_9/drivers/net/e1000e/kcompat_ethtool.c index d3c2a2a3f4538fa703c85e092e258b8f6bf29dc0..e05c3fa4fbca6d4b93edfee7d1cc0ad26dcbf011 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/kcompat_ethtool.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/kcompat_ethtool.c @@ -1,30 +1,24 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ /* * net/core/ethtool.c - Ethtool ioctl handler @@ -62,49 +56,48 @@ #undef ADVERTISED_10000baseT_Full #define ADVERTISED_10000baseT_Full (1 << 12) #undef SPEED_10000 -#define SPEED_10000 10000 #undef ethtool_ops #define ethtool_ops _kc_ethtool_ops struct _kc_ethtool_ops { - int (*get_settings)(struct net_device *, struct ethtool_cmd *); - int (*set_settings)(struct net_device *, struct ethtool_cmd *); - void (*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *); - int (*get_regs_len)(struct net_device *); - void (*get_regs)(struct net_device *, struct ethtool_regs *, void *); - void (*get_wol)(struct net_device *, struct ethtool_wolinfo *); - int (*set_wol)(struct net_device *, struct ethtool_wolinfo *); - u32 (*get_msglevel)(struct net_device *); - void (*set_msglevel)(struct net_device *, u32); - int (*nway_reset)(struct net_device *); - u32 (*get_link)(struct net_device *); - int (*get_eeprom_len)(struct net_device *); - int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); - int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); - int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *); - int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *); - void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *); - int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *); - void (*get_pauseparam)(struct net_device *, - struct ethtool_pauseparam*); - int (*set_pauseparam)(struct net_device *, - struct ethtool_pauseparam*); - u32 (*get_rx_csum)(struct net_device *); - int (*set_rx_csum)(struct net_device *, u32); - u32 (*get_tx_csum)(struct net_device *); - int (*set_tx_csum)(struct net_device *, u32); - u32 (*get_sg)(struct net_device *); - int (*set_sg)(struct net_device *, u32); - u32 (*get_tso)(struct net_device *); - int (*set_tso)(struct net_device *, u32); - int (*self_test_count)(struct net_device *); - void (*self_test)(struct net_device *, struct ethtool_test *, u64 *); - void (*get_strings)(struct net_device *, u32 stringset, u8 *); - int (*phys_id)(struct net_device *, u32); - int (*get_stats_count)(struct net_device *); - void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, - u64 *); + int (*get_settings) (struct net_device *, struct ethtool_cmd *); + int (*set_settings) (struct net_device *, struct ethtool_cmd *); + void (*get_drvinfo) (struct net_device *, struct ethtool_drvinfo *); + int (*get_regs_len) (struct net_device *); + void (*get_regs) (struct net_device *, struct ethtool_regs *, void *); + void (*get_wol) (struct net_device *, struct ethtool_wolinfo *); + int (*set_wol) (struct net_device *, struct ethtool_wolinfo *); + u32 (*get_msglevel) (struct net_device *); + void (*set_msglevel) (struct net_device *, u32); + int (*nway_reset) (struct net_device *); + u32 (*get_link) (struct net_device *); + int (*get_eeprom_len) (struct net_device *); + int (*get_eeprom) (struct net_device *, struct ethtool_eeprom *, u8 *); + int (*set_eeprom) (struct net_device *, struct ethtool_eeprom *, u8 *); + int (*get_coalesce) (struct net_device *, struct ethtool_coalesce *); + int (*set_coalesce) (struct net_device *, struct ethtool_coalesce *); + void (*get_ringparam) (struct net_device *, struct ethtool_ringparam *); + int (*set_ringparam) (struct net_device *, struct ethtool_ringparam *); + void (*get_pauseparam) (struct net_device *, + struct ethtool_pauseparam *); + int (*set_pauseparam) (struct net_device *, + struct ethtool_pauseparam *); + u32 (*get_rx_csum) (struct net_device *); + int (*set_rx_csum) (struct net_device *, u32); + u32 (*get_tx_csum) (struct net_device *); + int (*set_tx_csum) (struct net_device *, u32); + u32 (*get_sg) (struct net_device *); + int (*set_sg) (struct net_device *, u32); + u32 (*get_tso) (struct net_device *); + int (*set_tso) (struct net_device *, u32); + int (*self_test_count) (struct net_device *); + void (*self_test) (struct net_device *, struct ethtool_test *, u64 *); + void (*get_strings) (struct net_device *, u32 stringset, u8 *); + int (*phys_id) (struct net_device *, u32); + int (*get_stats_count) (struct net_device *); + void (*get_ethtool_stats) (struct net_device *, struct ethtool_stats *, + u64 *); } *ethtool_ops = NULL; #undef SET_ETHTOOL_OPS @@ -783,7 +776,7 @@ out: int ethtool_ioctl(struct ifreq *ifr) { struct net_device *dev = __dev_get_by_name(ifr->ifr_name); - void *useraddr = (void *) ifr->ifr_data; + void *useraddr = (void *)ifr->ifr_data; u32 ethcmd; /* @@ -796,7 +789,7 @@ int ethtool_ioctl(struct ifreq *ifr) if (!dev || !netif_device_present(dev)) return -ENODEV; - if (copy_from_user(ðcmd, useraddr, sizeof (ethcmd))) + if (copy_from_user(ðcmd, useraddr, sizeof(ethcmd))) return -EFAULT; switch (ethcmd) { @@ -874,12 +867,13 @@ struct _kc_mii_if_info { int phy_id_mask; int reg_num_mask; - unsigned int full_duplex : 1; /* is full duplex? */ - unsigned int force_media : 1; /* is autoneg. disabled? */ + unsigned int full_duplex:1; /* is full duplex? */ + unsigned int force_media:1; /* is autoneg. disabled? */ struct net_device *dev; - int (*mdio_read) (struct net_device *dev, int phy_id, int location); - void (*mdio_write) (struct net_device *dev, int phy_id, int location, int val); + int (*mdio_read) (struct net_device * dev, int phy_id, int location); + void (*mdio_write) (struct net_device * dev, int phy_id, int location, + int val); }; struct ethtool_cmd; @@ -895,19 +889,20 @@ struct mii_ioctl_data; #define mii_ethtool_sset _kc_mii_ethtool_sset #undef mii_check_link #define mii_check_link _kc_mii_check_link -#undef generic_mii_ioctl -#define generic_mii_ioctl _kc_generic_mii_ioctl -extern int _kc_mii_link_ok (struct mii_if_info *mii); -extern int _kc_mii_nway_restart (struct mii_if_info *mii); +extern int _kc_mii_link_ok(struct mii_if_info *mii); +extern int _kc_mii_nway_restart(struct mii_if_info *mii); extern int _kc_mii_ethtool_gset(struct mii_if_info *mii, - struct ethtool_cmd *ecmd); + struct ethtool_cmd *ecmd); extern int _kc_mii_ethtool_sset(struct mii_if_info *mii, - struct ethtool_cmd *ecmd); -extern void _kc_mii_check_link (struct mii_if_info *mii); + struct ethtool_cmd *ecmd); +extern void _kc_mii_check_link(struct mii_if_info *mii); +#if ( LINUX_VERSION_CODE > KERNEL_VERSION(2,4,6) ) +#undef generic_mii_ioctl +#define generic_mii_ioctl _kc_generic_mii_ioctl extern int _kc_generic_mii_ioctl(struct mii_if_info *mii_if, - struct mii_ioctl_data *mii_data, int cmd, - unsigned int *duplex_changed); - + struct mii_ioctl_data *mii_data, int cmd, + unsigned int *duplex_changed); +#endif /* > 2.4.6 */ struct _kc_pci_dev_ext { struct pci_dev *dev; @@ -920,7 +915,6 @@ struct _kc_net_dev_ext { unsigned int carrier; }; - /**************************************/ /* mii support */ @@ -976,7 +970,8 @@ int _kc_mii_ethtool_gset(struct mii_if_info *mii, struct ethtool_cmd *ecmd) ecmd->autoneg = AUTONEG_DISABLE; ecmd->speed = (bmcr & BMCR_SPEED100) ? SPEED_100 : SPEED_10; - ecmd->duplex = (bmcr & BMCR_FULLDPLX) ? DUPLEX_FULL : DUPLEX_HALF; + ecmd->duplex = + (bmcr & BMCR_FULLDPLX) ? DUPLEX_FULL : DUPLEX_HALF; } /* ignore maxtxpkt, maxrxpkt for now */ @@ -1055,7 +1050,7 @@ int _kc_mii_ethtool_sset(struct mii_if_info *mii, struct ethtool_cmd *ecmd) return 0; } -int _kc_mii_link_ok (struct mii_if_info *mii) +int _kc_mii_link_ok(struct mii_if_info *mii) { /* first, a dummy read, needed to latch some MII phys */ mii->mdio_read(mii->dev, mii->phy_id, MII_BMSR); @@ -1064,7 +1059,7 @@ int _kc_mii_link_ok (struct mii_if_info *mii) return 0; } -int _kc_mii_nway_restart (struct mii_if_info *mii) +int _kc_mii_nway_restart(struct mii_if_info *mii) { int bmcr; int r = -EINVAL; @@ -1081,7 +1076,7 @@ int _kc_mii_nway_restart (struct mii_if_info *mii) return r; } -void _kc_mii_check_link (struct mii_if_info *mii) +void _kc_mii_check_link(struct mii_if_info *mii) { int cur_link = mii_link_ok(mii); int prev_link = netif_carrier_ok(mii->dev); @@ -1092,9 +1087,10 @@ void _kc_mii_check_link (struct mii_if_info *mii) netif_carrier_off(mii->dev); } +#if ( LINUX_VERSION_CODE > KERNEL_VERSION(2,4,6) ) int _kc_generic_mii_ioctl(struct mii_if_info *mii_if, - struct mii_ioctl_data *mii_data, int cmd, - unsigned int *duplex_chg_out) + struct mii_ioctl_data *mii_data, int cmd, + unsigned int *duplex_chg_out) { int rc = 0; unsigned int duplex_changed = 0; @@ -1105,56 +1101,60 @@ int _kc_generic_mii_ioctl(struct mii_if_info *mii_if, mii_data->phy_id &= mii_if->phy_id_mask; mii_data->reg_num &= mii_if->reg_num_mask; - switch(cmd) { + switch (cmd) { case SIOCDEVPRIVATE: /* binary compat, remove in 2.5 */ case SIOCGMIIPHY: mii_data->phy_id = mii_if->phy_id; /* fall through */ - case SIOCDEVPRIVATE + 1:/* binary compat, remove in 2.5 */ + case SIOCDEVPRIVATE + 1: /* binary compat, remove in 2.5 */ case SIOCGMIIREG: mii_data->val_out = - mii_if->mdio_read(mii_if->dev, mii_data->phy_id, - mii_data->reg_num); + mii_if->mdio_read(mii_if->dev, mii_data->phy_id, + mii_data->reg_num); break; - case SIOCDEVPRIVATE + 2:/* binary compat, remove in 2.5 */ - case SIOCSMIIREG: { - u16 val = mii_data->val_in; - - if (!capable(CAP_NET_ADMIN)) - return -EPERM; - - if (mii_data->phy_id == mii_if->phy_id) { - switch(mii_data->reg_num) { - case MII_BMCR: { - unsigned int new_duplex = 0; - if (val & (BMCR_RESET|BMCR_ANENABLE)) - mii_if->force_media = 0; - else - mii_if->force_media = 1; - if (mii_if->force_media && - (val & BMCR_FULLDPLX)) - new_duplex = 1; - if (mii_if->full_duplex != new_duplex) { - duplex_changed = 1; - mii_if->full_duplex = new_duplex; + case SIOCDEVPRIVATE + 2: /* binary compat, remove in 2.5 */ + case SIOCSMIIREG:{ + u16 val = mii_data->val_in; + + if (!capable(CAP_NET_ADMIN)) + return -EPERM; + + if (mii_data->phy_id == mii_if->phy_id) { + switch (mii_data->reg_num) { + case MII_BMCR:{ + unsigned int new_duplex = 0; + if (val & + (BMCR_RESET | + BMCR_ANENABLE)) + mii_if->force_media = 0; + else + mii_if->force_media = 1; + if (mii_if->force_media && + (val & BMCR_FULLDPLX)) + new_duplex = 1; + if (mii_if->full_duplex != + new_duplex) { + duplex_changed = 1; + mii_if->full_duplex = + new_duplex; + } + break; + } + case MII_ADVERTISE: + mii_if->advertising = val; + break; + default: + /* do nothing */ + break; } - break; } - case MII_ADVERTISE: - mii_if->advertising = val; - break; - default: - /* do nothing */ - break; - } - } - mii_if->mdio_write(mii_if->dev, mii_data->phy_id, - mii_data->reg_num, val); - break; - } + mii_if->mdio_write(mii_if->dev, mii_data->phy_id, + mii_data->reg_num, val); + break; + } default: rc = -EOPNOTSUPP; @@ -1166,4 +1166,4 @@ int _kc_generic_mii_ioctl(struct mii_if_info *mii_if, return rc; } - +#endif /* > 2.4.6 */ diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_mac.c b/vmkdrivers/src_9/drivers/net/e1000e/mac.c similarity index 69% rename from vmkdrivers/src_9/drivers/net/e1000e/e1000_mac.c rename to vmkdrivers/src_9/drivers/net/e1000e/mac.c index 5620f2bbe2ace28896efe8c5ffb5cb17657f6c49..a7c3b2b4eadf92f7b4127bd15da747d3c714609c 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_mac.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/mac.c @@ -1,64 +1,27 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ #include "e1000.h" -static u32 e1000_hash_mc_addr_generic(struct e1000_hw *hw, u8 *mc_addr); -static s32 e1000_set_default_fc_generic(struct e1000_hw *hw); -static s32 e1000_commit_fc_settings_generic(struct e1000_hw *hw); -static s32 e1000_poll_fiber_serdes_link_generic(struct e1000_hw *hw); -static s32 e1000_validate_mdi_setting_generic(struct e1000_hw *hw); -static void e1000_set_lan_id_multi_port_pcie(struct e1000_hw *hw); - -/** - * e1000_init_mac_ops_generic - Initialize MAC function pointers - * @hw: pointer to the HW structure - * - * Setups up the function pointers to no-op functions - **/ -void e1000_init_mac_ops_generic(struct e1000_hw *hw) -{ - struct e1000_mac_info *mac = &hw->mac; - /* General Setup */ - mac->ops.set_lan_id = e1000_set_lan_id_multi_port_pcie; - mac->ops.read_mac_addr = e1000e_read_mac_addr_generic; - mac->ops.config_collision_dist = e1000e_config_collision_dist; - /* LINK */ - mac->ops.wait_autoneg = e1000_wait_autoneg; - /* Management */ - mac->ops.mng_host_if_write = e1000_mng_host_if_write_generic; - mac->ops.mng_write_cmd_header = e1000_mng_write_cmd_header_generic; - mac->ops.mng_enable_host_if = e1000_mng_enable_host_if_generic; - /* VLAN, MC, etc. */ - mac->ops.rar_set = e1000e_rar_set; - mac->ops.validate_mdi_setting = e1000_validate_mdi_setting_generic; -} - /** * e1000e_get_bus_info_pcie - Get PCIe bus information * @hw: pointer to the HW structure @@ -71,26 +34,24 @@ s32 e1000e_get_bus_info_pcie(struct e1000_hw *hw) { struct e1000_mac_info *mac = &hw->mac; struct e1000_bus_info *bus = &hw->bus; + struct e1000_adapter *adapter = hw->adapter; + u16 pcie_link_status, cap_offset; - s32 ret_val; - u16 pcie_link_status; - - bus->type = e1000_bus_type_pci_express; - bus->speed = e1000_bus_speed_2500; - - ret_val = e1000_read_pcie_cap_reg(hw, - PCIE_LINK_STATUS, - &pcie_link_status); - if (ret_val) + cap_offset = pci_find_capability(adapter->pdev, PCI_CAP_ID_EXP); + if (!cap_offset) { bus->width = e1000_bus_width_unknown; - else + } else { + pci_read_config_word(adapter->pdev, + cap_offset + PCIE_LINK_STATUS, + &pcie_link_status); bus->width = (enum e1000_bus_width)((pcie_link_status & - PCIE_LINK_WIDTH_MASK) >> - PCIE_LINK_WIDTH_SHIFT); + PCIE_LINK_WIDTH_MASK) >> + PCIE_LINK_WIDTH_SHIFT); + } mac->ops.set_lan_id(hw); - return E1000_SUCCESS; + return 0; } /** @@ -101,13 +62,12 @@ s32 e1000e_get_bus_info_pcie(struct e1000_hw *hw) * Determines the LAN function id by reading memory-mapped registers * and swaps the port value if requested. **/ -static void e1000_set_lan_id_multi_port_pcie(struct e1000_hw *hw) +void e1000_set_lan_id_multi_port_pcie(struct e1000_hw *hw) { struct e1000_bus_info *bus = &hw->bus; u32 reg; - /* - * The status register reports the correct function number + /* The status register reports the correct function number * for the device regardless of function swap state. */ reg = er32(STATUS); @@ -128,13 +88,13 @@ void e1000_set_lan_id_single_port(struct e1000_hw *hw) } /** - * e1000e_clear_vfta_generic - Clear VLAN filter table + * e1000_clear_vfta_generic - Clear VLAN filter table * @hw: pointer to the HW structure * * Clears the register array which contains the VLAN filter table by * setting all the values to 0. **/ -void e1000e_clear_vfta_generic(struct e1000_hw *hw) +void e1000_clear_vfta_generic(struct e1000_hw *hw) { u32 offset; @@ -145,7 +105,7 @@ void e1000e_clear_vfta_generic(struct e1000_hw *hw) } /** - * e1000e_write_vfta_generic - Write value to VLAN filter table + * e1000_write_vfta_generic - Write value to VLAN filter table * @hw: pointer to the HW structure * @offset: register offset in VLAN filter table * @value: register value written to VLAN filter table @@ -153,7 +113,7 @@ void e1000e_clear_vfta_generic(struct e1000_hw *hw) * Writes value at the given offset in the register array which stores * the VLAN filter table. **/ -void e1000e_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value) +void e1000_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value) { E1000_WRITE_REG_ARRAY(hw, E1000_VFTA, offset, value); e1e_flush(); @@ -164,14 +124,14 @@ void e1000e_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value) * @hw: pointer to the HW structure * @rar_count: receive address registers * - * Setups the receive address registers by setting the base receive address + * Setup the receive address registers by setting the base receive address * register to the devices MAC address and clearing all the other receive * address registers to 0. **/ void e1000e_init_rx_addrs(struct e1000_hw *hw, u16 rar_count) { u32 i; - u8 mac_addr[ETH_ADDR_LEN] = {0}; + u8 mac_addr[ETH_ALEN] = { 0 }; /* Setup the receive address */ e_dbg("Programming MAC Address into RAR[0]\n"); @@ -179,7 +139,7 @@ void e1000e_init_rx_addrs(struct e1000_hw *hw, u16 rar_count) hw->mac.ops.rar_set(hw, hw->mac.addr, 0); /* Zero out the other (rar_entry_count - 1) receive addresses */ - e_dbg("Clearing RAR[1-%u]\n", rar_count-1); + e_dbg("Clearing RAR[1-%u]\n", rar_count - 1); for (i = 1; i < rar_count; i++) hw->mac.ops.rar_set(hw, mac_addr, i); } @@ -199,45 +159,38 @@ void e1000e_init_rx_addrs(struct e1000_hw *hw, u16 rar_count) s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw) { u32 i; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 offset, nvm_alt_mac_addr_offset, nvm_data; - u8 alt_mac_addr[ETH_ADDR_LEN]; + u8 alt_mac_addr[ETH_ALEN]; ret_val = e1000_read_nvm(hw, NVM_COMPAT, 1, &nvm_data); if (ret_val) - goto out; - - /* Check for LOM (vs. NIC) or one of two valid mezzanine cards */ - if (!((nvm_data & NVM_COMPAT_LOM) || - (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_DUAL) || -#if defined(__VMKLNX__) - (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD) || - (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES))) -#else /* !defined(__VMKLNX__) */ - (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD))) -#endif /* defined(__VMKLNX__) */ - goto out; + return ret_val; + + /* not supported on 82573 */ + if (hw->mac.type == e1000_82573) + return 0; ret_val = e1000_read_nvm(hw, NVM_ALT_MAC_ADDR_PTR, 1, - &nvm_alt_mac_addr_offset); + &nvm_alt_mac_addr_offset); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } - if (nvm_alt_mac_addr_offset == 0xFFFF) { + if ((nvm_alt_mac_addr_offset == 0xFFFF) || + (nvm_alt_mac_addr_offset == 0x0000)) /* There is no Alternate MAC Address */ - goto out; - } + return 0; if (hw->bus.func == E1000_FUNC_1) nvm_alt_mac_addr_offset += E1000_ALT_MAC_ADDRESS_OFFSET_LAN1; - for (i = 0; i < ETH_ADDR_LEN; i += 2) { + for (i = 0; i < ETH_ALEN; i += 2) { offset = nvm_alt_mac_addr_offset + (i >> 1); ret_val = e1000_read_nvm(hw, offset, 1, &nvm_data); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } alt_mac_addr[i] = (u8)(nvm_data & 0xFF); @@ -245,24 +198,27 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw) } /* if multicast bit is set, the alternate address will not be used */ - if (alt_mac_addr[0] & 0x01) { + if (is_multicast_ether_addr(alt_mac_addr)) { e_dbg("Ignoring Alternate Mac Address with MC bit set\n"); - goto out; + return 0; } - /* - * We have a valid alternate MAC address, and we want to treat it the + /* We have a valid alternate MAC address, and we want to treat it the * same as the normal permanent MAC address stored by the HW into the * RAR. Do this by mapping this address into RAR0. */ hw->mac.ops.rar_set(hw, alt_mac_addr, 0); -out: - return ret_val; + return 0; +} + +u32 e1000e_rar_get_count_generic(struct e1000_hw *hw) +{ + return hw->mac.rar_entry_count; } /** - * e1000e_rar_set - Set receive address register + * e1000e_rar_set_generic - Set receive address register * @hw: pointer to the HW structure * @addr: pointer to the receive address * @index: receive address array register @@ -270,26 +226,23 @@ out: * Sets the receive address array register at index to the address passed * in by addr. **/ -void e1000e_rar_set(struct e1000_hw *hw, u8 *addr, u32 index) +int e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index) { u32 rar_low, rar_high; - /* - * HW expects these in little endian so we reverse the byte order + /* HW expects these in little endian so we reverse the byte order * from network order (big endian) to little endian */ - rar_low = ((u32) addr[0] | - ((u32) addr[1] << 8) | - ((u32) addr[2] << 16) | ((u32) addr[3] << 24)); + rar_low = ((u32)addr[0] | ((u32)addr[1] << 8) | + ((u32)addr[2] << 16) | ((u32)addr[3] << 24)); - rar_high = ((u32) addr[4] | ((u32) addr[5] << 8)); + rar_high = ((u32)addr[4] | ((u32)addr[5] << 8)); /* If MAC address zero, no need to set the AV bit */ if (rar_low || rar_high) rar_high |= E1000_RAH_AV; - /* - * Some bridges will combine consecutive 32-bit writes into + /* Some bridges will combine consecutive 32-bit writes into * a single burst write, which will malfunction on some parts. * The flushes avoid this. */ @@ -297,88 +250,19 @@ void e1000e_rar_set(struct e1000_hw *hw, u8 *addr, u32 index) e1e_flush(); ew32(RAH(index), rar_high); e1e_flush(); -} - -/** - * e1000_mta_set_generic - Set multicast filter table address - * @hw: pointer to the HW structure - * @hash_value: determines the MTA register and bit to set - * - * The multicast table address is a register array of 32-bit registers. - * The hash_value is used to determine what register the bit is in, the - * current value is read, the new bit is OR'd in and the new value is - * written back into the register. - **/ -void e1000_mta_set_generic(struct e1000_hw *hw, u32 hash_value) -{ - u32 hash_bit, hash_reg, mta; - - /* - * The MTA is a register array of 32-bit registers. It is - * treated like an array of (32*mta_reg_count) bits. We want to - * set bit BitArray[hash_value]. So we figure out what register - * the bit is in, read it, OR in the new bit, then write - * back the new value. The (hw->mac.mta_reg_count - 1) serves as a - * mask to bits 31:5 of the hash value which gives us the - * register we're modifying. The hash bit within that register - * is determined by the lower 5 bits of the hash value. - */ - hash_reg = (hash_value >> 5) & (hw->mac.mta_reg_count - 1); - hash_bit = hash_value & 0x1F; - - mta = E1000_READ_REG_ARRAY(hw, E1000_MTA, hash_reg); - - mta |= (1 << hash_bit); - - E1000_WRITE_REG_ARRAY(hw, E1000_MTA, hash_reg, mta); - e1e_flush(); -} - -/** - * e1000e_update_mc_addr_list_generic - Update Multicast addresses - * @hw: pointer to the HW structure - * @mc_addr_list: array of multicast addresses to program - * @mc_addr_count: number of multicast addresses to program - * - * Updates entire Multicast Table Array. - * The caller must have a packed mc_addr_list of multicast addresses. - **/ -void e1000e_update_mc_addr_list_generic(struct e1000_hw *hw, - u8 *mc_addr_list, u32 mc_addr_count) -{ - u32 hash_value, hash_bit, hash_reg; - int i; - - /* clear mta_shadow */ - memset(&hw->mac.mta_shadow, 0, sizeof(hw->mac.mta_shadow)); - - /* update mta_shadow from mc_addr_list */ - for (i = 0; (u32) i < mc_addr_count; i++) { - hash_value = e1000_hash_mc_addr_generic(hw, mc_addr_list); - - hash_reg = (hash_value >> 5) & (hw->mac.mta_reg_count - 1); - hash_bit = hash_value & 0x1F; - - hw->mac.mta_shadow[hash_reg] |= (1 << hash_bit); - mc_addr_list += (ETH_ADDR_LEN); - } - /* replace the entire MTA table */ - for (i = hw->mac.mta_reg_count - 1; i >= 0; i--) - E1000_WRITE_REG_ARRAY(hw, E1000_MTA, i, hw->mac.mta_shadow[i]); - e1e_flush(); + return 0; } /** - * e1000_hash_mc_addr_generic - Generate a multicast hash value + * e1000_hash_mc_addr - Generate a multicast hash value * @hw: pointer to the HW structure * @mc_addr: pointer to a multicast address * * Generates a multicast address hash value which is used to determine - * the multicast filter table array address and new table value. See - * e1000_mta_set_generic() + * the multicast filter table array address and new table value. **/ -static u32 e1000_hash_mc_addr_generic(struct e1000_hw *hw, u8 *mc_addr) +static u32 e1000_hash_mc_addr(struct e1000_hw *hw, u8 *mc_addr) { u32 hash_value, hash_mask; u8 bit_shift = 0; @@ -386,15 +270,13 @@ static u32 e1000_hash_mc_addr_generic(struct e1000_hw *hw, u8 *mc_addr) /* Register count multiplied by bits per register */ hash_mask = (hw->mac.mta_reg_count * 32) - 1; - /* - * For a mc_filter_type of 0, bit_shift is the number of left-shifts + /* For a mc_filter_type of 0, bit_shift is the number of left-shifts * where 0xFF would still fall within the hash mask. */ while (hash_mask >> bit_shift != 0xFF) bit_shift++; - /* - * The portion of the address that is used for the hash table + /* The portion of the address that is used for the hash table * is determined by the mc_filter_type setting. * The algorithm is such that there is a total of 8 bits of shifting. * The bit_shift for a mc_filter_type of 0 represents the number of @@ -412,7 +294,7 @@ static u32 e1000_hash_mc_addr_generic(struct e1000_hw *hw, u8 *mc_addr) * values resulting from each mc_filter_type... * [0] [1] [2] [3] [4] [5] * 01 AA 00 12 34 56 - * LSB MSB + * LSB MSB * * case 0: hash_value = ((0x34 >> 4) | (0x56 << 4)) & 0xFFF = 0x563 * case 1: hash_value = ((0x34 >> 3) | (0x56 << 5)) & 0xFFF = 0xAC6 @@ -435,11 +317,46 @@ static u32 e1000_hash_mc_addr_generic(struct e1000_hw *hw, u8 *mc_addr) } hash_value = hash_mask & (((mc_addr[4] >> (8 - bit_shift)) | - (((u16) mc_addr[5]) << bit_shift))); + (((u16)mc_addr[5]) << bit_shift))); return hash_value; } +/** + * e1000e_update_mc_addr_list_generic - Update Multicast addresses + * @hw: pointer to the HW structure + * @mc_addr_list: array of multicast addresses to program + * @mc_addr_count: number of multicast addresses to program + * + * Updates entire Multicast Table Array. + * The caller must have a packed mc_addr_list of multicast addresses. + **/ +void e1000e_update_mc_addr_list_generic(struct e1000_hw *hw, + u8 *mc_addr_list, u32 mc_addr_count) +{ + u32 hash_value, hash_bit, hash_reg; + int i; + + /* clear mta_shadow */ + memset(&hw->mac.mta_shadow, 0, sizeof(hw->mac.mta_shadow)); + + /* update mta_shadow from mc_addr_list */ + for (i = 0; (u32)i < mc_addr_count; i++) { + hash_value = e1000_hash_mc_addr(hw, mc_addr_list); + + hash_reg = (hash_value >> 5) & (hw->mac.mta_reg_count - 1); + hash_bit = hash_value & 0x1F; + + hw->mac.mta_shadow[hash_reg] |= (1 << hash_bit); + mc_addr_list += (ETH_ALEN); + } + + /* replace the entire MTA table */ + for (i = hw->mac.mta_reg_count - 1; i >= 0; i--) + E1000_WRITE_REG_ARRAY(hw, E1000_MTA, i, hw->mac.mta_shadow[i]); + e1e_flush(); +} + /** * e1000e_clear_hw_cntrs_base - Clear base hardware counters * @hw: pointer to the HW structure @@ -486,6 +403,7 @@ void e1000e_clear_hw_cntrs_base(struct e1000_hw *hw) er32(MPTC); er32(BPTC); } + /** * e1000e_check_for_copper_link - Check for link (Copper) * @hw: pointer to the HW structure @@ -500,55 +418,45 @@ s32 e1000e_check_for_copper_link(struct e1000_hw *hw) s32 ret_val; bool link; - /* - * We only want to go out to the PHY registers to see if Auto-Neg + /* We only want to go out to the PHY registers to see if Auto-Neg * has completed and/or if our link status has changed. The * get_link_status flag is set upon receiving a Link Status * Change or Rx Sequence Error interrupt. */ - if (!mac->get_link_status) { - ret_val = E1000_SUCCESS; - goto out; - } + if (!mac->get_link_status) + return 0; - /* - * First we want to see if the MII Status Register reports + /* First we want to see if the MII Status Register reports * link. If so, then we want to get the current speed/duplex * of the PHY. */ ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); if (ret_val) - goto out; + return ret_val; if (!link) - goto out; /* No link detected */ + return 0; /* No link detected */ mac->get_link_status = false; - /* - * Check if there was DownShift, must be checked + /* Check if there was DownShift, must be checked * immediately after link-up */ e1000e_check_downshift(hw); - /* - * If we are forcing speed/duplex, then we simply return since + /* If we are forcing speed/duplex, then we simply return since * we have already determined whether we have link or not. */ - if (!mac->autoneg) { - ret_val = -E1000_ERR_CONFIG; - goto out; - } + if (!mac->autoneg) + return -E1000_ERR_CONFIG; - /* - * Auto-Neg is enabled. Auto Speed Detection takes care + /* Auto-Neg is enabled. Auto Speed Detection takes care * of MAC speed/duplex configuration. So we only need to * configure Collision Distance in the MAC. */ - e1000e_config_collision_dist(hw); + mac->ops.config_collision_dist(hw); - /* - * Configure Flow Control now that Auto-Neg has completed. + /* Configure Flow Control now that Auto-Neg has completed. * First, we need to restore the desired flow control * settings because we may have had to re-autoneg with a * different link partner. @@ -557,7 +465,6 @@ s32 e1000e_check_for_copper_link(struct e1000_hw *hw) if (ret_val) e_dbg("Error configuring flow control\n"); -out: return ret_val; } @@ -574,14 +481,13 @@ s32 e1000e_check_for_fiber_link(struct e1000_hw *hw) u32 rxcw; u32 ctrl; u32 status; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; ctrl = er32(CTRL); status = er32(STATUS); rxcw = er32(RXCW); - /* - * If we don't have link (auto-negotiation failed or link partner + /* If we don't have link (auto-negotiation failed or link partner * cannot auto-negotiate), the cable is plugged in (we have signal), * and our link partner is not trying to auto-negotiate with us (we * are receiving idles or data), we need to force link up. We also @@ -589,13 +495,13 @@ s32 e1000e_check_for_fiber_link(struct e1000_hw *hw) * was just plugged in. The autoneg_failed flag does this. */ /* (ctrl & E1000_CTRL_SWDPIN1) == 1 == have signal */ - if ((ctrl & E1000_CTRL_SWDPIN1) && (!(status & E1000_STATUS_LU)) && - (!(rxcw & E1000_RXCW_C))) { - if (mac->autoneg_failed == 0) { - mac->autoneg_failed = 1; - goto out; + if ((ctrl & E1000_CTRL_SWDPIN1) && !(status & E1000_STATUS_LU) && + !(rxcw & E1000_RXCW_C)) { + if (!mac->autoneg_failed) { + mac->autoneg_failed = true; + return 0; } - e_dbg("NOT RXing /C/, disable AutoNeg and force link.\n"); + e_dbg("NOT Rx'ing /C/, disable AutoNeg and force link.\n"); /* Disable auto-negotiation in the TXCW register */ ew32(TXCW, (mac->txcw & ~E1000_TXCW_ANE)); @@ -609,24 +515,22 @@ s32 e1000e_check_for_fiber_link(struct e1000_hw *hw) ret_val = e1000e_config_fc_after_link_up(hw); if (ret_val) { e_dbg("Error configuring flow control\n"); - goto out; + return ret_val; } } else if ((ctrl & E1000_CTRL_SLU) && (rxcw & E1000_RXCW_C)) { - /* - * If we are forcing link and we are receiving /C/ ordered + /* If we are forcing link and we are receiving /C/ ordered * sets, re-enable auto-negotiation in the TXCW register * and disable forced link in the Device Control register * in an attempt to auto-negotiate with our link partner. */ - e_dbg("RXing /C/, enable AutoNeg and stop forcing link.\n"); + e_dbg("Rx'ing /C/, enable AutoNeg and stop forcing link.\n"); ew32(TXCW, mac->txcw); ew32(CTRL, (ctrl & ~E1000_CTRL_SLU)); mac->serdes_has_link = true; } -out: - return ret_val; + return 0; } /** @@ -642,26 +546,25 @@ s32 e1000e_check_for_serdes_link(struct e1000_hw *hw) u32 rxcw; u32 ctrl; u32 status; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; ctrl = er32(CTRL); status = er32(STATUS); rxcw = er32(RXCW); - /* - * If we don't have link (auto-negotiation failed or link partner + /* If we don't have link (auto-negotiation failed or link partner * cannot auto-negotiate), and our link partner is not trying to * auto-negotiate with us (we are receiving idles or data), * we need to force link up. We also need to give auto-negotiation * time to complete. */ /* (ctrl & E1000_CTRL_SWDPIN1) == 1 == have signal */ - if ((!(status & E1000_STATUS_LU)) && (!(rxcw & E1000_RXCW_C))) { - if (mac->autoneg_failed == 0) { - mac->autoneg_failed = 1; - goto out; + if (!(status & E1000_STATUS_LU) && !(rxcw & E1000_RXCW_C)) { + if (!mac->autoneg_failed) { + mac->autoneg_failed = true; + return 0; } - e_dbg("NOT RXing /C/, disable AutoNeg and force link.\n"); + e_dbg("NOT Rx'ing /C/, disable AutoNeg and force link.\n"); /* Disable auto-negotiation in the TXCW register */ ew32(TXCW, (mac->txcw & ~E1000_TXCW_ANE)); @@ -675,28 +578,26 @@ s32 e1000e_check_for_serdes_link(struct e1000_hw *hw) ret_val = e1000e_config_fc_after_link_up(hw); if (ret_val) { e_dbg("Error configuring flow control\n"); - goto out; + return ret_val; } } else if ((ctrl & E1000_CTRL_SLU) && (rxcw & E1000_RXCW_C)) { - /* - * If we are forcing link and we are receiving /C/ ordered + /* If we are forcing link and we are receiving /C/ ordered * sets, re-enable auto-negotiation in the TXCW register * and disable forced link in the Device Control register * in an attempt to auto-negotiate with our link partner. */ - e_dbg("RXing /C/, enable AutoNeg and stop forcing link.\n"); + e_dbg("Rx'ing /C/, enable AutoNeg and stop forcing link.\n"); ew32(TXCW, mac->txcw); ew32(CTRL, (ctrl & ~E1000_CTRL_SLU)); mac->serdes_has_link = true; } else if (!(E1000_TXCW_ANE & er32(TXCW))) { - /* - * If we force link for non-auto-negotiation switch, check + /* If we force link for non-auto-negotiation switch, check * link status based on MAC synchronization for internal * serdes media type. */ /* SYNCH bit and IV bit are sticky. */ - udelay(10); + usleep_range(10, 20); rxcw = er32(RXCW); if (rxcw & E1000_RXCW_SYNCH) { if (!(rxcw & E1000_RXCW_IV)) { @@ -713,17 +614,15 @@ s32 e1000e_check_for_serdes_link(struct e1000_hw *hw) status = er32(STATUS); if (status & E1000_STATUS_LU) { /* SYNCH bit and IV bit are sticky, so reread rxcw. */ - udelay(10); + usleep_range(10, 20); rxcw = er32(RXCW); if (rxcw & E1000_RXCW_SYNCH) { if (!(rxcw & E1000_RXCW_IV)) { mac->serdes_has_link = true; - e_dbg("SERDES: Link up - autoneg " - "completed sucessfully.\n"); + e_dbg("SERDES: Link up - autoneg completed successfully.\n"); } else { mac->serdes_has_link = false; - e_dbg("SERDES: Link down - invalid" - "codewords detected in autoneg.\n"); + e_dbg("SERDES: Link down - invalid codewords detected in autoneg.\n"); } } else { mac->serdes_has_link = false; @@ -735,12 +634,48 @@ s32 e1000e_check_for_serdes_link(struct e1000_hw *hw) } } -out: - return ret_val; + return 0; } /** - * e1000e_setup_link - Setup flow control and link settings + * e1000_set_default_fc_generic - Set flow control default values + * @hw: pointer to the HW structure + * + * Read the EEPROM for the default values for flow control and store the + * values. + **/ +static s32 e1000_set_default_fc_generic(struct e1000_hw *hw) +{ + s32 ret_val; + u16 nvm_data; + + /* Read and store word 0x0F of the EEPROM. This word contains bits + * that determine the hardware's default PAUSE (flow control) mode, + * a bit that determines whether the HW defaults to enabling or + * disabling auto-negotiation, and the direction of the + * SW defined pins. If there is no SW over-ride of the flow + * control setting, then the variable hw->fc will + * be initialized based on a value in the EEPROM. + */ + ret_val = e1000_read_nvm(hw, NVM_INIT_CONTROL2_REG, 1, &nvm_data); + + if (ret_val) { + e_dbg("NVM Read Error\n"); + return ret_val; + } + + if (!(nvm_data & NVM_WORD0F_PAUSE_MASK)) + hw->fc.requested_mode = e1000_fc_none; + else if ((nvm_data & NVM_WORD0F_PAUSE_MASK) == NVM_WORD0F_ASM_DIR) + hw->fc.requested_mode = e1000_fc_tx_pause; + else + hw->fc.requested_mode = e1000_fc_full; + + return 0; +} + +/** + * e1000e_setup_link_generic - Setup flow control and link settings * @hw: pointer to the HW structure * * Determines which flow control settings to use, then configures flow @@ -749,44 +684,38 @@ out: * should be established. Assumes the hardware has previously been reset * and the transmitter and receiver are not enabled. **/ -s32 e1000e_setup_link(struct e1000_hw *hw) +s32 e1000e_setup_link_generic(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val; - /* - * In the case of the phy reset being blocked, we already have a link. + /* In the case of the phy reset being blocked, we already have a link. * We do not need to set it up again. */ - if (hw->phy.ops.check_reset_block) - if (e1000_check_reset_block(hw)) - goto out; + if (hw->phy.ops.check_reset_block && hw->phy.ops.check_reset_block(hw)) + return 0; - /* - * If requested flow control is set to default, set flow control + /* If requested flow control is set to default, set flow control * based on the EEPROM flow control settings. */ if (hw->fc.requested_mode == e1000_fc_default) { ret_val = e1000_set_default_fc_generic(hw); if (ret_val) - goto out; + return ret_val; } - /* - * Save off the requested flow control mode for use later. Depending + /* Save off the requested flow control mode for use later. Depending * on the link partner's capabilities, we may or may not use this mode. */ hw->fc.current_mode = hw->fc.requested_mode; - e_dbg("After fix-ups FlowControl is now = %x\n", - hw->fc.current_mode); + e_dbg("After fix-ups FlowControl is now = %x\n", hw->fc.current_mode); /* Call the necessary media_type subroutine to configure the link. */ ret_val = hw->mac.ops.setup_physical_interface(hw); if (ret_val) - goto out; + return ret_val; - /* - * Initialize the flow control address, type, and PAUSE timer + /* Initialize the flow control address, type, and PAUSE timer * registers to their default values. This is done even if flow * control is disabled, because it does not hurt anything to * initialize these registers. @@ -798,133 +727,7 @@ s32 e1000e_setup_link(struct e1000_hw *hw) ew32(FCTTV, hw->fc.pause_time); - ret_val = e1000e_set_fc_watermarks(hw); - -out: - return ret_val; -} - -/** - * e1000e_setup_fiber_serdes_link - Setup link for fiber/serdes - * @hw: pointer to the HW structure - * - * Configures collision distance and flow control for fiber and serdes - * links. Upon successful setup, poll for link. - **/ -s32 e1000e_setup_fiber_serdes_link(struct e1000_hw *hw) -{ - u32 ctrl; - s32 ret_val = E1000_SUCCESS; - - ctrl = er32(CTRL); - - /* Take the link out of reset */ - ctrl &= ~E1000_CTRL_LRST; - - e1000e_config_collision_dist(hw); - - ret_val = e1000_commit_fc_settings_generic(hw); - if (ret_val) - goto out; - - /* - * Since auto-negotiation is enabled, take the link out of reset (the - * link will be in reset, because we previously reset the chip). This - * will restart auto-negotiation. If auto-negotiation is successful - * then the link-up status bit will be set and the flow control enable - * bits (RFCE and TFCE) will be set according to their negotiated value. - */ - e_dbg("Auto-negotiation enabled\n"); - - ew32(CTRL, ctrl); - e1e_flush(); - msleep(1); - - /* - * For these adapters, the SW definable pin 1 is set when the optics - * detect a signal. If we have a signal, then poll for a "Link-Up" - * indication. - */ - if (hw->phy.media_type == e1000_media_type_internal_serdes || - (er32(CTRL) & E1000_CTRL_SWDPIN1)) { - ret_val = e1000_poll_fiber_serdes_link_generic(hw); - } else { - e_dbg("No signal detected\n"); - } - -out: - return ret_val; -} - -/** - * e1000e_config_collision_dist - Configure collision distance - * @hw: pointer to the HW structure - * - * Configures the collision distance to the default value and is used - * during link setup. Currently no func pointer exists and all - * implementations are handled in the generic version of this function. - **/ -void e1000e_config_collision_dist(struct e1000_hw *hw) -{ - u32 tctl; - - tctl = er32(TCTL); - - tctl &= ~E1000_TCTL_COLD; - tctl |= E1000_COLLISION_DISTANCE << E1000_COLD_SHIFT; - - ew32(TCTL, tctl); - e1e_flush(); -} - -/** - * e1000_poll_fiber_serdes_link_generic - Poll for link up - * @hw: pointer to the HW structure - * - * Polls for link up by reading the status register, if link fails to come - * up with auto-negotiation, then the link is forced if a signal is detected. - **/ -static s32 e1000_poll_fiber_serdes_link_generic(struct e1000_hw *hw) -{ - struct e1000_mac_info *mac = &hw->mac; - u32 i, status; - s32 ret_val = E1000_SUCCESS; - - /* - * If we have a signal (the cable is plugged in, or assumed true for - * serdes media) then poll for a "Link-Up" indication in the Device - * Status Register. Time-out if a link isn't seen in 500 milliseconds - * seconds (Auto-negotiation should complete in less than 500 - * milliseconds even if the other end is doing it in SW). - */ - for (i = 0; i < FIBER_LINK_UP_LIMIT; i++) { - msleep(10); - status = er32(STATUS); - if (status & E1000_STATUS_LU) - break; - } - if (i == FIBER_LINK_UP_LIMIT) { - e_dbg("Never got a valid link from auto-neg!!!\n"); - mac->autoneg_failed = 1; - /* - * AutoNeg failed to achieve a link, so we'll call - * mac->check_for_link. This routine will force the - * link up if we detect a signal. This will allow us to - * communicate with non-autonegotiating link partners. - */ - ret_val = hw->mac.ops.check_for_link(hw); - if (ret_val) { - e_dbg("Error while checking for link\n"); - goto out; - } - mac->autoneg_failed = 0; - } else { - mac->autoneg_failed = 0; - e_dbg("Valid Link Found\n"); - } - -out: - return ret_val; + return e1000e_set_fc_watermarks(hw); } /** @@ -938,10 +741,8 @@ static s32 e1000_commit_fc_settings_generic(struct e1000_hw *hw) { struct e1000_mac_info *mac = &hw->mac; u32 txcw; - s32 ret_val = E1000_SUCCESS; - /* - * Check for a software override of the flow control settings, and + /* Check for a software override of the flow control settings, and * setup the device accordingly. If auto-negotiation is enabled, then * software will have to set the "PAUSE" bits to the correct value in * the Transmit Config Word Register (TXCW) and re-start auto- @@ -963,44 +764,155 @@ static s32 e1000_commit_fc_settings_generic(struct e1000_hw *hw) txcw = (E1000_TXCW_ANE | E1000_TXCW_FD); break; case e1000_fc_rx_pause: - /* - * Rx Flow control is enabled and Tx Flow control is disabled + /* Rx Flow control is enabled and Tx Flow control is disabled * by a software over-ride. Since there really isn't a way to * advertise that we are capable of Rx Pause ONLY, we will - * advertise that we support both symmetric and asymmetric RX + * advertise that we support both symmetric and asymmetric Rx * PAUSE. Later, we will disable the adapter's ability to send * PAUSE frames. */ txcw = (E1000_TXCW_ANE | E1000_TXCW_FD | E1000_TXCW_PAUSE_MASK); break; case e1000_fc_tx_pause: - /* - * Tx Flow control is enabled, and Rx Flow control is disabled, + /* Tx Flow control is enabled, and Rx Flow control is disabled, * by a software over-ride. */ txcw = (E1000_TXCW_ANE | E1000_TXCW_FD | E1000_TXCW_ASM_DIR); break; case e1000_fc_full: - /* - * Flow control (both Rx and Tx) is enabled by a software + /* Flow control (both Rx and Tx) is enabled by a software * over-ride. */ txcw = (E1000_TXCW_ANE | E1000_TXCW_FD | E1000_TXCW_PAUSE_MASK); break; default: e_dbg("Flow control param set incorrectly\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; + return -E1000_ERR_CONFIG; break; } ew32(TXCW, txcw); mac->txcw = txcw; -out: + return 0; +} + +/** + * e1000_poll_fiber_serdes_link_generic - Poll for link up + * @hw: pointer to the HW structure + * + * Polls for link up by reading the status register, if link fails to come + * up with auto-negotiation, then the link is forced if a signal is detected. + **/ +static s32 e1000_poll_fiber_serdes_link_generic(struct e1000_hw *hw) +{ + struct e1000_mac_info *mac = &hw->mac; + u32 i, status; + s32 ret_val; + + /* If we have a signal (the cable is plugged in, or assumed true for + * serdes media) then poll for a "Link-Up" indication in the Device + * Status Register. Time-out if a link isn't seen in 500 milliseconds + * seconds (Auto-negotiation should complete in less than 500 + * milliseconds even if the other end is doing it in SW). + */ + for (i = 0; i < FIBER_LINK_UP_LIMIT; i++) { + usleep_range(10000, 20000); + status = er32(STATUS); + if (status & E1000_STATUS_LU) + break; + } + if (i == FIBER_LINK_UP_LIMIT) { + e_dbg("Never got a valid link from auto-neg!!!\n"); + mac->autoneg_failed = true; + /* AutoNeg failed to achieve a link, so we'll call + * mac->check_for_link. This routine will force the + * link up if we detect a signal. This will allow us to + * communicate with non-autonegotiating link partners. + */ + ret_val = mac->ops.check_for_link(hw); + if (ret_val) { + e_dbg("Error while checking for link\n"); + return ret_val; + } + mac->autoneg_failed = false; + } else { + mac->autoneg_failed = false; + e_dbg("Valid Link Found\n"); + } + + return 0; +} + +/** + * e1000e_setup_fiber_serdes_link - Setup link for fiber/serdes + * @hw: pointer to the HW structure + * + * Configures collision distance and flow control for fiber and serdes + * links. Upon successful setup, poll for link. + **/ +s32 e1000e_setup_fiber_serdes_link(struct e1000_hw *hw) +{ + u32 ctrl; + s32 ret_val; + + ctrl = er32(CTRL); + + /* Take the link out of reset */ + ctrl &= ~E1000_CTRL_LRST; + + hw->mac.ops.config_collision_dist(hw); + + ret_val = e1000_commit_fc_settings_generic(hw); + if (ret_val) + return ret_val; + + /* Since auto-negotiation is enabled, take the link out of reset (the + * link will be in reset, because we previously reset the chip). This + * will restart auto-negotiation. If auto-negotiation is successful + * then the link-up status bit will be set and the flow control enable + * bits (RFCE and TFCE) will be set according to their negotiated value. + */ + e_dbg("Auto-negotiation enabled\n"); + + ew32(CTRL, ctrl); + e1e_flush(); + usleep_range(1000, 2000); + + /* For these adapters, the SW definable pin 1 is set when the optics + * detect a signal. If we have a signal, then poll for a "Link-Up" + * indication. + */ + if (hw->phy.media_type == e1000_media_type_internal_serdes || + (er32(CTRL) & E1000_CTRL_SWDPIN1)) { + ret_val = e1000_poll_fiber_serdes_link_generic(hw); + } else { + e_dbg("No signal detected\n"); + } + return ret_val; } +/** + * e1000e_config_collision_dist_generic - Configure collision distance + * @hw: pointer to the HW structure + * + * Configures the collision distance to the default value and is used + * during link setup. + **/ +void e1000e_config_collision_dist_generic(struct e1000_hw *hw) +{ + u32 tctl; + + tctl = er32(TCTL); + + tctl &= ~E1000_TCTL_COLD; + tctl |= E1000_COLLISION_DISTANCE << E1000_COLD_SHIFT; + + ew32(TCTL, tctl); + e1e_flush(); +} + /** * e1000e_set_fc_watermarks - Set flow control high/low watermarks * @hw: pointer to the HW structure @@ -1011,19 +923,16 @@ out: **/ s32 e1000e_set_fc_watermarks(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; u32 fcrtl = 0, fcrth = 0; - /* - * Set the flow control receive threshold registers. Normally, + /* Set the flow control receive threshold registers. Normally, * these registers will be set to a default threshold that may be * adjusted later by the driver's runtime code. However, if the * ability to transmit pause frames is not enabled, then these * registers will be set to 0. */ if (hw->fc.current_mode & e1000_fc_tx_pause) { - /* - * We need to set up the Receive Threshold high and low water + /* We need to set up the Receive Threshold high and low water * marks as well as (optionally) enabling the transmission of * XON frames. */ @@ -1036,47 +945,7 @@ s32 e1000e_set_fc_watermarks(struct e1000_hw *hw) ew32(FCRTL, fcrtl); ew32(FCRTH, fcrth); - return ret_val; -} - -/** - * e1000_set_default_fc_generic - Set flow control default values - * @hw: pointer to the HW structure - * - * Read the EEPROM for the default values for flow control and store the - * values. - **/ -static s32 e1000_set_default_fc_generic(struct e1000_hw *hw) -{ - s32 ret_val = E1000_SUCCESS; - u16 nvm_data; - - /* - * Read and store word 0x0F of the EEPROM. This word contains bits - * that determine the hardware's default PAUSE (flow control) mode, - * a bit that determines whether the HW defaults to enabling or - * disabling auto-negotiation, and the direction of the - * SW defined pins. If there is no SW over-ride of the flow - * control setting, then the variable hw->fc will - * be initialized based on a value in the EEPROM. - */ - ret_val = e1000_read_nvm(hw, NVM_INIT_CONTROL2_REG, 1, &nvm_data); - - if (ret_val) { - e_dbg("NVM Read Error\n"); - goto out; - } - - if ((nvm_data & NVM_WORD0F_PAUSE_MASK) == 0) - hw->fc.requested_mode = e1000_fc_none; - else if ((nvm_data & NVM_WORD0F_PAUSE_MASK) == - NVM_WORD0F_ASM_DIR) - hw->fc.requested_mode = e1000_fc_tx_pause; - else - hw->fc.requested_mode = e1000_fc_full; - -out: - return ret_val; + return 0; } /** @@ -1092,12 +961,10 @@ out: s32 e1000e_force_mac_fc(struct e1000_hw *hw) { u32 ctrl; - s32 ret_val = E1000_SUCCESS; ctrl = er32(CTRL); - /* - * Because we didn't get link via the internal auto-negotiation + /* Because we didn't get link via the internal auto-negotiation * mechanism (we either forced link or we got link via PHY * auto-neg), we have to manually enable/disable transmit an * receive flow control. @@ -1133,14 +1000,12 @@ s32 e1000e_force_mac_fc(struct e1000_hw *hw) break; default: e_dbg("Flow control param set incorrectly\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; + return -E1000_ERR_CONFIG; } ew32(CTRL, ctrl); -out: - return ret_val; + return 0; } /** @@ -1156,12 +1021,12 @@ out: s32 e1000e_config_fc_after_link_up(struct e1000_hw *hw) { struct e1000_mac_info *mac = &hw->mac; - s32 ret_val = E1000_SUCCESS; + s32 ret_val = 0; + u32 pcs_status_reg, pcs_adv_reg, pcs_lp_ability_reg, pcs_ctrl_reg; u16 mii_status_reg, mii_nway_adv_reg, mii_nway_lp_ability_reg; u16 speed, duplex; - /* - * Check for the case where we have fiber media and auto-neg failed + /* Check for the case where we have fiber media and auto-neg failed * so we had to force link. In this case, we need to force the * configuration of the MAC to match the "fc" parameter. */ @@ -1176,52 +1041,45 @@ s32 e1000e_config_fc_after_link_up(struct e1000_hw *hw) if (ret_val) { e_dbg("Error forcing flow control settings\n"); - goto out; + return ret_val; } - /* - * Check for the case where we have copper media and auto-neg is + /* Check for the case where we have copper media and auto-neg is * enabled. In this case, we need to check and see if Auto-Neg * has completed, and if so, how the PHY and link partner has * flow control configured. */ if ((hw->phy.media_type == e1000_media_type_copper) && mac->autoneg) { - /* - * Read the MII Status Register and check to see if AutoNeg + /* Read the MII Status Register and check to see if AutoNeg * has completed. We read this twice because this reg has * some "sticky" (latched) bits. */ - ret_val = e1e_rphy(hw, PHY_STATUS, &mii_status_reg); + ret_val = e1e_rphy(hw, MII_BMSR, &mii_status_reg); if (ret_val) - goto out; - ret_val = e1e_rphy(hw, PHY_STATUS, &mii_status_reg); + return ret_val; + ret_val = e1e_rphy(hw, MII_BMSR, &mii_status_reg); if (ret_val) - goto out; + return ret_val; - if (!(mii_status_reg & MII_SR_AUTONEG_COMPLETE)) { - e_dbg("Copper PHY and Auto Neg " - "has not completed.\n"); - goto out; + if (!(mii_status_reg & BMSR_ANEGCOMPLETE)) { + e_dbg("Copper PHY and Auto Neg has not completed.\n"); + return ret_val; } - /* - * The AutoNeg process has completed, so we now need to + /* The AutoNeg process has completed, so we now need to * read both the Auto Negotiation Advertisement * Register (Address 4) and the Auto_Negotiation Base * Page Ability Register (Address 5) to determine how * flow control was negotiated. */ - ret_val = e1e_rphy(hw, PHY_AUTONEG_ADV, - &mii_nway_adv_reg); + ret_val = e1e_rphy(hw, MII_ADVERTISE, &mii_nway_adv_reg); if (ret_val) - goto out; - ret_val = e1e_rphy(hw, PHY_LP_ABILITY, - &mii_nway_lp_ability_reg); + return ret_val; + ret_val = e1e_rphy(hw, MII_LPA, &mii_nway_lp_ability_reg); if (ret_val) - goto out; + return ret_val; - /* - * Two bits in the Auto Negotiation Advertisement Register + /* Two bits in the Auto Negotiation Advertisement Register * (Address 4) and two bits in the Auto Negotiation Base * Page Ability Register (Address 5) determine flow control * for both the PHY and the link partner. The following @@ -1254,89 +1112,205 @@ s32 e1000e_config_fc_after_link_up(struct e1000_hw *hw) * 1 | DC | 1 | DC | E1000_fc_full * */ - if ((mii_nway_adv_reg & NWAY_AR_PAUSE) && - (mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE)) { - /* - * Now we need to check if the user selected Rx ONLY + if ((mii_nway_adv_reg & ADVERTISE_PAUSE_CAP) && + (mii_nway_lp_ability_reg & LPA_PAUSE_CAP)) { + /* Now we need to check if the user selected Rx ONLY * of pause frames. In this case, we had to advertise - * FULL flow control because we could not advertise RX + * FULL flow control because we could not advertise Rx * ONLY. Hence, we must now check to see if we need to - * turn OFF the TRANSMISSION of PAUSE frames. + * turn OFF the TRANSMISSION of PAUSE frames. */ if (hw->fc.requested_mode == e1000_fc_full) { hw->fc.current_mode = e1000_fc_full; - e_dbg("Flow Control = FULL.\r\n"); + e_dbg("Flow Control = FULL.\n"); } else { hw->fc.current_mode = e1000_fc_rx_pause; - e_dbg("Flow Control = " - "RX PAUSE frames only.\r\n"); + e_dbg("Flow Control = Rx PAUSE frames only.\n"); } } - /* - * For receiving PAUSE frames ONLY. + /* For receiving PAUSE frames ONLY. * * LOCAL DEVICE | LINK PARTNER * PAUSE | ASM_DIR | PAUSE | ASM_DIR | Result *-------|---------|-------|---------|-------------------- * 0 | 1 | 1 | 1 | e1000_fc_tx_pause */ - else if (!(mii_nway_adv_reg & NWAY_AR_PAUSE) && - (mii_nway_adv_reg & NWAY_AR_ASM_DIR) && - (mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE) && - (mii_nway_lp_ability_reg & NWAY_LPAR_ASM_DIR)) { + else if (!(mii_nway_adv_reg & ADVERTISE_PAUSE_CAP) && + (mii_nway_adv_reg & ADVERTISE_PAUSE_ASYM) && + (mii_nway_lp_ability_reg & LPA_PAUSE_CAP) && + (mii_nway_lp_ability_reg & LPA_PAUSE_ASYM)) { hw->fc.current_mode = e1000_fc_tx_pause; - e_dbg("Flow Control = TX PAUSE frames only.\r\n"); + e_dbg("Flow Control = Tx PAUSE frames only.\n"); } - /* - * For transmitting PAUSE frames ONLY. + /* For transmitting PAUSE frames ONLY. * * LOCAL DEVICE | LINK PARTNER * PAUSE | ASM_DIR | PAUSE | ASM_DIR | Result *-------|---------|-------|---------|-------------------- * 1 | 1 | 0 | 1 | e1000_fc_rx_pause */ - else if ((mii_nway_adv_reg & NWAY_AR_PAUSE) && - (mii_nway_adv_reg & NWAY_AR_ASM_DIR) && - !(mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE) && - (mii_nway_lp_ability_reg & NWAY_LPAR_ASM_DIR)) { + else if ((mii_nway_adv_reg & ADVERTISE_PAUSE_CAP) && + (mii_nway_adv_reg & ADVERTISE_PAUSE_ASYM) && + !(mii_nway_lp_ability_reg & LPA_PAUSE_CAP) && + (mii_nway_lp_ability_reg & LPA_PAUSE_ASYM)) { hw->fc.current_mode = e1000_fc_rx_pause; - e_dbg("Flow Control = RX PAUSE frames only.\r\n"); + e_dbg("Flow Control = Rx PAUSE frames only.\n"); } else { - /* - * Per the IEEE spec, at this point flow control + /* Per the IEEE spec, at this point flow control * should be disabled. */ hw->fc.current_mode = e1000_fc_none; - e_dbg("Flow Control = NONE.\r\n"); + e_dbg("Flow Control = NONE.\n"); } - /* - * Now we need to do one last check... If we auto- + /* Now we need to do one last check... If we auto- * negotiated to HALF DUPLEX, flow control should not be * enabled per IEEE 802.3 spec. */ ret_val = mac->ops.get_link_up_info(hw, &speed, &duplex); if (ret_val) { e_dbg("Error getting link speed and duplex\n"); - goto out; + return ret_val; } if (duplex == HALF_DUPLEX) hw->fc.current_mode = e1000_fc_none; - /* - * Now we call a subroutine to actually force the MAC + /* Now we call a subroutine to actually force the MAC * controller to use the correct flow control settings. */ ret_val = e1000e_force_mac_fc(hw); if (ret_val) { e_dbg("Error forcing flow control settings\n"); - goto out; + return ret_val; } } -out: - return ret_val; + /* Check for the case where we have SerDes media and auto-neg is + * enabled. In this case, we need to check and see if Auto-Neg + * has completed, and if so, how the PHY and link partner has + * flow control configured. + */ + if ((hw->phy.media_type == e1000_media_type_internal_serdes) && + mac->autoneg) { + /* Read the PCS_LSTS and check to see if AutoNeg + * has completed. + */ + pcs_status_reg = er32(PCS_LSTAT); + + if (!(pcs_status_reg & E1000_PCS_LSTS_AN_COMPLETE)) { + e_dbg("PCS Auto Neg has not completed.\n"); + return ret_val; + } + + /* The AutoNeg process has completed, so we now need to + * read both the Auto Negotiation Advertisement + * Register (PCS_ANADV) and the Auto_Negotiation Base + * Page Ability Register (PCS_LPAB) to determine how + * flow control was negotiated. + */ + pcs_adv_reg = er32(PCS_ANADV); + pcs_lp_ability_reg = er32(PCS_LPAB); + + /* Two bits in the Auto Negotiation Advertisement Register + * (PCS_ANADV) and two bits in the Auto Negotiation Base + * Page Ability Register (PCS_LPAB) determine flow control + * for both the PHY and the link partner. The following + * table, taken out of the IEEE 802.3ab/D6.0 dated March 25, + * 1999, describes these PAUSE resolution bits and how flow + * control is determined based upon these settings. + * NOTE: DC = Don't Care + * + * LOCAL DEVICE | LINK PARTNER + * PAUSE | ASM_DIR | PAUSE | ASM_DIR | NIC Resolution + *-------|---------|-------|---------|-------------------- + * 0 | 0 | DC | DC | e1000_fc_none + * 0 | 1 | 0 | DC | e1000_fc_none + * 0 | 1 | 1 | 0 | e1000_fc_none + * 0 | 1 | 1 | 1 | e1000_fc_tx_pause + * 1 | 0 | 0 | DC | e1000_fc_none + * 1 | DC | 1 | DC | e1000_fc_full + * 1 | 1 | 0 | 0 | e1000_fc_none + * 1 | 1 | 0 | 1 | e1000_fc_rx_pause + * + * Are both PAUSE bits set to 1? If so, this implies + * Symmetric Flow Control is enabled at both ends. The + * ASM_DIR bits are irrelevant per the spec. + * + * For Symmetric Flow Control: + * + * LOCAL DEVICE | LINK PARTNER + * PAUSE | ASM_DIR | PAUSE | ASM_DIR | Result + *-------|---------|-------|---------|-------------------- + * 1 | DC | 1 | DC | e1000_fc_full + * + */ + if ((pcs_adv_reg & E1000_TXCW_PAUSE) && + (pcs_lp_ability_reg & E1000_TXCW_PAUSE)) { + /* Now we need to check if the user selected Rx ONLY + * of pause frames. In this case, we had to advertise + * FULL flow control because we could not advertise Rx + * ONLY. Hence, we must now check to see if we need to + * turn OFF the TRANSMISSION of PAUSE frames. + */ + if (hw->fc.requested_mode == e1000_fc_full) { + hw->fc.current_mode = e1000_fc_full; + e_dbg("Flow Control = FULL.\n"); + } else { + hw->fc.current_mode = e1000_fc_rx_pause; + e_dbg("Flow Control = Rx PAUSE frames only.\n"); + } + } + /* For receiving PAUSE frames ONLY. + * + * LOCAL DEVICE | LINK PARTNER + * PAUSE | ASM_DIR | PAUSE | ASM_DIR | Result + *-------|---------|-------|---------|-------------------- + * 0 | 1 | 1 | 1 | e1000_fc_tx_pause + */ + else if (!(pcs_adv_reg & E1000_TXCW_PAUSE) && + (pcs_adv_reg & E1000_TXCW_ASM_DIR) && + (pcs_lp_ability_reg & E1000_TXCW_PAUSE) && + (pcs_lp_ability_reg & E1000_TXCW_ASM_DIR)) { + hw->fc.current_mode = e1000_fc_tx_pause; + e_dbg("Flow Control = Tx PAUSE frames only.\n"); + } + /* For transmitting PAUSE frames ONLY. + * + * LOCAL DEVICE | LINK PARTNER + * PAUSE | ASM_DIR | PAUSE | ASM_DIR | Result + *-------|---------|-------|---------|-------------------- + * 1 | 1 | 0 | 1 | e1000_fc_rx_pause + */ + else if ((pcs_adv_reg & E1000_TXCW_PAUSE) && + (pcs_adv_reg & E1000_TXCW_ASM_DIR) && + !(pcs_lp_ability_reg & E1000_TXCW_PAUSE) && + (pcs_lp_ability_reg & E1000_TXCW_ASM_DIR)) { + hw->fc.current_mode = e1000_fc_rx_pause; + e_dbg("Flow Control = Rx PAUSE frames only.\n"); + } else { + /* Per the IEEE spec, at this point flow control + * should be disabled. + */ + hw->fc.current_mode = e1000_fc_none; + e_dbg("Flow Control = NONE.\n"); + } + + /* Now we call a subroutine to actually force the MAC + * controller to use the correct flow control settings. + */ + pcs_ctrl_reg = er32(PCS_LCTL); + pcs_ctrl_reg |= E1000_PCS_LCTL_FORCE_FCTRL; + ew32(PCS_LCTL, pcs_ctrl_reg); + + ret_val = e1000e_force_mac_fc(hw); + if (ret_val) { + e_dbg("Error forcing flow control settings\n"); + return ret_val; + } + } + + return 0; } /** @@ -1349,35 +1323,32 @@ out: * speed and duplex for copper connections. **/ s32 e1000e_get_speed_and_duplex_copper(struct e1000_hw *hw, u16 *speed, - u16 *duplex) + u16 *duplex) { u32 status; status = er32(STATUS); - if (status & E1000_STATUS_SPEED_1000) { + if (status & E1000_STATUS_SPEED_1000) *speed = SPEED_1000; - e_dbg("1000 Mbs, "); - } else if (status & E1000_STATUS_SPEED_100) { + else if (status & E1000_STATUS_SPEED_100) *speed = SPEED_100; - e_dbg("100 Mbs, "); - } else { + else *speed = SPEED_10; - e_dbg("10 Mbs, "); - } - if (status & E1000_STATUS_FD) { + if (status & E1000_STATUS_FD) *duplex = FULL_DUPLEX; - e_dbg("Full Duplex\n"); - } else { + else *duplex = HALF_DUPLEX; - e_dbg("Half Duplex\n"); - } - return E1000_SUCCESS; + e_dbg("%u Mbps, %s Duplex\n", + *speed == SPEED_1000 ? 1000 : *speed == SPEED_100 ? 100 : 10, + *duplex == FULL_DUPLEX ? "Full" : "Half"); + + return 0; } /** - * e1000_get_speed_and_duplex_fiber_generic - Retrieve current speed/duplex + * e1000e_get_speed_and_duplex_fiber_serdes - Retrieve current speed/duplex * @hw: pointer to the HW structure * @speed: stores the current speed * @duplex: stores the current duplex @@ -1385,13 +1356,13 @@ s32 e1000e_get_speed_and_duplex_copper(struct e1000_hw *hw, u16 *speed, * Sets the speed and duplex to gigabit full duplex (the only possible option) * for fiber/serdes links. **/ -s32 e1000e_get_speed_and_duplex_fiber_serdes(struct e1000_hw *hw, - u16 *speed, u16 *duplex) +s32 e1000e_get_speed_and_duplex_fiber_serdes(struct e1000_hw __always_unused + *hw, u16 *speed, u16 *duplex) { *speed = SPEED_1000; *duplex = FULL_DUPLEX; - return E1000_SUCCESS; + return 0; } /** @@ -1403,7 +1374,6 @@ s32 e1000e_get_speed_and_duplex_fiber_serdes(struct e1000_hw *hw, s32 e1000e_get_hw_semaphore(struct e1000_hw *hw) { u32 swsm; - s32 ret_val = E1000_SUCCESS; s32 timeout = hw->nvm.word_size + 1; s32 i = 0; @@ -1413,14 +1383,13 @@ s32 e1000e_get_hw_semaphore(struct e1000_hw *hw) if (!(swsm & E1000_SWSM_SMBI)) break; - udelay(50); + usleep_range(50, 100); i++; } if (i == timeout) { e_dbg("Driver can't access device - SMBI bit is set.\n"); - ret_val = -E1000_ERR_NVM; - goto out; + return -E1000_ERR_NVM; } /* Get the FW semaphore. */ @@ -1432,19 +1401,17 @@ s32 e1000e_get_hw_semaphore(struct e1000_hw *hw) if (er32(SWSM) & E1000_SWSM_SWESMBI) break; - udelay(50); + usleep_range(50, 100); } if (i == timeout) { /* Release semaphores */ e1000e_put_hw_semaphore(hw); e_dbg("Driver can't access the NVM\n"); - ret_val = -E1000_ERR_NVM; - goto out; + return -E1000_ERR_NVM; } -out: - return ret_val; + return 0; } /** @@ -1461,6 +1428,7 @@ void e1000e_put_hw_semaphore(struct e1000_hw *hw) swsm &= ~(E1000_SWSM_SMBI | E1000_SWSM_SWESMBI); ew32(SWSM, swsm); } + /** * e1000e_get_auto_rd_done - Check for auto read completion * @hw: pointer to the HW structure @@ -1470,23 +1438,20 @@ void e1000e_put_hw_semaphore(struct e1000_hw *hw) s32 e1000e_get_auto_rd_done(struct e1000_hw *hw) { s32 i = 0; - s32 ret_val = E1000_SUCCESS; while (i < AUTO_READ_DONE_TIMEOUT) { if (er32(EECD) & E1000_EECD_AUTO_RD) break; - msleep(1); + usleep_range(1000, 2000); i++; } if (i == AUTO_READ_DONE_TIMEOUT) { e_dbg("Auto read by HW from NVM has not completed.\n"); - ret_val = -E1000_ERR_RESET; - goto out; + return -E1000_ERR_RESET; } -out: - return ret_val; + return 0; } /** @@ -1504,22 +1469,21 @@ s32 e1000e_valid_led_default(struct e1000_hw *hw, u16 *data) ret_val = e1000_read_nvm(hw, NVM_ID_LED_SETTINGS, 1, data); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } if (*data == ID_LED_RESERVED_0000 || *data == ID_LED_RESERVED_FFFF) *data = ID_LED_DEFAULT; -out: - return ret_val; + return 0; } /** - * e1000e_id_led_init - + * e1000e_id_led_init_generic - * @hw: pointer to the HW structure * **/ -s32 e1000e_id_led_init(struct e1000_hw *hw) +s32 e1000e_id_led_init_generic(struct e1000_hw *hw) { struct e1000_mac_info *mac = &hw->mac; s32 ret_val; @@ -1531,7 +1495,7 @@ s32 e1000e_id_led_init(struct e1000_hw *hw) ret_val = hw->nvm.ops.valid_led_default(hw, &data); if (ret_val) - goto out; + return ret_val; mac->ledctl_default = er32(LEDCTL); mac->ledctl_mode1 = mac->ledctl_default; @@ -1575,43 +1539,37 @@ s32 e1000e_id_led_init(struct e1000_hw *hw) } } -out: - return ret_val; + return 0; } /** - * e1000_setup_led_generic - Configures SW controllable LED + * e1000e_setup_led_generic - Configures SW controllable LED * @hw: pointer to the HW structure * * This prepares the SW controllable LED for use and saves the current state * of the LED so it can be later restored. **/ -s32 e1000_setup_led_generic(struct e1000_hw *hw) +s32 e1000e_setup_led_generic(struct e1000_hw *hw) { u32 ledctl; - s32 ret_val = E1000_SUCCESS; - if (hw->mac.ops.setup_led != e1000_setup_led_generic) { - ret_val = -E1000_ERR_CONFIG; - goto out; - } + if (hw->mac.ops.setup_led != e1000e_setup_led_generic) + return -E1000_ERR_CONFIG; if (hw->phy.media_type == e1000_media_type_fiber) { ledctl = er32(LEDCTL); hw->mac.ledctl_default = ledctl; /* Turn off LED0 */ - ledctl &= ~(E1000_LEDCTL_LED0_IVRT | - E1000_LEDCTL_LED0_BLINK | - E1000_LEDCTL_LED0_MODE_MASK); + ledctl &= ~(E1000_LEDCTL_LED0_IVRT | E1000_LEDCTL_LED0_BLINK | + E1000_LEDCTL_LED0_MODE_MASK); ledctl |= (E1000_LEDCTL_MODE_LED_OFF << - E1000_LEDCTL_LED0_MODE_SHIFT); + E1000_LEDCTL_LED0_MODE_SHIFT); ew32(LEDCTL, ledctl); } else if (hw->phy.media_type == e1000_media_type_copper) { ew32(LEDCTL, hw->mac.ledctl_mode1); } -out: - return ret_val; + return 0; } /** @@ -1623,26 +1581,17 @@ out: **/ s32 e1000e_cleanup_led_generic(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; - - if (hw->mac.ops.cleanup_led != e1000e_cleanup_led_generic) { - ret_val = -E1000_ERR_CONFIG; - goto out; - } - ew32(LEDCTL, hw->mac.ledctl_default); - -out: - return ret_val; + return 0; } /** - * e1000e_blink_led - Blink LED + * e1000e_blink_led_generic - Blink LED * @hw: pointer to the HW structure * * Blink the LEDs which are set to be on. **/ -s32 e1000e_blink_led(struct e1000_hw *hw) +s32 e1000e_blink_led_generic(struct e1000_hw *hw) { u32 ledctl_blink = 0; u32 i; @@ -1650,23 +1599,35 @@ s32 e1000e_blink_led(struct e1000_hw *hw) if (hw->phy.media_type == e1000_media_type_fiber) { /* always blink LED0 for PCI-E fiber */ ledctl_blink = E1000_LEDCTL_LED0_BLINK | - (E1000_LEDCTL_MODE_LED_ON << E1000_LEDCTL_LED0_MODE_SHIFT); + (E1000_LEDCTL_MODE_LED_ON << E1000_LEDCTL_LED0_MODE_SHIFT); } else { - /* - * set the blink bit for each LED that's "on" (0x0E) - * in ledctl_mode2 + /* Set the blink bit for each LED that's "on" (0x0E) + * (or "off" if inverted) in ledctl_mode2. The blink + * logic in hardware only works when mode is set to "on" + * so it must be changed accordingly when the mode is + * "off" and inverted. */ ledctl_blink = hw->mac.ledctl_mode2; - for (i = 0; i < 4; i++) - if (((hw->mac.ledctl_mode2 >> (i * 8)) & 0xFF) == - E1000_LEDCTL_MODE_LED_ON) - ledctl_blink |= (E1000_LEDCTL_LED0_BLINK << - (i * 8)); + for (i = 0; i < 32; i += 8) { + u32 mode = (hw->mac.ledctl_mode2 >> i) & + E1000_LEDCTL_LED0_MODE_MASK; + u32 led_default = hw->mac.ledctl_default >> i; + + if ((!(led_default & E1000_LEDCTL_LED0_IVRT) && + (mode == E1000_LEDCTL_MODE_LED_ON)) || + ((led_default & E1000_LEDCTL_LED0_IVRT) && + (mode == E1000_LEDCTL_MODE_LED_OFF))) { + ledctl_blink &= + ~(E1000_LEDCTL_LED0_MODE_MASK << i); + ledctl_blink |= (E1000_LEDCTL_LED0_BLINK | + E1000_LEDCTL_MODE_LED_ON) << i; + } + } } ew32(LEDCTL, ledctl_blink); - return E1000_SUCCESS; + return 0; } /** @@ -1693,7 +1654,7 @@ s32 e1000e_led_on_generic(struct e1000_hw *hw) break; } - return E1000_SUCCESS; + return 0; } /** @@ -1720,7 +1681,7 @@ s32 e1000e_led_off_generic(struct e1000_hw *hw) break; } - return E1000_SUCCESS; + return 0; } /** @@ -1734,24 +1695,19 @@ void e1000e_set_pcie_no_snoop(struct e1000_hw *hw, u32 no_snoop) { u32 gcr; - if (hw->bus.type != e1000_bus_type_pci_express) - goto out; - if (no_snoop) { gcr = er32(GCR); gcr &= ~(PCIE_NO_SNOOP_ALL); gcr |= no_snoop; ew32(GCR, gcr); } -out: - return; } /** * e1000e_disable_pcie_master - Disables PCI-express master access * @hw: pointer to the HW structure * - * Returns 0 (E1000_SUCCESS) if successful, else returns -10 + * Returns 0 if successful, else returns -10 * (-E1000_ERR_MASTER_REQUESTS_PENDING) if master disable bit has not caused * the master requests to be disabled. * @@ -1762,31 +1718,24 @@ s32 e1000e_disable_pcie_master(struct e1000_hw *hw) { u32 ctrl; s32 timeout = MASTER_DISABLE_TIMEOUT; - s32 ret_val = E1000_SUCCESS; - - if (hw->bus.type != e1000_bus_type_pci_express) - goto out; ctrl = er32(CTRL); ctrl |= E1000_CTRL_GIO_MASTER_DISABLE; ew32(CTRL, ctrl); while (timeout) { - if (!(er32(STATUS) & - E1000_STATUS_GIO_MASTER_ENABLE)) + if (!(er32(STATUS) & E1000_STATUS_GIO_MASTER_ENABLE)) break; - udelay(100); + usleep_range(100, 200); timeout--; } if (!timeout) { e_dbg("Master requests are pending.\n"); - ret_val = -E1000_ERR_MASTER_REQUESTS_PENDING; - goto out; + return -E1000_ERR_MASTER_REQUESTS_PENDING; } -out: - return ret_val; + return 0; } /** @@ -1801,7 +1750,7 @@ void e1000e_reset_adaptive(struct e1000_hw *hw) if (!mac->adaptive_ifs) { e_dbg("Not in Adaptive IFS mode!\n"); - goto out; + return; } mac->current_ifs_val = 0; @@ -1812,8 +1761,6 @@ void e1000e_reset_adaptive(struct e1000_hw *hw) mac->in_ifs_mode = false; ew32(AIT, 0); -out: - return; } /** @@ -1829,7 +1776,7 @@ void e1000e_update_adaptive(struct e1000_hw *hw) if (!mac->adaptive_ifs) { e_dbg("Not in Adaptive IFS mode!\n"); - goto out; + return; } if ((mac->collision_delta * mac->ifs_ratio) > mac->tx_packet_delta) { @@ -1840,7 +1787,7 @@ void e1000e_update_adaptive(struct e1000_hw *hw) mac->current_ifs_val = mac->ifs_min_val; else mac->current_ifs_val += - mac->ifs_step_size; + mac->ifs_step_size; ew32(AIT, mac->current_ifs_val); } } @@ -1852,28 +1799,35 @@ void e1000e_update_adaptive(struct e1000_hw *hw) ew32(AIT, 0); } } -out: - return; } /** - * e1000_validate_mdi_setting_generic - Verify MDI/MDIx settings + * e1000e_validate_mdi_setting_generic - Verify MDI/MDIx settings * @hw: pointer to the HW structure * * Verify that when not using auto-negotiation that MDI/MDIx is correctly * set, which is forced to MDI mode only. **/ -static s32 e1000_validate_mdi_setting_generic(struct e1000_hw *hw) +s32 e1000e_validate_mdi_setting_generic(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; - if (!hw->mac.autoneg && (hw->phy.mdix == 0 || hw->phy.mdix == 3)) { e_dbg("Invalid MDI setting detected\n"); hw->phy.mdix = 1; - ret_val = -E1000_ERR_CONFIG; - goto out; + return -E1000_ERR_CONFIG; } -out: - return ret_val; + return 0; +} + +/** + * e1000e_validate_mdi_setting_crossover_generic - Verify MDI/MDIx settings + * @hw: pointer to the HW structure + * + * Validate the MDI/MDIx setting, allowing for auto-crossover during forced + * operation. + **/ +s32 e1000e_validate_mdi_setting_crossover_generic(struct e1000_hw + __always_unused *hw) +{ + return 0; } diff --git a/vmkdrivers/src_9/drivers/net/e1000e/mac.h b/vmkdrivers/src_9/drivers/net/e1000e/mac.h new file mode 100644 index 0000000000000000000000000000000000000000..b335acb2d4fa4e3c76fa0530af95a75c670c8afb --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/mac.h @@ -0,0 +1,69 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +#ifndef _E1000E_MAC_H_ +#define _E1000E_MAC_H_ + +s32 e1000e_blink_led_generic(struct e1000_hw *hw); +s32 e1000e_check_for_copper_link(struct e1000_hw *hw); +s32 e1000e_check_for_fiber_link(struct e1000_hw *hw); +s32 e1000e_check_for_serdes_link(struct e1000_hw *hw); +s32 e1000e_cleanup_led_generic(struct e1000_hw *hw); +s32 e1000e_config_fc_after_link_up(struct e1000_hw *hw); +s32 e1000e_disable_pcie_master(struct e1000_hw *hw); +s32 e1000e_force_mac_fc(struct e1000_hw *hw); +s32 e1000e_get_auto_rd_done(struct e1000_hw *hw); +s32 e1000e_get_bus_info_pcie(struct e1000_hw *hw); +void e1000_set_lan_id_single_port(struct e1000_hw *hw); +s32 e1000e_get_hw_semaphore(struct e1000_hw *hw); +s32 e1000e_get_speed_and_duplex_copper(struct e1000_hw *hw, u16 *speed, + u16 *duplex); +s32 e1000e_get_speed_and_duplex_fiber_serdes(struct e1000_hw *hw, + u16 *speed, u16 *duplex); +s32 e1000e_id_led_init_generic(struct e1000_hw *hw); +s32 e1000e_led_on_generic(struct e1000_hw *hw); +s32 e1000e_led_off_generic(struct e1000_hw *hw); +void e1000e_update_mc_addr_list_generic(struct e1000_hw *hw, + u8 *mc_addr_list, u32 mc_addr_count); +s32 e1000e_set_fc_watermarks(struct e1000_hw *hw); +s32 e1000e_setup_fiber_serdes_link(struct e1000_hw *hw); +s32 e1000e_setup_led_generic(struct e1000_hw *hw); +s32 e1000e_setup_link_generic(struct e1000_hw *hw); +s32 e1000e_validate_mdi_setting_generic(struct e1000_hw *hw); +s32 e1000e_validate_mdi_setting_crossover_generic(struct e1000_hw *hw); + +void e1000e_clear_hw_cntrs_base(struct e1000_hw *hw); +void e1000_clear_vfta_generic(struct e1000_hw *hw); +void e1000e_init_rx_addrs(struct e1000_hw *hw, u16 rar_count); +void e1000e_put_hw_semaphore(struct e1000_hw *hw); +s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw); +void e1000e_reset_adaptive(struct e1000_hw *hw); +void e1000e_set_pcie_no_snoop(struct e1000_hw *hw, u32 no_snoop); +void e1000e_update_adaptive(struct e1000_hw *hw); +void e1000_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value); + +void e1000_set_lan_id_multi_port_pcie(struct e1000_hw *hw); +int e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index); +u32 e1000e_rar_get_count_generic(struct e1000_hw *hw); +void e1000e_config_collision_dist_generic(struct e1000_hw *hw); + +#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_manage.c b/vmkdrivers/src_9/drivers/net/e1000e/manage.c similarity index 53% rename from vmkdrivers/src_9/drivers/net/e1000e/e1000_manage.c rename to vmkdrivers/src_9/drivers/net/e1000e/manage.c index 42d683297071e86cd73cc2b7e9ddd92be53c9ef5..0640f2f9a0fdbe51a2cbb27a84b2cbcb576f577b 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_manage.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/manage.c @@ -1,35 +1,27 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ #include "e1000.h" -static u8 e1000_calculate_checksum(u8 *buffer, u32 length); - /** * e1000_calculate_checksum - Calculate checksum for buffer * @buffer: pointer to EEPROM @@ -41,18 +33,18 @@ static u8 e1000_calculate_checksum(u8 *buffer, u32 length); static u8 e1000_calculate_checksum(u8 *buffer, u32 length) { u32 i; - u8 sum = 0; + u8 sum = 0; if (!buffer) return 0; for (i = 0; i < length; i++) sum += buffer[i]; - return (u8) (0 - sum); + return (u8)(0 - sum); } /** - * e1000_mng_enable_host_if_generic - Checks host interface is enabled + * e1000_mng_enable_host_if - Checks host interface is enabled * @hw: pointer to the HW structure * * Returns E1000_success upon success, else E1000_ERR_HOST_INTERFACE_COMMAND @@ -61,18 +53,21 @@ static u8 e1000_calculate_checksum(u8 *buffer, u32 length) * and also checks whether the previous command is completed. It busy waits * in case of previous command is not completed. **/ -s32 e1000_mng_enable_host_if_generic(struct e1000_hw *hw) +static s32 e1000_mng_enable_host_if(struct e1000_hw *hw) { u32 hicr; - s32 ret_val = E1000_SUCCESS; - u8 i; + u8 i; + + if (!hw->mac.arc_subsystem_valid) { + e_dbg("ARC subsystem not valid.\n"); + return -E1000_ERR_HOST_INTERFACE_COMMAND; + } /* Check that the host interface is enabled. */ hicr = er32(HICR); - if ((hicr & E1000_HICR_EN) == 0) { + if (!(hicr & E1000_HICR_EN)) { e_dbg("E1000_HOST_EN bit disabled.\n"); - ret_val = -E1000_ERR_HOST_INTERFACE_COMMAND; - goto out; + return -E1000_ERR_HOST_INTERFACE_COMMAND; } /* check the previous command is completed */ for (i = 0; i < E1000_MNG_DHCP_COMMAND_TIMEOUT; i++) { @@ -84,31 +79,29 @@ s32 e1000_mng_enable_host_if_generic(struct e1000_hw *hw) if (i == E1000_MNG_DHCP_COMMAND_TIMEOUT) { e_dbg("Previous command timeout failed .\n"); - ret_val = -E1000_ERR_HOST_INTERFACE_COMMAND; - goto out; + return -E1000_ERR_HOST_INTERFACE_COMMAND; } -out: - return ret_val; + return 0; } /** - * e1000_check_mng_mode_generic - Generic check management mode + * e1000e_check_mng_mode_generic - Generic check management mode * @hw: pointer to the HW structure * * Reads the firmware semaphore register and returns true (>0) if * manageability is enabled, else false (0). **/ -bool e1000_check_mng_mode_generic(struct e1000_hw *hw) +bool e1000e_check_mng_mode_generic(struct e1000_hw *hw) { - u32 fwsm; + u32 fwsm = er32(FWSM); - fwsm = er32(FWSM); return (fwsm & E1000_FWSM_MODE_MASK) == - (E1000_MNG_IAMT_MODE << E1000_FWSM_MODE_SHIFT); + (E1000_MNG_IAMT_MODE << E1000_FWSM_MODE_SHIFT); } + /** - * e1000e_enable_tx_pkt_filtering - Enable packet filtering on TX + * e1000e_enable_tx_pkt_filtering - Enable packet filtering on Tx * @hw: pointer to the HW structure * * Enables packet filtering on transmit packets if manageability is enabled @@ -121,109 +114,59 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw) u32 offset; s32 ret_val, hdr_csum, csum; u8 i, len; - bool tx_filter = true; + + hw->mac.tx_pkt_filtering = true; /* No manageability, no filtering */ if (!hw->mac.ops.check_mng_mode(hw)) { - tx_filter = false; - goto out; + hw->mac.tx_pkt_filtering = false; + return hw->mac.tx_pkt_filtering; } - /* - * If we can't read from the host interface for whatever + /* If we can't read from the host interface for whatever * reason, disable filtering. */ - ret_val = hw->mac.ops.mng_enable_host_if(hw); - if (ret_val != E1000_SUCCESS) { - tx_filter = false; - goto out; + ret_val = e1000_mng_enable_host_if(hw); + if (ret_val) { + hw->mac.tx_pkt_filtering = false; + return hw->mac.tx_pkt_filtering; } /* Read in the header. Length and offset are in dwords. */ - len = E1000_MNG_DHCP_COOKIE_LENGTH >> 2; + len = E1000_MNG_DHCP_COOKIE_LENGTH >> 2; offset = E1000_MNG_DHCP_COOKIE_OFFSET >> 2; - for (i = 0; i < len; i++) { - *(buffer + i) = E1000_READ_REG_ARRAY_DWORD(hw, - E1000_HOST_IF, - offset + i); - } + for (i = 0; i < len; i++) + *(buffer + i) = E1000_READ_REG_ARRAY(hw, E1000_HOST_IF, + offset + i); hdr_csum = hdr->checksum; hdr->checksum = 0; csum = e1000_calculate_checksum((u8 *)hdr, - E1000_MNG_DHCP_COOKIE_LENGTH); - /* - * If either the checksums or signature don't match, then + E1000_MNG_DHCP_COOKIE_LENGTH); + /* If either the checksums or signature don't match, then * the cookie area isn't considered valid, in which case we * take the safe route of assuming Tx filtering is enabled. */ - if (hdr_csum != csum) - goto out; - if (hdr->signature != E1000_IAMT_SIGNATURE) - goto out; + if ((hdr_csum != csum) || (hdr->signature != E1000_IAMT_SIGNATURE)) { + hw->mac.tx_pkt_filtering = true; + return hw->mac.tx_pkt_filtering; + } /* Cookie area is valid, make the final check for filtering. */ if (!(hdr->status & E1000_MNG_DHCP_COOKIE_STATUS_PARSING)) - tx_filter = false; + hw->mac.tx_pkt_filtering = false; -out: - hw->mac.tx_pkt_filtering = tx_filter; - return tx_filter; + return hw->mac.tx_pkt_filtering; } /** - * e1000e_mng_write_dhcp_info - Writes DHCP info to host interface - * @hw: pointer to the HW structure - * @buffer: pointer to the host interface - * @length: size of the buffer - * - * Writes the DHCP information to the host interface. - **/ -s32 e1000e_mng_write_dhcp_info(struct e1000_hw *hw, u8 *buffer, - u16 length) -{ - struct e1000_host_mng_command_header hdr; - s32 ret_val; - u32 hicr; - - hdr.command_id = E1000_MNG_DHCP_TX_PAYLOAD_CMD; - hdr.command_length = length; - hdr.reserved1 = 0; - hdr.reserved2 = 0; - hdr.checksum = 0; - - /* Enable the host interface */ - ret_val = hw->mac.ops.mng_enable_host_if(hw); - if (ret_val) - goto out; - - /* Populate the host interface with the contents of "buffer". */ - ret_val = hw->mac.ops.mng_host_if_write(hw, buffer, length, - sizeof(hdr), &(hdr.checksum)); - if (ret_val) - goto out; - - /* Write the manageability command header */ - ret_val = hw->mac.ops.mng_write_cmd_header(hw, &hdr); - if (ret_val) - goto out; - - /* Tell the ARC a new command is pending. */ - hicr = er32(HICR); - ew32(HICR, hicr | E1000_HICR_C); - -out: - return ret_val; -} - -/** - * e1000_mng_write_cmd_header_generic - Writes manageability command header + * e1000_mng_write_cmd_header - Writes manageability command header * @hw: pointer to the HW structure * @hdr: pointer to the host interface command header * * Writes the command header after does the checksum calculation. **/ -s32 e1000_mng_write_cmd_header_generic(struct e1000_hw *hw, - struct e1000_host_mng_command_header *hdr) +static s32 e1000_mng_write_cmd_header(struct e1000_hw *hw, + struct e1000_host_mng_command_header *hdr) { u16 i, length = sizeof(struct e1000_host_mng_command_header); @@ -234,16 +177,15 @@ s32 e1000_mng_write_cmd_header_generic(struct e1000_hw *hw, length >>= 2; /* Write the relevant command block into the ram area. */ for (i = 0; i < length; i++) { - E1000_WRITE_REG_ARRAY_DWORD(hw, E1000_HOST_IF, i, - *((u32 *) hdr + i)); + E1000_WRITE_REG_ARRAY(hw, E1000_HOST_IF, i, *((u32 *)hdr + i)); e1e_flush(); } - return E1000_SUCCESS; + return 0; } /** - * e1000_mng_host_if_write_generic - Write to the manageability host interface + * e1000_mng_host_if_write - Write to the manageability host interface * @hw: pointer to the HW structure * @buffer: pointer to the host interface buffer * @length: size of the buffer @@ -254,33 +196,30 @@ s32 e1000_mng_write_cmd_header_generic(struct e1000_hw *hw, * It also does alignment considerations to do the writes in most efficient * way. Also fills up the sum of the buffer in *buffer parameter. **/ -s32 e1000_mng_host_if_write_generic(struct e1000_hw *hw, u8 *buffer, - u16 length, u16 offset, u8 *sum) +static s32 e1000_mng_host_if_write(struct e1000_hw *hw, u8 *buffer, + u16 length, u16 offset, u8 *sum) { u8 *tmp; u8 *bufptr = buffer; u32 data = 0; - s32 ret_val = E1000_SUCCESS; u16 remaining, i, j, prev_bytes; /* sum = only sum of the data and it is not checksum */ - if (length == 0 || offset + length > E1000_HI_MAX_MNG_DATA_LENGTH) { - ret_val = -E1000_ERR_PARAM; - goto out; - } + if (length == 0 || offset + length > E1000_HI_MAX_MNG_DATA_LENGTH) + return -E1000_ERR_PARAM; tmp = (u8 *)&data; prev_bytes = offset & 0x3; offset >>= 2; if (prev_bytes) { - data = E1000_READ_REG_ARRAY_DWORD(hw, E1000_HOST_IF, offset); + data = E1000_READ_REG_ARRAY(hw, E1000_HOST_IF, offset); for (j = prev_bytes; j < sizeof(u32); j++) { *(tmp + j) = *bufptr++; *sum += *(tmp + j); } - E1000_WRITE_REG_ARRAY_DWORD(hw, E1000_HOST_IF, offset, data); + E1000_WRITE_REG_ARRAY(hw, E1000_HOST_IF, offset, data); length -= j - prev_bytes; offset++; } @@ -291,8 +230,7 @@ s32 e1000_mng_host_if_write_generic(struct e1000_hw *hw, u8 *buffer, /* Calculate length in DWORDs */ length >>= 2; - /* - * The device driver writes the relevant command block into the + /* The device driver writes the relevant command block into the * ram area. */ for (i = 0; i < length; i++) { @@ -301,8 +239,7 @@ s32 e1000_mng_host_if_write_generic(struct e1000_hw *hw, u8 *buffer, *sum += *(tmp + j); } - E1000_WRITE_REG_ARRAY_DWORD(hw, E1000_HOST_IF, offset + i, - data); + E1000_WRITE_REG_ARRAY(hw, E1000_HOST_IF, offset + i, data); } if (remaining) { for (j = 0; j < sizeof(u32); j++) { @@ -313,53 +250,98 @@ s32 e1000_mng_host_if_write_generic(struct e1000_hw *hw, u8 *buffer, *sum += *(tmp + j); } - E1000_WRITE_REG_ARRAY_DWORD(hw, E1000_HOST_IF, offset + i, data); + E1000_WRITE_REG_ARRAY(hw, E1000_HOST_IF, offset + i, data); } -out: - return ret_val; + return 0; } /** - * e1000e_enable_mng_pass_thru - Enable processing of ARP's + * e1000e_mng_write_dhcp_info - Writes DHCP info to host interface * @hw: pointer to the HW structure + * @buffer: pointer to the host interface + * @length: size of the buffer * - * Verifies the hardware needs to allow ARPs to be processed by the host. + * Writes the DHCP information to the host interface. + **/ +s32 e1000e_mng_write_dhcp_info(struct e1000_hw *hw, u8 *buffer, u16 length) +{ + struct e1000_host_mng_command_header hdr; + s32 ret_val; + u32 hicr; + + hdr.command_id = E1000_MNG_DHCP_TX_PAYLOAD_CMD; + hdr.command_length = length; + hdr.reserved1 = 0; + hdr.reserved2 = 0; + hdr.checksum = 0; + + /* Enable the host interface */ + ret_val = e1000_mng_enable_host_if(hw); + if (ret_val) + return ret_val; + + /* Populate the host interface with the contents of "buffer". */ + ret_val = e1000_mng_host_if_write(hw, buffer, length, + sizeof(hdr), &(hdr.checksum)); + if (ret_val) + return ret_val; + + /* Write the manageability command header */ + ret_val = e1000_mng_write_cmd_header(hw, &hdr); + if (ret_val) + return ret_val; + + /* Tell the ARC a new command is pending. */ + hicr = er32(HICR); + ew32(HICR, hicr | E1000_HICR_C); + + return 0; +} + +/** + * e1000e_enable_mng_pass_thru - Check if management passthrough is needed + * @hw: pointer to the HW structure + * + * Verifies the hardware needs to leave interface enabled so that frames can + * be directed to and from the management interface. **/ bool e1000e_enable_mng_pass_thru(struct e1000_hw *hw) { u32 manc; u32 fwsm, factps; - bool ret_val = false; - - if (!hw->mac.asf_firmware_present) - goto out; manc = er32(MANC); - if (!(manc & E1000_MANC_RCV_TCO_EN) || - !(manc & E1000_MANC_EN_MAC_ADDR_FILTER)) - goto out; + if (!(manc & E1000_MANC_RCV_TCO_EN)) + return false; - if (hw->mac.arc_subsystem_valid) { + if (hw->mac.has_fwsm) { fwsm = er32(FWSM); factps = er32(FACTPS); if (!(factps & E1000_FACTPS_MNGCG) && ((fwsm & E1000_FWSM_MODE_MASK) == - (e1000_mng_mode_pt << E1000_FWSM_MODE_SHIFT))) { - ret_val = true; - goto out; - } - } else { - if ((manc & E1000_MANC_SMBUS_EN) && - !(manc & E1000_MANC_ASF_EN)) { - ret_val = true; - goto out; - } + (e1000_mng_mode_pt << E1000_FWSM_MODE_SHIFT))) + return true; + } else if ((hw->mac.type == e1000_82574) || + (hw->mac.type == e1000_82583)) { + u16 data; + s32 ret_val; + + factps = er32(FACTPS); + ret_val = e1000_read_nvm(hw, NVM_INIT_CONTROL2_REG, 1, &data); + if (ret_val) + return false; + + if (!(factps & E1000_FACTPS_MNGCG) && + ((data & E1000_NVM_INIT_CTRL2_MNGM) == + (e1000_mng_mode_pt << 13))) + return true; + } else if ((manc & E1000_MANC_SMBUS_EN) && + !(manc & E1000_MANC_ASF_EN)) { + return true; } -out: - return ret_val; + return false; } - diff --git a/vmkdrivers/src_9/drivers/net/e1000e/manage.h b/vmkdrivers/src_9/drivers/net/e1000e/manage.h new file mode 100644 index 0000000000000000000000000000000000000000..aad919b3f1ed22aa8e6b634d89cc9bcbd6add5b4 --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/manage.h @@ -0,0 +1,66 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +#ifndef _E1000E_MANAGE_H_ +#define _E1000E_MANAGE_H_ + +bool e1000e_check_mng_mode_generic(struct e1000_hw *hw); +bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw); +s32 e1000e_mng_write_dhcp_info(struct e1000_hw *hw, u8 *buffer, u16 length); +bool e1000e_enable_mng_pass_thru(struct e1000_hw *hw); + +enum e1000_mng_mode { + e1000_mng_mode_none = 0, + e1000_mng_mode_asf, + e1000_mng_mode_pt, + e1000_mng_mode_ipmi, + e1000_mng_mode_host_if_only +}; + +#define E1000_FACTPS_MNGCG 0x20000000 + +#define E1000_FWSM_MODE_MASK 0xE +#define E1000_FWSM_MODE_SHIFT 1 + +#define E1000_MNG_IAMT_MODE 0x3 +#define E1000_MNG_DHCP_COOKIE_LENGTH 0x10 +#define E1000_MNG_DHCP_COOKIE_OFFSET 0x6F0 +#define E1000_MNG_DHCP_COMMAND_TIMEOUT 10 +#define E1000_MNG_DHCP_TX_PAYLOAD_CMD 64 +#define E1000_MNG_DHCP_COOKIE_STATUS_PARSING 0x1 +#define E1000_MNG_DHCP_COOKIE_STATUS_VLAN 0x2 + +#define E1000_VFTA_ENTRY_SHIFT 5 +#define E1000_VFTA_ENTRY_MASK 0x7F +#define E1000_VFTA_ENTRY_BIT_SHIFT_MASK 0x1F + +#define E1000_HICR_EN 0x01 /* Enable bit - RO */ +/* Driver sets this bit when done to put command in RAM */ +#define E1000_HICR_C 0x02 +#define E1000_HICR_SV 0x04 /* Status Validity */ +#define E1000_HICR_FW_RESET_ENABLE 0x40 +#define E1000_HICR_FW_RESET 0x80 + +/* Intel(R) Active Management Technology signature */ +#define E1000_IAMT_SIGNATURE 0x544D4149 + +#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/netdev.c b/vmkdrivers/src_9/drivers/net/e1000e/netdev.c index 6c9d056cc6c5db88c22abe9703cc1f8c2776fbb5..c00094faad030fc099fdb370df56282e5d924ef9 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/netdev.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/netdev.c @@ -1,30 +1,26 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ -*******************************************************************************/ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include #include @@ -34,290 +30,436 @@ #include #include #include +#include #include #include +#include #ifdef NETIF_F_TSO #include #ifdef NETIF_F_TSO6 #include #endif #endif -#include #include -#ifdef NETIF_F_HW_VLAN_TX +#if defined(NETIF_F_HW_VLAN_TX) || defined(NETIF_F_HW_VLAN_CTAG_TX) #include #endif +#include #include "e1000.h" #ifdef CONFIG_E1000E_NAPI -#define DRV_EXTRAVERSION "-NAPI" +#define DRV_EXTRAVERSION "" "-NAPI" #else -#define DRV_EXTRAVERSION +#define DRV_EXTRAVERSION "" #endif -#define DRV_VERSION "1.1.2" DRV_EXTRAVERSION -#define MIN_IOBASE_LEN 0x100 +#define DRV_VERSION "3.2.2.1" DRV_EXTRAVERSION char e1000e_driver_name[] = "e1000e"; const char e1000e_driver_version[] = DRV_VERSION; -static s32 e1000_get_variants_82571(struct e1000_adapter *adapter) +#define DEFAULT_MSG_ENABLE (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK) +static int debug = -1; +module_param(debug, int, 0); +MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)"); + +static void e1000e_disable_aspm(struct pci_dev *pdev, u16 state); + +static const struct e1000_info *e1000_info_tbl[] = { + [board_82571] = &e1000_82571_info, + [board_82572] = &e1000_82572_info, + [board_82573] = &e1000_82573_info, + [board_82574] = &e1000_82574_info, + [board_82583] = &e1000_82583_info, + [board_80003es2lan] = &e1000_es2_info, + [board_ich8lan] = &e1000_ich8_info, + [board_ich9lan] = &e1000_ich9_info, + [board_ich10lan] = &e1000_ich10_info, + [board_pchlan] = &e1000_pch_info, + [board_pch2lan] = &e1000_pch2_info, + [board_pch_lpt] = &e1000_pch_lpt_info, + [board_pch_spt] = &e1000_pch_spt_info, +}; + +struct e1000_reg_info { + u32 ofs; + char *name; +}; + +static const struct e1000_reg_info e1000_reg_info_tbl[] = { + /* General Registers */ + {E1000_CTRL, "CTRL"}, + {E1000_STATUS, "STATUS"}, + {E1000_CTRL_EXT, "CTRL_EXT"}, + + /* Interrupt Registers */ + {E1000_ICR, "ICR"}, + + /* Rx Registers */ + {E1000_RCTL, "RCTL"}, + {E1000_RDLEN(0), "RDLEN"}, + {E1000_RDH(0), "RDH"}, + {E1000_RDT(0), "RDT"}, + {E1000_RDTR, "RDTR"}, + {E1000_RXDCTL(0), "RXDCTL"}, + {E1000_ERT, "ERT"}, + {E1000_RDBAL(0), "RDBAL"}, + {E1000_RDBAH(0), "RDBAH"}, + {E1000_RDFH, "RDFH"}, + {E1000_RDFT, "RDFT"}, + {E1000_RDFHS, "RDFHS"}, + {E1000_RDFTS, "RDFTS"}, + {E1000_RDFPC, "RDFPC"}, + + /* Tx Registers */ + {E1000_TCTL, "TCTL"}, + {E1000_TDBAL(0), "TDBAL"}, + {E1000_TDBAH(0), "TDBAH"}, + {E1000_TDLEN(0), "TDLEN"}, + {E1000_TDH(0), "TDH"}, + {E1000_TDT(0), "TDT"}, + {E1000_TIDV, "TIDV"}, + {E1000_TXDCTL(0), "TXDCTL"}, + {E1000_TADV, "TADV"}, + {E1000_TARC(0), "TARC"}, + {E1000_TDFH, "TDFH"}, + {E1000_TDFT, "TDFT"}, + {E1000_TDFHS, "TDFHS"}, + {E1000_TDFTS, "TDFTS"}, + {E1000_TDFPC, "TDFPC"}, + + /* List Terminator */ + {0, NULL} +}; + +/** + * e1000_regdump - register printout routine + * @hw: pointer to the HW structure + * @reginfo: pointer to the register info table + **/ +static void e1000_regdump(struct e1000_hw *hw, struct e1000_reg_info *reginfo) { - struct e1000_hw *hw = &adapter->hw; - static int global_quad_port_a; /* global port a indication */ - struct pci_dev *pdev = adapter->pdev; - u16 eeprom_data = 0; - int is_port_b = er32(STATUS) & E1000_STATUS_FUNC_1; - - /* tag quad port adapters first, it's used below */ - switch (pdev->device) { - case E1000_DEV_ID_82571EB_QUAD_COPPER: - case E1000_DEV_ID_82571EB_QUAD_FIBER: - case E1000_DEV_ID_82571EB_QUAD_COPPER_LP: - case E1000_DEV_ID_82571PT_QUAD_COPPER: - adapter->flags |= FLAG_IS_QUAD_PORT; - /* mark the first port */ - if (global_quad_port_a == 0) - adapter->flags |= FLAG_IS_QUAD_PORT_A; - /* Reset for multiple quad port adapters */ - global_quad_port_a++; - if (global_quad_port_a == 4) - global_quad_port_a = 0; + int n = 0; + char rname[16]; + u32 regs[8]; + + switch (reginfo->ofs) { + case E1000_RXDCTL(0): + for (n = 0; n < 2; n++) + regs[n] = __er32(hw, E1000_RXDCTL(n)); break; - default: + case E1000_TXDCTL(0): + for (n = 0; n < 2; n++) + regs[n] = __er32(hw, E1000_TXDCTL(n)); break; - } - - switch (adapter->hw.mac.type) { - case e1000_82571: - /* these dual ports don't have WoL on port B at all */ - if (((pdev->device == E1000_DEV_ID_82571EB_FIBER) || - (pdev->device == E1000_DEV_ID_82571EB_SERDES) || - (pdev->device == E1000_DEV_ID_82571EB_COPPER)) && - (is_port_b)) - adapter->flags &= ~FLAG_HAS_WOL; - /* quad ports only support WoL on port A */ - if (adapter->flags & FLAG_IS_QUAD_PORT && - (!(adapter->flags & FLAG_IS_QUAD_PORT_A))) - adapter->flags &= ~FLAG_HAS_WOL; - /* Does not support WoL on any port */ - if (pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD) - adapter->flags &= ~FLAG_HAS_WOL; + case E1000_TARC(0): + for (n = 0; n < 2; n++) + regs[n] = __er32(hw, E1000_TARC(n)); break; - - case e1000_82573: - if (pdev->device == E1000_DEV_ID_82573L) { - if (e1000_read_nvm(&adapter->hw, NVM_INIT_3GIO_3, 1, - &eeprom_data) < 0) - break; - if (!(eeprom_data & NVM_WORD1A_ASPM_MASK)) { - adapter->flags |= FLAG_HAS_JUMBO_FRAMES; - adapter->max_hw_frame_size = DEFAULT_JUMBO; - } - } - break; - default: - break; + pr_info("%-15s %08x\n", + reginfo->name, __er32(hw, reginfo->ofs)); + return; } - return 0; + snprintf(rname, 16, "%s%s", reginfo->name, "[0-1]"); + pr_info("%-15s %08x %08x\n", rname, regs[0], regs[1]); } -static struct e1000_info e1000_82571_info = { - .mac = e1000_82571, - .flags = FLAG_HAS_HW_VLAN_FILTER - | FLAG_HAS_JUMBO_FRAMES - | FLAG_HAS_WOL - | FLAG_APME_IN_CTRL3 - | FLAG_RX_CSUM_ENABLED - | FLAG_HAS_CTRLEXT_ON_LOAD - | FLAG_HAS_SMART_POWER_DOWN - | FLAG_RESET_OVERWRITES_LAA /* errata */ - | FLAG_TARC_SPEED_MODE_BIT /* errata */ - | FLAG_APME_CHECK_PORT_B, - .pba = 38, - .max_hw_frame_size = DEFAULT_JUMBO, - .init_ops = e1000_init_function_pointers_82571, - .get_variants = e1000_get_variants_82571, -}; - -static struct e1000_info e1000_82572_info = { - .mac = e1000_82572, - .flags = FLAG_HAS_HW_VLAN_FILTER - | FLAG_HAS_JUMBO_FRAMES - | FLAG_HAS_WOL - | FLAG_APME_IN_CTRL3 - | FLAG_RX_CSUM_ENABLED - | FLAG_HAS_CTRLEXT_ON_LOAD - | FLAG_TARC_SPEED_MODE_BIT, /* errata */ - .pba = 38, - .max_hw_frame_size = DEFAULT_JUMBO, - .init_ops = e1000_init_function_pointers_82571, - .get_variants = e1000_get_variants_82571, -}; +static void e1000e_dump_ps_pages(struct e1000_adapter *adapter, + struct e1000_buffer *bi) +{ + int i; + struct e1000_ps_page *ps_page; -static struct e1000_info e1000_82573_info = { - .mac = e1000_82573, - .flags = FLAG_HAS_HW_VLAN_FILTER - | FLAG_HAS_WOL - | FLAG_APME_IN_CTRL3 - | FLAG_RX_CSUM_ENABLED - | FLAG_HAS_SMART_POWER_DOWN - | FLAG_HAS_AMT - | FLAG_HAS_ERT - | FLAG_HAS_SWSM_ON_LOAD, - .pba = 32, - .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN, - .init_ops = e1000_init_function_pointers_82571, - .get_variants = e1000_get_variants_82571, -}; + for (i = 0; i < adapter->rx_ps_pages; i++) { + ps_page = &bi->ps_pages[i]; -static struct e1000_info e1000_82574_info = { - .mac = e1000_82574, - .flags = FLAG_HAS_HW_VLAN_FILTER -#ifdef CONFIG_E1000E_MSIX - | FLAG_HAS_MSIX -#endif - | FLAG_HAS_JUMBO_FRAMES - | FLAG_HAS_WOL - | FLAG_APME_IN_CTRL3 - | FLAG_RX_CSUM_ENABLED - | FLAG_HAS_SMART_POWER_DOWN - | FLAG_HAS_AMT - | FLAG_HAS_CTRLEXT_ON_LOAD, - .pba = 32, - .max_hw_frame_size = DEFAULT_JUMBO, - .init_ops = e1000_init_function_pointers_82571, - .get_variants = e1000_get_variants_82571, -}; + if (ps_page->page) { + pr_info("packet dump for ps_page %d:\n", i); + print_hex_dump(KERN_INFO, "", DUMP_PREFIX_ADDRESS, + 16, 1, page_address(ps_page->page), + PAGE_SIZE, true); + } + } +} -static struct e1000_info e1000_82583_info = { - .mac = e1000_82583, - .flags = FLAG_HAS_HW_VLAN_FILTER - | FLAG_HAS_WOL - | FLAG_APME_IN_CTRL3 - | FLAG_RX_CSUM_ENABLED - | FLAG_HAS_SMART_POWER_DOWN - | FLAG_HAS_AMT - | FLAG_HAS_CTRLEXT_ON_LOAD, - .pba = 20, - .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN, - .init_ops = e1000_init_function_pointers_82571, - .get_variants = e1000_get_variants_82571, -}; +/** + * e1000e_dump - Print registers, Tx-ring and Rx-ring + * @adapter: board private structure + **/ +static void e1000e_dump(struct e1000_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + struct e1000_hw *hw = &adapter->hw; + struct e1000_reg_info *reginfo; + struct e1000_ring *tx_ring = adapter->tx_ring; + struct e1000_tx_desc *tx_desc; + struct my_u0 { + __le64 a; + __le64 b; + } *u0; + struct e1000_buffer *buffer_info; + struct e1000_ring *rx_ring = adapter->rx_ring; + union e1000_rx_desc_packet_split *rx_desc_ps; + union e1000_rx_desc_extended *rx_desc; + struct my_u1 { + __le64 a; + __le64 b; + __le64 c; + __le64 d; + } *u1; + u32 staterr; + int i = 0; + + if (!netif_msg_hw(adapter)) + return; -static struct e1000_info e1000_es2_info = { - .mac = e1000_80003es2lan, - .flags = FLAG_HAS_HW_VLAN_FILTER - | FLAG_HAS_JUMBO_FRAMES - | FLAG_HAS_WOL - | FLAG_APME_IN_CTRL3 - | FLAG_RX_CSUM_ENABLED - | FLAG_HAS_CTRLEXT_ON_LOAD - | FLAG_RX_NEEDS_RESTART /* errata */ - | FLAG_TARC_SET_BIT_ZERO /* errata */ - | FLAG_APME_CHECK_PORT_B - | FLAG_DISABLE_FC_PAUSE_TIME /* errata */ - | FLAG_TIPG_MEDIUM_FOR_80003ESLAN, - .pba = 38, - .max_hw_frame_size = DEFAULT_JUMBO, - .init_ops = e1000_init_function_pointers_80003es2lan, - .get_variants = NULL, -}; + /* Print netdevice Info */ + if (netdev) { + dev_info(pci_dev_to_dev(adapter->pdev), "Net device Info\n"); + pr_info("Device Name state trans_start last_rx\n"); + pr_info("%-15s %016lX %016lX %016lX\n", netdev->name, + netdev->state, netdev->trans_start, netdev->last_rx); + } -static s32 e1000_get_variants_ich8lan(struct e1000_adapter *adapter) -{ - if (adapter->hw.phy.type == e1000_phy_ife) { - adapter->flags &= ~FLAG_HAS_JUMBO_FRAMES; - adapter->max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN; + /* Print Registers */ + dev_info(pci_dev_to_dev(adapter->pdev), "Register Dump\n"); + pr_info(" Register Name Value\n"); + for (reginfo = (struct e1000_reg_info *)e1000_reg_info_tbl; + reginfo->name; reginfo++) { + e1000_regdump(hw, reginfo); } - if ((adapter->hw.mac.type == e1000_ich8lan) && - (adapter->hw.phy.type == e1000_phy_igp_3)) - adapter->flags |= FLAG_LSC_GIG_SPEED_DROP; + /* Print Tx Ring Summary */ + if (!netdev || !netif_running(netdev)) + return; - return 0; -} + dev_info(pci_dev_to_dev(adapter->pdev), "Tx Ring Summary\n"); + pr_info("Queue [NTU] [NTC] [bi(ntc)->dma ] leng ntw timestamp\n"); + buffer_info = &tx_ring->buffer_info[tx_ring->next_to_clean]; + pr_info(" %5d %5X %5X %016llX %04X %3X %016llX\n", + 0, tx_ring->next_to_use, tx_ring->next_to_clean, + (unsigned long long)buffer_info->dma, + buffer_info->length, + buffer_info->next_to_watch, + (unsigned long long)buffer_info->time_stamp); -static struct e1000_info e1000_ich8_info = { - .mac = e1000_ich8lan, - .flags = FLAG_HAS_WOL - | FLAG_IS_ICH - | FLAG_RX_CSUM_ENABLED - | FLAG_HAS_CTRLEXT_ON_LOAD - | FLAG_HAS_AMT - | FLAG_HAS_FLASH - | FLAG_APME_IN_WUC, - .pba = 8, - .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN, - .init_ops = e1000_init_function_pointers_ich8lan, - .get_variants = e1000_get_variants_ich8lan, -}; + /* Print Tx Ring */ + if (!netif_msg_tx_done(adapter)) + goto rx_ring_summary; -static struct e1000_info e1000_ich9_info = { - .mac = e1000_ich9lan, - .flags = FLAG_HAS_JUMBO_FRAMES - | FLAG_IS_ICH - | FLAG_HAS_WOL - | FLAG_RX_CSUM_ENABLED - | FLAG_HAS_CTRLEXT_ON_LOAD - | FLAG_HAS_AMT - | FLAG_HAS_ERT - | FLAG_HAS_FLASH - | FLAG_APME_IN_WUC, - .pba = 10, - .max_hw_frame_size = DEFAULT_JUMBO, - .init_ops = e1000_init_function_pointers_ich8lan, - .get_variants = e1000_get_variants_ich8lan, -}; + dev_info(pci_dev_to_dev(adapter->pdev), "Tx Ring Dump\n"); -static struct e1000_info e1000_ich10_info = { - .mac = e1000_ich10lan, - .flags = FLAG_HAS_JUMBO_FRAMES - | FLAG_IS_ICH - | FLAG_HAS_WOL - | FLAG_RX_CSUM_ENABLED - | FLAG_HAS_CTRLEXT_ON_LOAD - | FLAG_HAS_AMT - | FLAG_HAS_ERT - | FLAG_HAS_FLASH - | FLAG_APME_IN_WUC, - .pba = 10, - .max_hw_frame_size = DEFAULT_JUMBO, - .init_ops = e1000_init_function_pointers_ich8lan, - .get_variants = e1000_get_variants_ich8lan, -}; + /* Transmit Descriptor Formats - DEXT[29] is 0 (Legacy) or 1 (Extended) + * + * Legacy Transmit Descriptor + * +--------------------------------------------------------------+ + * 0 | Buffer Address [63:0] (Reserved on Write Back) | + * +--------------------------------------------------------------+ + * 8 | Special | CSS | Status | CMD | CSO | Length | + * +--------------------------------------------------------------+ + * 63 48 47 36 35 32 31 24 23 16 15 0 + * + * Extended Context Descriptor (DTYP=0x0) for TSO or checksum offload + * 63 48 47 40 39 32 31 16 15 8 7 0 + * +----------------------------------------------------------------+ + * 0 | TUCSE | TUCS0 | TUCSS | IPCSE | IPCS0 | IPCSS | + * +----------------------------------------------------------------+ + * 8 | MSS | HDRLEN | RSV | STA | TUCMD | DTYP | PAYLEN | + * +----------------------------------------------------------------+ + * 63 48 47 40 39 36 35 32 31 24 23 20 19 0 + * + * Extended Data Descriptor (DTYP=0x1) + * +----------------------------------------------------------------+ + * 0 | Buffer Address [63:0] | + * +----------------------------------------------------------------+ + * 8 | VLAN tag | POPTS | Rsvd | Status | Command | DTYP | DTALEN | + * +----------------------------------------------------------------+ + * 63 48 47 40 39 36 35 32 31 24 23 20 19 0 + */ + pr_info("Tl[desc] [address 63:0 ] [SpeCssSCmCsLen] [bi->dma ] leng ntw timestamp bi->skb <-- Legacy format\n"); + pr_info("Tc[desc] [Ce CoCsIpceCoS] [MssHlRSCm0Plen] [bi->dma ] leng ntw timestamp bi->skb <-- Ext Context format\n"); + pr_info("Td[desc] [address 63:0 ] [VlaPoRSCm1Dlen] [bi->dma ] leng ntw timestamp bi->skb <-- Ext Data format\n"); + for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) { + const char *next_desc; + tx_desc = E1000_TX_DESC(*tx_ring, i); + buffer_info = &tx_ring->buffer_info[i]; + u0 = (struct my_u0 *)tx_desc; + if (i == tx_ring->next_to_use && i == tx_ring->next_to_clean) + next_desc = " NTC/U"; + else if (i == tx_ring->next_to_use) + next_desc = " NTU"; + else if (i == tx_ring->next_to_clean) + next_desc = " NTC"; + else + next_desc = ""; + pr_info("T%c[0x%03X] %016llX %016llX %016llX %04X %3X %016llX %p%s\n", + (!(le64_to_cpu(u0->b) & (1 << 29)) ? 'l' : + ((le64_to_cpu(u0->b) & (1 << 20)) ? 'd' : 'c')), + i, + (unsigned long long)le64_to_cpu(u0->a), + (unsigned long long)le64_to_cpu(u0->b), + (unsigned long long)buffer_info->dma, + buffer_info->length, buffer_info->next_to_watch, + (unsigned long long)buffer_info->time_stamp, + buffer_info->skb, next_desc); + + if (netif_msg_pktdata(adapter) && buffer_info->skb) + print_hex_dump(KERN_INFO, "", DUMP_PREFIX_ADDRESS, + 16, 1, buffer_info->skb->data, + buffer_info->skb->len, true); + } + + /* Print Rx Ring Summary */ +rx_ring_summary: + dev_info(pci_dev_to_dev(adapter->pdev), "Rx Ring Summary\n"); + pr_info("Queue [NTU] [NTC]\n"); + pr_info(" %5d %5X %5X\n", + 0, rx_ring->next_to_use, rx_ring->next_to_clean); + + /* Print Rx Ring */ + if (!netif_msg_rx_status(adapter)) + return; -static struct e1000_info e1000_pch_info = { - .mac = e1000_pchlan, - .flags = FLAG_IS_ICH - | FLAG_HAS_WOL - | FLAG_RX_CSUM_ENABLED - | FLAG_HAS_CTRLEXT_ON_LOAD - | FLAG_HAS_AMT - | FLAG_HAS_FLASH - | FLAG_HAS_JUMBO_FRAMES - | FLAG_DISABLE_FC_PAUSE_TIME /* errata */ - | FLAG_APME_IN_WUC, - .pba = 26, - .max_hw_frame_size = 4096, - .init_ops = e1000_init_function_pointers_ich8lan, - .get_variants = e1000_get_variants_ich8lan, -}; + dev_info(pci_dev_to_dev(adapter->pdev), "Rx Ring Dump\n"); + switch (adapter->rx_ps_pages) { + case 1: + case 2: + case 3: + /* [Extended] Packet Split Receive Descriptor Format + * + * +-----------------------------------------------------+ + * 0 | Buffer Address 0 [63:0] | + * +-----------------------------------------------------+ + * 8 | Buffer Address 1 [63:0] | + * +-----------------------------------------------------+ + * 16 | Buffer Address 2 [63:0] | + * +-----------------------------------------------------+ + * 24 | Buffer Address 3 [63:0] | + * +-----------------------------------------------------+ + */ + pr_info("R [desc] [buffer 0 63:0 ] [buffer 1 63:0 ] [buffer 2 63:0 ] [buffer 3 63:0 ] [bi->dma ] [bi->skb] <-- Ext Pkt Split format\n"); + /* [Extended] Receive Descriptor (Write-Back) Format + * + * 63 48 47 32 31 13 12 8 7 4 3 0 + * +------------------------------------------------------+ + * 0 | Packet | IP | Rsvd | MRQ | Rsvd | MRQ RSS | + * | Checksum | Ident | | Queue | | Type | + * +------------------------------------------------------+ + * 8 | VLAN Tag | Length | Extended Error | Extended Status | + * +------------------------------------------------------+ + * 63 48 47 32 31 20 19 0 + */ + pr_info("RWB[desc] [ck ipid mrqhsh] [vl l0 ee es] [ l3 l2 l1 hs] [reserved ] ---------------- [bi->skb] <-- Ext Rx Write-Back format\n"); + for (i = 0; i < rx_ring->count; i++) { + const char *next_desc; + buffer_info = &rx_ring->buffer_info[i]; + rx_desc_ps = E1000_RX_DESC_PS(*rx_ring, i); + u1 = (struct my_u1 *)rx_desc_ps; + staterr = + le32_to_cpu(rx_desc_ps->wb.middle.status_error); + + if (i == rx_ring->next_to_use) + next_desc = " NTU"; + else if (i == rx_ring->next_to_clean) + next_desc = " NTC"; + else + next_desc = ""; + + if (staterr & E1000_RXD_STAT_DD) { + /* Descriptor Done */ + pr_info("%s[0x%03X] %016llX %016llX %016llX %016llX ---------------- %p%s\n", + "RWB", i, + (unsigned long long)le64_to_cpu(u1->a), + (unsigned long long)le64_to_cpu(u1->b), + (unsigned long long)le64_to_cpu(u1->c), + (unsigned long long)le64_to_cpu(u1->d), + buffer_info->skb, next_desc); + } else { + pr_info("%s[0x%03X] %016llX %016llX %016llX %016llX %016llX %p%s\n", + "R ", i, + (unsigned long long)le64_to_cpu(u1->a), + (unsigned long long)le64_to_cpu(u1->b), + (unsigned long long)le64_to_cpu(u1->c), + (unsigned long long)le64_to_cpu(u1->d), + (unsigned long long)buffer_info->dma, + buffer_info->skb, next_desc); + + if (netif_msg_pktdata(adapter)) + e1000e_dump_ps_pages(adapter, + buffer_info); + } + } + break; + default: + case 0: + /* Extended Receive Descriptor (Read) Format + * + * +-----------------------------------------------------+ + * 0 | Buffer Address [63:0] | + * +-----------------------------------------------------+ + * 8 | Reserved | + * +-----------------------------------------------------+ + */ + pr_info("R [desc] [buf addr 63:0 ] [reserved 63:0 ] [bi->dma ] [bi->skb] <-- Ext (Read) format\n"); + /* Extended Receive Descriptor (Write-Back) Format + * + * 63 48 47 32 31 24 23 4 3 0 + * +------------------------------------------------------+ + * | RSS Hash | | | | + * 0 +-------------------+ Rsvd | Reserved | MRQ RSS | + * | Packet | IP | | | Type | + * | Checksum | Ident | | | | + * +------------------------------------------------------+ + * 8 | VLAN Tag | Length | Extended Error | Extended Status | + * +------------------------------------------------------+ + * 63 48 47 32 31 20 19 0 + */ + pr_info("RWB[desc] [cs ipid mrq] [vt ln xe xs] [bi->skb] <-- Ext (Write-Back) format\n"); -static const struct e1000_info *e1000_info_tbl[] = { - [board_82571] = &e1000_82571_info, - [board_82572] = &e1000_82572_info, - [board_82573] = &e1000_82573_info, - [board_82574] = &e1000_82574_info, - [board_82583] = &e1000_82583_info, - [board_80003es2lan] = &e1000_es2_info, - [board_ich8lan] = &e1000_ich8_info, - [board_ich9lan] = &e1000_ich9_info, - [board_ich10lan] = &e1000_ich10_info, - [board_pchlan] = &e1000_pch_info, -}; + for (i = 0; i < rx_ring->count; i++) { + const char *next_desc; + + buffer_info = &rx_ring->buffer_info[i]; + rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); + u1 = (struct my_u1 *)rx_desc; + staterr = le32_to_cpu(rx_desc->wb.upper.status_error); + + if (i == rx_ring->next_to_use) + next_desc = " NTU"; + else if (i == rx_ring->next_to_clean) + next_desc = " NTC"; + else + next_desc = ""; + + if (staterr & E1000_RXD_STAT_DD) { + /* Descriptor Done */ + pr_info("%s[0x%03X] %016llX %016llX ---------------- %p%s\n", + "RWB", i, + (unsigned long long)le64_to_cpu(u1->a), + (unsigned long long)le64_to_cpu(u1->b), + buffer_info->skb, next_desc); + } else { + pr_info("%s[0x%03X] %016llX %016llX %016llX %p%s\n", + "R ", i, + (unsigned long long)le64_to_cpu(u1->a), + (unsigned long long)le64_to_cpu(u1->b), + (unsigned long long)buffer_info->dma, + buffer_info->skb, next_desc); + + if (netif_msg_pktdata(adapter) && + buffer_info->skb) + print_hex_dump(KERN_INFO, "", + DUMP_PREFIX_ADDRESS, 16, + 1, + buffer_info->skb->data, + adapter->rx_buffer_len, + true); + } + } + } +} /** * e1000_desc_unused - calculate if we have unused descriptors @@ -330,46 +472,128 @@ static int e1000_desc_unused(struct e1000_ring *ring) return ring->count + ring->next_to_clean - ring->next_to_use - 1; } +#ifdef HAVE_HW_TIME_STAMP +/** + * e1000e_systim_to_hwtstamp - convert system time value to hw time stamp + * @adapter: board private structure + * @hwtstamps: time stamp structure to update + * @systim: unsigned 64bit system time value. + * + * Convert the system time value stored in the RX/TXSTMP registers into a + * hwtstamp which can be used by the upper level time stamping functions. + * + * The 'systim_lock' spinlock is used to protect the consistency of the + * system time value. This is needed because reading the 64 bit time + * value involves reading two 32 bit registers. The first read latches the + * value. + **/ +static void e1000e_systim_to_hwtstamp(struct e1000_adapter *adapter, + struct skb_shared_hwtstamps *hwtstamps, + u64 systim) +{ + u64 ns; + unsigned long flags; + + spin_lock_irqsave(&adapter->systim_lock, flags); + ns = timecounter_cyc2time(&adapter->tc, systim); + spin_unlock_irqrestore(&adapter->systim_lock, flags); + + memset(hwtstamps, 0, sizeof(*hwtstamps)); + hwtstamps->hwtstamp = ns_to_ktime(ns); +} + +/** + * e1000e_rx_hwtstamp - utility function which checks for Rx time stamp + * @adapter: board private structure + * @status: descriptor extended error and status field + * @skb: particular skb to include time stamp + * + * If the time stamp is valid, convert it into the timecounter ns value + * and store that result into the shhwtstamps structure which is passed + * up the network stack. + **/ +static void e1000e_rx_hwtstamp(struct e1000_adapter *adapter, u32 status, + struct sk_buff *skb) +{ + struct e1000_hw *hw = &adapter->hw; + u64 rxstmp; + + if (!(adapter->flags & FLAG_HAS_HW_TIMESTAMP) || + !(status & E1000_RXDEXT_STATERR_TST) || + !(er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_VALID)) + return; + + /* The Rx time stamp registers contain the time stamp. No other + * received packet will be time stamped until the Rx time stamp + * registers are read. Because only one packet can be time stamped + * at a time, the register values must belong to this packet and + * therefore none of the other additional attributes need to be + * compared. + */ + rxstmp = (u64)er32(RXSTMPL); + rxstmp |= (u64)er32(RXSTMPH) << 32; + e1000e_systim_to_hwtstamp(adapter, skb_hwtstamps(skb), rxstmp); + + adapter->flags2 &= ~FLAG2_CHECK_RX_HWTSTAMP; +} +#endif /* HAVE_HW_TIME_STAMP */ + /** * e1000_receive_skb - helper function to handle Rx indications * @adapter: board private structure - * @status: descriptor status field as written by hardware + * @staterr: descriptor extended error and status field as written by hardware * @vlan: descriptor vlan field as written by hardware (no le/be conversion) * @skb: pointer to sk_buff to be indicated to stack **/ static void e1000_receive_skb(struct e1000_adapter *adapter, - struct net_device *netdev, - struct sk_buff *skb, - u8 status, __le16 vlan) + struct net_device *netdev, struct sk_buff *skb, + u32 staterr, __le16 vlan) { #ifndef CONFIG_E1000E_NAPI int ret; +#endif +#ifndef HAVE_VLAN_RX_REGISTER + u16 tag = le16_to_cpu(vlan); +#endif +#ifdef HAVE_HW_TIME_STAMP + e1000e_rx_hwtstamp(adapter, staterr, skb); #endif + skb->protocol = eth_type_trans(skb, netdev); #ifdef CONFIG_E1000E_NAPI +#ifdef HAVE_VLAN_RX_REGISTER #ifdef NETIF_F_HW_VLAN_TX - if (adapter->vlgrp && (status & E1000_RXD_STAT_VP)) + if (adapter->vlgrp && (staterr & E1000_RXD_STAT_VP)) vlan_gro_receive(&adapter->napi, adapter->vlgrp, le16_to_cpu(vlan), skb); else -#endif -#ifdef NETIF_F_GRO +#endif /* NETIF_F_HW_VLAN_TX */ napi_gro_receive(&adapter->napi, skb); -#else - netif_receive_skb(skb); -#endif /* NETIF_F_GRO */ -#else +#else /* HAVE_VLAN_RX_REGISTER */ + if (staterr & E1000_RXD_STAT_VP) + __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), tag); + + napi_gro_receive(&adapter->napi, skb); +#endif /* HAVE_VLAN_RX_REGISTER */ +#else /* CONFIG_E1000E_NAPI */ +#ifdef HAVE_VLAN_RX_REGISTER #ifdef NETIF_F_HW_VLAN_TX - if (adapter->vlgrp && (status & E1000_RXD_STAT_VP)) + if (adapter->vlgrp && (staterr & E1000_RXD_STAT_VP)) ret = vlan_hwaccel_rx(skb, adapter->vlgrp, le16_to_cpu(vlan)); else #endif ret = netif_rx(skb); +#else /* HAVE_VLAN_RX_REGISTER */ + if (staterr & E1000_RXD_STAT_VP) + __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), tag); + + ret = netif_rx(skb); +#endif /* HAVE_VLAN_RX_REGISTER */ if (unlikely(ret == NET_RX_DROP)) adapter->rx_dropped_backlog++; -#endif +#endif /* CONFIG_E1000E_NAPI */ #ifndef NETIF_F_GRO netdev->last_rx = jiffies; @@ -377,24 +601,34 @@ static void e1000_receive_skb(struct e1000_adapter *adapter, } /** - * e1000_rx_checksum - Receive Checksum Offload for 82543 - * @adapter: board private structure - * @status_err: receive descriptor status and error fields - * @csum: receive descriptor csum field - * @sk_buff: socket buffer with received data + * e1000_rx_checksum - Receive Checksum Offload + * @adapter: board private structure + * @status_err: receive descriptor status and error fields + * @csum: receive descriptor csum field + * @sk_buff: socket buffer with received data **/ static void e1000_rx_checksum(struct e1000_adapter *adapter, u32 status_err, - u32 csum, struct sk_buff *skb) + struct sk_buff *skb) { u16 status = (u16)status_err; u8 errors = (u8)(status_err >> 24); - skb->ip_summed = CHECKSUM_NONE; + + skb_checksum_none_assert(skb); + + /* Rx checksum disabled */ +#ifdef HAVE_NDO_SET_FEATURES + if (!(adapter->netdev->features & NETIF_F_RXCSUM)) +#else + if (!(adapter->flags & FLAG_RX_CSUM_ENABLED)) +#endif + return; /* Ignore Checksum bit is set */ if (status & E1000_RXD_STAT_IXSM) return; - /* TCP/UDP checksum error bit is set */ - if (errors & E1000_RXD_ERR_TCPE) { + + /* TCP/UDP checksum error bit or IP checksum error bit is set */ + if (errors & (E1000_RXD_ERR_TCPE | E1000_RXD_ERR_IPE)) { /* let the stack verify checksum errors */ adapter->hw_csum_err++; return; @@ -405,37 +639,59 @@ static void e1000_rx_checksum(struct e1000_adapter *adapter, u32 status_err, return; /* It must be a TCP or UDP packet with a valid checksum */ - if (status & E1000_RXD_STAT_TCPCS) { - /* TCP checksum is good */ - skb->ip_summed = CHECKSUM_UNNECESSARY; - } else { - /* - * IP fragment with UDP payload - * Hardware complements the payload checksum, so we undo it - * and then put the value in host order for further stack use. - */ - csum = ntohl(csum ^ 0xFFFF); - skb->csum = csum; - skb->ip_summed = CHECKSUM_COMPLETE; - } + skb->ip_summed = CHECKSUM_UNNECESSARY; adapter->hw_csum_good++; } +static void e1000e_update_rdt_wa(struct e1000_ring *rx_ring, unsigned int i) +{ + struct e1000_adapter *adapter = rx_ring->adapter; + struct e1000_hw *hw = &adapter->hw; + s32 ret_val = __ew32_prepare(hw); + + writel(i, rx_ring->tail); + + if (unlikely(!ret_val && (i != readl(rx_ring->tail)))) { + u32 rctl = er32(RCTL); + + ew32(RCTL, rctl & ~E1000_RCTL_EN); + e_err("ME firmware caused invalid RDT - resetting\n"); + schedule_work(&adapter->reset_task); + } +} + +static void e1000e_update_tdt_wa(struct e1000_ring *tx_ring, unsigned int i) +{ + struct e1000_adapter *adapter = tx_ring->adapter; + struct e1000_hw *hw = &adapter->hw; + s32 ret_val = __ew32_prepare(hw); + + writel(i, tx_ring->tail); + + if (unlikely(!ret_val && (i != readl(tx_ring->tail)))) { + u32 tctl = er32(TCTL); + + ew32(TCTL, tctl & ~E1000_TCTL_EN); + e_err("ME firmware caused invalid TDT - resetting\n"); + schedule_work(&adapter->reset_task); + } +} + /** - * e1000_alloc_rx_buffers - Replace used receive buffers; legacy & extended - * @adapter: address of board private structure + * e1000_alloc_rx_buffers - Replace used receive buffers + * @rx_ring: Rx descriptor ring **/ -static void e1000_alloc_rx_buffers(struct e1000_adapter *adapter, - int cleaned_count) +static void e1000_alloc_rx_buffers(struct e1000_ring *rx_ring, + int cleaned_count, gfp_t gfp) { + struct e1000_adapter *adapter = rx_ring->adapter; struct net_device *netdev = adapter->netdev; struct pci_dev *pdev = adapter->pdev; - struct e1000_ring *rx_ring = adapter->rx_ring; - struct e1000_rx_desc *rx_desc; + union e1000_rx_desc_extended *rx_desc; struct e1000_buffer *buffer_info; struct sk_buff *skb; unsigned int i; - unsigned int bufsz = adapter->rx_buffer_len + NET_IP_ALIGN; + unsigned int bufsz = adapter->rx_buffer_len; i = rx_ring->next_to_use; buffer_info = &rx_ring->buffer_info[i]; @@ -447,67 +703,83 @@ static void e1000_alloc_rx_buffers(struct e1000_adapter *adapter, goto map_skb; } - skb = netdev_alloc_skb(netdev, bufsz); + skb = __netdev_alloc_skb_ip_align(netdev, bufsz, gfp); if (!skb) { /* Better luck next round */ adapter->alloc_rx_buff_failed++; break; } - /* - * Make buffer alignment 2 beyond a 16 byte boundary - * this will result in a 16 byte aligned IP header after - * the 14 byte MAC header is removed - */ - skb_reserve(skb, NET_IP_ALIGN); - buffer_info->skb = skb; map_skb: - buffer_info->dma = pci_map_single(pdev, skb->data, - adapter->rx_buffer_len, - PCI_DMA_FROMDEVICE); - if (pci_dma_mapping_error(pdev, buffer_info->dma)) { - dev_err(&pdev->dev, "RX DMA map failed\n"); + buffer_info->dma = + dma_map_single(pci_dev_to_dev(pdev), skb->data, + adapter->rx_buffer_len, DMA_FROM_DEVICE); + if (dma_mapping_error(pci_dev_to_dev(pdev), buffer_info->dma)) { + dev_err(pci_dev_to_dev(pdev), "Rx DMA map failed\n"); adapter->rx_dma_failed++; break; } - rx_desc = E1000_RX_DESC(*rx_ring, i); - rx_desc->buffer_addr = cpu_to_le64(buffer_info->dma); + rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); + rx_desc->read.buffer_addr = cpu_to_le64(buffer_info->dma); + if (unlikely(!(i & (E1000_RX_BUFFER_WRITE - 1)))) { + /* Force memory writes to complete before letting h/w + * know there are new descriptors to fetch. (Only + * applicable for weak-ordered memory model archs, + * such as IA-64). + */ + wmb(); + if (adapter->flags2 & FLAG2_PCIM2PCI_ARBITER_WA) + e1000e_update_rdt_wa(rx_ring, i); + else + writel(i, rx_ring->tail); + } i++; if (i == rx_ring->count) i = 0; buffer_info = &rx_ring->buffer_info[i]; } - if (rx_ring->next_to_use != i) { - rx_ring->next_to_use = i; - if (i-- == 0) - i = (rx_ring->count - 1); + rx_ring->next_to_use = i; +} - /* - * Force memory writes to complete before letting h/w - * know there are new descriptors to fetch. (Only - * applicable for weak-ordered memory model archs, - * such as IA-64). - */ - wmb(); - writel(i, adapter->hw.hw_addr + rx_ring->tail); +#ifdef DYNAMIC_LTR_SUPPORT + +static void e1000e_check_ltr_demote(struct e1000_adapter *adapter, + unsigned int current_rx_bytes) +{ + struct e1000_hw *hw = &adapter->hw; + u32 mpc; + + mpc = er32(MPC); + adapter->c10_mpc_count += mpc; + adapter->c10_rx_bytes += current_rx_bytes; + + /* If not already demoted and either a missed packet or + * have received bytes enough to have filled the RX_PBA + * then demote LTR + */ + if (!adapter->c10_demote_ltr && + (mpc || (current_rx_bytes > adapter->c10_pba_bytes))) { + adapter->c10_demote_ltr = true; + e1000_demote_ltr(hw, adapter->c10_demote_ltr, true); } } +#endif /* DYNAMIC_LTR_SUPPORT */ /** * e1000_alloc_rx_buffers_ps - Replace used receive buffers; packet split - * @adapter: address of board private structure + * @rx_ring: Rx descriptor ring **/ -static void e1000_alloc_rx_buffers_ps(struct e1000_adapter *adapter, - int cleaned_count) +static void e1000_alloc_rx_buffers_ps(struct e1000_ring *rx_ring, + int cleaned_count, gfp_t gfp) { + struct e1000_adapter *adapter = rx_ring->adapter; struct net_device *netdev = adapter->netdev; struct pci_dev *pdev = adapter->pdev; union e1000_rx_desc_packet_split *rx_desc; - struct e1000_ring *rx_ring = adapter->rx_ring; struct e1000_buffer *buffer_info; struct e1000_ps_page *ps_page; struct sk_buff *skb; @@ -523,67 +795,55 @@ static void e1000_alloc_rx_buffers_ps(struct e1000_adapter *adapter, ps_page = &buffer_info->ps_pages[j]; if (j >= adapter->rx_ps_pages) { /* all unused desc entries get hw null ptr */ - rx_desc->read.buffer_addr[j+1] = ~cpu_to_le64(0); + rx_desc->read.buffer_addr[j + 1] = + ~cpu_to_le64(0); continue; } if (!ps_page->page) { +#ifdef __VMKLNX__ ps_page->page = alloc_page(GFP_ATOMIC); +#else /* __VMKLNX__ */ + ps_page->page = alloc_pages_node(adapter->node, + gfp, 0); +#endif /* __VMKLNX__ */ if (!ps_page->page) { adapter->alloc_rx_buff_failed++; goto no_buffers; } - } - if (!ps_page->dma) { - ps_page->dma = pci_map_page(pdev, - ps_page->page, - 0, PAGE_SIZE, - PCI_DMA_FROMDEVICE); - if (pci_dma_mapping_error(pdev, ps_page->dma)) { - dev_err(&adapter->pdev->dev, - "RX DMA page map failed\n"); - ps_page->dma = 0; + ps_page->dma = dma_map_page(pci_dev_to_dev(pdev), + ps_page->page, + 0, PAGE_SIZE, + DMA_FROM_DEVICE); + if (dma_mapping_error(pci_dev_to_dev(pdev), + ps_page->dma)) { + dev_err(pci_dev_to_dev(adapter->pdev), + "Rx DMA page map failed\n"); adapter->rx_dma_failed++; goto no_buffers; } } - /* - * Refresh the desc even if buffer_addrs + /* Refresh the desc even if buffer_addrs * didn't change because each write-back * erases this info. */ - rx_desc->read.buffer_addr[j+1] = - cpu_to_le64(ps_page->dma); - } - - skb = buffer_info->skb; - if (skb) { - skb_trim(skb, 0); - goto map_skb; + rx_desc->read.buffer_addr[j + 1] = + cpu_to_le64(ps_page->dma); } - skb = netdev_alloc_skb(netdev, - adapter->rx_ps_bsize0 + NET_IP_ALIGN); + skb = __netdev_alloc_skb_ip_align(netdev, adapter->rx_ps_bsize0, + gfp); if (!skb) { adapter->alloc_rx_buff_failed++; break; } - /* - * Make buffer alignment 2 beyond a 16 byte boundary - * this will result in a 16 byte aligned IP header after - * the 14 byte MAC header is removed - */ - skb_reserve(skb, NET_IP_ALIGN); - buffer_info->skb = skb; - -map_skb: - buffer_info->dma = pci_map_single(pdev, skb->data, - adapter->rx_ps_bsize0, - PCI_DMA_FROMDEVICE); - if (pci_dma_mapping_error(pdev, buffer_info->dma)) { - dev_err(&pdev->dev, "RX DMA map failed\n"); + buffer_info->dma = + dma_map_single(pci_dev_to_dev(pdev), skb->data, + adapter->rx_ps_bsize0, DMA_FROM_DEVICE); + if (dma_mapping_error(pci_dev_to_dev(pdev), buffer_info->dma)) { + dev_err(pci_dev_to_dev(pdev), "Rx DMA map failed\n"); adapter->rx_dma_failed++; /* cleanup skb */ dev_kfree_skb_any(skb); @@ -593,6 +853,19 @@ map_skb: rx_desc->read.buffer_addr[0] = cpu_to_le64(buffer_info->dma); + if (unlikely(!(i & (E1000_RX_BUFFER_WRITE - 1)))) { + /* Force memory writes to complete before letting h/w + * know there are new descriptors to fetch. (Only + * applicable for weak-ordered memory model archs, + * such as IA-64). + */ + wmb(); + if (adapter->flags2 & FLAG2_PCIM2PCI_ARBITER_WA) + e1000e_update_rdt_wa(rx_ring, i << 1); + else + writel(i << 1, rx_ring->tail); + } + i++; if (i == rx_ring->count) i = 0; @@ -600,52 +873,29 @@ map_skb: } no_buffers: - if (rx_ring->next_to_use != i) { - rx_ring->next_to_use = i; - - if (!(i--)) - i = (rx_ring->count - 1); - - /* - * Force memory writes to complete before letting h/w - * know there are new descriptors to fetch. (Only - * applicable for weak-ordered memory model archs, - * such as IA-64). - */ - wmb(); - /* - * Hardware increments by 16 bytes, but packet split - * descriptors are 32 bytes...so we increment tail - * twice as much. - */ - writel(i<<1, adapter->hw.hw_addr + rx_ring->tail); - } + rx_ring->next_to_use = i; } -#if !defined(__VMKLNX__) -/* - * We don't use this handler since it assumes packet splitting. - */ +#ifndef __VMKLNX__ +/* we don't support jumbo frame RX buffer in VMKLinux */ #ifdef CONFIG_E1000E_NAPI /** * e1000_alloc_jumbo_rx_buffers - Replace used jumbo receive buffers - * @adapter: address of board private structure + * @rx_ring: Rx descriptor ring * @cleaned_count: number of buffers to allocate this pass **/ -static void e1000_alloc_jumbo_rx_buffers(struct e1000_adapter *adapter, - int cleaned_count) +static void e1000_alloc_jumbo_rx_buffers(struct e1000_ring *rx_ring, + int cleaned_count, gfp_t gfp) { + struct e1000_adapter *adapter = rx_ring->adapter; struct net_device *netdev = adapter->netdev; struct pci_dev *pdev = adapter->pdev; - struct e1000_rx_desc *rx_desc; - struct e1000_ring *rx_ring = adapter->rx_ring; + union e1000_rx_desc_extended *rx_desc; struct e1000_buffer *buffer_info; struct sk_buff *skb; unsigned int i; - unsigned int bufsz = 256 - - 16 /* for skb_reserve */ - - NET_IP_ALIGN; + unsigned int bufsz = 256 - 16; /* for skb_reserve */ i = rx_ring->next_to_use; buffer_info = &rx_ring->buffer_info[i]; @@ -657,38 +907,39 @@ static void e1000_alloc_jumbo_rx_buffers(struct e1000_adapter *adapter, goto check_page; } - skb = netdev_alloc_skb(netdev, bufsz); + skb = __netdev_alloc_skb_ip_align(netdev, bufsz, gfp); if (unlikely(!skb)) { /* Better luck next round */ adapter->alloc_rx_buff_failed++; break; } - /* Make buffer alignment 2 beyond a 16 byte boundary - * this will result in a 16 byte aligned IP header after - * the 14 byte MAC header is removed - */ - skb_reserve(skb, NET_IP_ALIGN); - buffer_info->skb = skb; check_page: /* allocate a new page if necessary */ if (!buffer_info->page) { - buffer_info->page = alloc_page(GFP_ATOMIC); + buffer_info->page = alloc_pages_node(adapter->node, + gfp, 0); if (unlikely(!buffer_info->page)) { adapter->alloc_rx_buff_failed++; break; } } - if (!buffer_info->dma) - buffer_info->dma = pci_map_page(pdev, - buffer_info->page, 0, - PAGE_SIZE, - PCI_DMA_FROMDEVICE); + if (!buffer_info->dma) { + buffer_info->dma = dma_map_page(pci_dev_to_dev(pdev), + buffer_info->page, 0, + PAGE_SIZE, + DMA_FROM_DEVICE); + if (dma_mapping_error(pci_dev_to_dev(pdev), + buffer_info->dma)) { + adapter->alloc_rx_buff_failed++; + break; + } + } - rx_desc = E1000_RX_DESC(*rx_ring, i); - rx_desc->buffer_addr = cpu_to_le64(buffer_info->dma); + rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); + rx_desc->read.buffer_addr = cpu_to_le64(buffer_info->dma); if (unlikely(++i == rx_ring->count)) i = 0; @@ -703,55 +954,68 @@ check_page: /* Force memory writes to complete before letting h/w * know there are new descriptors to fetch. (Only * applicable for weak-ordered memory model archs, - * such as IA-64). */ + * such as IA-64). + */ wmb(); - writel(i, adapter->hw.hw_addr + rx_ring->tail); + if (adapter->flags2 & FLAG2_PCIM2PCI_ARBITER_WA) + e1000e_update_rdt_wa(rx_ring, i); + else + writel(i, rx_ring->tail); } } #endif /* CONFIG_E1000E_NAPI */ -#endif /* !defined(__VMKLNX__) */ +#endif /* !__VMKLNX__ */ + +#ifdef NETIF_F_RXHASH +static inline void e1000_rx_hash(struct net_device *netdev, __le32 rss, + struct sk_buff *skb) +{ + if (netdev->features & NETIF_F_RXHASH) + skb_set_hash(skb, le32_to_cpu(rss), PKT_HASH_TYPE_L3); +} +#endif /** - * e1000_clean_rx_irq - Send received data up the network stack; legacy - * @adapter: board private structure + * e1000_clean_rx_irq - Send received data up the network stack + * @rx_ring: Rx descriptor ring * * the return value indicates whether actual cleaning was done, there * is no guarantee that everything was cleaned **/ #ifdef CONFIG_E1000E_NAPI -static bool e1000_clean_rx_irq(struct e1000_adapter *adapter, - int *work_done, int work_to_do) +static bool e1000_clean_rx_irq(struct e1000_ring *rx_ring, int *work_done, + int work_to_do) #else -static bool e1000_clean_rx_irq(struct e1000_adapter *adapter) +static bool e1000_clean_rx_irq(struct e1000_ring *rx_ring) #endif { + struct e1000_adapter *adapter = rx_ring->adapter; struct net_device *netdev = adapter->netdev; struct pci_dev *pdev = adapter->pdev; struct e1000_hw *hw = &adapter->hw; - struct e1000_ring *rx_ring = adapter->rx_ring; - struct e1000_rx_desc *rx_desc, *next_rxd; + union e1000_rx_desc_extended *rx_desc, *next_rxd; struct e1000_buffer *buffer_info, *next_buffer; - u32 length; + u32 length, staterr; unsigned int i; int cleaned_count = 0; - bool cleaned = 0; + bool cleaned = false; unsigned int total_rx_bytes = 0, total_rx_packets = 0; i = rx_ring->next_to_clean; - rx_desc = E1000_RX_DESC(*rx_ring, i); + rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); + staterr = le32_to_cpu(rx_desc->wb.upper.status_error); buffer_info = &rx_ring->buffer_info[i]; - while (rx_desc->status & E1000_RXD_STAT_DD) { + while (staterr & E1000_RXD_STAT_DD) { struct sk_buff *skb; - u8 status; #ifdef CONFIG_E1000E_NAPI if (*work_done >= work_to_do) break; (*work_done)++; #endif + rmb(); /* read descriptor and rx_buffer_info after status DD */ - status = rx_desc->status; skb = buffer_info->skb; buffer_info->skb = NULL; @@ -760,62 +1024,68 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter) i++; if (i == rx_ring->count) i = 0; - next_rxd = E1000_RX_DESC(*rx_ring, i); + next_rxd = E1000_RX_DESC_EXT(*rx_ring, i); prefetch(next_rxd); next_buffer = &rx_ring->buffer_info[i]; - cleaned = 1; + cleaned = true; cleaned_count++; - pci_unmap_single(pdev, - buffer_info->dma, - adapter->rx_buffer_len, - PCI_DMA_FROMDEVICE); + dma_unmap_single(pci_dev_to_dev(pdev), buffer_info->dma, + adapter->rx_buffer_len, DMA_FROM_DEVICE); buffer_info->dma = 0; - length = le16_to_cpu(rx_desc->length); + length = le16_to_cpu(rx_desc->wb.upper.length); /* !EOP means multiple descriptors were used to store a single - * packet, if thats the case we need to toss it. In fact, we - * to toss every packet with the EOP bit clear and the next - * frame that _does_ have the EOP bit set, as it is by + * packet, if that's the case we need to toss it. In fact, we + * need to toss every packet with the EOP bit clear and the + * next frame that _does_ have the EOP bit set, as it is by * definition only a frame fragment */ - if (unlikely(!(status & E1000_RXD_STAT_EOP))) - adapter->discarding = true; + if (unlikely(!(staterr & E1000_RXD_STAT_EOP))) + adapter->flags2 |= FLAG2_IS_DISCARDING; - if (adapter->discarding) { + if (adapter->flags2 & FLAG2_IS_DISCARDING) { /* All receives must fit into a single buffer */ e_dbg("Receive packet consumed multiple buffers\n"); - dev_kfree_skb_irq(skb); - if (status & E1000_RXD_STAT_EOP) - adapter->discarding = false; + /* recycle */ + buffer_info->skb = skb; + if (staterr & E1000_RXD_STAT_EOP) + adapter->flags2 &= ~FLAG2_IS_DISCARDING; goto next_desc; } - if (rx_desc->errors & E1000_RXD_ERR_FRAME_ERR_MASK) { + if (unlikely((staterr & E1000_RXDEXT_ERR_FRAME_ERR_MASK) && + !(netdev->features & NETIF_F_RXALL))) { /* recycle */ buffer_info->skb = skb; goto next_desc; } /* adjust length to remove Ethernet CRC */ - if (!(adapter->flags2 & FLAG2_CRC_STRIPPING)) - length -= 4; + if (!(adapter->flags2 & FLAG2_CRC_STRIPPING)) { + /* If configured to store CRC, don't subtract FCS, + * but keep the FCS bytes out of the total_rx_bytes + * counter + */ + if (netdev->features & NETIF_F_RXFCS) + total_rx_bytes -= 4; + else + length -= 4; + } total_rx_bytes += length; total_rx_packets++; - /* - * code added for copybreak, this should improve + /* code added for copybreak, this should improve * performance for small packets with large amounts * of reassembly being done in the stack */ if (length < copybreak) { struct sk_buff *new_skb = - netdev_alloc_skb(netdev, length + NET_IP_ALIGN); + netdev_alloc_skb_ip_align(netdev, length); if (new_skb) { - skb_reserve(new_skb, NET_IP_ALIGN); skb_copy_to_linear_data_offset(new_skb, -NET_IP_ALIGN, (skb->data - @@ -832,58 +1102,82 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter) skb_put(skb, length); /* Receive Checksum Offload */ - e1000_rx_checksum(adapter, - (u32)(status) | - ((u32)(rx_desc->errors) << 24), - le16_to_cpu(rx_desc->csum), skb); + e1000_rx_checksum(adapter, staterr, skb); + +#ifdef NETIF_F_RXHASH + e1000_rx_hash(netdev, rx_desc->wb.lower.hi_dword.rss, skb); - e1000_receive_skb(adapter, netdev, skb, status, rx_desc->special); +#endif + e1000_receive_skb(adapter, netdev, skb, staterr, + rx_desc->wb.upper.vlan); next_desc: - rx_desc->status = 0; + rx_desc->wb.upper.status_error &= cpu_to_le32(~0xFF); /* return some buffers to hardware, one at a time is too slow */ if (cleaned_count >= E1000_RX_BUFFER_WRITE) { - adapter->alloc_rx_buf(adapter, cleaned_count); + adapter->alloc_rx_buf(rx_ring, cleaned_count, + GFP_ATOMIC); cleaned_count = 0; } /* use prefetched values */ rx_desc = next_rxd; buffer_info = next_buffer; + + staterr = le32_to_cpu(rx_desc->wb.upper.status_error); } rx_ring->next_to_clean = i; cleaned_count = e1000_desc_unused(rx_ring); if (cleaned_count) - adapter->alloc_rx_buf(adapter, cleaned_count); + adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); +#ifdef DYNAMIC_LTR_SUPPORT + e1000e_check_ltr_demote(adapter, total_rx_bytes); +#endif /* DYNAMIC_LTR_SUPPORT */ adapter->total_rx_bytes += total_rx_bytes; adapter->total_rx_packets += total_rx_packets; +#ifdef HAVE_NDO_GET_STATS64 +#elif defined(HAVE_NETDEV_STATS_IN_NETDEV) + netdev->stats.rx_bytes += total_rx_bytes; + netdev->stats.rx_packets += total_rx_packets; +#else adapter->net_stats.rx_bytes += total_rx_bytes; adapter->net_stats.rx_packets += total_rx_packets; +#endif return cleaned; } -static void e1000_put_txbuf(struct e1000_adapter *adapter, - struct e1000_buffer *buffer_info) +static void e1000_put_txbuf(struct e1000_ring *tx_ring, + struct e1000_buffer *buffer_info) { + struct e1000_adapter *adapter = tx_ring->adapter; + if (buffer_info->dma) { - pci_unmap_page(adapter->pdev, buffer_info->dma, - buffer_info->length, PCI_DMA_TODEVICE); + if (buffer_info->mapped_as_page) + dma_unmap_page(pci_dev_to_dev(adapter->pdev), + buffer_info->dma, buffer_info->length, + DMA_TO_DEVICE); + else + dma_unmap_single(pci_dev_to_dev(adapter->pdev), + buffer_info->dma, buffer_info->length, + DMA_TO_DEVICE); buffer_info->dma = 0; } if (buffer_info->skb) { dev_kfree_skb_any(buffer_info->skb); buffer_info->skb = NULL; } + buffer_info->time_stamp = 0; } static void e1000_print_hw_hang(struct work_struct *work) { struct e1000_adapter *adapter = container_of(work, - struct e1000_adapter, - print_hang_task); + struct e1000_adapter, + print_hang_task); + struct net_device *netdev = adapter->netdev; struct e1000_ring *tx_ring = adapter->tx_ring; unsigned int i = tx_ring->next_to_clean; unsigned int eop = tx_ring->buffer_info[i].next_to_watch; @@ -891,10 +1185,50 @@ static void e1000_print_hw_hang(struct work_struct *work) struct e1000_hw *hw = &adapter->hw; u16 phy_status, phy_1000t_status, phy_ext_status; u16 pci_status; - - e1e_rphy(hw, PHY_STATUS, &phy_status); - e1e_rphy(hw, PHY_1000T_STATUS, &phy_1000t_status); - e1e_rphy(hw, PHY_EXT_STATUS, &phy_ext_status); + + if (test_bit(__E1000_DOWN, &adapter->state)) + return; + + if (!adapter->tx_hang_recheck && (adapter->flags2 & FLAG2_DMA_BURST)) { + /* May be block on write-back, flush and detect again + * flush pending descriptor writebacks to memory + */ + ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD); + /* execute the writes immediately */ + e1e_flush(); + /* Due to rare timing issues, write to TIDV again to ensure + * the write is successful + */ + ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD); + /* execute the writes immediately */ + e1e_flush(); + adapter->tx_hang_recheck = true; + return; + } + adapter->tx_hang_recheck = false; + + if (er32(TDH(0)) == er32(TDT(0))) { + e_dbg("false hang detected, ignoring\n"); + return; + } + +#ifdef __VMKLNX__ + /* Stopping queue would cause vmklinux's watchdog timeout and + * alarm uplink layer to reset the adapter. But watchdog timeout + * would also hit the assert. So here we reset it on behalf of + * uplink to avoid assert ... */ + if (adapter->hw_hang_reason == hw_hang_on_tso) { + e_info("Hardware hanged on TSO context. Reset it.\n"); + adapter->flags |= FLAG_RESTART_NOW; + schedule_work(&adapter->reset_task); + } else +#endif /* __VMKLNX__ */ + /* Real hang detected */ + netif_stop_queue(netdev); + + e1e_rphy(hw, MII_BMSR, &phy_status); + e1e_rphy(hw, MII_STAT1000, &phy_1000t_status); + e1e_rphy(hw, MII_ESTATUS, &phy_ext_status); pci_read_config_word(adapter->pdev, PCI_STATUS, &pci_status); @@ -914,97 +1248,121 @@ static void e1000_print_hw_hang(struct work_struct *work) "PHY 1000BASE-T Status <%x>\n" "PHY Extended Status <%x>\n" "PCI Status <%x>\n", - readl(adapter->hw.hw_addr + tx_ring->head), - readl(adapter->hw.hw_addr + tx_ring->tail), - tx_ring->next_to_use, - tx_ring->next_to_clean, - tx_ring->buffer_info[eop].time_stamp, - eop, - jiffies, - eop_desc->upper.fields.status, - er32(STATUS), - phy_status, - phy_1000t_status, - phy_ext_status, - pci_status); + readl(tx_ring->head), readl(tx_ring->tail), tx_ring->next_to_use, + tx_ring->next_to_clean, tx_ring->buffer_info[eop].time_stamp, + eop, jiffies, eop_desc->upper.fields.status, er32(STATUS), + phy_status, phy_1000t_status, phy_ext_status, pci_status); + + e1000e_dump(adapter); /* Suggest workaround for known h/w issue */ if ((hw->mac.type == e1000_pchlan) && (er32(CTRL) & E1000_CTRL_TFCE)) e_err("Try turning off Tx pause (flow control) via ethtool\n"); } +#ifdef HAVE_HW_TIME_STAMP +/** + * e1000e_tx_hwtstamp_work - check for Tx time stamp + * @work: pointer to work struct + * + * This work function polls the TSYNCTXCTL valid bit to determine when a + * timestamp has been taken for the current stored skb. The timestamp must + * be for this skb because only one such packet is allowed in the queue. + */ +static void e1000e_tx_hwtstamp_work(struct work_struct *work) +{ + struct e1000_adapter *adapter = container_of(work, struct e1000_adapter, + tx_hwtstamp_work); + struct e1000_hw *hw = &adapter->hw; + + if (er32(TSYNCTXCTL) & E1000_TSYNCTXCTL_VALID) { + struct skb_shared_hwtstamps shhwtstamps; + u64 txstmp; + + txstmp = er32(TXSTMPL); + txstmp |= (u64)er32(TXSTMPH) << 32; + + e1000e_systim_to_hwtstamp(adapter, &shhwtstamps, txstmp); + + skb_tstamp_tx(adapter->tx_hwtstamp_skb, &shhwtstamps); + dev_kfree_skb_any(adapter->tx_hwtstamp_skb); + adapter->tx_hwtstamp_skb = NULL; + } else if (time_after(jiffies, adapter->tx_hwtstamp_start + + adapter->tx_timeout_factor * HZ)) { + dev_kfree_skb_any(adapter->tx_hwtstamp_skb); + adapter->tx_hwtstamp_skb = NULL; + adapter->tx_hwtstamp_timeouts++; + e_warn("clearing Tx timestamp hang\n"); + } else { + /* reschedule to check later */ + schedule_work(&adapter->tx_hwtstamp_work); + } +} +#endif /* HAVE_HW_TIME_STAMP */ + /** * e1000_clean_tx_irq - Reclaim resources after transmit completes - * @adapter: board private structure + * @tx_ring: Tx descriptor ring * - * the return value indicates if there is more work to do (later) + * the return value indicates whether actual cleaning was done, there + * is no guarantee that everything was cleaned **/ -static bool e1000_clean_tx_irq(struct e1000_adapter *adapter) +static bool e1000_clean_tx_irq(struct e1000_ring *tx_ring) { + struct e1000_adapter *adapter = tx_ring->adapter; struct net_device *netdev = adapter->netdev; struct e1000_hw *hw = &adapter->hw; - struct e1000_ring *tx_ring = adapter->tx_ring; struct e1000_tx_desc *tx_desc, *eop_desc; struct e1000_buffer *buffer_info; unsigned int i, eop; - bool cleaned = 0, retval = 1; + unsigned int count = 0; unsigned int total_tx_bytes = 0, total_tx_packets = 0; + unsigned int bytes_compl = 0, pkts_compl = 0; i = tx_ring->next_to_clean; eop = tx_ring->buffer_info[i].next_to_watch; eop_desc = E1000_TX_DESC(*tx_ring, eop); - while (eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) { - for (cleaned = 0; !cleaned; ) { + while ((eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) && + (count < tx_ring->count)) { + bool cleaned = false; + + rmb(); /* read buffer_info after eop_desc */ + for (; !cleaned; count++) { tx_desc = E1000_TX_DESC(*tx_ring, i); buffer_info = &tx_ring->buffer_info[i]; cleaned = (i == eop); -#ifdef __VMKLNX__ - if (cleaned && buffer_info->skb) { -#else + if (cleaned) { -#endif - struct sk_buff *skb = buffer_info->skb; -#ifdef NETIF_F_TSO - unsigned int segs, bytecount; - segs = skb_shinfo(skb)->gso_segs ?: 1; - /* multiply data chunks by size of headers */ - bytecount = ((segs - 1) * skb_headlen(skb)) + - skb->len; - total_tx_packets += segs; - total_tx_bytes += bytecount; -#else - total_tx_packets++; - total_tx_bytes += skb->len; -#endif + total_tx_packets += buffer_info->segs; + total_tx_bytes += buffer_info->bytecount; + if (buffer_info->skb) { + bytes_compl += buffer_info->skb->len; + pkts_compl++; + } } - e1000_put_txbuf(adapter, buffer_info); + e1000_put_txbuf(tx_ring, buffer_info); tx_desc->upper.data = 0; i++; if (i == tx_ring->count) i = 0; -#ifdef CONFIG_E1000E_NAPI - if (total_tx_packets >= tx_ring->count) { - retval = 0; - goto done_cleaning; - } -#endif } + if (i == tx_ring->next_to_use) + break; eop = tx_ring->buffer_info[i].next_to_watch; eop_desc = E1000_TX_DESC(*tx_ring, eop); } -#ifdef CONFIG_E1000E_NAPI -done_cleaning: -#endif tx_ring->next_to_clean = i; + netdev_completed_queue(netdev, pkts_compl, bytes_compl); + #define TX_WAKE_THRESHOLD 32 - if (cleaned && netif_carrier_ok(netdev) && - e1000_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD) { + if (count && netif_carrier_ok(netdev) && + e1000_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD) { /* Make sure that anybody stopping the queue after this * sees the new next_to_clean. */ @@ -1018,56 +1376,68 @@ done_cleaning: } if (adapter->detect_tx_hung) { - /* - * Detect a transmit hang in hardware, this serializes the + /* Detect a transmit hang in hardware, this serializes the * check with the clearing of time_stamp and movement of i */ - adapter->detect_tx_hung = 0; - if (tx_ring->buffer_info[eop].dma && - time_after(jiffies, tx_ring->buffer_info[eop].time_stamp - + (adapter->tx_timeout_factor * HZ)) - && !(er32(STATUS) & E1000_STATUS_TXOFF)) { + adapter->detect_tx_hung = false; + if (tx_ring->buffer_info[i].time_stamp && + time_after(jiffies, tx_ring->buffer_info[i].time_stamp + + (adapter->tx_timeout_factor * HZ)) && + !(er32(STATUS) & E1000_STATUS_TXOFF)) { +#ifdef __VMKLNX__ + /* By now we treat all TX hardware hang as TSO hang + * before we finally root cause the TSO hang issue. + * We then actively have the driver, instead of uplink + * layer, to reset the adapter when TSO hang issue + * occurs. This is just a workaround to prevent + * vmklinux's watchdog timeout, and does no harm to + * driver functionality. + */ + adapter->hw_hang_reason = hw_hang_on_tso; +#endif /* __VMKLNX__ */ schedule_work(&adapter->print_hang_task); - netif_stop_queue(netdev); - } + } else + adapter->tx_hang_recheck = false; } adapter->total_tx_bytes += total_tx_bytes; adapter->total_tx_packets += total_tx_packets; +#ifdef HAVE_NDO_GET_STATS64 +#elif defined(HAVE_NETDEV_STATS_IN_NETDEV) + netdev->stats.tx_bytes += total_tx_bytes; + netdev->stats.tx_packets += total_tx_packets; +#else adapter->net_stats.tx_bytes += total_tx_bytes; adapter->net_stats.tx_packets += total_tx_packets; -#if !defined(__VMKLNX__) - return retval; -#else /* defined(__VMKLNX__) */ - return cleaned; -#endif /* !defined(__VMKLNX__) */ +#endif + return count < tx_ring->count; } /** * e1000_clean_rx_irq_ps - Send received data up the network stack; packet split - * @adapter: board private structure + * @rx_ring: Rx descriptor ring * * the return value indicates whether actual cleaning was done, there * is no guarantee that everything was cleaned **/ #ifdef CONFIG_E1000E_NAPI -static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, - int *work_done, int work_to_do) +static bool e1000_clean_rx_irq_ps(struct e1000_ring *rx_ring, int *work_done, + int work_to_do) #else -static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter) +static bool e1000_clean_rx_irq_ps(struct e1000_ring *rx_ring) #endif { + struct e1000_adapter *adapter = rx_ring->adapter; struct e1000_hw *hw = &adapter->hw; union e1000_rx_desc_packet_split *rx_desc, *next_rxd; struct net_device *netdev = adapter->netdev; struct pci_dev *pdev = adapter->pdev; - struct e1000_ring *rx_ring = adapter->rx_ring; struct e1000_buffer *buffer_info, *next_buffer; struct e1000_ps_page *ps_page; struct sk_buff *skb; unsigned int i, j; u32 length, staterr; int cleaned_count = 0; - bool cleaned = 0; + bool cleaned = false; unsigned int total_rx_bytes = 0, total_rx_packets = 0; i = rx_ring->next_to_clean; @@ -1082,6 +1452,7 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter) (*work_done)++; #endif skb = buffer_info->skb; + rmb(); /* read descriptor and rx_buffer_info after status DD */ /* in the packet split case this is header only */ prefetch(skb->data - NET_IP_ALIGN); @@ -1094,21 +1465,26 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter) next_buffer = &rx_ring->buffer_info[i]; - cleaned = 1; + cleaned = true; cleaned_count++; - pci_unmap_single(pdev, buffer_info->dma, - adapter->rx_ps_bsize0, - PCI_DMA_FROMDEVICE); + dma_unmap_single(pci_dev_to_dev(pdev), buffer_info->dma, + adapter->rx_ps_bsize0, DMA_FROM_DEVICE); buffer_info->dma = 0; - if (!(staterr & E1000_RXD_STAT_EOP)) { - e_dbg("Packet Split buffers didn't pick up the full " - "packet\n"); + /* see !EOP comment in other Rx routine */ + if (!(staterr & E1000_RXD_STAT_EOP)) + adapter->flags2 |= FLAG2_IS_DISCARDING; + + if (adapter->flags2 & FLAG2_IS_DISCARDING) { + e_dbg("Packet Split buffers didn't pick up the full packet\n"); dev_kfree_skb_irq(skb); + if (staterr & E1000_RXD_STAT_EOP) + adapter->flags2 &= ~FLAG2_IS_DISCARDING; goto next_desc; } - if (staterr & E1000_RXDEXT_ERR_FRAME_ERR_MASK) { + if (unlikely((staterr & E1000_RXDEXT_ERR_FRAME_ERR_MASK) && + !(netdev->features & NETIF_F_RXALL))) { dev_kfree_skb_irq(skb); goto next_desc; } @@ -1116,8 +1492,7 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter) length = le16_to_cpu(rx_desc->wb.middle.length0); if (!length) { - e_dbg("Last part of the packet spanning multiple " - "descriptors\n"); + e_dbg("Last part of the packet spanning multiple descriptors\n"); dev_kfree_skb_irq(skb); goto next_desc; } @@ -1127,43 +1502,47 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter) #ifdef CONFIG_E1000E_NAPI { - /* - * this looks ugly, but it seems compiler issues make it - * more efficient than reusing j - */ - int l1 = le16_to_cpu(rx_desc->wb.upper.length[0]); - - /* - * page alloc/put takes too long and effects small packet - * throughput, so unsplit small packets and save the alloc/put - * only valid in softirq (napi) context to call kmap_* - */ - if (l1 && (l1 <= copybreak) && - ((length + l1) <= adapter->rx_ps_bsize0)) { - u8 *vaddr; - - ps_page = &buffer_info->ps_pages[0]; + /* this looks ugly, but it seems compiler issues make + * it more efficient than reusing j + */ + int l1 = le16_to_cpu(rx_desc->wb.upper.length[0]); - /* - * there is no documentation about how to call - * kmap_atomic, so we can't hold the mapping - * very long + /* page alloc/put takes too long and effects small + * packet throughput, so unsplit small packets and + * save the alloc/put only valid in softirq (napi) + * context to call kmap_* */ - pci_dma_sync_single_for_cpu(pdev, ps_page->dma, - PAGE_SIZE, PCI_DMA_FROMDEVICE); - vaddr = kmap_atomic(ps_page->page, KM_SKB_DATA_SOFTIRQ); - memcpy(skb_tail_pointer(skb), vaddr, l1); - kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ); - pci_dma_sync_single_for_device(pdev, ps_page->dma, - PAGE_SIZE, PCI_DMA_FROMDEVICE); - - /* remove the CRC */ - if (!(adapter->flags2 & FLAG2_CRC_STRIPPING)) - l1 -= 4; - - skb_put(skb, l1); - goto copydone; - } /* if */ + if (l1 && (l1 <= copybreak) && + ((length + l1) <= adapter->rx_ps_bsize0)) { + u8 *vaddr; + + ps_page = &buffer_info->ps_pages[0]; + + /* there is no documentation about how to call + * kmap_atomic, so we can't hold the mapping + * very long + */ + dma_sync_single_for_cpu(pci_dev_to_dev(pdev), + ps_page->dma, + PAGE_SIZE, + DMA_FROM_DEVICE); + vaddr = kmap_atomic(ps_page->page); + memcpy(skb_tail_pointer(skb), vaddr, l1); + kunmap_atomic(vaddr); + dma_sync_single_for_device(pci_dev_to_dev(pdev), + ps_page->dma, + PAGE_SIZE, + DMA_FROM_DEVICE); + + /* remove the CRC */ + if (!(adapter->flags2 & FLAG2_CRC_STRIPPING)) { + if (!(netdev->features & NETIF_F_RXFCS)) + l1 -= 4; + } + + skb_put(skb, l1); + goto copydone; + } /* if */ } #endif @@ -1173,36 +1552,41 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter) break; ps_page = &buffer_info->ps_pages[j]; - pci_unmap_page(pdev, ps_page->dma, PAGE_SIZE, - PCI_DMA_FROMDEVICE); + dma_unmap_page(pci_dev_to_dev(pdev), ps_page->dma, + PAGE_SIZE, DMA_FROM_DEVICE); ps_page->dma = 0; skb_fill_page_desc(skb, j, ps_page->page, 0, length); ps_page->page = NULL; skb->len += length; skb->data_len += length; - skb->truesize += length; + skb->truesize += PAGE_SIZE; } /* strip the ethernet crc, problem is we're using pages now so - * this whole operation can get a little cpu intensive */ - if (!(adapter->flags2 & FLAG2_CRC_STRIPPING)) - pskb_trim(skb, skb->len - 4); - + * this whole operation can get a little cpu intensive + */ + if (!(adapter->flags2 & FLAG2_CRC_STRIPPING)) { + if (!(netdev->features & NETIF_F_RXFCS)) + pskb_trim(skb, skb->len - 4); + } #ifdef CONFIG_E1000E_NAPI copydone: #endif total_rx_bytes += skb->len; total_rx_packets++; - e1000_rx_checksum(adapter, staterr, le16_to_cpu( - rx_desc->wb.lower.hi_dword.csum_ip.csum), skb); + e1000_rx_checksum(adapter, staterr, skb); + +#ifdef NETIF_F_RXHASH + e1000_rx_hash(netdev, rx_desc->wb.lower.hi_dword.rss, skb); +#endif if (rx_desc->wb.upper.header_status & - cpu_to_le16(E1000_RXDPS_HDRSTAT_HDRSP)) + cpu_to_le16(E1000_RXDPS_HDRSTAT_HDRSP)) adapter->rx_hdr_split++; - e1000_receive_skb(adapter, netdev, skb, - staterr, rx_desc->wb.middle.vlan); + e1000_receive_skb(adapter, netdev, skb, staterr, + rx_desc->wb.middle.vlan); next_desc: rx_desc->wb.middle.status_error &= cpu_to_le32(~0xFF); @@ -1210,7 +1594,8 @@ next_desc: /* return some buffers to hardware, one at a time is too slow */ if (cleaned_count >= E1000_RX_BUFFER_WRITE) { - adapter->alloc_rx_buf(adapter, cleaned_count); + adapter->alloc_rx_buf(rx_ring, cleaned_count, + GFP_ATOMIC); cleaned_count = 0; } @@ -1224,12 +1609,21 @@ next_desc: cleaned_count = e1000_desc_unused(rx_ring); if (cleaned_count) - adapter->alloc_rx_buf(adapter, cleaned_count); + adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); +#ifdef DYNAMIC_LTR_SUPPORT + e1000e_check_ltr_demote(adapter, total_rx_bytes); +#endif /* DYNAMIC_LTR_SUPPORT */ adapter->total_rx_bytes += total_rx_bytes; adapter->total_rx_packets += total_rx_packets; +#ifdef HAVE_NDO_GET_STATS64 +#elif defined(HAVE_NETDEV_STATS_IN_NETDEV) + netdev->stats.rx_bytes += total_rx_bytes; + netdev->stats.rx_packets += total_rx_packets; +#else adapter->net_stats.rx_bytes += total_rx_bytes; adapter->net_stats.rx_packets += total_rx_packets; +#endif return cleaned; } @@ -1238,12 +1632,12 @@ next_desc: * e1000_consume_page - helper function **/ static void e1000_consume_page(struct e1000_buffer *bi, struct sk_buff *skb, - u16 length) + u16 length) { bi->page = NULL; skb->len += length; skb->data_len += length; - skb->truesize += length; + skb->truesize += PAGE_SIZE; } /** @@ -1253,79 +1647,79 @@ static void e1000_consume_page(struct e1000_buffer *bi, struct sk_buff *skb, * the return value indicates whether actual cleaning was done, there * is no guarantee that everything was cleaned **/ - -static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter, - int *work_done, int work_to_do) +static bool e1000_clean_jumbo_rx_irq(struct e1000_ring *rx_ring, int *work_done, + int work_to_do) { + struct e1000_adapter *adapter = rx_ring->adapter; struct net_device *netdev = adapter->netdev; struct pci_dev *pdev = adapter->pdev; - struct e1000_ring *rx_ring = adapter->rx_ring; - struct e1000_rx_desc *rx_desc, *next_rxd; + union e1000_rx_desc_extended *rx_desc, *next_rxd; struct e1000_buffer *buffer_info, *next_buffer; - u32 length; + u32 length, staterr; unsigned int i; int cleaned_count = 0; bool cleaned = false; unsigned int total_rx_bytes = 0, total_rx_packets = 0; + struct skb_shared_info *shinfo; i = rx_ring->next_to_clean; - rx_desc = E1000_RX_DESC(*rx_ring, i); + rx_desc = E1000_RX_DESC_EXT(*rx_ring, i); + staterr = le32_to_cpu(rx_desc->wb.upper.status_error); buffer_info = &rx_ring->buffer_info[i]; - while (rx_desc->status & E1000_RXD_STAT_DD) { + while (staterr & E1000_RXD_STAT_DD) { struct sk_buff *skb; - u8 status; if (*work_done >= work_to_do) break; (*work_done)++; + rmb(); /* read descriptor and rx_buffer_info after status DD */ - status = rx_desc->status; skb = buffer_info->skb; buffer_info->skb = NULL; ++i; if (i == rx_ring->count) i = 0; - next_rxd = E1000_RX_DESC(*rx_ring, i); + next_rxd = E1000_RX_DESC_EXT(*rx_ring, i); prefetch(next_rxd); next_buffer = &rx_ring->buffer_info[i]; cleaned = true; cleaned_count++; - pci_unmap_page(pdev, buffer_info->dma, PAGE_SIZE, - PCI_DMA_FROMDEVICE); + dma_unmap_page(pci_dev_to_dev(pdev), buffer_info->dma, + PAGE_SIZE, DMA_FROM_DEVICE); buffer_info->dma = 0; - length = le16_to_cpu(rx_desc->length); + length = le16_to_cpu(rx_desc->wb.upper.length); /* errors is only valid for DD + EOP descriptors */ - if (unlikely((status & E1000_RXD_STAT_EOP) && - (rx_desc->errors & E1000_RXD_ERR_FRAME_ERR_MASK))) { - /* recycle both page and skb */ - buffer_info->skb = skb; - /* an error means any chain goes out the window - * too */ - if (rx_ring->rx_skb_top) - dev_kfree_skb(rx_ring->rx_skb_top); - rx_ring->rx_skb_top = NULL; - goto next_desc; + if (unlikely((staterr & E1000_RXD_STAT_EOP) && + ((staterr & E1000_RXDEXT_ERR_FRAME_ERR_MASK) && + !(netdev->features & NETIF_F_RXALL)))) { + /* recycle both page and skb */ + buffer_info->skb = skb; + /* an error means any chain goes out the window too */ + if (rx_ring->rx_skb_top) + dev_kfree_skb_irq(rx_ring->rx_skb_top); + rx_ring->rx_skb_top = NULL; + goto next_desc; } - #define rxtop (rx_ring->rx_skb_top) - if (!(status & E1000_RXD_STAT_EOP)) { + if (!(staterr & E1000_RXD_STAT_EOP)) { /* this descriptor is only the beginning (or middle) */ if (!rxtop) { /* this is the beginning of a chain */ rxtop = skb; skb_fill_page_desc(rxtop, 0, buffer_info->page, - 0, length); + 0, length); } else { /* this is the middle of a chain */ - skb_fill_page_desc(rxtop, - skb_shinfo(rxtop)->nr_frags, - buffer_info->page, 0, length); + shinfo = skb_shinfo(rxtop); + skb_fill_page_desc(rxtop, shinfo->nr_frags, + buffer_info->page, 0, + length); /* re-use the skb, only consumed the page */ buffer_info->skb = skb; } @@ -1334,46 +1728,49 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter, } else { if (rxtop) { /* end of the chain */ - skb_fill_page_desc(rxtop, - skb_shinfo(rxtop)->nr_frags, - buffer_info->page, 0, length); + shinfo = skb_shinfo(rxtop); + skb_fill_page_desc(rxtop, shinfo->nr_frags, + buffer_info->page, 0, + length); /* re-use the current skb, we only consumed the - * page */ + * page + */ buffer_info->skb = skb; skb = rxtop; rxtop = NULL; e1000_consume_page(buffer_info, skb, length); } else { /* no chain, got EOP, this buf is the packet - * copybreak to save the put_page/alloc_page */ + * copybreak to save the put_page/alloc_page + */ if (length <= copybreak && skb_tailroom(skb) >= length) { u8 *vaddr; - vaddr = kmap_atomic(buffer_info->page, - KM_SKB_DATA_SOFTIRQ); + vaddr = kmap_atomic(buffer_info->page); memcpy(skb_tail_pointer(skb), vaddr, length); - kunmap_atomic(vaddr, - KM_SKB_DATA_SOFTIRQ); + kunmap_atomic(vaddr); /* re-use the page, so don't erase - * buffer_info->page */ + * buffer_info->page + */ skb_put(skb, length); } else { skb_fill_page_desc(skb, 0, - buffer_info->page, 0, - length); + buffer_info->page, 0, + length); e1000_consume_page(buffer_info, skb, - length); + length); } } } - /* Receive Checksum Offload XXX recompute due to CRC strip? */ - e1000_rx_checksum(adapter, - (u32)(status) | - ((u32)(rx_desc->errors) << 24), - le16_to_cpu(rx_desc->csum), skb); + /* Receive Checksum Offload */ + e1000_rx_checksum(adapter, staterr, skb); + +#ifdef NETIF_F_RXHASH + e1000_rx_hash(netdev, rx_desc->wb.lower.hi_dword.rss, skb); +#endif /* probably a little skewed due to removing CRC */ total_rx_bytes += skb->len; total_rx_packets++; @@ -1381,47 +1778,59 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter, /* eth type trans needs skb->data to point to something */ if (!pskb_may_pull(skb, ETH_HLEN)) { e_err("pskb_may_pull failed.\n"); - dev_kfree_skb(skb); + dev_kfree_skb_irq(skb); goto next_desc; } - e1000_receive_skb(adapter, netdev, skb, status, - rx_desc->special); + e1000_receive_skb(adapter, netdev, skb, staterr, + rx_desc->wb.upper.vlan); next_desc: - rx_desc->status = 0; + rx_desc->wb.upper.status_error &= cpu_to_le32(~0xFF); /* return some buffers to hardware, one at a time is too slow */ if (unlikely(cleaned_count >= E1000_RX_BUFFER_WRITE)) { - adapter->alloc_rx_buf(adapter, cleaned_count); + adapter->alloc_rx_buf(rx_ring, cleaned_count, + GFP_ATOMIC); cleaned_count = 0; } /* use prefetched values */ rx_desc = next_rxd; buffer_info = next_buffer; + + staterr = le32_to_cpu(rx_desc->wb.upper.status_error); } rx_ring->next_to_clean = i; cleaned_count = e1000_desc_unused(rx_ring); if (cleaned_count) - adapter->alloc_rx_buf(adapter, cleaned_count); + adapter->alloc_rx_buf(rx_ring, cleaned_count, GFP_ATOMIC); +#ifdef DYNAMIC_LTR_SUPPORT + e1000e_check_ltr_demote(adapter, total_rx_bytes); +#endif /* DYNAMIC_LTR_SUPPORT */ adapter->total_rx_bytes += total_rx_bytes; adapter->total_rx_packets += total_rx_packets; +#ifdef HAVE_NDO_GET_STATS64 +#elif defined(HAVE_NETDEV_STATS_IN_NETDEV) + netdev->stats.rx_bytes += total_rx_bytes; + netdev->stats.rx_packets += total_rx_packets; +#else adapter->net_stats.rx_bytes += total_rx_bytes; adapter->net_stats.rx_packets += total_rx_packets; +#endif return cleaned; } #endif /* CONFIG_E1000E_NAPI */ /** * e1000_clean_rx_ring - Free Rx Buffers per Queue - * @adapter: board private structure + * @rx_ring: Rx descriptor ring **/ -static void e1000_clean_rx_ring(struct e1000_adapter *adapter) +static void e1000_clean_rx_ring(struct e1000_ring *rx_ring) { - struct e1000_ring *rx_ring = adapter->rx_ring; + struct e1000_adapter *adapter = rx_ring->adapter; struct e1000_buffer *buffer_info; struct e1000_ps_page *ps_page; struct pci_dev *pdev = adapter->pdev; @@ -1432,19 +1841,21 @@ static void e1000_clean_rx_ring(struct e1000_adapter *adapter) buffer_info = &rx_ring->buffer_info[i]; if (buffer_info->dma) { if (adapter->clean_rx == e1000_clean_rx_irq) - pci_unmap_single(pdev, buffer_info->dma, + dma_unmap_single(pci_dev_to_dev(pdev), + buffer_info->dma, adapter->rx_buffer_len, - PCI_DMA_FROMDEVICE); + DMA_FROM_DEVICE); #ifdef CONFIG_E1000E_NAPI else if (adapter->clean_rx == e1000_clean_jumbo_rx_irq) - pci_unmap_page(pdev, buffer_info->dma, - PAGE_SIZE, - PCI_DMA_FROMDEVICE); + dma_unmap_page(pci_dev_to_dev(pdev), + buffer_info->dma, PAGE_SIZE, + DMA_FROM_DEVICE); #endif else if (adapter->clean_rx == e1000_clean_rx_irq_ps) - pci_unmap_single(pdev, buffer_info->dma, + dma_unmap_single(pci_dev_to_dev(pdev), + buffer_info->dma, adapter->rx_ps_bsize0, - PCI_DMA_FROMDEVICE); + DMA_FROM_DEVICE); buffer_info->dma = 0; } @@ -1462,8 +1873,8 @@ static void e1000_clean_rx_ring(struct e1000_adapter *adapter) ps_page = &buffer_info->ps_pages[j]; if (!ps_page->page) break; - pci_unmap_page(pdev, ps_page->dma, PAGE_SIZE, - PCI_DMA_FROMDEVICE); + dma_unmap_page(pci_dev_to_dev(pdev), ps_page->dma, + PAGE_SIZE, DMA_FROM_DEVICE); ps_page->dma = 0; put_page(ps_page->page); ps_page->page = NULL; @@ -1483,15 +1894,23 @@ static void e1000_clean_rx_ring(struct e1000_adapter *adapter) rx_ring->next_to_clean = 0; rx_ring->next_to_use = 0; + adapter->flags2 &= ~FLAG2_IS_DISCARDING; - writel(0, adapter->hw.hw_addr + rx_ring->head); - writel(0, adapter->hw.hw_addr + rx_ring->tail); + writel(0, rx_ring->head); + if (adapter->flags2 & FLAG2_PCIM2PCI_ARBITER_WA) + e1000e_update_rdt_wa(rx_ring, 0); + else + writel(0, rx_ring->tail); } static void e1000e_downshift_workaround(struct work_struct *work) { struct e1000_adapter *adapter = container_of(work, - struct e1000_adapter, downshift_task); + struct e1000_adapter, + downshift_task); + + if (test_bit(__E1000_DOWN, &adapter->state)) + return; e1000e_gig_downshift_workaround_ich8lan(&adapter->hw); } @@ -1504,7 +1923,7 @@ static void e1000_set_itr(struct e1000_adapter *adapter); * @irq: interrupt number * @data: pointer to a network interface device structure **/ -static irqreturn_t e1000_intr_msi(int irq, void *data) +static irqreturn_t e1000_intr_msi(int __always_unused irq, void *data) { struct net_device *netdev = data; struct e1000_adapter *adapter = netdev_priv(netdev); @@ -1514,22 +1933,17 @@ static irqreturn_t e1000_intr_msi(int irq, void *data) #endif u32 icr = er32(ICR); - /* - * read ICR disables interrupts using IAM - */ - + /* read ICR disables interrupts using IAM */ if (icr & E1000_ICR_LSC) { - hw->mac.get_link_status = 1; - /* - * ICH8 workaround-- Call gig speed drop workaround on cable + hw->mac.get_link_status = true; + /* ICH8 workaround-- Call gig speed drop workaround on cable * disconnect (LSC) before accessing any PHY registers */ if ((adapter->flags & FLAG_LSC_GIG_SPEED_DROP) && (!(er32(STATUS) & E1000_STATUS_LU))) schedule_work(&adapter->downshift_task); - /* - * 80003ES2LAN workaround-- For packet buffer work-around on + /* 80003ES2LAN workaround-- For packet buffer work-around on * link down event; disable receives here in the ISR and reset * adapter in watchdog */ @@ -1537,14 +1951,32 @@ static irqreturn_t e1000_intr_msi(int irq, void *data) adapter->flags & FLAG_RX_NEEDS_RESTART) { /* disable receives */ u32 rctl = er32(RCTL); + ew32(RCTL, rctl & ~E1000_RCTL_EN); - adapter->flags |= FLAG_RX_RESTART_NOW; + adapter->flags |= FLAG_RESTART_NOW; } /* guard against interrupt when we're going down */ if (!test_bit(__E1000_DOWN, &adapter->state)) mod_timer(&adapter->watchdog_timer, jiffies + 1); } + /* Reset on uncorrectable ECC error */ + if ((icr & E1000_ICR_ECCER) && ((hw->mac.type == e1000_pch_lpt) || + (hw->mac.type == e1000_pch_spt))) { + u32 pbeccsts = er32(PBECCSTS); + + adapter->corr_errors += + pbeccsts & E1000_PBECCSTS_CORR_ERR_CNT_MASK; + adapter->uncorr_errors += + (pbeccsts & E1000_PBECCSTS_UNCORR_ERR_CNT_MASK) >> + E1000_PBECCSTS_UNCORR_ERR_CNT_SHIFT; + + /* Do the reset outside of interrupt context */ + schedule_work(&adapter->reset_task); + + /* return immediately since reset is imminent */ + return IRQ_HANDLED; + } #ifdef CONFIG_E1000E_NAPI if (napi_schedule_prep(&adapter->napi)) { adapter->total_tx_bytes = 0; @@ -1560,8 +1992,8 @@ static irqreturn_t e1000_intr_msi(int irq, void *data) adapter->total_rx_packets = 0; for (i = 0; i < E1000_MAX_INTR; i++) { - int rx_cleaned = adapter->clean_rx(adapter); - int tx_cleaned_complete = e1000_clean_tx_irq(adapter); + int rx_cleaned = adapter->clean_rx(adapter->rx_ring); + int tx_cleaned_complete = e1000_clean_tx_irq(adapter->tx_ring); if (!rx_cleaned && tx_cleaned_complete) break; } @@ -1578,7 +2010,7 @@ static irqreturn_t e1000_intr_msi(int irq, void *data) * @irq: interrupt number * @data: pointer to a network interface device structure **/ -static irqreturn_t e1000_intr(int irq, void *data) +static irqreturn_t e1000_intr(int __always_unused irq, void *data) { struct net_device *netdev = data; struct e1000_adapter *adapter = netdev_priv(netdev); @@ -1590,35 +2022,31 @@ static irqreturn_t e1000_intr(int irq, void *data) u32 rctl, icr = er32(ICR); if (!icr || test_bit(__E1000_DOWN, &adapter->state)) - return IRQ_NONE; /* Not our interrupt */ + return IRQ_NONE; /* Not our interrupt */ #ifdef CONFIG_E1000E_NAPI - /* - * IMS will not auto-mask if INT_ASSERTED is not set, and if it is + /* IMS will not auto-mask if INT_ASSERTED is not set, and if it is * not set, then the adapter didn't send an interrupt */ if (!(icr & E1000_ICR_INT_ASSERTED)) return IRQ_NONE; #endif /* CONFIG_E1000E_NAPI */ - /* - * Interrupt Auto-Mask...upon reading ICR, + /* Interrupt Auto-Mask...upon reading ICR, * interrupts are masked. No need for the * IMC write */ if (icr & E1000_ICR_LSC) { - hw->mac.get_link_status = 1; - /* - * ICH8 workaround-- Call gig speed drop workaround on cable + hw->mac.get_link_status = true; + /* ICH8 workaround-- Call gig speed drop workaround on cable * disconnect (LSC) before accessing any PHY registers */ if ((adapter->flags & FLAG_LSC_GIG_SPEED_DROP) && (!(er32(STATUS) & E1000_STATUS_LU))) schedule_work(&adapter->downshift_task); - /* - * 80003ES2LAN workaround-- + /* 80003ES2LAN workaround-- * For packet buffer work-around on link down event; * disable receives here in the ISR and * reset adapter in watchdog @@ -1628,13 +2056,30 @@ static irqreturn_t e1000_intr(int irq, void *data) /* disable receives */ rctl = er32(RCTL); ew32(RCTL, rctl & ~E1000_RCTL_EN); - adapter->flags |= FLAG_RX_RESTART_NOW; + adapter->flags |= FLAG_RESTART_NOW; } /* guard against interrupt when we're going down */ if (!test_bit(__E1000_DOWN, &adapter->state)) mod_timer(&adapter->watchdog_timer, jiffies + 1); } + /* Reset on uncorrectable ECC error */ + if ((icr & E1000_ICR_ECCER) && ((hw->mac.type == e1000_pch_lpt) || + (hw->mac.type == e1000_pch_spt))) { + u32 pbeccsts = er32(PBECCSTS); + + adapter->corr_errors += + pbeccsts & E1000_PBECCSTS_CORR_ERR_CNT_MASK; + adapter->uncorr_errors += + (pbeccsts & E1000_PBECCSTS_UNCORR_ERR_CNT_MASK) >> + E1000_PBECCSTS_UNCORR_ERR_CNT_SHIFT; + + /* Do the reset outside of interrupt context */ + schedule_work(&adapter->reset_task); + + /* return immediately since reset is imminent */ + return IRQ_HANDLED; + } #ifdef CONFIG_E1000E_NAPI if (napi_schedule_prep(&adapter->napi)) { adapter->total_tx_bytes = 0; @@ -1650,8 +2095,8 @@ static irqreturn_t e1000_intr(int irq, void *data) adapter->total_rx_packets = 0; for (i = 0; i < E1000_MAX_INTR; i++) { - rx_cleaned = adapter->clean_rx(adapter); - tx_cleaned_complete = e1000_clean_tx_irq(adapter); + rx_cleaned = adapter->clean_rx(adapter->rx_ring); + tx_cleaned_complete = e1000_clean_tx_irq(adapter->tx_ring); if (!rx_cleaned && tx_cleaned_complete) break; } @@ -1663,8 +2108,7 @@ static irqreturn_t e1000_intr(int irq, void *data) return IRQ_HANDLED; } -#ifdef CONFIG_E1000E_MSIX -static irqreturn_t e1000_msix_other(int irq, void *data) +static irqreturn_t e1000_msix_other(int __always_unused irq, void *data) { struct net_device *netdev = data; struct e1000_adapter *adapter = netdev_priv(netdev); @@ -1672,7 +2116,8 @@ static irqreturn_t e1000_msix_other(int irq, void *data) u32 icr = er32(ICR); if (!(icr & E1000_ICR_INT_ASSERTED)) { - ew32(IMS, E1000_IMS_OTHER); + if (!test_bit(__E1000_DOWN, &adapter->state)) + ew32(IMS, E1000_IMS_OTHER); return IRQ_NONE; } @@ -1682,43 +2127,41 @@ static irqreturn_t e1000_msix_other(int irq, void *data) if (icr & E1000_ICR_OTHER) { if (!(icr & E1000_ICR_LSC)) goto no_link_interrupt; - hw->mac.get_link_status = 1; + hw->mac.get_link_status = true; /* guard against interrupt when we're going down */ if (!test_bit(__E1000_DOWN, &adapter->state)) mod_timer(&adapter->watchdog_timer, jiffies + 1); } no_link_interrupt: - ew32(IMS, E1000_IMS_LSC | E1000_IMS_OTHER); + if (!test_bit(__E1000_DOWN, &adapter->state)) + ew32(IMS, E1000_IMS_LSC | E1000_IMS_OTHER); return IRQ_HANDLED; } - -#ifdef CONFIG_E1000E_SEPARATE_TX_HANDLER -static irqreturn_t e1000_intr_msix_tx(int irq, void *data) +static irqreturn_t e1000_intr_msix_tx(int __always_unused irq, void *data) { struct net_device *netdev = data; struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; struct e1000_ring *tx_ring = adapter->tx_ring; - adapter->total_tx_bytes = 0; adapter->total_tx_packets = 0; - if (!e1000_clean_tx_irq(adapter)) + if (!e1000_clean_tx_irq(tx_ring)) /* Ring was not completely cleaned, so fire another interrupt */ ew32(ICS, tx_ring->ims_val); return IRQ_HANDLED; } -#endif /* CONFIG_E1000E_SEPARATE_TX_HANDLER */ -static irqreturn_t e1000_intr_msix_rx(int irq, void *data) +static irqreturn_t e1000_intr_msix_rx(int __always_unused irq, void *data) { struct net_device *netdev = data; struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_ring *rx_ring = adapter->rx_ring; #ifndef CONFIG_E1000E_NAPI int i; struct e1000_hw *hw = &adapter->hw; @@ -1727,44 +2170,30 @@ static irqreturn_t e1000_intr_msix_rx(int irq, void *data) /* Write the ITR value calculated at the end of the * previous interrupt. */ - if (adapter->rx_ring->set_itr) { - writel(1000000000 / (adapter->rx_ring->itr_val * 256), - adapter->hw.hw_addr + adapter->rx_ring->itr_register); - adapter->rx_ring->set_itr = 0; + if (rx_ring->set_itr) { + writel(1000000000 / (rx_ring->itr_val * 256), + rx_ring->itr_register); + rx_ring->set_itr = 0; } - #ifdef CONFIG_E1000E_NAPI if (napi_schedule_prep(&adapter->napi)) { adapter->total_rx_bytes = 0; adapter->total_rx_packets = 0; -#ifndef CONFIG_E1000E_SEPARATE_TX_HANDLER - adapter->total_tx_bytes = 0; - adapter->total_tx_packets = 0; -#endif /* CONFIG_E1000E_SEPARATE_TX_HANDLER */ __napi_schedule(&adapter->napi); } #else adapter->total_rx_bytes = 0; adapter->total_rx_packets = 0; -#ifndef CONFIG_E1000E_SEPARATE_TX_HANDLER - adapter->total_tx_bytes = 0; - adapter->total_tx_packets = 0; -#endif for (i = 0; i < E1000_MAX_INTR; i++) { - int rx_cleaned = adapter->clean_rx(adapter); -#ifndef CONFIG_E1000E_SEPARATE_TX_HANDLER - int tx_cleaned_complete = e1000_clean_tx_irq(adapter); - if (!rx_cleaned && tx_cleaned_complete) -#else + int rx_cleaned = adapter->clean_rx(rx_ring); if (!rx_cleaned) -#endif goto out; } /* If we got here, the ring was not completely cleaned, * so fire another interrupt. */ - ew32(ICS, adapter->rx_ring->ims_val); + ew32(ICS, rx_ring->ims_val); out: #endif /* CONFIG_E1000E_NAPI */ @@ -1790,33 +2219,29 @@ static void e1000_configure_msix(struct e1000_adapter *adapter) /* Workaround issue with spurious interrupts on 82574 in MSI-X mode */ if (hw->mac.type == e1000_82574) { u32 rfctl = er32(RFCTL); + rfctl |= E1000_RFCTL_ACK_DIS; ew32(RFCTL, rfctl); } -#define E1000_IVAR_INT_ALLOC_VALID 0x8 /* Configure Rx vector */ rx_ring->ims_val = E1000_IMS_RXQ0; adapter->eiac_mask |= rx_ring->ims_val; if (rx_ring->itr_val) writel(1000000000 / (rx_ring->itr_val * 256), - hw->hw_addr + rx_ring->itr_register); + rx_ring->itr_register); else - writel(1, hw->hw_addr + rx_ring->itr_register); + writel(1, rx_ring->itr_register); ivar = E1000_IVAR_INT_ALLOC_VALID | vector; /* Configure Tx vector */ tx_ring->ims_val = E1000_IMS_TXQ0; -#ifdef CONFIG_E1000E_SEPARATE_TX_HANDLER vector++; if (tx_ring->itr_val) writel(1000000000 / (tx_ring->itr_val * 256), - hw->hw_addr + tx_ring->itr_register); + tx_ring->itr_register); else - writel(1, hw->hw_addr + tx_ring->itr_register); -#else - rx_ring->ims_val |= tx_ring->ims_val; -#endif + writel(1, tx_ring->itr_register); adapter->eiac_mask |= tx_ring->ims_val; ivar |= ((E1000_IVAR_INT_ALLOC_VALID | vector) << 8); @@ -1855,8 +2280,6 @@ void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter) pci_disable_msi(adapter->pdev); adapter->flags &= ~FLAG_MSI_ENABLED; } - - return; } /** @@ -1868,34 +2291,35 @@ void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter) void e1000e_set_interrupt_capability(struct e1000_adapter *adapter) { int err; - int numvecs, i; - + int i; switch (adapter->int_mode) { case E1000E_INT_MODE_MSIX: if (adapter->flags & FLAG_HAS_MSIX) { -#ifdef CONFIG_E1000E_SEPARATE_TX_HANDLER - numvecs = 3; /* RxQ0, TxQ0 and other */ -#else - numvecs = 2; /* RxQ0/TxQ0 and other */ -#endif - adapter->msix_entries = kcalloc(numvecs, - sizeof(struct msix_entry), - GFP_KERNEL); + adapter->num_vectors = 3; /* RxQ0, TxQ0 and other */ + adapter->msix_entries = + kzalloc_node(adapter->num_vectors * + sizeof(struct msix_entry), GFP_KERNEL, + adapter->node); if (adapter->msix_entries) { - for (i = 0; i < numvecs; i++) + struct e1000_adapter *a = adapter; + + for (i = 0; i < adapter->num_vectors; i++) adapter->msix_entries[i].entry = i; - err = pci_enable_msix(adapter->pdev, - adapter->msix_entries, - numvecs); - if (err == 0) + err = pci_enable_msix_range(a->pdev, + a->msix_entries, + a->num_vectors, + a->num_vectors); + if (err > 0) return; + + kfree(adapter->msix_entries); + adapter->msix_entries = NULL; } /* MSI-X failed, so fall through and try MSI */ - e_err("Failed to initialize MSI-X interrupts. " - "Falling back to MSI interrupts.\n"); - e1000e_reset_interrupt_capability(adapter); + e_err("Failed to initialize MSI-X interrupts. Falling " + "back to MSI interrupts.\n"); } adapter->int_mode = E1000E_INT_MODE_MSI; /* Fall through */ @@ -1904,7 +2328,7 @@ void e1000e_set_interrupt_capability(struct e1000_adapter *adapter) adapter->flags |= FLAG_MSI_ENABLED; } else { adapter->int_mode = E1000E_INT_MODE_LEGACY; - e_err("Failed to initialize MSI interrupts. Falling " + e_err("Failed to initialize MSI interrupts. Falling " "back to legacy interrupts.\n"); } /* Fall through */ @@ -1913,7 +2337,8 @@ void e1000e_set_interrupt_capability(struct e1000_adapter *adapter) break; } - return; + /* store the number of vectors being used */ + adapter->num_vectors = 1; } /** @@ -1928,49 +2353,56 @@ static int e1000_request_msix(struct e1000_adapter *adapter) int err = 0, vector = 0; if (strlen(netdev->name) < (IFNAMSIZ - 5)) -#ifdef CONFIG_E1000E_SEPARATE_TX_HANDLER - sprintf(adapter->rx_ring->name, "%s-rx-0", netdev->name); -#else - sprintf(adapter->rx_ring->name, "%s-Q0", netdev->name); -#endif + snprintf(adapter->rx_ring->name, + sizeof(adapter->rx_ring->name) - 1, + "%s-rx-0", netdev->name); else memcpy(adapter->rx_ring->name, netdev->name, IFNAMSIZ); err = request_irq(adapter->msix_entries[vector].vector, - &e1000_intr_msix_rx, 0, adapter->rx_ring->name, + e1000_intr_msix_rx, 0, adapter->rx_ring->name, netdev); if (err) - goto out; - adapter->rx_ring->itr_register = E1000_EITR_82574(vector); + goto err_request_rx; + adapter->rx_ring->itr_register = adapter->hw.hw_addr + + E1000_EITR_82574(vector); adapter->rx_ring->itr_val = adapter->itr; vector++; -#ifdef CONFIG_E1000E_SEPARATE_TX_HANDLER if (strlen(netdev->name) < (IFNAMSIZ - 5)) - sprintf(adapter->tx_ring->name, "%s-tx-0", netdev->name); + snprintf(adapter->tx_ring->name, + sizeof(adapter->tx_ring->name) - 1, + "%s-tx-0", netdev->name); else memcpy(adapter->tx_ring->name, netdev->name, IFNAMSIZ); err = request_irq(adapter->msix_entries[vector].vector, - &e1000_intr_msix_tx, 0, adapter->tx_ring->name, + e1000_intr_msix_tx, 0, adapter->tx_ring->name, netdev); if (err) - goto out; - adapter->tx_ring->itr_register = E1000_EITR_82574(vector); + goto err_request_tx; + adapter->tx_ring->itr_register = adapter->hw.hw_addr + + E1000_EITR_82574(vector); adapter->tx_ring->itr_val = adapter->itr; vector++; -#endif /* CONFIG_E1000E_SEPARATE_TX_HANDLER */ err = request_irq(adapter->msix_entries[vector].vector, - &e1000_msix_other, 0, netdev->name, netdev); + e1000_msix_other, 0, netdev->name, netdev); if (err) - goto out; + goto err_request_other; e1000_configure_msix(adapter); + return 0; -out: + +err_request_other: + vector --; + free_irq(adapter->msix_entries[vector].vector, netdev); +err_request_tx: + vector --; + free_irq(adapter->msix_entries[vector].vector, netdev); +err_request_rx: return err; } -#endif /* CONFIG_E1000E_MSIX */ /** * e1000_request_irq - initialize interrupts * @@ -1980,12 +2412,8 @@ out: static int e1000_request_irq(struct e1000_adapter *adapter) { struct net_device *netdev = adapter->netdev; -#ifndef CONFIG_E1000E_MSIX - int irq_flags = IRQF_SHARED; -#endif int err; -#ifdef CONFIG_E1000E_MSIX if (adapter->msix_entries) { err = e1000_request_msix(adapter); if (!err) @@ -1996,7 +2424,7 @@ static int e1000_request_irq(struct e1000_adapter *adapter) e1000e_set_interrupt_capability(adapter); } if (adapter->flags & FLAG_MSI_ENABLED) { - err = request_irq(adapter->pdev->irq, &e1000_intr_msi, 0, + err = request_irq(adapter->pdev->irq, e1000_intr_msi, 0, netdev->name, netdev); if (!err) return err; @@ -2006,31 +2434,10 @@ static int e1000_request_irq(struct e1000_adapter *adapter) adapter->int_mode = E1000E_INT_MODE_LEGACY; } - err = request_irq(adapter->pdev->irq, &e1000_intr, IRQF_SHARED, + err = request_irq(adapter->pdev->irq, e1000_intr, IRQF_SHARED, netdev->name, netdev); if (err) e_err("Unable to allocate interrupt, Error: %d\n", err); -#else - if (!(adapter->flags & FLAG_MSI_TEST_FAILED)) { - err = pci_enable_msi(adapter->pdev); - if (!err) { - adapter->flags |= FLAG_MSI_ENABLED; - irq_flags = 0; - } - } - - err = request_irq(adapter->pdev->irq, - ((adapter->flags & FLAG_MSI_ENABLED) ? - &e1000_intr_msi : &e1000_intr), - irq_flags, netdev->name, netdev); - if (err) { - if (adapter->flags & FLAG_MSI_ENABLED) { - pci_disable_msi(adapter->pdev); - adapter->flags &= ~FLAG_MSI_ENABLED; - } - e_err("Unable to allocate interrupt, Error: %d\n", err); - } -#endif /* CONFIG_E1000E_MSIX */ return err; } @@ -2039,31 +2446,21 @@ static void e1000_free_irq(struct e1000_adapter *adapter) { struct net_device *netdev = adapter->netdev; -#ifdef CONFIG_E1000E_MSIX if (adapter->msix_entries) { int vector = 0; free_irq(adapter->msix_entries[vector].vector, netdev); vector++; -#ifdef CONFIG_E1000E_SEPARATE_TX_HANDLER free_irq(adapter->msix_entries[vector].vector, netdev); vector++; -#endif /* Other Causes interrupt vector */ free_irq(adapter->msix_entries[vector].vector, netdev); return; } -#endif /* CONFIG_E1000E_MSIX */ free_irq(adapter->pdev->irq, netdev); -#ifndef CONFIG_E1000E_MSIX - if (adapter->flags & FLAG_MSI_ENABLED) { - pci_disable_msi(adapter->pdev); - adapter->flags &= ~FLAG_MSI_ENABLED; - } -#endif } /** @@ -2074,11 +2471,10 @@ static void e1000_irq_disable(struct e1000_adapter *adapter) struct e1000_hw *hw = &adapter->hw; ew32(IMC, ~0); -#ifdef CONFIG_E1000E_MSIX if (adapter->msix_entries) ew32(EIAC_82574, 0); -#endif /* CONFIG_E1000E_MSIX */ e1e_flush(); + #ifdef __VMKLNX__ /* * PR 640906: We shouldn't be calling synchronize_irq on the legacy irq @@ -2087,7 +2483,6 @@ static void e1000_irq_disable(struct e1000_adapter *adapter) if (adapter->msix_entries) { int vector = 0; synchronize_irq(adapter->msix_entries[vector].vector); - vector++; #ifdef CONFIG_E1000E_SEPARATE_TX_HANDLER @@ -2096,13 +2491,19 @@ static void e1000_irq_disable(struct e1000_adapter *adapter) #endif /* Other Causes interrupt vector */ synchronize_irq(adapter->msix_entries[vector].vector); + } else { + synchronize_irq(adapter->pdev->irq); + } +#else /* __VMKLNX__*/ + if (adapter->msix_entries) { + int i; + for (i = 0; i < adapter->num_vectors; i++) + synchronize_irq(adapter->msix_entries[i].vector); } else { synchronize_irq(adapter->pdev->irq); } -#else - synchronize_irq(adapter->pdev->irq); -#endif +#endif /* __VMKLNX__*/ } /** @@ -2112,29 +2513,28 @@ static void e1000_irq_enable(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; -#ifdef CONFIG_E1000E_MSIX if (adapter->msix_entries) { ew32(EIAC_82574, adapter->eiac_mask & E1000_EIAC_MASK_82574); ew32(IMS, adapter->eiac_mask | E1000_IMS_OTHER | E1000_IMS_LSC); + } else if ((hw->mac.type == e1000_pch_lpt) || + (hw->mac.type == e1000_pch_spt)) { + ew32(IMS, IMS_ENABLE_MASK | E1000_IMS_ECCER); } else { ew32(IMS, IMS_ENABLE_MASK); } -#else - ew32(IMS, IMS_ENABLE_MASK); -#endif /* CONFIG_E1000E_MSIX */ e1e_flush(); } /** - * e1000_get_hw_control - get control of the h/w from f/w + * e1000e_get_hw_control - get control of the h/w from f/w * @adapter: address of board private structure * - * e1000_get_hw_control sets {CTRL_EXT|SWSM}:DRV_LOAD bit. + * e1000e_get_hw_control sets {CTRL_EXT|SWSM}:DRV_LOAD bit. * For ASF and Pass Through versions of f/w this means that * the driver is loaded. For AMT version (only with 82573) * of the f/w this means that the network i/f is open. **/ -static void e1000_get_hw_control(struct e1000_adapter *adapter) +void e1000e_get_hw_control(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; u32 ctrl_ext; @@ -2151,16 +2551,16 @@ static void e1000_get_hw_control(struct e1000_adapter *adapter) } /** - * e1000_release_hw_control - release control of the h/w to f/w + * e1000e_release_hw_control - release control of the h/w to f/w * @adapter: address of board private structure * - * e1000_release_hw_control resets {CTRL_EXT|SWSM}:DRV_LOAD bit. + * e1000e_release_hw_control resets {CTRL_EXT|SWSM}:DRV_LOAD bit. * For ASF and Pass Through versions of f/w this means that the * driver is no longer loaded. For AMT version (only with 82573) i * of the f/w this means that the network i/f is closed. * **/ -static void e1000_release_hw_control(struct e1000_adapter *adapter) +void e1000e_release_hw_control(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; u32 ctrl_ext; @@ -2177,37 +2577,46 @@ static void e1000_release_hw_control(struct e1000_adapter *adapter) } /** - * @e1000_alloc_ring - allocate memory for a ring structure + * e1000_alloc_ring_dma - allocate memory for a ring structure **/ static int e1000_alloc_ring_dma(struct e1000_adapter *adapter, struct e1000_ring *ring) { struct pci_dev *pdev = adapter->pdev; + int old_node = dev_to_node(pci_dev_to_dev(pdev)); + int retval = 0; - ring->desc = dma_alloc_coherent(&pdev->dev, ring->size, &ring->dma, - GFP_KERNEL); + /* must use set_dev_node here to work around the lack of a + * dma_alloc_coherent_node function call + */ + if (adapter->node != -1) + set_dev_node(pci_dev_to_dev(pdev), adapter->node); + ring->desc = + dma_alloc_coherent(pci_dev_to_dev(pdev), ring->size, &ring->dma, + GFP_KERNEL); if (!ring->desc) - return -ENOMEM; + retval = -ENOMEM; - return 0; + if (adapter->node != -1) + set_dev_node(pci_dev_to_dev(pdev), old_node); + return retval; } /** * e1000e_setup_tx_resources - allocate Tx resources (Descriptors) - * @adapter: board private structure + * @tx_ring: Tx descriptor ring * * Return 0 on success, negative on failure **/ -int e1000e_setup_tx_resources(struct e1000_adapter *adapter) +int e1000e_setup_tx_resources(struct e1000_ring *tx_ring) { - struct e1000_ring *tx_ring = adapter->tx_ring; + struct e1000_adapter *adapter = tx_ring->adapter; int err = -ENOMEM, size; size = sizeof(struct e1000_buffer) * tx_ring->count; - tx_ring->buffer_info = vmalloc(size); + tx_ring->buffer_info = vzalloc_node(size, adapter->node); if (!tx_ring->buffer_info) - goto err; - memset(tx_ring->buffer_info, 0, size); + goto err_alloc_buffer; /* round up to nearest 4K */ tx_ring->size = tx_ring->count * sizeof(struct e1000_tx_desc); @@ -2215,41 +2624,47 @@ int e1000e_setup_tx_resources(struct e1000_adapter *adapter) err = e1000_alloc_ring_dma(adapter, tx_ring); if (err) - goto err; + goto err_alloc_ring; tx_ring->next_to_use = 0; tx_ring->next_to_clean = 0; return 0; -err: + +err_alloc_ring: vfree(tx_ring->buffer_info); e_err("Unable to allocate memory for the transmit descriptor ring\n"); return err; + +err_alloc_buffer: + e_err("Unable to allocate memory for the transmit descriptor ring " + "buffer\n"); + return err; } /** * e1000e_setup_rx_resources - allocate Rx resources (Descriptors) - * @adapter: board private structure + * @rx_ring: Rx descriptor ring * * Returns 0 on success, negative on failure **/ -int e1000e_setup_rx_resources(struct e1000_adapter *adapter) +int e1000e_setup_rx_resources(struct e1000_ring *rx_ring) { - struct e1000_ring *rx_ring = adapter->rx_ring; + struct e1000_adapter *adapter = rx_ring->adapter; struct e1000_buffer *buffer_info; int i, size, desc_len, err = -ENOMEM; size = sizeof(struct e1000_buffer) * rx_ring->count; - rx_ring->buffer_info = vmalloc(size); + rx_ring->buffer_info = vzalloc_node(size, adapter->node); if (!rx_ring->buffer_info) - goto err; - memset(rx_ring->buffer_info, 0, size); + goto err_alloc_buffer; for (i = 0; i < rx_ring->count; i++) { buffer_info = &rx_ring->buffer_info[i]; - buffer_info->ps_pages = kcalloc(PS_PAGE_BUFFERS, - sizeof(struct e1000_ps_page), - GFP_KERNEL); + buffer_info->ps_pages = kzalloc_node(PS_PAGE_BUFFERS * + sizeof(struct + e1000_ps_page), + GFP_KERNEL, adapter->node); if (!buffer_info->ps_pages) goto err_pages; } @@ -2271,32 +2686,38 @@ int e1000e_setup_rx_resources(struct e1000_adapter *adapter) return 0; err_pages: - for (i = 0; i < rx_ring->count; i++) { + /* just free those allocated */ + for (i--; i >= 0; i--) { buffer_info = &rx_ring->buffer_info[i]; kfree(buffer_info->ps_pages); } -err: vfree(rx_ring->buffer_info); e_err("Unable to allocate memory for the receive descriptor ring\n"); return err; + +err_alloc_buffer: + e_err("Unable to allocate memory for the receive descriptor ring " + "buffer\n"); + return err; } /** * e1000_clean_tx_ring - Free Tx Buffers - * @adapter: board private structure + * @tx_ring: Tx descriptor ring **/ -static void e1000_clean_tx_ring(struct e1000_adapter *adapter) +static void e1000_clean_tx_ring(struct e1000_ring *tx_ring) { - struct e1000_ring *tx_ring = adapter->tx_ring; + struct e1000_adapter *adapter = tx_ring->adapter; struct e1000_buffer *buffer_info; unsigned long size; unsigned int i; for (i = 0; i < tx_ring->count; i++) { buffer_info = &tx_ring->buffer_info[i]; - e1000_put_txbuf(adapter, buffer_info); + e1000_put_txbuf(tx_ring, buffer_info); } + netdev_reset_queue(adapter->netdev); size = sizeof(struct e1000_buffer) * tx_ring->count; memset(tx_ring->buffer_info, 0, size); @@ -2305,54 +2726,59 @@ static void e1000_clean_tx_ring(struct e1000_adapter *adapter) tx_ring->next_to_use = 0; tx_ring->next_to_clean = 0; - writel(0, adapter->hw.hw_addr + tx_ring->head); - writel(0, adapter->hw.hw_addr + tx_ring->tail); + /* tx_ring->head/tail might haven't been initialized yet */ + if (!tx_ring->head || !tx_ring->tail) + return; + + writel(0, tx_ring->head); + if (adapter->flags2 & FLAG2_PCIM2PCI_ARBITER_WA) + e1000e_update_tdt_wa(tx_ring, 0); + else + writel(0, tx_ring->tail); } /** * e1000e_free_tx_resources - Free Tx Resources per Queue - * @adapter: board private structure + * @tx_ring: Tx descriptor ring * * Free all transmit software resources **/ -void e1000e_free_tx_resources(struct e1000_adapter *adapter) +void e1000e_free_tx_resources(struct e1000_ring *tx_ring) { + struct e1000_adapter *adapter = tx_ring->adapter; struct pci_dev *pdev = adapter->pdev; - struct e1000_ring *tx_ring = adapter->tx_ring; - e1000_clean_tx_ring(adapter); + e1000_clean_tx_ring(tx_ring); vfree(tx_ring->buffer_info); tx_ring->buffer_info = NULL; - dma_free_coherent(&pdev->dev, tx_ring->size, tx_ring->desc, + dma_free_coherent(pci_dev_to_dev(pdev), tx_ring->size, tx_ring->desc, tx_ring->dma); tx_ring->desc = NULL; } /** * e1000e_free_rx_resources - Free Rx Resources - * @adapter: board private structure + * @rx_ring: Rx descriptor ring * * Free all receive software resources **/ - -void e1000e_free_rx_resources(struct e1000_adapter *adapter) +void e1000e_free_rx_resources(struct e1000_ring *rx_ring) { + struct e1000_adapter *adapter = rx_ring->adapter; struct pci_dev *pdev = adapter->pdev; - struct e1000_ring *rx_ring = adapter->rx_ring; int i; - e1000_clean_rx_ring(adapter); + e1000_clean_rx_ring(rx_ring); - for (i = 0; i < rx_ring->count; i++) { + for (i = 0; i < rx_ring->count; i++) kfree(rx_ring->buffer_info[i].ps_pages); - } vfree(rx_ring->buffer_info); rx_ring->buffer_info = NULL; - dma_free_coherent(&pdev->dev, rx_ring->size, rx_ring->desc, + dma_free_coherent(pci_dev_to_dev(pdev), rx_ring->size, rx_ring->desc, rx_ring->dma); rx_ring->desc = NULL; } @@ -2373,7 +2799,7 @@ void e1000e_free_rx_resources(struct e1000_adapter *adapter) * while increasing bulk throughput. This functionality is controlled * by the InterruptThrottleRate module parameter. **/ -#if defined(__VMKLNX__) +#ifdef __VMKLNX__ /** * The default settings used by Intel based on native Linux tuning do * not work well for ESX. To fix PR 311033, we bump the base itr @@ -2382,72 +2808,66 @@ void e1000e_free_rx_resources(struct e1000_adapter *adapter) * out of bulk_latency and the growth steps from bulk_latency to * low_latency, based on empirical performance testing on ESX. **/ -#endif /* defined(__VMKLNX__) */ -static unsigned int e1000_update_itr(struct e1000_adapter *adapter, - u16 itr_setting, int packets, - int bytes) +#endif /* ifdef __VMKLNX__ */ +static unsigned int e1000_update_itr(u16 itr_setting, int packets, int bytes) { unsigned int retval = itr_setting; if (packets == 0) - goto update_itr_done; + return itr_setting; switch (itr_setting) { case lowest_latency: /* handle TSO and jumbo frames */ - if (bytes/packets > 8000) + if (bytes / packets > 8000) retval = bulk_latency; - else if ((packets < 5) && (bytes > 512)) { + else if ((packets < 5) && (bytes > 512)) retval = low_latency; - } break; - case low_latency: /* 50 usec aka 20000 ints/s */ + case low_latency: /* 50 usec aka 20000 ints/s */ if (bytes > 10000) { /* this if handles the TSO accounting */ - if (bytes/packets > 8000) { + if (bytes / packets > 8000) retval = bulk_latency; - } else if ((packets < 10) || ((bytes/packets) > 1200)) { + else if ((packets < 10) || ((bytes / packets) > 1200)) retval = bulk_latency; - } else if ((packets > 35)) { + else if ((packets > 35)) retval = lowest_latency; - } - } else if (bytes/packets > 2000) { + } else if (bytes / packets > 2000) { retval = bulk_latency; } else if (packets <= 2 && bytes < 512) { retval = lowest_latency; } break; - case bulk_latency: /* 250 usec aka 4000 ints/s */ -#if !defined(__VMKLNX__) - if (bytes > 25000) { -#else /* defined(__VMKLNX__) */ - /* 125 usec aka 8000 intr/s for vmkernel */ + case bulk_latency: +#ifdef __VMKLNX__ + /* 125 usec aka 8000 intr/s for vmkernel */ if (bytes > 12500) { -#endif /* !defined(__VMKLNX__) */ -#if !defined(__VMKLNX__) - if (packets > 35) { -#else /* !defined(__VMKLNX__) */ - if (packets > 18) { -#endif /* !defined(__VMKLNX__) */ +#else + /* 250 usec aka 4000 ints/s */ + if (bytes > 25000) { +#endif /* __VMKLNX__ */ +#ifdef __VMKLNX__ + if (packets > 18) +#else + if (packets > 35) +#endif /* __VMKLNX__ */ retval = low_latency; - } -#if !defined(__VMKLNX__) - } else if (bytes < 6000) { -#else /* !defined(__VMKLNX__) */ +#ifdef __VMKLNX__ } else if (bytes < 3000) { -#endif /* !defined(__VMKLNX__) */ +#else + } else if (bytes < 6000) { +#endif /* __VMKLNX__ */ retval = low_latency; } break; } -update_itr_done: return retval; } static void e1000_set_itr(struct e1000_adapter *adapter) { - struct e1000_hw *hw = &adapter->hw; u16 current_itr; u32 new_itr = adapter->itr; @@ -2458,38 +2878,41 @@ static void e1000_set_itr(struct e1000_adapter *adapter) goto set_itr_now; } - adapter->tx_itr = e1000_update_itr(adapter, - adapter->tx_itr, - adapter->total_tx_packets, - adapter->total_tx_bytes); + if (adapter->flags2 & FLAG2_DISABLE_AIM) { + new_itr = 0; + goto set_itr_now; + } + + adapter->tx_itr = e1000_update_itr(adapter->tx_itr, + adapter->total_tx_packets, + adapter->total_tx_bytes); /* conservative mode (itr 3) eliminates the lowest_latency setting */ if (adapter->itr_setting == 3 && adapter->tx_itr == lowest_latency) adapter->tx_itr = low_latency; - adapter->rx_itr = e1000_update_itr(adapter, - adapter->rx_itr, - adapter->total_rx_packets, - adapter->total_rx_bytes); + adapter->rx_itr = e1000_update_itr(adapter->rx_itr, + adapter->total_rx_packets, + adapter->total_rx_bytes); /* conservative mode (itr 3) eliminates the lowest_latency setting */ if (adapter->itr_setting == 3 && adapter->rx_itr == lowest_latency) adapter->rx_itr = low_latency; current_itr = max(adapter->rx_itr, adapter->tx_itr); - switch (current_itr) { /* counts and packets in update_itr are dependent on these numbers */ + switch (current_itr) { case lowest_latency: new_itr = 70000; break; case low_latency: - new_itr = 20000; /* aka hwitr = ~200 */ + new_itr = 20000; /* aka hwitr = ~200 */ break; case bulk_latency: -#if !defined(__VMKLNX__) - new_itr = 4000; -#else /* !defined(__VMKLNX__) */ +#ifdef __VMKLNX__ new_itr = 8000; -#endif /* !defined(__VMKLNX__) */ +#else + new_itr = 4000; +#endif /* __VMKLNX__ */ break; default: break; @@ -2497,28 +2920,46 @@ static void e1000_set_itr(struct e1000_adapter *adapter) set_itr_now: if (new_itr != adapter->itr) { - /* - * this attempts to bias the interrupt rate towards Bulk + /* this attempts to bias the interrupt rate towards Bulk * by adding intermediate steps when interrupt rate is * increasing */ new_itr = new_itr > adapter->itr ? -#if !defined(__VMKLNX__) - min(adapter->itr + (new_itr >> 2), new_itr) : -#else /* !defined(__VMKLNX__) */ - min(adapter->itr + (new_itr >> 4), new_itr) : -#endif /* !defined(__VMKLNX__) */ - new_itr; +#ifdef __VMKLNX__ + min(adapter->itr + (new_itr >> 4), new_itr) : new_itr; +#else + min(adapter->itr + (new_itr >> 2), new_itr) : new_itr; +#endif /* __VMKLNX__ */ adapter->itr = new_itr; -#ifdef CONFIG_E1000E_MSIX adapter->rx_ring->itr_val = new_itr; if (adapter->msix_entries) adapter->rx_ring->set_itr = 1; else - ew32(ITR, 1000000000 / (new_itr * 256)); -#else - ew32(ITR, 1000000000 / (new_itr * 256)); -#endif + e1000e_write_itr(adapter, new_itr); + } +} + +/** + * e1000e_write_itr - write the ITR value to the appropriate registers + * @adapter: address of board private structure + * @itr: new ITR value to program + * + * e1000e_write_itr determines if the adapter is in MSI-X mode + * and, if so, writes the EITR registers with the ITR value. + * Otherwise, it writes the ITR value into the ITR register. + **/ +void e1000e_write_itr(struct e1000_adapter *adapter, u32 itr) +{ + struct e1000_hw *hw = &adapter->hw; + u32 new_itr = itr ? 1000000000 / (itr * 256) : 0; + + if (adapter->msix_entries) { + int vector; + + for (vector = 0; vector < adapter->num_vectors; vector++) + writel(new_itr, hw->hw_addr + E1000_EITR_82574(vector)); + } else { + ew32(ITR, new_itr); } } @@ -2526,15 +2967,25 @@ set_itr_now: * e1000_alloc_queues - Allocate memory for all rings * @adapter: board private structure to initialize **/ +#ifdef HAVE_CONFIG_HOTPLUG static int __devinit e1000_alloc_queues(struct e1000_adapter *adapter) +#else +static int e1000_alloc_queues(struct e1000_adapter *adapter) +#endif { - adapter->tx_ring = kzalloc(sizeof(struct e1000_ring), GFP_KERNEL); + int size = sizeof(struct e1000_ring); + + adapter->tx_ring = kzalloc_node(size, GFP_KERNEL, adapter->node); if (!adapter->tx_ring) goto err; + adapter->tx_ring->count = adapter->tx_ring_count; + adapter->tx_ring->adapter = adapter; - adapter->rx_ring = kzalloc(sizeof(struct e1000_ring), GFP_KERNEL); + adapter->rx_ring = kzalloc_node(size, GFP_KERNEL, adapter->node); if (!adapter->rx_ring) goto err; + adapter->rx_ring->count = adapter->rx_ring_count; + adapter->rx_ring->adapter = adapter; return 0; err: @@ -2546,45 +2997,28 @@ err: #ifdef CONFIG_E1000E_NAPI /** - * e1000_poll - NAPI Rx polling callback + * e1000e_poll - NAPI Rx polling callback * @napi: struct associated with this polling callback - * @budget: amount of packets driver is allowed to process this poll + * @weight: number of packets driver is allowed to process this poll **/ -static int e1000_poll(struct napi_struct *napi, int budget) +static int e1000e_poll(struct napi_struct *napi, int weight) { struct e1000_adapter *adapter = container_of(napi, struct e1000_adapter, napi); -#if !defined(__VMKLNX__) - int tx_clean_complete = 1, work_done = 0; -#else /* defined(__VMKLNX__) */ - /* PR 555248: for more details on reverting to older behavior of driver - * in handling the return value of e1000_clean_tx_irq() */ - int tx_cleaned = 0, work_done = 0; -#endif /* !defined(__VMKLNX__) */ -#ifdef CONFIG_E1000E_MSIX struct e1000_hw *hw = &adapter->hw; -#endif + struct net_device *poll_dev = adapter->netdev; + int tx_cleaned = 1, work_done = 0; + + adapter = netdev_priv(poll_dev); -#ifdef CONFIG_E1000E_MSIX if (!adapter->msix_entries || (adapter->rx_ring->ims_val & adapter->tx_ring->ims_val)) -#endif - { -#if !defined(__VMKLNX__) - tx_clean_complete = e1000_clean_tx_irq(adapter); -#else /* defined(__VMKLNX__) */ - tx_cleaned = e1000_clean_tx_irq(adapter); -#endif /* !defined(__VMKLNX__) */ - } + tx_cleaned = e1000_clean_tx_irq(adapter->tx_ring); - adapter->clean_rx(adapter, &work_done, budget); + adapter->clean_rx(adapter->rx_ring, &work_done, weight); -#if !defined(__VMKLNX__) - if (!tx_clean_complete) -#else /* defined(__VMKLNX__) */ - if (tx_cleaned) -#endif /* !defined(__VMKLNX__) */ - work_done = budget; + if (!tx_cleaned) + work_done = weight; #ifndef HAVE_NETDEV_NAPI_LIST /* if netdev is disabled we need to stop polling */ @@ -2592,17 +3026,15 @@ static int e1000_poll(struct napi_struct *napi, int budget) work_done = 0; #endif - /* If Tx completed and all Rx work done, exit the polling mode */ - if (work_done < budget) { - napi_complete(napi); + /* If weight not fully consumed, exit the polling mode */ + if (work_done < weight) { if (adapter->itr_setting & 3) e1000_set_itr(adapter); + napi_complete(napi); if (!test_bit(__E1000_DOWN, &adapter->state)) { -#ifdef CONFIG_E1000E_MSIX if (adapter->msix_entries) ew32(IMS, adapter->rx_ring->ims_val); else -#endif e1000_irq_enable(adapter); } } @@ -2611,71 +3043,200 @@ static int e1000_poll(struct napi_struct *napi, int budget) } #endif /* CONFIG_E1000E_NAPI */ -#ifdef NETIF_F_HW_VLAN_TX +#if defined(NETIF_F_HW_VLAN_RX) || defined(NETIF_F_HW_VLAN_CTAG_RX) +#ifdef HAVE_INT_NDO_VLAN_RX_ADD_VID +#ifdef NETIF_F_HW_VLAN_CTAG_RX +static int e1000_vlan_rx_add_vid(struct net_device *netdev, + __always_unused __be16 proto, u16 vid) +#else +static int e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) +#endif +#else static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) +#endif { struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; u32 vfta, index; -#if !defined(__VMKLNX__) - /* - * Unused variable. - */ - struct net_device *v_netdev; -#endif /* !defined(__VMKLNX__) */ /* don't update vlan cookie if already programmed */ if ((adapter->hw.mng_cookie.status & E1000_MNG_DHCP_COOKIE_STATUS_VLAN) && (vid == adapter->mng_vlan_id)) +#ifdef HAVE_INT_NDO_VLAN_RX_ADD_VID + return 0; +#else return; +#endif + /* add VID to filter table */ - index = (vid >> 5) & 0x7F; - vfta = E1000_READ_REG_ARRAY(hw, E1000_VFTA, index); - vfta |= (1 << (vid & 0x1F)); - e1000e_write_vfta(hw, index, vfta); - /* - * Copy feature flags from netdev to the vlan netdev for this vid. + if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) { + index = (vid >> 5) & 0x7F; + vfta = E1000_READ_REG_ARRAY(hw, E1000_VFTA, index); + vfta |= (1 << (vid & 0x1F)); + hw->mac.ops.write_vfta(hw, index, vfta); + } +#ifndef HAVE_NETDEV_VLAN_FEATURES + + /* Copy feature flags from netdev to the vlan netdev for this vid. * This allows things like TSO to bubble down to our vlan device. */ -#if !defined(__VMKLNX__) +#ifndef __VMKLNX__ /* * This is Linux code to support VLAN Hardware * acceleration. See PR255784. */ - v_netdev = vlan_group_get_device(adapter->vlgrp, vid); - v_netdev->features |= adapter->netdev->features; - vlan_group_set_device(adapter->vlgrp, vid, v_netdev); -#endif /* !defined(__VMKLNX__) */ + if (adapter->vlgrp) { + struct vlan_group *vlgrp = adapter->vlgrp; + struct net_device *v_netdev = vlan_group_get_device(vlgrp, vid); + if (v_netdev) { + v_netdev->features |= netdev->features; + vlan_group_set_device(vlgrp, vid, v_netdev); + } + } +#endif /* __VMKLNX__ */ +#endif /* HAVE_NETDEV_VLAN_FEATURES */ +#ifndef HAVE_VLAN_RX_REGISTER + + set_bit(vid, adapter->active_vlans); +#endif /* !HAVE_NETDEV_VLAN_RX_REGISTER */ +#ifdef HAVE_INT_NDO_VLAN_RX_ADD_VID + + return 0; +#endif } +#ifdef HAVE_INT_NDO_VLAN_RX_ADD_VID +#ifdef NETIF_F_HW_VLAN_CTAG_RX +static int e1000_vlan_rx_kill_vid(struct net_device *netdev, + __always_unused __be16 proto, u16 vid) +#else +static int e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) +#endif +#else static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) +#endif { struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; u32 vfta, index; +#ifdef HAVE_VLAN_RX_REGISTER if (!test_bit(__E1000_DOWN, &adapter->state)) e1000_irq_disable(adapter); + vlan_group_set_device(adapter->vlgrp, vid, NULL); if (!test_bit(__E1000_DOWN, &adapter->state)) e1000_irq_enable(adapter); +#endif /* HAVE_VLAN_RX_REGISTER */ if ((adapter->hw.mng_cookie.status & E1000_MNG_DHCP_COOKIE_STATUS_VLAN) && (vid == adapter->mng_vlan_id)) { /* release control to f/w */ - e1000_release_hw_control(adapter); + e1000e_release_hw_control(adapter); +#ifdef HAVE_INT_NDO_VLAN_RX_ADD_VID + return 0; +#else return; +#endif + } + + /* remove VID from filter table */ + if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) { + index = (vid >> 5) & 0x7F; + vfta = E1000_READ_REG_ARRAY(hw, E1000_VFTA, index); + vfta &= ~(1 << (vid & 0x1F)); + hw->mac.ops.write_vfta(hw, index, vfta); + } +#ifndef HAVE_VLAN_RX_REGISTER + + clear_bit(vid, adapter->active_vlans); +#endif /* !HAVE_VLAN_RX_REGISTER */ +#ifdef HAVE_INT_NDO_VLAN_RX_ADD_VID + + return 0; +#endif +} + +#ifndef HAVE_VLAN_RX_REGISTER +/** + * e1000e_vlan_filter_disable - helper to disable hw VLAN filtering + * @adapter: board private structure to initialize + **/ +static void e1000e_vlan_filter_disable(struct e1000_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + struct e1000_hw *hw = &adapter->hw; + u32 rctl; + + if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) { + /* disable VLAN receive filtering */ + rctl = er32(RCTL); + rctl &= ~(E1000_RCTL_VFE | E1000_RCTL_CFIEN); + ew32(RCTL, rctl); + + if (adapter->mng_vlan_id != (u16)E1000_MNG_VLAN_NONE) { +#ifdef NETIF_F_HW_VLAN_CTAG_RX + e1000_vlan_rx_kill_vid(netdev, htons(ETH_P_8021Q), + adapter->mng_vlan_id); +#else + e1000_vlan_rx_kill_vid(netdev, adapter->mng_vlan_id); +#endif + adapter->mng_vlan_id = E1000_MNG_VLAN_NONE; + } + } +} + +/** + * e1000e_vlan_filter_enable - helper to enable HW VLAN filtering + * @adapter: board private structure to initialize + **/ +static void e1000e_vlan_filter_enable(struct e1000_adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + u32 rctl; + + if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) { + /* enable VLAN receive filtering */ + rctl = er32(RCTL); + rctl |= E1000_RCTL_VFE; + rctl &= ~E1000_RCTL_CFIEN; + ew32(RCTL, rctl); } +} + +/** + * e1000e_vlan_strip_enable - helper to disable HW VLAN stripping + * @adapter: board private structure to initialize + **/ +static void e1000e_vlan_strip_disable(struct e1000_adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + u32 ctrl; + + /* disable VLAN tag insert/strip */ + ctrl = er32(CTRL); + ctrl &= ~E1000_CTRL_VME; + ew32(CTRL, ctrl); +} + +/** + * e1000e_vlan_strip_enable - helper to enable HW VLAN stripping + * @adapter: board private structure to initialize + **/ +static void e1000e_vlan_strip_enable(struct e1000_adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + u32 ctrl; - /* remove VID from filter table */ - index = (vid >> 5) & 0x7F; - vfta = E1000_READ_REG_ARRAY(hw, E1000_VFTA, index); - vfta &= ~(1 << (vid & 0x1F)); - e1000e_write_vfta(hw, index, vfta); + /* enable VLAN tag insert/strip */ + ctrl = er32(CTRL); + ctrl |= E1000_CTRL_VME; + ew32(CTRL, ctrl); } +#endif /* !HAVE_VLAN_RX_REGISTER */ static void e1000_update_mng_vlan(struct e1000_adapter *adapter) { @@ -2683,27 +3244,45 @@ static void e1000_update_mng_vlan(struct e1000_adapter *adapter) u16 vid = adapter->hw.mng_cookie.vlan_id; u16 old_vid = adapter->mng_vlan_id; +#ifdef HAVE_VLAN_RX_REGISTER if (!adapter->vlgrp) return; if (!vlan_group_get_device(adapter->vlgrp, vid)) { adapter->mng_vlan_id = E1000_MNG_VLAN_NONE; if (adapter->hw.mng_cookie.status & - E1000_MNG_DHCP_COOKIE_STATUS_VLAN) { + E1000_MNG_DHCP_COOKIE_STATUS_VLAN) { e1000_vlan_rx_add_vid(netdev, vid); adapter->mng_vlan_id = vid; } if ((old_vid != (u16)E1000_MNG_VLAN_NONE) && - (vid != old_vid) && + (vid != old_vid) && !vlan_group_get_device(adapter->vlgrp, old_vid)) e1000_vlan_rx_kill_vid(netdev, old_vid); } else { adapter->mng_vlan_id = vid; } -} +#else /* HAVE_VLAN_RX_REGISTER */ + if (adapter->hw.mng_cookie.status & E1000_MNG_DHCP_COOKIE_STATUS_VLAN) { +#ifdef NETIF_F_HW_VLAN_CTAG_RX + e1000_vlan_rx_add_vid(netdev, htons(ETH_P_8021Q), vid); +#else + e1000_vlan_rx_add_vid(netdev, vid); +#endif + adapter->mng_vlan_id = vid; + } + if ((old_vid != (u16)E1000_MNG_VLAN_NONE) && (vid != old_vid)) +#ifdef NETIF_F_HW_VLAN_CTAG_RX + e1000_vlan_rx_kill_vid(netdev, htons(ETH_P_8021Q), old_vid); +#else + e1000_vlan_rx_kill_vid(netdev, old_vid); +#endif +#endif /* HAVE_VLAN_RX_REGISTER */ +} +#ifdef HAVE_VLAN_RX_REGISTER static void e1000_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp) { @@ -2724,12 +3303,6 @@ static void e1000_vlan_rx_register(struct net_device *netdev, if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) { /* enable VLAN receive filtering */ rctl = er32(RCTL); -#if defined(__VMKLNX__) - if (!(netdev->flags & IFF_PROMISC)) - rctl |= E1000_RCTL_VFE; -#else - rctl |= E1000_RCTL_VFE; -#endif rctl &= ~E1000_RCTL_CFIEN; ew32(RCTL, rctl); e1000_update_mng_vlan(adapter); @@ -2741,8 +3314,7 @@ static void e1000_vlan_rx_register(struct net_device *netdev, ew32(CTRL, ctrl); if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) { - if (adapter->mng_vlan_id != - (u16)E1000_MNG_VLAN_NONE) { + if (adapter->mng_vlan_id != (u16)E1000_MNG_VLAN_NONE) { e1000_vlan_rx_kill_vid(netdev, adapter->mng_vlan_id); adapter->mng_vlan_id = E1000_MNG_VLAN_NONE; @@ -2754,50 +3326,103 @@ static void e1000_vlan_rx_register(struct net_device *netdev, e1000_irq_enable(adapter); } +#endif /* HAVE_VLAN_RX_REGISTER */ static void e1000_restore_vlan(struct e1000_adapter *adapter) { u16 vid; +#ifdef HAVE_VLAN_RX_REGISTER e1000_vlan_rx_register(adapter->netdev, adapter->vlgrp); if (!adapter->vlgrp) return; - for (vid = 0; vid < VLAN_GROUP_ARRAY_LEN; vid++) { + for (vid = 0; vid < VLAN_N_VID; vid++) { if (!vlan_group_get_device(adapter->vlgrp, vid)) continue; e1000_vlan_rx_add_vid(adapter->netdev, vid); } +#else /* HAVE_VLAN_RX_REGISTER */ +#ifdef NETIF_F_HW_VLAN_CTAG_RX + e1000_vlan_rx_add_vid(adapter->netdev, htons(ETH_P_8021Q), 0); +#else + e1000_vlan_rx_add_vid(adapter->netdev, 0); +#endif + + for_each_set_bit(vid, adapter->active_vlans, VLAN_N_VID) +#ifdef NETIF_F_HW_VLAN_CTAG_RX + e1000_vlan_rx_add_vid(adapter->netdev, htons(ETH_P_8021Q), vid); +#else + e1000_vlan_rx_add_vid(adapter->netdev, vid); +#endif +#endif /* HAVE_VLAN_RX_REGISTER */ } -#endif /* NETIF_F_HW_VLAN_TX */ -static void e1000_init_manageability(struct e1000_adapter *adapter) +#endif /* NETIF_F_HW_VLAN_RX || NETIF_F_HW_VLAN_CTAG_RX */ +static void e1000_init_manageability_pt(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; - u32 manc, manc2h; + u32 manc, manc2h, mdef, i, j; if (!(adapter->flags & FLAG_MNG_PT_ENABLED)) return; manc = er32(MANC); - /* - * enable receiving management packets to the host. this will probably + /* enable receiving management packets to the host. this will probably * generate destination unreachable messages from the host OS, but * the packets will be handled on SMBUS */ manc |= E1000_MANC_EN_MNG2HOST; manc2h = er32(MANC2H); -#define E1000_MNG2HOST_PORT_623 (1 << 5) -#define E1000_MNG2HOST_PORT_664 (1 << 6) - manc2h |= E1000_MNG2HOST_PORT_623; - manc2h |= E1000_MNG2HOST_PORT_664; + + switch (hw->mac.type) { + default: + manc2h |= (E1000_MANC2H_PORT_623 | E1000_MANC2H_PORT_664); + break; + case e1000_82574: + case e1000_82583: + /* Check if IPMI pass-through decision filter already exists; + * if so, enable it. + */ + for (i = 0, j = 0; i < 8; i++) { + mdef = er32(MDEF(i)); + + /* Ignore filters with anything other than IPMI ports */ + if (mdef & ~(E1000_MDEF_PORT_623 | E1000_MDEF_PORT_664)) + continue; + + /* Enable this decision filter in MANC2H */ + if (mdef) + manc2h |= (1 << i); + + j |= mdef; + } + + if (j == (E1000_MDEF_PORT_623 | E1000_MDEF_PORT_664)) + break; + + /* Create new decision filter in an empty filter */ + for (i = 0, j = 0; i < 8; i++) + if (er32(MDEF(i)) == 0) { + ew32(MDEF(i), (E1000_MDEF_PORT_623 | + E1000_MDEF_PORT_664)); + manc2h |= (1 << 1); + j++; + break; + } + + if (!j) + e_warn("Unable to create IPMI pass-through filter\n"); + break; + } + ew32(MANC2H, manc2h); ew32(MANC, manc); } /** - * e1000_configure_tx - Configure 8254x Transmit Unit after Reset + * e1000_configure_tx - Configure Transmit Unit after Reset * @adapter: board private structure * * Configure the Tx unit of the MAC after a reset. @@ -2807,8 +3432,7 @@ static void e1000_configure_tx(struct e1000_adapter *adapter) struct e1000_hw *hw = &adapter->hw; struct e1000_ring *tx_ring = adapter->tx_ring; u64 tdba; - u32 tdlen, tctl, tipg, tarc; - u32 ipgr1, ipgr2; + u32 tdlen, tctl, tarc; /* Setup the HW Tx Head and Tail descriptor pointers */ tdba = tx_ring->dma; @@ -2818,26 +3442,34 @@ static void e1000_configure_tx(struct e1000_adapter *adapter) ew32(TDLEN(0), tdlen); ew32(TDH(0), 0); ew32(TDT(0), 0); - tx_ring->head = E1000_TDH(0); - tx_ring->tail = E1000_TDT(0); - - /* Set the default values for the Tx Inter Packet Gap timer */ - tipg = DEFAULT_82543_TIPG_IPGT_COPPER; /* 8 */ - ipgr1 = DEFAULT_82543_TIPG_IPGR1; /* 8 */ - ipgr2 = DEFAULT_82543_TIPG_IPGR2; /* 6 */ - - if (adapter->flags & FLAG_TIPG_MEDIUM_FOR_80003ESLAN) - ipgr2 = DEFAULT_80003ES2LAN_TIPG_IPGR2; /* 7 */ - - tipg |= ipgr1 << E1000_TIPG_IPGR1_SHIFT; - tipg |= ipgr2 << E1000_TIPG_IPGR2_SHIFT; - ew32(TIPG, tipg); + tx_ring->head = adapter->hw.hw_addr + E1000_TDH(0); + tx_ring->tail = adapter->hw.hw_addr + E1000_TDT(0); /* Set the Tx Interrupt Delay register */ ew32(TIDV, adapter->tx_int_delay); /* Tx irq moderation */ ew32(TADV, adapter->tx_abs_int_delay); + if (adapter->flags2 & FLAG2_DMA_BURST) { + u32 txdctl = er32(TXDCTL(0)); + + txdctl &= ~(E1000_TXDCTL_PTHRESH | E1000_TXDCTL_HTHRESH | + E1000_TXDCTL_WTHRESH); + /* set up some performance related parameters to encourage the + * hardware to use the bus more efficiently in bursts, depends + * on the tx_int_delay to be enabled, + * wthresh = 1 ==> burst write is disabled to avoid Tx stalls + * hthresh = 1 ==> prefetch when one or more available + * pthresh = 0x1f ==> prefetch if internal cache 31 or less + * BEWARE: this seems to work but should be considered first if + * there are Tx hangs or other Tx related bugs + */ + txdctl |= E1000_TXDCTL_DMA_BURST_ENABLE; + ew32(TXDCTL(0), txdctl); + } + /* erratum work around: set txdctl the same for both queues */ + ew32(TXDCTL(1), er32(TXDCTL(0))); + /* Program the Transmit Control Register */ tctl = er32(TCTL); tctl &= ~E1000_TCTL_CT; @@ -2846,8 +3478,7 @@ static void e1000_configure_tx(struct e1000_adapter *adapter) if (adapter->flags & FLAG_TARC_SPEED_MODE_BIT) { tarc = er32(TARC(0)); - /* - * set the speed mode bit, we'll clear it if we're not at + /* set the speed mode bit, we'll clear it if we're not at * gigabit link later */ #define SPEED_MODE_BIT (1 << 21) @@ -2877,9 +3508,20 @@ static void e1000_configure_tx(struct e1000_adapter *adapter) ew32(TCTL, tctl); - e1000e_config_collision_dist(hw); + hw->mac.ops.config_collision_dist(hw); + + /* SPT Si errata workaround to avoid data corruption */ + if (hw->mac.type == e1000_pch_spt) { + u32 reg_val; - adapter->tx_queue_len = adapter->netdev->tx_queue_len; + reg_val = er32(IOSFPC); + reg_val |= E1000_RCTL_RDMTS_HEX; + ew32(IOSFPC, reg_val); + + reg_val = er32(TARC(0)); + reg_val |= E1000_TARC0_CB_MULTIQ_3_REQ; + ew32(TARC(0), reg_val); + } } /** @@ -2892,20 +3534,33 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; u32 rctl, rfctl; - u32 psrctl = 0; -#if !defined(__VMKLNX__) - /* - * Unused variable. - */ +#ifndef __VMKLNX__ + /* Unused variable under VMKLinux. */ u32 pages = 0; -#endif /* !defined(__VMKLNX__) */ +#endif /* ifndef __VMKLNX__ */ + + /* Workaround Si errata on PCHx - configure jumbo frame flow. + * If jumbo frames not set, program related MAC/PHT registers + * to h/w defaults + */ + if (hw->mac.type >= e1000_pch2lan) { + s32 ret_val; + + if (adapter->netdev->mtu > ETH_DATA_LEN) + ret_val = e1000_lv_jumbo_workaround_ich8lan(hw, true); + else + ret_val = e1000_lv_jumbo_workaround_ich8lan(hw, false); + + if (ret_val) + e_dbg("failed to enable|disable jumbo frame workaround mode\n"); + } /* Program MC offset vector base */ rctl = er32(RCTL); rctl &= ~(3 << E1000_RCTL_MO_SHIFT); rctl |= E1000_RCTL_EN | E1000_RCTL_BAM | - E1000_RCTL_LBM_NO | E1000_RCTL_RDMTS_HALF | - (adapter->hw.mac.mc_filter_type << E1000_RCTL_MO_SHIFT); + E1000_RCTL_LBM_NO | E1000_RCTL_RDMTS_HALF | + (adapter->hw.mac.mc_filter_type << E1000_RCTL_MO_SHIFT); /* Do not Store bad packets */ rctl &= ~E1000_RCTL_SBP; @@ -2916,14 +3571,16 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter) else rctl |= E1000_RCTL_LPE; - /* Some systems expect that the CRC is included in SMBUS traffic. The + /* Some systems expect that the CRC is included in SMBUS traffic. The * hardware strips the CRC before sending to both SMBUS (BMC) and to - * host memory when this is enabled */ + * host memory when this is enabled + */ if (adapter->flags2 & FLAG2_CRC_STRIPPING) rctl |= E1000_RCTL_SECRC; - /* Workaround Si errata on 82577 PHY - configure IPG for jumbos */ - if ((hw->phy.type == e1000_phy_82577) && (rctl & E1000_RCTL_LPE)) { + /* Workaround Si errata on 82577/82578 - configure IPG for jumbos */ + if ((hw->mac.type == e1000_pchlan) && (rctl & E1000_RCTL_LPE)) { + u32 mac_data; u16 phy_data; e1e_rphy(hw, PHY_REG(770, 26), &phy_data); @@ -2931,30 +3588,24 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter) phy_data |= (1 << 2); e1e_wphy(hw, PHY_REG(770, 26), phy_data); - e1e_rphy(hw, 22, &phy_data); - phy_data &= 0x0fff; - phy_data |= (1 << 14); - e1e_wphy(hw, 0x10, 0x2823); - e1e_wphy(hw, 0x11, 0x0003); - e1e_wphy(hw, 22, phy_data); + mac_data = er32(FFLT_DBG); + mac_data |= (1 << 17); + ew32(FFLT_DBG, mac_data); + + if (hw->phy.type == e1000_phy_82577) { + e1e_rphy(hw, 22, &phy_data); + phy_data &= 0x0fff; + phy_data |= (1 << 14); + e1e_wphy(hw, 0x10, 0x2823); + e1e_wphy(hw, 0x11, 0x0003); + e1e_wphy(hw, 22, phy_data); + } } /* Setup buffer sizes */ rctl &= ~E1000_RCTL_SZ_4096; rctl |= E1000_RCTL_BSEX; switch (adapter->rx_buffer_len) { - case 256: - rctl |= E1000_RCTL_SZ_256; - rctl &= ~E1000_RCTL_BSEX; - break; - case 512: - rctl |= E1000_RCTL_SZ_512; - rctl &= ~E1000_RCTL_BSEX; - break; - case 1024: - rctl |= E1000_RCTL_SZ_1024; - rctl &= ~E1000_RCTL_BSEX; - break; case 2048: default: rctl |= E1000_RCTL_SZ_2048; @@ -2971,13 +3622,17 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter) break; } -#if !defined(__VMKLNX__) + /* Enable Extended Status in all Receive Descriptors */ + rfctl = er32(RFCTL); + rfctl |= E1000_RFCTL_EXTEN; + ew32(RFCTL, rfctl); + +#ifndef __VMKLNX__ /* * We do not support packet split in vmklinux. */ - /* - * 82571 and greater support packet-split where the protocol + /* 82571 and greater support packet-split where the protocol * header is placed in skb->data and the packet data is * placed in pages hanging off of skb_shinfo(skb)->nr_frags. * In the case of a non-split, skb->data is linearly filled, @@ -2992,51 +3647,55 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter) * per packet. */ pages = PAGE_USE_COUNT(adapter->netdev->mtu); - if (!(adapter->flags & FLAG_IS_ICH) && (pages <= 3) && - (PAGE_SIZE <= 16384) && (rctl & E1000_RCTL_LPE)) + if ((pages <= 3) && (PAGE_SIZE <= 16384) && (rctl & E1000_RCTL_LPE)) adapter->rx_ps_pages = pages; else -#endif /* !defined(__VMKLNX__) */ +#endif /* !__VMKLNX__ */ adapter->rx_ps_pages = 0; if (adapter->rx_ps_pages) { - /* Configure extra packet-split registers */ - rfctl = er32(RFCTL); - rfctl |= E1000_RFCTL_EXTEN; - /* - * disable packet split support for IPv6 extension headers, - * because some malformed IPv6 headers can hang the Rx - */ - rfctl |= (E1000_RFCTL_IPV6_EX_DIS | - E1000_RFCTL_NEW_IPV6_EXT_DIS); - - ew32(RFCTL, rfctl); + u32 psrctl = 0; /* Enable Packet split descriptors */ rctl |= E1000_RCTL_DTYP_PS; - psrctl |= adapter->rx_ps_bsize0 >> - E1000_PSRCTL_BSIZE0_SHIFT; + psrctl |= adapter->rx_ps_bsize0 >> E1000_PSRCTL_BSIZE0_SHIFT; switch (adapter->rx_ps_pages) { case 3: - psrctl |= PAGE_SIZE << - E1000_PSRCTL_BSIZE3_SHIFT; + psrctl |= PAGE_SIZE << E1000_PSRCTL_BSIZE3_SHIFT; + /* fall-through */ case 2: - psrctl |= PAGE_SIZE << - E1000_PSRCTL_BSIZE2_SHIFT; + psrctl |= PAGE_SIZE << E1000_PSRCTL_BSIZE2_SHIFT; + /* fall-through */ case 1: - psrctl |= PAGE_SIZE >> - E1000_PSRCTL_BSIZE1_SHIFT; + psrctl |= PAGE_SIZE >> E1000_PSRCTL_BSIZE1_SHIFT; break; } ew32(PSRCTL, psrctl); } + /* This is useful for sniffing bad packets. */ + if (adapter->netdev->features & NETIF_F_RXALL) { + /* UPE and MPE will be handled by normal PROMISC logic + * in e1000e_set_rx_mode + */ + rctl |= (E1000_RCTL_SBP | /* Receive bad packets */ + E1000_RCTL_BAM | /* RX All Bcast Pkts */ + E1000_RCTL_PMCF); /* RX All MAC Ctrl Pkts */ + + rctl &= ~(E1000_RCTL_VFE | /* Disable VLAN filter */ + E1000_RCTL_DPF | /* Allow filtered pause */ + E1000_RCTL_CFIEN); /* Dis VLAN CFIEN Filter */ + /* Do not mess with E1000_CTRL_VME, it affects transmit as well, + * and that breaks VLANs. + */ + } + ew32(RCTL, rctl); /* just started the receive unit, no need to restart */ - adapter->flags &= ~FLAG_RX_RESTART_NOW; + adapter->flags &= ~FLAG_RESTART_NOW; } /** @@ -3055,10 +3714,10 @@ static void e1000_configure_rx(struct e1000_adapter *adapter) if (adapter->rx_ps_pages) { /* this is a 32 byte descriptor */ rdlen = rx_ring->count * - sizeof(union e1000_rx_desc_packet_split); + sizeof(union e1000_rx_desc_packet_split); adapter->clean_rx = e1000_clean_rx_irq_ps; adapter->alloc_rx_buf = e1000_alloc_rx_buffers_ps; -#if !defined(__VMKLNX__) +#ifndef __VMKLNX__ /* * We don't want to use the jumbo handlers since they assume * packet splitting is enabled. We use the classic rx_irq and @@ -3066,37 +3725,57 @@ static void e1000_configure_rx(struct e1000_adapter *adapter) */ #ifdef CONFIG_E1000E_NAPI } else if (adapter->netdev->mtu > ETH_FRAME_LEN + ETH_FCS_LEN) { - rdlen = rx_ring->count * sizeof(struct e1000_rx_desc); + rdlen = rx_ring->count * sizeof(union e1000_rx_desc_extended); adapter->clean_rx = e1000_clean_jumbo_rx_irq; adapter->alloc_rx_buf = e1000_alloc_jumbo_rx_buffers; #endif -#endif /* !defined(__VMKLNX__) */ +#endif /* !__VMKLNX__ */ } else { - rdlen = rx_ring->count * sizeof(struct e1000_rx_desc); + rdlen = rx_ring->count * sizeof(union e1000_rx_desc_extended); adapter->clean_rx = e1000_clean_rx_irq; adapter->alloc_rx_buf = e1000_alloc_rx_buffers; } /* disable receives while setting up the descriptors */ rctl = er32(RCTL); - ew32(RCTL, rctl & ~E1000_RCTL_EN); +#ifndef __VMKLNX__ + /* No-disable RX will introduce race condition and IOMMU fault. */ + if (!(adapter->flags2 & FLAG2_NO_DISABLE_RX)) +#endif /* !__VMKLNX__ */ + ew32(RCTL, rctl & ~E1000_RCTL_EN); e1e_flush(); - msleep(10); + usleep_range(10000, 20000); + + if (adapter->flags2 & FLAG2_DMA_BURST) { + /* set the writeback threshold (only takes effect if the RDTR + * is set). set GRAN=1 and write back up to 0x4 worth, and + * enable prefetching of 0x20 Rx descriptors + * granularity = 01 + * wthresh = 04, + * hthresh = 04, + * pthresh = 0x20 + */ + ew32(RXDCTL(0), E1000_RXDCTL_DMA_BURST_ENABLE); + ew32(RXDCTL(1), E1000_RXDCTL_DMA_BURST_ENABLE); + + /* override the delay timers for enabling bursting, only if + * the value was not set by the user via module options + */ + if (adapter->rx_int_delay == DEFAULT_RDTR) + adapter->rx_int_delay = BURST_RDTR; + if (adapter->rx_abs_int_delay == DEFAULT_RADV) + adapter->rx_abs_int_delay = BURST_RADV; + } /* set the Receive Delay Timer Register */ ew32(RDTR, adapter->rx_int_delay); /* irq moderation */ ew32(RADV, adapter->rx_abs_int_delay); - if (adapter->itr_setting != 0) - ew32(ITR, 1000000000 / (adapter->itr * 256)); + if ((adapter->itr_setting != 0) && (adapter->itr != 0)) + e1000e_write_itr(adapter, adapter->itr); ctrl_ext = er32(CTRL_EXT); -#if defined(__VMKLNX__) - /* PR 555248 */ - /* Reset delay timers after every interrupt */ - ctrl_ext |= E1000_CTRL_EXT_INT_TIMER_CLR; -#endif /* defined(__VMKLNX__) */ #ifdef CONFIG_E1000E_NAPI /* Auto-Mask interrupts upon ICR access */ @@ -3106,8 +3785,7 @@ static void e1000_configure_rx(struct e1000_adapter *adapter) ew32(CTRL_EXT, ctrl_ext); e1e_flush(); - /* - * Setup the HW Rx Head and Tail Descriptor Pointers and + /* Setup the HW Rx Head and Tail Descriptor Pointers and * the Base and Length of the Rx Descriptor Ring */ rdba = rx_ring->dma; @@ -3116,48 +3794,54 @@ static void e1000_configure_rx(struct e1000_adapter *adapter) ew32(RDLEN(0), rdlen); ew32(RDH(0), 0); ew32(RDT(0), 0); - rx_ring->head = E1000_RDH(0); - rx_ring->tail = E1000_RDT(0); + rx_ring->head = adapter->hw.hw_addr + E1000_RDH(0); + rx_ring->tail = adapter->hw.hw_addr + E1000_RDT(0); /* Enable Receive Checksum Offload for TCP and UDP */ rxcsum = er32(RXCSUM); - if (adapter->flags & FLAG_RX_CSUM_ENABLED) { +#ifdef HAVE_NDO_SET_FEATURES + if (adapter->netdev->features & NETIF_F_RXCSUM) +#else + if (adapter->flags & FLAG_RX_CSUM_ENABLED) +#endif rxcsum |= E1000_RXCSUM_TUOFL; - - /* - * IPv4 payload checksum for UDP fragments must be - * used in conjunction with packet-split. - */ - if (adapter->rx_ps_pages) - rxcsum |= E1000_RXCSUM_IPPCSE; - } else { + else rxcsum &= ~E1000_RXCSUM_TUOFL; - /* no need to clear IPPCSE as it defaults to 0 */ - } ew32(RXCSUM, rxcsum); - /* - * Enable early receives on supported devices, only takes effect when - * packet size is equal or larger than the specified value (in 8 byte - * units), e.g. using jumbo frames when setting to E1000_ERT_2048 + /* With jumbo frames, excessive C-state transition latencies result + * in dropped transactions. */ - if (adapter->flags & FLAG_HAS_ERT) { - if (adapter->netdev->mtu > ETH_DATA_LEN) { + if (adapter->netdev->mtu > ETH_DATA_LEN) { + u32 lat = + ((er32(PBA) & E1000_PBA_RXA_MASK) * 1024 - + adapter->max_frame_size) * 8 / 1000; + + if (adapter->flags & FLAG_IS_ICH) { u32 rxdctl = er32(RXDCTL(0)); + ew32(RXDCTL(0), rxdctl | 0x3); - ew32(ERT, E1000_ERT_2048 | (1 << 13)); - /* - * With jumbo frames and early-receive enabled, - * excessive C-state transition latencies result in - * dropped transactions. - */ - pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY, - adapter->netdev->name, 55); - } else { - pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY, - adapter->netdev->name, - PM_QOS_DEFAULT_VALUE); } +#ifdef HAVE_PM_QOS_REQUEST_ACTIVE + pm_qos_update_request(&adapter->netdev->pm_qos_req, lat); +#elif defined(HAVE_PM_QOS_REQUEST_LIST) + pm_qos_update_request(adapter->netdev->pm_qos_req, lat); +#else + pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY, + adapter->netdev->name, lat); +#endif + } else { +#ifdef HAVE_PM_QOS_REQUEST_ACTIVE + pm_qos_update_request(&adapter->netdev->pm_qos_req, + PM_QOS_DEFAULT_VALUE); +#elif defined(HAVE_PM_QOS_REQUEST_LIST) + pm_qos_update_request(adapter->netdev->pm_qos_req, + PM_QOS_DEFAULT_VALUE); +#else + pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY, + adapter->netdev->name, + PM_QOS_DEFAULT_VALUE); +#endif } /* Enable Receives */ @@ -3165,84 +3849,487 @@ static void e1000_configure_rx(struct e1000_adapter *adapter) } /** - * e1000_update_mc_addr_list - Update Multicast addresses - * @hw: pointer to the HW structure - * @mc_addr_list: array of multicast addresses to program - * @mc_addr_count: number of multicast addresses to program + * e1000e_write_mc_addr_list - write multicast addresses to MTA + * @netdev: network interface device structure + * + * Writes multicast address list to the MTA hash table. + * Returns: -ENOMEM on failure + * 0 on no addresses written + * X on writing X addresses to MTA + */ +static int e1000e_write_mc_addr_list(struct net_device *netdev) +{ + struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; +#ifdef NETDEV_HW_ADDR_T_MULTICAST + struct netdev_hw_addr *ha; +#else + struct dev_mc_list *ha; +#endif + u8 *mta_list; + int i; + + if (netdev_mc_empty(netdev)) { + /* nothing to program, so clear mc list */ + hw->mac.ops.update_mc_addr_list(hw, NULL, 0); + return 0; + } + + mta_list = kzalloc(netdev_mc_count(netdev) * ETH_ALEN, GFP_ATOMIC); + if (!mta_list) + return -ENOMEM; + + /* update_mc_addr_list expects a packed array of only addresses. */ + i = 0; + netdev_for_each_mc_addr(ha, netdev) +#ifdef NETDEV_HW_ADDR_T_MULTICAST + memcpy(mta_list + (i++ * ETH_ALEN), ha->addr, ETH_ALEN); +#else + memcpy(mta_list + (i++ * ETH_ALEN), ha->dmi_addr, ETH_ALEN); +#endif + + hw->mac.ops.update_mc_addr_list(hw, mta_list, i); + kfree(mta_list); + + return netdev_mc_count(netdev); +} + +#ifdef HAVE_SET_RX_MODE +/** + * e1000e_write_uc_addr_list - write unicast addresses to RAR table + * @netdev: network interface device structure * - * Updates the Multicast Table Array. - * The caller must have a packed mc_addr_list of multicast addresses. + * Writes unicast address list to the RAR table. + * Returns: -ENOMEM on failure/insufficient address space + * 0 on no addresses written + * X on writing X addresses to the RAR table **/ -static void e1000_update_mc_addr_list(struct e1000_hw *hw, u8 *mc_addr_list, - u32 mc_addr_count) +static int e1000e_write_uc_addr_list(struct net_device *netdev) { - hw->mac.ops.update_mc_addr_list(hw, mc_addr_list, mc_addr_count); + struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; + unsigned int rar_entries; + int count = 0; + + rar_entries = hw->mac.ops.rar_get_count(hw); + + /* save a rar entry for our hardware address */ + rar_entries--; + + /* save a rar entry for the LAA workaround */ + if (adapter->flags & FLAG_RESET_OVERWRITES_LAA) + rar_entries--; + + /* return ENOMEM indicating insufficient memory for addresses */ + if (netdev_uc_count(netdev) > rar_entries) + return -ENOMEM; + + if (!netdev_uc_empty(netdev) && rar_entries) { +#ifdef NETDEV_HW_ADDR_T_UNICAST + struct netdev_hw_addr *ha; +#else + struct dev_mc_list *ha; +#endif + + /* write the addresses in reverse order to avoid write + * combining + */ + netdev_for_each_uc_addr(ha, netdev) { + int rval; + + if (!rar_entries) + break; +#ifdef NETDEV_HW_ADDR_T_UNICAST + rval = hw->mac.ops.rar_set(hw, ha->addr, rar_entries--); +#else + rval = hw->mac.ops.rar_set(hw, ha->da_addr, + rar_entries--); +#endif + if (rval < 0) + return -ENOMEM; + count++; + } + } + + /* zero out the remaining RAR entries not used above */ + for (; rar_entries > 0; rar_entries--) { + ew32(RAH(rar_entries), 0); + ew32(RAL(rar_entries), 0); + } + e1e_flush(); + + return count; } +#endif /* HAVE_SET_RX_MODE */ /** - * e1000_set_multi - Multicast and Promiscuous mode set + * e1000e_set_rx_mode - secondary unicast, Multicast and Promiscuous mode set * @netdev: network interface device structure * - * The set_multi entry point is called whenever the multicast address - * list or the network interface flags are updated. This routine is - * responsible for configuring the hardware for proper multicast, + * The ndo_set_rx_mode entry point is called whenever the unicast or multicast + * address list or the network interface flags are updated. This routine is + * responsible for configuring the hardware for proper unicast, multicast, * promiscuous mode, and all-multi behavior. **/ -static void e1000_set_multi(struct net_device *netdev) +static void e1000e_set_rx_mode(struct net_device *netdev) { struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; - struct dev_mc_list *mc_ptr; - u8 *mta_list; u32 rctl; - int i; - /* Check for Promiscuous and All Multicast modes */ + if (pm_runtime_suspended((netdev_to_dev(netdev))->parent)) + return; + /* Check for Promiscuous and All Multicast modes */ rctl = er32(RCTL); + /* clear the affected bits */ + rctl &= ~(E1000_RCTL_UPE | E1000_RCTL_MPE); + if (netdev->flags & IFF_PROMISC) { rctl |= (E1000_RCTL_UPE | E1000_RCTL_MPE); +#ifdef HAVE_VLAN_RX_REGISTER rctl &= ~E1000_RCTL_VFE; +#else + /* Do not hardware filter VLANs in promisc mode */ + e1000e_vlan_filter_disable(adapter); +#endif /* HAVE_VLAN_RX_REGISTER */ } else { + int count; + if (netdev->flags & IFF_ALLMULTI) { rctl |= E1000_RCTL_MPE; - rctl &= ~E1000_RCTL_UPE; } else { - rctl &= ~(E1000_RCTL_UPE | E1000_RCTL_MPE); + /* Write addresses to the MTA, if the attempt fails + * then we should just turn on promiscuous mode so + * that we can at least receive multicast traffic + */ + count = e1000e_write_mc_addr_list(netdev); + if (count < 0) + rctl |= E1000_RCTL_MPE; } +#ifdef HAVE_VLAN_RX_REGISTER if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) rctl |= E1000_RCTL_VFE; +#else + e1000e_vlan_filter_enable(adapter); +#endif +#ifdef HAVE_SET_RX_MODE + /* Write addresses to available RAR registers, if there is not + * sufficient space to store all the addresses then enable + * unicast promiscuous mode + */ + count = e1000e_write_uc_addr_list(netdev); + if (count < 0) + rctl |= E1000_RCTL_UPE; +#endif /* HAVE_SET_RX_MODE */ } ew32(RCTL, rctl); +#ifndef HAVE_VLAN_RX_REGISTER - if (netdev->mc_count) { - mta_list = kmalloc(netdev->mc_count * 6, GFP_ATOMIC); - if (!mta_list) - return; +#ifdef NETIF_F_HW_VLAN_CTAG_RX + if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) +#else + if (netdev->features & NETIF_F_HW_VLAN_RX) +#endif + e1000e_vlan_strip_enable(adapter); + else + e1000e_vlan_strip_disable(adapter); +#endif /* HAVE_VLAN_RX_REGISTER */ +} + +#ifdef NETIF_F_RXHASH +static void e1000e_setup_rss_hash(struct e1000_adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + u32 mrqc, rxcsum; + int i; + static const u32 rsskey[10] = { + 0xda565a6d, 0xc20e5b25, 0x3d256741, 0xb08fa343, 0xcb2bcad0, + 0xb4307bae, 0xa32dcb77, 0x0cf23080, 0x3bb7426a, 0xfa01acbe + }; - /* prepare a packed array of only addresses. */ - mc_ptr = netdev->mc_list; + /* Fill out hash function seed */ + for (i = 0; i < 10; i++) + ew32(RSSRK(i), rsskey[i]); - for (i = 0; i < netdev->mc_count; i++) { - if (!mc_ptr) - break; - memcpy(mta_list + (i*ETH_ALEN), mc_ptr->dmi_addr, - ETH_ALEN); - mc_ptr = mc_ptr->next; + /* Direct all traffic to queue 0 */ + for (i = 0; i < 32; i++) + ew32(RETA(i), 0); + + /* Disable raw packet checksumming so that RSS hash is placed in + * descriptor on writeback. + */ + rxcsum = er32(RXCSUM); + rxcsum |= E1000_RXCSUM_PCSD; + + ew32(RXCSUM, rxcsum); + + mrqc = (E1000_MRQC_RSS_FIELD_IPV4 | + E1000_MRQC_RSS_FIELD_IPV4_TCP | + E1000_MRQC_RSS_FIELD_IPV6 | + E1000_MRQC_RSS_FIELD_IPV6_TCP | + E1000_MRQC_RSS_FIELD_IPV6_TCP_EX); + + ew32(MRQC, mrqc); +} + +#endif /* NETIF_F_RXHASH */ +#ifdef HAVE_HW_TIME_STAMP +/** + * e1000e_get_base_timinca - get default SYSTIM time increment attributes + * @adapter: board private structure + * @timinca: pointer to returned time increment attributes + * + * Get attributes for incrementing the System Time Register SYSTIML/H at + * the default base frequency, and set the cyclecounter shift value. + **/ +#ifndef HAVE_PTP_1588_CLOCK +static +#endif +s32 e1000e_get_base_timinca(struct e1000_adapter *adapter, u32 *timinca) +{ + struct e1000_hw *hw = &adapter->hw; + u32 incvalue, incperiod, shift; + + /* Make sure clock is enabled on I217/I218/I219 before checking + * the frequency + */ + if (((hw->mac.type == e1000_pch_lpt) || + (hw->mac.type == e1000_pch_spt)) && + !(er32(TSYNCTXCTL) & E1000_TSYNCTXCTL_ENABLED) && + !(er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_ENABLED)) { + u32 fextnvm7 = er32(FEXTNVM7); + + if (!(fextnvm7 & (1 << 0))) { + ew32(FEXTNVM7, fextnvm7 | (1 << 0)); + e1e_flush(); } + } - e1000_update_mc_addr_list(hw, mta_list, i); - kfree(mta_list); - } else { - /* - * if we're called from probe, we might not have - * anything to do here, so clear out the list + switch (hw->mac.type) { + case e1000_pch2lan: + case e1000_pch_lpt: + case e1000_pch_spt: + /* On I217, I218 and I219, the clock frequency is 25MHz + * or 96MHz as indicated by the System Clock Frequency + * Indication + */ + if (((hw->mac.type != e1000_pch_lpt) && + (hw->mac.type != e1000_pch_spt)) || + (er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_SYSCFI)) { + /* Stable 96MHz frequency */ + incperiod = INCPERIOD_96MHz; + incvalue = INCVALUE_96MHz; + shift = INCVALUE_SHIFT_96MHz; + adapter->cc.shift = shift + INCPERIOD_SHIFT_96MHz; + break; + } + /* fall-through */ + case e1000_82574: + case e1000_82583: + /* Stable 25MHz frequency */ + incperiod = INCPERIOD_25MHz; + incvalue = INCVALUE_25MHz; + shift = INCVALUE_SHIFT_25MHz; + adapter->cc.shift = shift; + break; + default: + return -EINVAL; + } + + *timinca = ((incperiod << E1000_TIMINCA_INCPERIOD_SHIFT) | + ((incvalue << shift) & E1000_TIMINCA_INCVALUE_MASK)); + + return 0; +} + +/** + * e1000e_config_hwtstamp - configure the hwtstamp registers and enable/disable + * @adapter: board private structure + * + * Outgoing time stamping can be enabled and disabled. Play nice and + * disable it when requested, although it shouldn't cause any overhead + * when no packet needs it. At most one packet in the queue may be + * marked for time stamping, otherwise it would be impossible to tell + * for sure to which packet the hardware time stamp belongs. + * + * Incoming time stamping has to be configured via the hardware filters. + * Not all combinations are supported, in particular event type has to be + * specified. Matching the kind of event packet is not supported, with the + * exception of "all V2 events regardless of level 2 or 4". + **/ +static int e1000e_config_hwtstamp(struct e1000_adapter *adapter, + struct hwtstamp_config *config) +{ + struct e1000_hw *hw = &adapter->hw; + u32 tsync_tx_ctl = E1000_TSYNCTXCTL_ENABLED; + u32 tsync_rx_ctl = E1000_TSYNCRXCTL_ENABLED; +#ifdef HAVE_PTP_1588_CLOCK + u32 rxmtrl = 0; + u16 rxudp = 0; + bool is_l4 = false; + bool is_l2 = false; +#endif + u32 regval; + s32 ret_val; + + if (!(adapter->flags & FLAG_HAS_HW_TIMESTAMP)) + return -EINVAL; + + /* flags reserved for future extensions - must be zero */ + if (config->flags) + return -EINVAL; + + switch (config->tx_type) { + case HWTSTAMP_TX_OFF: + tsync_tx_ctl = 0; + break; + case HWTSTAMP_TX_ON: + break; + default: + return -ERANGE; + } + + switch (config->rx_filter) { + case HWTSTAMP_FILTER_NONE: + tsync_rx_ctl = 0; + break; +#ifdef HAVE_PTP_1588_CLOCK + case HWTSTAMP_FILTER_PTP_V1_L4_SYNC: + tsync_rx_ctl |= E1000_TSYNCRXCTL_TYPE_L4_V1; + rxmtrl = E1000_RXMTRL_PTP_V1_SYNC_MESSAGE; + is_l4 = true; + break; + case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ: + tsync_rx_ctl |= E1000_TSYNCRXCTL_TYPE_L4_V1; + rxmtrl = E1000_RXMTRL_PTP_V1_DELAY_REQ_MESSAGE; + is_l4 = true; + break; + case HWTSTAMP_FILTER_PTP_V2_L2_SYNC: + /* Also time stamps V2 L2 Path Delay Request/Response */ + tsync_rx_ctl |= E1000_TSYNCRXCTL_TYPE_L2_V2; + rxmtrl = E1000_RXMTRL_PTP_V2_SYNC_MESSAGE; + is_l2 = true; + break; + case HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ: + /* Also time stamps V2 L2 Path Delay Request/Response. */ + tsync_rx_ctl |= E1000_TSYNCRXCTL_TYPE_L2_V2; + rxmtrl = E1000_RXMTRL_PTP_V2_DELAY_REQ_MESSAGE; + is_l2 = true; + break; + case HWTSTAMP_FILTER_PTP_V2_L4_SYNC: + /* Hardware cannot filter just V2 L4 Sync messages; + * fall-through to V2 (both L2 and L4) Sync. + */ + case HWTSTAMP_FILTER_PTP_V2_SYNC: + /* Also time stamps V2 Path Delay Request/Response. */ + tsync_rx_ctl |= E1000_TSYNCRXCTL_TYPE_L2_L4_V2; + rxmtrl = E1000_RXMTRL_PTP_V2_SYNC_MESSAGE; + is_l2 = true; + is_l4 = true; + break; + case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ: + /* Hardware cannot filter just V2 L4 Delay Request messages; + * fall-through to V2 (both L2 and L4) Delay Request. */ - e1000_update_mc_addr_list(hw, NULL, 0); + case HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: + /* Also time stamps V2 Path Delay Request/Response. */ + tsync_rx_ctl |= E1000_TSYNCRXCTL_TYPE_L2_L4_V2; + rxmtrl = E1000_RXMTRL_PTP_V2_DELAY_REQ_MESSAGE; + is_l2 = true; + is_l4 = true; + break; + case HWTSTAMP_FILTER_PTP_V2_L4_EVENT: + case HWTSTAMP_FILTER_PTP_V2_L2_EVENT: + /* Hardware cannot filter just V2 L4 or L2 Event messages; + * fall-through to all V2 (both L2 and L4) Events. + */ + case HWTSTAMP_FILTER_PTP_V2_EVENT: + tsync_rx_ctl |= E1000_TSYNCRXCTL_TYPE_EVENT_V2; + config->rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT; + is_l2 = true; + is_l4 = true; + break; + case HWTSTAMP_FILTER_PTP_V1_L4_EVENT: + /* For V1, the hardware can only filter Sync messages or + * Delay Request messages but not both so fall-through to + * time stamp all packets. + */ +#endif /* HAVE_PTP_1588_CLOCK */ + case HWTSTAMP_FILTER_ALL: +#ifdef HAVE_PTP_1588_CLOCK + is_l2 = true; + is_l4 = true; +#endif + tsync_rx_ctl |= E1000_TSYNCRXCTL_TYPE_ALL; + config->rx_filter = HWTSTAMP_FILTER_ALL; + break; + default: + return -ERANGE; + } + + adapter->hwtstamp_config = *config; + + /* enable/disable Tx h/w time stamping */ + regval = er32(TSYNCTXCTL); + regval &= ~E1000_TSYNCTXCTL_ENABLED; + regval |= tsync_tx_ctl; + ew32(TSYNCTXCTL, regval); + if ((er32(TSYNCTXCTL) & E1000_TSYNCTXCTL_ENABLED) != + (regval & E1000_TSYNCTXCTL_ENABLED)) { + e_err("Timesync Tx Control register not set as expected\n"); + return -EAGAIN; + } + + /* enable/disable Rx h/w time stamping */ + regval = er32(TSYNCRXCTL); + regval &= ~(E1000_TSYNCRXCTL_ENABLED | E1000_TSYNCRXCTL_TYPE_MASK); + regval |= tsync_rx_ctl; + ew32(TSYNCRXCTL, regval); + if ((er32(TSYNCRXCTL) & (E1000_TSYNCRXCTL_ENABLED | + E1000_TSYNCRXCTL_TYPE_MASK)) != + (regval & (E1000_TSYNCRXCTL_ENABLED | + E1000_TSYNCRXCTL_TYPE_MASK))) { + e_err("Timesync Rx Control register not set as expected\n"); + return -EAGAIN; } +#ifdef HAVE_PTP_1588_CLOCK + /* L2: define ethertype filter for time stamped packets */ + if (is_l2) + rxmtrl |= ETH_P_1588; + + /* define which PTP packets get time stamped */ + ew32(RXMTRL, rxmtrl); + + /* Filter by destination port */ + if (is_l4) { + rxudp = PTP_EV_PORT; + cpu_to_be16s(&rxudp); + } + ew32(RXUDP, rxudp); + + e1e_flush(); +#endif + + /* Clear TSYNCRXCTL_VALID & TSYNCTXCTL_VALID bit */ + er32(RXSTMPH); + er32(TXSTMPH); + + /* Get and set the System Time Register SYSTIM base frequency */ + ret_val = e1000e_get_base_timinca(adapter, ®val); + if (ret_val) + return ret_val; + ew32(TIMINCA, regval); + + /* reset the ns time counter */ + timecounter_init(&adapter->tc, &adapter->cc, + ktime_to_ns(ktime_get_real())); + + return 0; } +#endif /* HAVE_HW_TIME_STAMP */ /** * e1000_configure - configure the hardware for Rx and Tx @@ -3250,17 +4337,24 @@ static void e1000_set_multi(struct net_device *netdev) **/ static void e1000_configure(struct e1000_adapter *adapter) { - e1000_set_multi(adapter->netdev); + struct e1000_ring *rx_ring = adapter->rx_ring; -#ifdef NETIF_F_HW_VLAN_TX + e1000e_set_rx_mode(adapter->netdev); + +#if defined(NETIF_F_HW_VLAN_TX) || defined(NETIF_F_HW_VLAN_CTAG_TX) e1000_restore_vlan(adapter); #endif - e1000_init_manageability(adapter); + e1000_init_manageability_pt(adapter); e1000_configure_tx(adapter); + +#ifdef NETIF_F_RXHASH + if (adapter->netdev->features & NETIF_F_RXHASH) + e1000e_setup_rss_hash(adapter); +#endif e1000_setup_rctl(adapter); e1000_configure_rx(adapter); - adapter->alloc_rx_buf(adapter, e1000_desc_unused(adapter->rx_ring)); + adapter->alloc_rx_buf(rx_ring, e1000_desc_unused(rx_ring), GFP_KERNEL); } /** @@ -3287,10 +4381,6 @@ void e1000e_power_up_phy(struct e1000_adapter *adapter) */ static void e1000_power_down_phy(struct e1000_adapter *adapter) { - /* WoL is enabled */ - if (adapter->wol) - return; - if (adapter->hw.phy.ops.power_down) adapter->hw.phy.ops.power_down(&adapter->hw); } @@ -3316,8 +4406,7 @@ void e1000e_reset(struct e1000_adapter *adapter) ew32(PBA, pba); if (adapter->max_frame_size > ETH_FRAME_LEN + ETH_FCS_LEN) { - /* - * To maintain wire speed transmits, the Tx FIFO should be + /* To maintain wire speed transmits, the Tx FIFO should be * large enough to accommodate two full transmit packets, * rounded up to the next 1KB and expressed in KB. Likewise, * the Rx FIFO should be large enough to accommodate at least @@ -3329,13 +4418,11 @@ void e1000e_reset(struct e1000_adapter *adapter) tx_space = pba >> 16; /* lower 16 bits has Rx packet buffer allocation size in KB */ pba &= 0xffff; - /* - * the Tx fifo also stores 16 bytes of information about the tx + /* the Tx fifo also stores 16 bytes of information about the Tx * but don't include ethernet FCS because hardware appends it */ min_tx_space = (adapter->max_frame_size + - sizeof(struct e1000_tx_desc) - - ETH_FCS_LEN) * 2; + sizeof(struct e1000_tx_desc) - ETH_FCS_LEN) * 2; min_tx_space = ALIGN(min_tx_space, 1024); min_tx_space >>= 10; /* software strips receive CRC, so leave room for it */ @@ -3343,8 +4430,7 @@ void e1000e_reset(struct e1000_adapter *adapter) min_rx_space = ALIGN(min_rx_space, 1024); min_rx_space >>= 10; - /* - * If current Tx allocation is less than the min Tx FIFO size, + /* If current Tx allocation is less than the min Tx FIFO size, * and the min Tx FIFO size is less than the current Rx FIFO * allocation, take space away from current Rx allocation */ @@ -3352,85 +4438,129 @@ void e1000e_reset(struct e1000_adapter *adapter) ((min_tx_space - tx_space) < pba)) { pba -= min_tx_space - tx_space; - /* - * if short on Rx space, Rx wins and must trump tx - * adjustment or use Early Receive if available + /* if short on Rx space, Rx wins and must trump Tx + * adjustment */ - if ((pba < min_rx_space) && - (!(adapter->flags & FLAG_HAS_ERT))) - /* ERT enabled in e1000_configure_rx */ + if (pba < min_rx_space) pba = min_rx_space; } ew32(PBA, pba); } - - /* - * flow control settings + /* flow control settings * - * The high water mark must be low enough to fit two full frames + * The high water mark must be low enough to fit one full frame * (or the size used for early receive) above it in the Rx FIFO. * Set it to the lower of: * - 90% of the Rx FIFO size, and - * - the full Rx FIFO size minus the early receive size (for parts - * with ERT support assuming ERT set to E1000_ERT_2048), or * - the full Rx FIFO size minus one full frame */ - if (hw->mac.type == e1000_pchlan) { - /* - * Workaround PCH LOM adapter hangs with certain network + if (adapter->flags & FLAG_DISABLE_FC_PAUSE_TIME) + fc->pause_time = 0xFFFF; + else + fc->pause_time = E1000_FC_PAUSE_TIME; + fc->send_xon = true; + fc->current_mode = fc->requested_mode; + + switch (hw->mac.type) { + case e1000_ich9lan: + case e1000_ich10lan: + if (adapter->netdev->mtu > ETH_DATA_LEN) { + pba = 14; + ew32(PBA, pba); + fc->high_water = 0x2800; + fc->low_water = fc->high_water - 8; + break; + } + /* fall-through */ + default: + hwm = min(((pba << 10) * 9 / 10), + ((pba << 10) - adapter->max_frame_size)); + + fc->high_water = hwm & E1000_FCRTH_RTH; /* 8-byte granularity */ + fc->low_water = fc->high_water - 8; + break; + case e1000_pchlan: + /* Workaround PCH LOM adapter hangs with certain network * loads. If hangs persist, try disabling Tx flow control. */ if (adapter->netdev->mtu > ETH_DATA_LEN) { fc->high_water = 0x3500; - fc->low_water = 0x1500; + fc->low_water = 0x1500; } else { fc->high_water = 0x5000; - fc->low_water = 0x3000; + fc->low_water = 0x3000; + } + fc->refresh_time = 0x1000; + break; + case e1000_pch2lan: + case e1000_pch_lpt: + case e1000_pch_spt: + fc->refresh_time = 0x0400; + + if (adapter->netdev->mtu <= ETH_DATA_LEN) { + fc->high_water = 0x05C20; + fc->low_water = 0x05048; + fc->pause_time = 0x0650; + break; } - } else { - if ((adapter->flags & FLAG_HAS_ERT) && - (adapter->netdev->mtu > ETH_DATA_LEN)) - hwm = min(((pba << 10) * 9 / 10), - ((pba << 10) - (E1000_ERT_2048 << 3))); - else - hwm = min(((pba << 10) * 9 / 10), - ((pba << 10) - adapter->max_frame_size)); - fc->high_water = hwm & E1000_FCRTH_RTH; /* 8-byte granularity */ - fc->low_water = fc->high_water - 8; + pba = 14; + ew32(PBA, pba); + fc->high_water = ((pba << 10) * 9 / 10) & E1000_FCRTH_RTH; + fc->low_water = ((pba << 10) * 8 / 10) & E1000_FCRTL_RTL; + break; } - if (adapter->flags & FLAG_DISABLE_FC_PAUSE_TIME) - fc->pause_time = 0xFFFF; - else - fc->pause_time = E1000_FC_PAUSE_TIME; - fc->send_xon = 1; - fc->current_mode = fc->requested_mode; + /* Alignment of Tx data is on an arbitrary byte boundary with the + * maximum size per Tx descriptor limited only to the transmit + * allocation of the packet buffer minus 96 bytes with an upper + * limit of 24KB due to receive synchronization limitations. + */ + adapter->tx_fifo_limit = min_t(u32, ((er32(PBA) >> 16) << 10) - 96, + 24 << 10); + + /* Disable Adaptive Interrupt Moderation if 2 full packets cannot + * fit in receive buffer. + */ + if (adapter->itr_setting & 0x3) { + if ((adapter->max_frame_size * 2) > (pba << 10)) { + if (!(adapter->flags2 & FLAG2_DISABLE_AIM)) { + dev_info(pci_dev_to_dev(adapter->pdev), + "Interrupt Throttle Rate off\n"); + adapter->flags2 |= FLAG2_DISABLE_AIM; + e1000e_write_itr(adapter, 0); + } + } else if (adapter->flags2 & FLAG2_DISABLE_AIM) { + dev_info(pci_dev_to_dev(adapter->pdev), + "Interrupt Throttle Rate on\n"); + adapter->flags2 &= ~FLAG2_DISABLE_AIM; + adapter->itr = 20000; + e1000e_write_itr(adapter, adapter->itr); + } + } /* Allow time for pending master requests to run */ mac->ops.reset_hw(hw); - /* - * For parts with AMT enabled, let the firmware know + /* For parts with AMT enabled, let the firmware know * that the network interface is in control */ if (adapter->flags & FLAG_HAS_AMT) - e1000_get_hw_control(adapter); + e1000e_get_hw_control(adapter); +#ifdef DYNAMIC_LTR_SUPPORT + + adapter->c10_pba_bytes = er32(PBA) & 0x1F; + adapter->c10_pba_bytes <<= 10; +#endif /* DYNAMIC_LTR_SUPPORT */ ew32(WUC, 0); - if (adapter->flags2 & FLAG2_HAS_PHY_WAKEUP) - e1e_wphy(&adapter->hw, BM_WUC, 0); if (mac->ops.init_hw(hw)) e_err("Hardware Error\n"); - /* additional part of the flow-control workaround above */ - if (hw->mac.type == e1000_pchlan) - ew32(FCRTV_PCH, 0x1000); - -#ifdef NETIF_F_HW_VLAN_TX +#if defined(NETIF_F_HW_VLAN_TX) || defined(NETIF_F_HW_VLAN_CTAG_TX) e1000_update_mng_vlan(adapter); /* Enable h/w to recognize an 802.1Q VLAN Ethernet packet */ @@ -3438,13 +4568,55 @@ void e1000e_reset(struct e1000_adapter *adapter) #endif e1000e_reset_adaptive(hw); + +#ifdef HAVE_HW_TIME_STAMP + /* initialize systim and reset the ns time counter */ + e1000e_config_hwtstamp(adapter, &adapter->hwtstamp_config); +#endif + + /* Set EEE advertisement as appropriate */ + if (adapter->flags2 & FLAG2_HAS_EEE) { + s32 ret_val; + u16 adv_addr; + + switch (hw->phy.type) { + case e1000_phy_82579: + adv_addr = I82579_EEE_ADVERTISEMENT; + break; + case e1000_phy_i217: + adv_addr = I217_EEE_ADVERTISEMENT; + break; + default: + dev_err(pci_dev_to_dev(adapter->pdev), + "Invalid PHY type setting EEE advertisement\n"); + return; + } + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) { + dev_err(pci_dev_to_dev(adapter->pdev), + "EEE advertisement - unable to acquire PHY\n"); + return; + } + + /* Set EEE advertising to either default or + * whatever the user has defined using ethtool + */ + e1000_write_emi_reg_locked(hw, adv_addr, adapter->eee_advert); + + hw->phy.ops.release(hw); + } + + if (!netif_running(adapter->netdev) && + !test_bit(__E1000_TESTING, &adapter->state)) + e1000_power_down_phy(adapter); + e1000_get_phy_info(hw); if ((adapter->flags & FLAG_HAS_SMART_POWER_DOWN) && !(adapter->flags & FLAG_SMART_POWER_DOWN)) { u16 phy_data = 0; - /* - * speed up time to link by disabling smart power down, ignore + /* speed up time to link by disabling smart power down, ignore * the return value of this function because there is nothing * different we would do if it failed */ @@ -3458,107 +4630,234 @@ int e1000e_up(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; - /* DMA latency requirement to workaround early-receive/jumbo issue */ - if (adapter->flags & FLAG_HAS_ERT) - pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, - adapter->netdev->name, - PM_QOS_DEFAULT_VALUE); - /* hardware has been reset, we need to reload some things */ e1000_configure(adapter); clear_bit(__E1000_DOWN, &adapter->state); +#ifdef __VMKLNX__ #ifdef CONFIG_E1000E_NAPI napi_enable(&adapter->napi); #endif -#ifdef CONFIG_E1000E_MSIX +#endif /* __VMKLNX__ */ + if (adapter->msix_entries) e1000_configure_msix(adapter); -#endif /* CONFIG_E1000E_MSIX */ e1000_irq_enable(adapter); + netif_start_queue(adapter->netdev); + /* fire a link change interrupt to start the watchdog */ - ew32(ICS, E1000_ICS_LSC); + if (adapter->msix_entries) + ew32(ICS, E1000_ICS_LSC | E1000_ICR_OTHER); + else + ew32(ICS, E1000_ICS_LSC); + +#ifdef __VMKLNX__ + /* This is moved from watchdog task to avoid potential race between + * e1000e_down and watchdog, which caused TX enabled while TX ring + * is being cleaned out. See PR 1088570. + */ + u32 tctl = er32(TCTL); + tctl |= E1000_TCTL_EN; + ew32(TCTL, tctl); +#endif /* __VMKLNX__ */ + return 0; } -void e1000e_down(struct e1000_adapter *adapter) +static void e1000e_flush_descriptors(struct e1000_adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + + if (!(adapter->flags2 & FLAG2_DMA_BURST)) + return; + + /* flush pending descriptor writebacks to memory */ + ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD); + ew32(RDTR, adapter->rx_int_delay | E1000_RDTR_FPD); + + /* execute the writes immediately */ + e1e_flush(); + + /* due to rare timing issues, write to TIDV/RDTR again to ensure the + * write is successful + */ + ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD); + ew32(RDTR, adapter->rx_int_delay | E1000_RDTR_FPD); + + /* execute the writes immediately */ + e1e_flush(); +} + +#ifdef HAVE_NDO_GET_STATS64 +static void e1000e_update_stats(struct e1000_adapter *adapter); + +#endif +/** + * e1000e_down - quiesce the device and optionally reset the hardware + * @adapter: board private structure + * @reset: boolean flag to reset the hardware or not + */ +void e1000e_down(struct e1000_adapter *adapter, bool reset) { struct net_device *netdev = adapter->netdev; struct e1000_hw *hw = &adapter->hw; u32 tctl, rctl; - /* - * signal that we're down so the interrupt handler does not + /* signal that we're down so the interrupt handler does not * reschedule our watchdog timer */ set_bit(__E1000_DOWN, &adapter->state); +#ifdef DYNAMIC_LTR_SUPPORT + adapter->c10_demote_ltr = false; + e1000_demote_ltr(hw, false, false); +#endif /* DYNAMIC_LTR_SUPPORT */ + /* disable receives in the hardware */ rctl = er32(RCTL); - ew32(RCTL, rctl & ~E1000_RCTL_EN); +#ifndef __VMKLNX__ + if (!(adapter->flags2 & FLAG2_NO_DISABLE_RX)) +#endif /* !__VMKLNX__ */ + ew32(RCTL, rctl & ~E1000_RCTL_EN); /* flush and sleep below */ - #ifdef __VMKLNX__ - /* set trans_start so we don't get spurious watchdogs during reset */ - netdev->trans_start = jiffies; netif_carrier_off(netdev); -#endif - netif_tx_stop_all_queues(netdev); + netdev->trans_start = jiffies; +#endif /* __VMKLNX__ */ + netif_stop_queue(netdev); /* disable transmits in the hardware */ tctl = er32(TCTL); tctl &= ~E1000_TCTL_EN; ew32(TCTL, tctl); + /* flush both disables and wait for them to finish */ e1e_flush(); - msleep(10); + usleep_range(10000, 20000); +#ifdef __VMKLNX__ + /* move napi_enable/disable from e1000_open/close to e1000_up/down to + * avoid a potential race, see PR 1024889 for details */ #ifdef CONFIG_E1000E_NAPI napi_disable(&adapter->napi); #endif +#endif /* __VMKLNX__ */ + e1000_irq_disable(adapter); +#ifndef __VMKLNX__ + /* This should not be called after napi is disabled, otherwise would + * cause deadlock. See PR 1064003 for details. */ +#ifdef CONFIG_E1000E_NAPI + napi_synchronize(&adapter->napi); +#endif /* CONFIG_E1000E_NAPI */ +#endif /* !__VMKLNX__ */ + del_timer_sync(&adapter->watchdog_timer); del_timer_sync(&adapter->phy_info_timer); - netdev->tx_queue_len = adapter->tx_queue_len; #ifndef __VMKLNX__ - /* in VMKLinux this should be put before stop all tx queues to - avoid race with netdev_watchdog. See PR 1015128 */ netif_carrier_off(netdev); +#endif /* !__VMKLNX__ */ + +#ifdef HAVE_NDO_GET_STATS64 + spin_lock(&adapter->stats64_lock); + e1000e_update_stats(adapter); + spin_unlock(&adapter->stats64_lock); + #endif +#ifndef __VMKLNX__ + /* Turning off TX by zeroing TCTL.EN is not enough as there may be + * pending packets still being transmitted. So we cannot cleaning rings + * before we are sure of TX are off. By moving it after reset we may + * avoid such race. */ + e1000e_flush_descriptors(adapter); + e1000_clean_tx_ring(adapter->tx_ring); + e1000_clean_rx_ring(adapter->rx_ring); +#endif /* !__VMKLNX__ */ + adapter->link_speed = 0; adapter->link_duplex = 0; + /* Disable Si errata workaround on PCHx for jumbo frame flow */ + if ((hw->mac.type >= e1000_pch2lan) && + (adapter->netdev->mtu > ETH_DATA_LEN) && + e1000_lv_jumbo_workaround_ich8lan(hw, false)) + e_dbg("failed to disable jumbo frame workaround mode\n"); + #ifdef HAVE_PCI_ERS - if (!pci_channel_offline(adapter->pdev)) + if (reset && !pci_channel_offline(adapter->pdev)) +#else + if (reset) #endif e1000e_reset(adapter); - e1000_clean_tx_ring(adapter); - e1000_clean_rx_ring(adapter); - - if (adapter->flags & FLAG_HAS_ERT) - pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, - adapter->netdev->name); - /* - * TODO: for power management, we could drop the link and - * pci_disable_device here. - */ +#ifdef __VMKLNX__ + e1000e_flush_descriptors(adapter); + e1000_clean_tx_ring(adapter->tx_ring); + e1000_clean_rx_ring(adapter->rx_ring); +#endif } void e1000e_reinit_locked(struct e1000_adapter *adapter) { + ASSERT_RTNL(); + /* rtnl lock is a mutex lock and can sleep while holding */ might_sleep(); while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) - msleep(1); - e1000e_down(adapter); + usleep_range(1000, 2000); + e1000e_down(adapter, true); e1000e_up(adapter); clear_bit(__E1000_RESETTING, &adapter->state); } +#ifdef HAVE_HW_TIME_STAMP +/** + * e1000e_cyclecounter_read - read raw cycle counter (used by time counter) + * @cc: cyclecounter structure + **/ +static cycle_t e1000e_cyclecounter_read(const struct cyclecounter *cc) +{ + struct e1000_adapter *adapter = container_of(cc, struct e1000_adapter, + cc); + struct e1000_hw *hw = &adapter->hw; + cycle_t systim, systim_next; + + /* latch SYSTIMH on read of SYSTIML */ + systim = (cycle_t)er32(SYSTIML); + systim |= (cycle_t)er32(SYSTIMH) << 32; + + if ((hw->mac.type == e1000_82574) || (hw->mac.type == e1000_82583)) { + u64 incvalue, time_delta, rem, temp; + int i; + + /* errata for 82574/82583 possible bad bits read from SYSTIMH/L + * check to see that the time is incrementing at a reasonable + * rate and is a multiple of incvalue + */ + incvalue = er32(TIMINCA) & E1000_TIMINCA_INCVALUE_MASK; + for (i = 0; i < E1000_MAX_82574_SYSTIM_REREADS; i++) { + /* latch SYSTIMH on read of SYSTIML */ + systim_next = (cycle_t)er32(SYSTIML); + systim_next |= (cycle_t)er32(SYSTIMH) << 32; + + time_delta = systim_next - systim; + temp = time_delta; + rem = do_div(temp, incvalue); + + systim = systim_next; + + if ((time_delta < E1000_82574_SYSTIM_EPSILON) && + (rem == 0)) + break; + } + } + return systim; +} +#endif /* HAVE_HW_TIME_STAMP */ + /** * e1000_sw_init - Initialize general software structures (struct e1000_adapter) * @adapter: board private structure to initialize @@ -3567,38 +4866,43 @@ void e1000e_reinit_locked(struct e1000_adapter *adapter) * Fields are initialized based on PCI device information and * OS network device settings (MTU size). **/ +#ifdef HAVE_CONFIG_HOTPLUG static int __devinit e1000_sw_init(struct e1000_adapter *adapter) +#else +static int e1000_sw_init(struct e1000_adapter *adapter) +#endif { struct net_device *netdev = adapter->netdev; - s32 rc; adapter->rx_buffer_len = ETH_FRAME_LEN + VLAN_HLEN + ETH_FCS_LEN; adapter->rx_ps_bsize0 = 128; adapter->max_frame_size = netdev->mtu + ETH_HLEN + ETH_FCS_LEN; adapter->min_frame_size = ETH_ZLEN + ETH_FCS_LEN; + adapter->tx_ring_count = E1000_DEFAULT_TXD; + adapter->rx_ring_count = E1000_DEFAULT_RXD; - /* Set various function pointers */ - adapter->ei->init_ops(&adapter->hw); - - rc = adapter->hw.mac.ops.init_params(&adapter->hw); - if (rc) - return rc; - - rc = adapter->hw.nvm.ops.init_params(&adapter->hw); - if (rc) - return rc; - - rc = adapter->hw.phy.ops.init_params(&adapter->hw); - if (rc) - return rc; +#ifdef HAVE_NDO_GET_STATS64 + spin_lock_init(&adapter->stats64_lock); -#ifdef CONFIG_E1000E_MSIX +#endif /* HAVE_NDO_GET_STATS64 */ e1000e_set_interrupt_capability(adapter); -#endif /* CONFIG_E1000E_MSIX */ if (e1000_alloc_queues(adapter)) return -ENOMEM; +#ifdef HAVE_HW_TIME_STAMP + /* Setup hardware time stamping cyclecounter */ + if (adapter->flags & FLAG_HAS_HW_TIMESTAMP) { + adapter->cc.read = e1000e_cyclecounter_read; + adapter->cc.mask = CLOCKSOURCE_MASK(64); + adapter->cc.mult = 1; + /* cc.shift set in e1000e_get_base_tininca() */ + + spin_lock_init(&adapter->systim_lock); + INIT_WORK(&adapter->tx_hwtstamp_work, e1000e_tx_hwtstamp_work); + } +#endif /* HAVE_HW_TIME_STAMP */ + /* Explicitly disable IRQ since the NIC can be in any state. */ e1000_irq_disable(adapter); @@ -3611,7 +4915,7 @@ static int __devinit e1000_sw_init(struct e1000_adapter *adapter) * @irq: interrupt number * @data: pointer to a network interface device structure **/ -static irqreturn_t e1000_intr_msi_test(int irq, void *data) +static irqreturn_t e1000_intr_msi_test(int __always_unused irq, void *data) { struct net_device *netdev = data; struct e1000_adapter *adapter = netdev_priv(netdev); @@ -3621,6 +4925,9 @@ static irqreturn_t e1000_intr_msi_test(int irq, void *data) e_dbg("icr is %08X\n", icr); if (icr & E1000_ICR_RXSEQ) { adapter->flags &= ~FLAG_MSI_TEST_FAILED; + /* Force memory writes to complete before acknowledging the + * interrupt is handled. + */ wmb(); } @@ -3645,25 +4952,27 @@ static int e1000_test_msi_interrupt(struct e1000_adapter *adapter) /* free the real vector and request a test handler */ e1000_free_irq(adapter); -#ifdef CONFIG_E1000E_MSIX e1000e_reset_interrupt_capability(adapter); -#endif /* Assume that the test fails, if it succeeds then the test - * MSI irq handler will unset this flag */ + * MSI irq handler will unset this flag + */ adapter->flags |= FLAG_MSI_TEST_FAILED; err = pci_enable_msi(adapter->pdev); if (err) goto msi_test_failed; - err = request_irq(adapter->pdev->irq, &e1000_intr_msi_test, 0, + err = request_irq(adapter->pdev->irq, e1000_intr_msi_test, 0, netdev->name, netdev); if (err) { pci_disable_msi(adapter->pdev); goto msi_test_failed; } + /* Force memory writes to complete before enabling and firing an + * interrupt. + */ wmb(); e1000_irq_enable(adapter); @@ -3671,36 +4980,25 @@ static int e1000_test_msi_interrupt(struct e1000_adapter *adapter) /* fire an unusual interrupt on the test handler */ ew32(ICS, E1000_ICS_RXSEQ); e1e_flush(); - msleep(50); + msleep(100); e1000_irq_disable(adapter); - rmb(); + rmb(); /* read flags after interrupt has been fired */ if (adapter->flags & FLAG_MSI_TEST_FAILED) { -#ifdef CONFIG_E1000E_MSIX adapter->int_mode = E1000E_INT_MODE_LEGACY; -#endif - err = -EIO; - e_info("MSI interrupt test failed!\n"); + e_info("MSI interrupt test failed, using legacy interrupt.\n"); + } else { + e_dbg("MSI interrupt test succeeded!\n"); } free_irq(adapter->pdev->irq, netdev); pci_disable_msi(adapter->pdev); - if (err == -EIO) - goto msi_test_failed; - - /* okay so the test worked, restore settings */ - e_dbg("MSI interrupt test succeeded!\n"); msi_test_failed: -#ifdef CONFIG_E1000E_MSIX e1000e_set_interrupt_capability(adapter); -#else - /* restore the original vector, even if it failed */ -#endif - e1000_request_irq(adapter); - return err; + return e1000_request_irq(adapter); } /** @@ -3719,28 +5017,18 @@ static int e1000_test_msi(struct e1000_adapter *adapter) /* disable SERR in case the MSI write causes a master abort */ pci_read_config_word(adapter->pdev, PCI_COMMAND, &pci_cmd); - pci_write_config_word(adapter->pdev, PCI_COMMAND, - pci_cmd & ~PCI_COMMAND_SERR); + if (pci_cmd & PCI_COMMAND_SERR) + pci_write_config_word(adapter->pdev, PCI_COMMAND, + pci_cmd & ~PCI_COMMAND_SERR); err = e1000_test_msi_interrupt(adapter); - /* restore previous setting of command word */ - pci_write_config_word(adapter->pdev, PCI_COMMAND, pci_cmd); - - /* success ! */ - if (!err) - return 0; - - /* EIO means MSI test failed */ - if (err != -EIO) - return err; - - /* back to INTx mode */ - e_warn("MSI interrupt test failed, using legacy interrupt.\n"); - - e1000_free_irq(adapter); - - err = e1000_request_irq(adapter); + /* re-enable SERR */ + if (pci_cmd & PCI_COMMAND_SERR) { + pci_read_config_word(adapter->pdev, PCI_COMMAND, &pci_cmd); + pci_cmd |= PCI_COMMAND_SERR; + pci_write_config_word(adapter->pdev, PCI_COMMAND, pci_cmd); + } return err; } @@ -3761,40 +5049,57 @@ static int e1000_open(struct net_device *netdev) { struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; + struct pci_dev *pdev = adapter->pdev; int err; + adapter->pdev = pdev; /* disallow open during test */ if (test_bit(__E1000_TESTING, &adapter->state)) return -EBUSY; + pm_runtime_get_sync(pci_dev_to_dev(pdev)); + + netif_carrier_off(netdev); + /* allocate transmit descriptors */ - err = e1000e_setup_tx_resources(adapter); + err = e1000e_setup_tx_resources(adapter->tx_ring); if (err) goto err_setup_tx; /* allocate receive descriptors */ - err = e1000e_setup_rx_resources(adapter); + err = e1000e_setup_rx_resources(adapter->rx_ring); if (err) goto err_setup_rx; + /* If AMT is enabled, let the firmware know that the network + * interface is now open and reset the part to a known state. + */ + if (adapter->flags & FLAG_HAS_AMT) { + e1000e_get_hw_control(adapter); + e1000e_reset(adapter); + } + e1000e_power_up_phy(adapter); -#ifdef NETIF_F_HW_VLAN_TX +#if defined(NETIF_F_HW_VLAN_TX) || defined(NETIF_F_HW_VLAN_CTAG_TX) adapter->mng_vlan_id = E1000_MNG_VLAN_NONE; - if ((adapter->hw.mng_cookie.status & - E1000_MNG_DHCP_COOKIE_STATUS_VLAN)) + if ((adapter->hw.mng_cookie.status & E1000_MNG_DHCP_COOKIE_STATUS_VLAN)) e1000_update_mng_vlan(adapter); #endif - /* - * If AMT is enabled, let the firmware know that the network - * interface is now open - */ - if (adapter->flags & FLAG_HAS_AMT) - e1000_get_hw_control(adapter); + /* DMA latency requirement to workaround jumbo issue */ +#ifdef HAVE_PM_QOS_REQUEST_ACTIVE + pm_qos_add_request(&adapter->netdev->pm_qos_req, PM_QOS_CPU_DMA_LATENCY, + PM_QOS_DEFAULT_VALUE); +#elif defined(HAVE_PM_QOS_REQUEST_LIST) + adapter->netdev->pm_qos_req = pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY, + PM_QOS_DEFAULT_VALUE); +#else + pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, adapter->netdev->name, + PM_QOS_DEFAULT_VALUE); +#endif - /* - * before we allocate an interrupt, we must be ready to handle it. + /* before we allocate an interrupt, we must be ready to handle it. * Setting DEBUG_SHIRQ in the kernel makes it fire an interrupt * as soon as we call pci_request_irq, so we have to setup our * clean_rx handler before we do so. @@ -3805,16 +5110,11 @@ static int e1000_open(struct net_device *netdev) if (err) goto err_req_irq; - /* - * Work around PCIe errata with MSI interrupts causing some chipsets to + /* Work around PCIe errata with MSI interrupts causing some chipsets to * ignore e1000e MSI messages, which means we need to test our MSI * interrupt now */ -#ifdef CONFIG_E1000E_MSIX if (adapter->int_mode != E1000E_INT_MODE_LEGACY) { -#else - { -#endif err = e1000_test_msi(adapter); if (err) { e_err("Interrupt allocation failed\n"); @@ -3831,21 +5131,40 @@ static int e1000_open(struct net_device *netdev) e1000_irq_enable(adapter); - netif_tx_start_all_queues(netdev); + adapter->tx_hang_recheck = false; + netif_start_queue(netdev); + + hw->mac.get_link_status = true; + pm_runtime_put(pci_dev_to_dev(pdev)); /* fire a link status change interrupt to start the watchdog */ - ew32(ICS, E1000_ICS_LSC); + if (adapter->msix_entries) + ew32(ICS, E1000_ICS_LSC | E1000_ICR_OTHER); + else + ew32(ICS, E1000_ICS_LSC); +#ifdef __VMKLNX__ + /* This is moved from watchdog task to avoid potential race between + * e1000e_down and watchdog, which caused TX enabled while TX ring + * is being cleaned out. See PR 1088570. + * + * This snippet is also a duplicated copy in e1000e_up. + */ + u32 tctl = er32(TCTL); + tctl |= E1000_TCTL_EN; + ew32(TCTL, tctl); +#endif return 0; err_req_irq: - e1000_release_hw_control(adapter); + e1000e_release_hw_control(adapter); e1000_power_down_phy(adapter); - e1000e_free_rx_resources(adapter); + e1000e_free_rx_resources(adapter->rx_ring); err_setup_rx: - e1000e_free_tx_resources(adapter); + e1000e_free_tx_resources(adapter->tx_ring); err_setup_tx: e1000e_reset(adapter); + pm_runtime_put_sync(pci_dev_to_dev(pdev)); return err; } @@ -3864,36 +5183,85 @@ err_setup_tx: static int e1000_close(struct net_device *netdev) { struct e1000_adapter *adapter = netdev_priv(netdev); + struct pci_dev *pdev = adapter->pdev; + int count = E1000_CHECK_RESET_COUNT; + + adapter->pdev = pdev; + + while (test_bit(__E1000_RESETTING, &adapter->state) && count--) + usleep_range(10000, 20000); WARN_ON(test_bit(__E1000_RESETTING, &adapter->state)); - e1000e_down(adapter); - e1000_power_down_phy(adapter); - e1000_free_irq(adapter); - e1000e_free_tx_resources(adapter); - e1000e_free_rx_resources(adapter); + pm_runtime_get_sync(pci_dev_to_dev(pdev)); -#ifdef NETIF_F_HW_VLAN_TX - /* - * kill manageability vlan ID if supported, but not if a vlan with + if (!test_bit(__E1000_DOWN, &adapter->state)) { + e1000e_down(adapter, true); + e1000_free_irq(adapter); + + /* Link status message must follow this format */ + pr_info("%s NIC Link is Down\n", adapter->netdev->name); + } + +#ifndef __VMKLNX__ +#ifdef CONFIG_E1000E_NAPI + napi_disable(&adapter->napi); +#endif /* CONFIG_E1000E_NAPI */ +#endif /* !__VMKLNX__ */ + +#ifdef __VMKLNX__ + /* these tasks will access rx/tx data and should be canceled or waited + * to complete, before tx/rx resources are freed. + */ + cancel_work_sync(&adapter->reset_task); + cancel_work_sync(&adapter->watchdog_task); + cancel_work_sync(&adapter->print_hang_task); +#endif + e1000e_free_tx_resources(adapter->tx_ring); + e1000e_free_rx_resources(adapter->rx_ring); + +#if defined(NETIF_F_HW_VLAN_TX) || defined(NETIF_F_HW_VLAN_CTAG_TX) + /* kill manageability vlan ID if supported, but not if a vlan with * the same ID is registered on the host OS (let 8021q kill it) */ +#ifdef HAVE_VLAN_RX_REGISTER if ((adapter->hw.mng_cookie.status & - E1000_MNG_DHCP_COOKIE_STATUS_VLAN) && - !(adapter->vlgrp && - vlan_group_get_device(adapter->vlgrp, adapter->mng_vlan_id))) + E1000_MNG_DHCP_COOKIE_STATUS_VLAN) && + !(adapter->vlgrp && + vlan_group_get_device(adapter->vlgrp, adapter->mng_vlan_id))) +#else /* HAVE_VLAN_RX_REGISTER */ + if (adapter->hw.mng_cookie.status & E1000_MNG_DHCP_COOKIE_STATUS_VLAN) +#endif /* HAVE_VLAN_RX_REGISTER */ +#ifdef NETIF_F_HW_VLAN_CTAG_RX + e1000_vlan_rx_kill_vid(netdev, htons(ETH_P_8021Q), + adapter->mng_vlan_id); +#else e1000_vlan_rx_kill_vid(netdev, adapter->mng_vlan_id); - #endif - /* - * If AMT is enabled, let the firmware know that the network + +#endif /* NETIF_F_HW_VLAN_TX || NETIF_F_HW_VLAN_CTAG_TX */ + /* If AMT is enabled, let the firmware know that the network * interface is now closed */ - if (adapter->flags & FLAG_HAS_AMT) - e1000_release_hw_control(adapter); + if ((adapter->flags & FLAG_HAS_AMT) && + !test_bit(__E1000_TESTING, &adapter->state)) + e1000e_release_hw_control(adapter); + +#ifdef HAVE_PM_QOS_REQUEST_ACTIVE + pm_qos_remove_request(&adapter->netdev->pm_qos_req); +#elif defined(HAVE_PM_QOS_REQUEST_LIST) + pm_qos_remove_request(adapter->netdev->pm_qos_req); + adapter->netdev->pm_qos_req = NULL; +#else + pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, + adapter->netdev->name); +#endif + + pm_runtime_put_sync(pci_dev_to_dev(pdev)); return 0; } + /** * e1000_set_mac - Change the Ethernet Address of the NIC * @netdev: network interface device structure @@ -3904,31 +5272,30 @@ static int e1000_close(struct net_device *netdev) static int e1000_set_mac(struct net_device *netdev, void *p) { struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; struct sockaddr *addr = p; - if (!is_valid_ether_addr(addr->sa_data)) + if (!is_valid_ether_addr((unsigned char *)(addr->sa_data))) return -EADDRNOTAVAIL; memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len); memcpy(adapter->hw.mac.addr, addr->sa_data, netdev->addr_len); - e1000e_rar_set(&adapter->hw, adapter->hw.mac.addr, 0); + hw->mac.ops.rar_set(&adapter->hw, adapter->hw.mac.addr, 0); if (adapter->flags & FLAG_RESET_OVERWRITES_LAA) { /* activate the work around */ e1000e_set_laa_state_82571(&adapter->hw, 1); - /* - * Hold a copy of the LAA in RAR[14] This is done so that + /* Hold a copy of the LAA in RAR[14] This is done so that * between the time RAR[0] gets clobbered and the time it * gets fixed (in e1000_watchdog), the actual LAA is in one * of the RARs and no incoming packets directed to this port * are dropped. Eventually the LAA will be in RAR[0] and * RAR[14] */ - e1000e_rar_set(&adapter->hw, - adapter->hw.mac.addr, - adapter->hw.mac.rar_entry_count - 1); + hw->mac.ops.rar_set(&adapter->hw, adapter->hw.mac.addr, + adapter->hw.mac.rar_entry_count - 1); } return 0; @@ -3945,34 +5312,133 @@ static int e1000_set_mac(struct net_device *netdev, void *p) static void e1000e_update_phy_task(struct work_struct *work) { struct e1000_adapter *adapter = container_of(work, - struct e1000_adapter, update_phy_task); - e1000_get_phy_info(&adapter->hw); + struct e1000_adapter, + update_phy_task); + struct e1000_hw *hw = &adapter->hw; + + if (test_bit(__E1000_DOWN, &adapter->state)) + return; + + e1000_get_phy_info(hw); + + /* Enable EEE on 82579 after link up */ + if (hw->phy.type >= e1000_phy_82579) + e1000_set_eee_pchlan(hw); } -/* +/** + * e1000_update_phy_info - timre call-back to update PHY info + * @data: pointer to adapter cast into an unsigned long + * * Need to wait a few seconds after link up to get diagnostic information from * the phy - */ + **/ static void e1000_update_phy_info(unsigned long data) { - struct e1000_adapter *adapter = (struct e1000_adapter *) data; + struct e1000_adapter *adapter = (struct e1000_adapter *)data; + + if (test_bit(__E1000_DOWN, &adapter->state)) + return; + schedule_work(&adapter->update_phy_task); } +/** + * e1000e_update_phy_stats - Update the PHY statistics counters + * @adapter: board private structure + * + * Read/clear the upper 16-bit PHY registers and read/accumulate lower + **/ +static void e1000e_update_phy_stats(struct e1000_adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + s32 ret_val; + u16 phy_data; + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + return; + + /* A page set is expensive so check if already on desired page. + * If not, set to the page with the PHY status registers. + */ + hw->phy.addr = 1; + ret_val = e1000e_read_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, + &phy_data); + if (ret_val) + goto release; + if (phy_data != (HV_STATS_PAGE << IGP_PAGE_SHIFT)) { + ret_val = hw->phy.ops.set_page(hw, + HV_STATS_PAGE << IGP_PAGE_SHIFT); + if (ret_val) + goto release; + } + + /* Single Collision Count */ + hw->phy.ops.read_reg_page(hw, HV_SCC_UPPER, &phy_data); + ret_val = hw->phy.ops.read_reg_page(hw, HV_SCC_LOWER, &phy_data); + if (!ret_val) + adapter->stats.scc += phy_data; + + /* Excessive Collision Count */ + hw->phy.ops.read_reg_page(hw, HV_ECOL_UPPER, &phy_data); + ret_val = hw->phy.ops.read_reg_page(hw, HV_ECOL_LOWER, &phy_data); + if (!ret_val) + adapter->stats.ecol += phy_data; + + /* Multiple Collision Count */ + hw->phy.ops.read_reg_page(hw, HV_MCC_UPPER, &phy_data); + ret_val = hw->phy.ops.read_reg_page(hw, HV_MCC_LOWER, &phy_data); + if (!ret_val) + adapter->stats.mcc += phy_data; + + /* Late Collision Count */ + hw->phy.ops.read_reg_page(hw, HV_LATECOL_UPPER, &phy_data); + ret_val = hw->phy.ops.read_reg_page(hw, HV_LATECOL_LOWER, &phy_data); + if (!ret_val) + adapter->stats.latecol += phy_data; + + /* Collision Count - also used for adaptive IFS */ + hw->phy.ops.read_reg_page(hw, HV_COLC_UPPER, &phy_data); + ret_val = hw->phy.ops.read_reg_page(hw, HV_COLC_LOWER, &phy_data); + if (!ret_val) + hw->mac.collision_delta = phy_data; + + /* Defer Count */ + hw->phy.ops.read_reg_page(hw, HV_DC_UPPER, &phy_data); + ret_val = hw->phy.ops.read_reg_page(hw, HV_DC_LOWER, &phy_data); + if (!ret_val) + adapter->stats.dc += phy_data; + + /* Transmit with no CRS */ + hw->phy.ops.read_reg_page(hw, HV_TNCRS_UPPER, &phy_data); + ret_val = hw->phy.ops.read_reg_page(hw, HV_TNCRS_LOWER, &phy_data); + if (!ret_val) + adapter->stats.tncrs += phy_data; + +release: + hw->phy.ops.release(hw); +} + /** * e1000e_update_stats - Update the board statistics counters * @adapter: board private structure **/ +#ifdef HAVE_NDO_GET_STATS64 +static void e1000e_update_stats(struct e1000_adapter *adapter) +#else void e1000e_update_stats(struct e1000_adapter *adapter) +#endif { +#ifdef HAVE_NETDEV_STATS_IN_NETDEV + struct net_device *netdev = adapter->netdev; +#endif struct e1000_hw *hw = &adapter->hw; #ifdef HAVE_PCI_ERS struct pci_dev *pdev = adapter->pdev; #endif - u16 phy_data; - /* - * Prevent stats update while adapter is being reset, or if the pci + /* Prevent stats update while adapter is being reset, or if the pci * connection is down. */ if (adapter->link_speed == 0) @@ -3985,47 +5451,52 @@ void e1000e_update_stats(struct e1000_adapter *adapter) adapter->stats.crcerrs += er32(CRCERRS); adapter->stats.gprc += er32(GPRC); adapter->stats.gorc += er32(GORCL); - er32(GORCH); /* Clear gorc */ + er32(GORCH); /* Clear gorc */ +#ifdef DYNAMIC_LTR_SUPPORT + adapter->c10_rx_bytes = adapter->stats.gorc; +#endif /* DYNAMIC_LTR_SUPPORT */ adapter->stats.bprc += er32(BPRC); adapter->stats.mprc += er32(MPRC); adapter->stats.roc += er32(ROC); +#ifdef DYNAMIC_LTR_SUPPORT + /* adapter->c10_mpc_count is being updated in IRQ context in the + * clean_rx functions. This is only when DYNAMIC_LTR_SUPPORT is + * defined, otherwise fall back to updating stats.mpc directly from + * the MPC register + */ + adapter->stats.mpc = adapter->c10_mpc_count; +#else adapter->stats.mpc += er32(MPC); - if ((hw->phy.type == e1000_phy_82578) || - (hw->phy.type == e1000_phy_82577)) { - e1e_rphy(hw, HV_SCC_UPPER, &phy_data); - if (!e1e_rphy(hw, HV_SCC_LOWER, &phy_data)) - adapter->stats.scc += phy_data; - - e1e_rphy(hw, HV_ECOL_UPPER, &phy_data); - if (!e1e_rphy(hw, HV_ECOL_LOWER, &phy_data)) - adapter->stats.ecol += phy_data; - - e1e_rphy(hw, HV_MCC_UPPER, &phy_data); - if (!e1e_rphy(hw, HV_MCC_LOWER, &phy_data)) - adapter->stats.mcc += phy_data; - - e1e_rphy(hw, HV_LATECOL_UPPER, &phy_data); - if (!e1e_rphy(hw, HV_LATECOL_LOWER, &phy_data)) - adapter->stats.latecol += phy_data; - - e1e_rphy(hw, HV_DC_UPPER, &phy_data); - if (!e1e_rphy(hw, HV_DC_LOWER, &phy_data)) - adapter->stats.dc += phy_data; - } else { - adapter->stats.scc += er32(SCC); - adapter->stats.ecol += er32(ECOL); - adapter->stats.mcc += er32(MCC); - adapter->stats.latecol += er32(LATECOL); - adapter->stats.dc += er32(DC); +#endif /* DYNAMIC_LTR_SUPPORT */ + + /* Half-duplex statistics */ + if (adapter->link_duplex == HALF_DUPLEX) { + if (adapter->flags2 & FLAG2_HAS_PHY_STATS) { + e1000e_update_phy_stats(adapter); + } else { + adapter->stats.scc += er32(SCC); + adapter->stats.ecol += er32(ECOL); + adapter->stats.mcc += er32(MCC); + adapter->stats.latecol += er32(LATECOL); + adapter->stats.dc += er32(DC); + + hw->mac.collision_delta = er32(COLC); + + if ((hw->mac.type != e1000_82574) && + (hw->mac.type != e1000_82583)) + adapter->stats.tncrs += er32(TNCRS); + } + adapter->stats.colc += hw->mac.collision_delta; } + adapter->stats.xonrxc += er32(XONRXC); adapter->stats.xontxc += er32(XONTXC); adapter->stats.xoffrxc += er32(XOFFRXC); adapter->stats.xofftxc += er32(XOFFTXC); adapter->stats.gptc += er32(GPTC); adapter->stats.gotc += er32(GOTCL); - er32(GOTCH); /* Clear gotc */ + er32(GOTCH); /* Clear gotc */ adapter->stats.rnbc += er32(RNBC); adapter->stats.ruc += er32(RUC); @@ -4036,58 +5507,61 @@ void e1000e_update_stats(struct e1000_adapter *adapter) hw->mac.tx_packet_delta = er32(TPT); adapter->stats.tpt += hw->mac.tx_packet_delta; - if ((hw->phy.type == e1000_phy_82578) || - (hw->phy.type == e1000_phy_82577)) { - e1e_rphy(hw, HV_COLC_UPPER, &phy_data); - if (!e1e_rphy(hw, HV_COLC_LOWER, &phy_data)) - hw->mac.collision_delta = phy_data; - } else { - hw->mac.collision_delta = er32(COLC); - } - adapter->stats.colc += hw->mac.collision_delta; adapter->stats.algnerrc += er32(ALGNERRC); adapter->stats.rxerrc += er32(RXERRC); - if ((hw->phy.type == e1000_phy_82578) || - (hw->phy.type == e1000_phy_82577)) { - e1e_rphy(hw, HV_TNCRS_UPPER, &phy_data); - if (!e1e_rphy(hw, HV_TNCRS_LOWER, &phy_data)) - adapter->stats.tncrs += phy_data; - } else { - if ((hw->mac.type != e1000_82574) && - (hw->mac.type != e1000_82583)) - adapter->stats.tncrs += er32(TNCRS); - } adapter->stats.cexterr += er32(CEXTERR); adapter->stats.tsctc += er32(TSCTC); adapter->stats.tsctfc += er32(TSCTFC); /* Fill out the OS statistics structure */ +#ifdef HAVE_NETDEV_STATS_IN_NETDEV + netdev->stats.multicast = adapter->stats.mprc; + netdev->stats.collisions = adapter->stats.colc; +#else adapter->net_stats.multicast = adapter->stats.mprc; adapter->net_stats.collisions = adapter->stats.colc; +#endif /* Rx Errors */ - /* - * RLEC on some newer hardware can be incorrect so build + /* RLEC on some newer hardware can be incorrect so build * our own version based on RUC and ROC */ +#ifdef HAVE_NETDEV_STATS_IN_NETDEV + netdev->stats.rx_errors = adapter->stats.rxerrc + +#else adapter->net_stats.rx_errors = adapter->stats.rxerrc + - adapter->stats.crcerrs + adapter->stats.algnerrc + - adapter->stats.ruc + adapter->stats.roc + - adapter->stats.cexterr; +#endif + adapter->stats.crcerrs + adapter->stats.algnerrc + + adapter->stats.ruc + adapter->stats.roc + adapter->stats.cexterr; +#ifdef HAVE_NETDEV_STATS_IN_NETDEV + netdev->stats.rx_length_errors = adapter->stats.ruc + + adapter->stats.roc; + netdev->stats.rx_crc_errors = adapter->stats.crcerrs; + netdev->stats.rx_frame_errors = adapter->stats.algnerrc; + netdev->stats.rx_missed_errors = adapter->stats.mpc; +#else adapter->net_stats.rx_length_errors = adapter->stats.ruc + - adapter->stats.roc; + adapter->stats.roc; adapter->net_stats.rx_crc_errors = adapter->stats.crcerrs; adapter->net_stats.rx_frame_errors = adapter->stats.algnerrc; adapter->net_stats.rx_missed_errors = adapter->stats.mpc; +#endif /* Tx Errors */ +#ifdef HAVE_NETDEV_STATS_IN_NETDEV + netdev->stats.tx_errors = adapter->stats.ecol + adapter->stats.latecol; + netdev->stats.tx_aborted_errors = adapter->stats.ecol; + netdev->stats.tx_window_errors = adapter->stats.latecol; + netdev->stats.tx_carrier_errors = adapter->stats.tncrs; +#else adapter->net_stats.tx_errors = adapter->stats.ecol + - adapter->stats.latecol; + adapter->stats.latecol; adapter->net_stats.tx_aborted_errors = adapter->stats.ecol; adapter->net_stats.tx_window_errors = adapter->stats.latecol; adapter->net_stats.tx_carrier_errors = adapter->stats.tncrs; +#endif /* Tx Dropped needs to be maintained elsewhere */ @@ -4095,6 +5569,17 @@ void e1000e_update_stats(struct e1000_adapter *adapter) adapter->stats.mgptc += er32(MGTPTC); adapter->stats.mgprc += er32(MGTPRC); adapter->stats.mgpdc += er32(MGTPDC); + + /* Correctable ECC Errors */ + if ((hw->mac.type == e1000_pch_lpt) || (hw->mac.type == e1000_pch_spt)) { + u32 pbeccsts = er32(PBECCSTS); + + adapter->corr_errors += + pbeccsts & E1000_PBECCSTS_CORR_ERR_CNT_MASK; + adapter->uncorr_errors += + (pbeccsts & E1000_PBECCSTS_UNCORR_ERR_CNT_MASK) >> + E1000_PBECCSTS_UNCORR_ERR_CNT_SHIFT; + } } #ifdef SIOCGMIIPHY @@ -4106,23 +5591,24 @@ static void e1000_phy_read_status(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; struct e1000_phy_regs *phy = &adapter->phy_regs; - int ret_val; - if ((er32(STATUS) & E1000_STATUS_LU) && + if (!pm_runtime_suspended((pci_dev_to_dev(adapter->pdev))->parent) && + (er32(STATUS) & E1000_STATUS_LU) && (adapter->hw.phy.media_type == e1000_media_type_copper)) { - ret_val = e1e_rphy(hw, PHY_CONTROL, &phy->bmcr); - ret_val |= e1e_rphy(hw, PHY_STATUS, &phy->bmsr); - ret_val |= e1e_rphy(hw, PHY_AUTONEG_ADV, &phy->advertise); - ret_val |= e1e_rphy(hw, PHY_LP_ABILITY, &phy->lpa); - ret_val |= e1e_rphy(hw, PHY_AUTONEG_EXP, &phy->expansion); - ret_val |= e1e_rphy(hw, PHY_1000T_CTRL, &phy->ctrl1000); - ret_val |= e1e_rphy(hw, PHY_1000T_STATUS, &phy->stat1000); - ret_val |= e1e_rphy(hw, PHY_EXT_STATUS, &phy->estatus); + int ret_val; + + ret_val = e1e_rphy(hw, MII_BMCR, &phy->bmcr); + ret_val |= e1e_rphy(hw, MII_BMSR, &phy->bmsr); + ret_val |= e1e_rphy(hw, MII_ADVERTISE, &phy->advertise); + ret_val |= e1e_rphy(hw, MII_LPA, &phy->lpa); + ret_val |= e1e_rphy(hw, MII_EXPANSION, &phy->expansion); + ret_val |= e1e_rphy(hw, MII_CTRL1000, &phy->ctrl1000); + ret_val |= e1e_rphy(hw, MII_STAT1000, &phy->stat1000); + ret_val |= e1e_rphy(hw, MII_ESTATUS, &phy->estatus); if (ret_val) e_warn("Error reading PHY register\n"); } else { - /* - * Do not read PHY registers if link is not up + /* Do not read PHY registers if link is not up * Set values to typical power-on defaults */ phy->bmcr = (BMCR_SPEED1000 | BMCR_ANENABLE | BMCR_FULLDPLX); @@ -4146,26 +5632,21 @@ static void e1000_print_link_info(struct e1000_adapter *adapter) u32 ctrl = er32(CTRL); /* Link status message must follow this format for user tools */ - printk(KERN_INFO "e1000e: %s NIC Link is Up %d Mbps %s, " - "Flow Control: %s\n", - adapter->netdev->name, - adapter->link_speed, - (adapter->link_duplex == FULL_DUPLEX) ? - "Full Duplex" : "Half Duplex", - ((ctrl & E1000_CTRL_TFCE) && (ctrl & E1000_CTRL_RFCE)) ? - "RX/TX" : - ((ctrl & E1000_CTRL_RFCE) ? "RX" : - ((ctrl & E1000_CTRL_TFCE) ? "TX" : "None"))); + pr_info("%s NIC Link is Up %d Mbps %s Duplex, Flow Control: %s\n", + adapter->netdev->name, adapter->link_speed, + adapter->link_duplex == FULL_DUPLEX ? "Full" : "Half", + (ctrl & E1000_CTRL_TFCE) && (ctrl & E1000_CTRL_RFCE) ? "Rx/Tx" : + (ctrl & E1000_CTRL_RFCE) ? "Rx" : + (ctrl & E1000_CTRL_TFCE) ? "Tx" : "None"); } -bool e1000_has_link(struct e1000_adapter *adapter) +static bool e1000e_has_link(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; - bool link_active = 0; + bool link_active = false; s32 ret_val = 0; - /* - * get_link_status is set on LSC (link status) interrupt or + /* get_link_status is set on LSC (link status) interrupt or * Rx sequence error interrupt. get_link_status will stay * false until the check_for_link establishes link * for copper adapters ONLY @@ -4176,7 +5657,7 @@ bool e1000_has_link(struct e1000_adapter *adapter) ret_val = hw->mac.ops.check_for_link(hw); link_active = !hw->mac.get_link_status; } else { - link_active = 1; + link_active = true; } break; case e1000_media_type_fiber: @@ -4205,11 +5686,31 @@ static void e1000e_enable_receives(struct e1000_adapter *adapter) { /* make sure the receive unit is started */ if ((adapter->flags & FLAG_RX_NEEDS_RESTART) && - (adapter->flags & FLAG_RX_RESTART_NOW)) { + (adapter->flags & FLAG_RESTART_NOW)) { struct e1000_hw *hw = &adapter->hw; u32 rctl = er32(RCTL); + ew32(RCTL, rctl | E1000_RCTL_EN); - adapter->flags &= ~FLAG_RX_RESTART_NOW; + adapter->flags &= ~FLAG_RESTART_NOW; + } +} + +static void e1000e_check_82574_phy_workaround(struct e1000_adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + + /* With 82574 controllers, PHY needs to be checked periodically + * for hung state and reset, if two calls return true + */ + if (e1000_check_phy_82574(hw)) + adapter->phy_hang_count++; + else + adapter->phy_hang_count = 0; + + if (adapter->phy_hang_count > 1) { + adapter->phy_hang_count = 0; + e_dbg("PHY appears hung - resetting\n"); + schedule_work(&adapter->reset_task); } } @@ -4219,7 +5720,7 @@ static void e1000e_enable_receives(struct e1000_adapter *adapter) **/ static void e1000_watchdog(unsigned long data) { - struct e1000_adapter *adapter = (struct e1000_adapter *) data; + struct e1000_adapter *adapter = (struct e1000_adapter *)data; /* Do the rest outside of interrupt context */ schedule_work(&adapter->watchdog_task); @@ -4230,22 +5731,48 @@ static void e1000_watchdog(unsigned long data) static void e1000_watchdog_task(struct work_struct *work) { struct e1000_adapter *adapter = container_of(work, - struct e1000_adapter, watchdog_task); + struct e1000_adapter, + watchdog_task); struct net_device *netdev = adapter->netdev; struct e1000_mac_info *mac = &adapter->hw.mac; struct e1000_phy_info *phy = &adapter->hw.phy; struct e1000_ring *tx_ring = adapter->tx_ring; struct e1000_hw *hw = &adapter->hw; u32 link, tctl; - int tx_pending = 0; +#ifdef DYNAMIC_LTR_SUPPORT + if (test_bit(__E1000_DOWN, &adapter->state)) { + if (adapter->c10_demote_ltr) { + adapter->c10_demote_ltr = false; + e1000_demote_ltr(hw, adapter->c10_demote_ltr, false); + } + return; + } +#else + if (test_bit(__E1000_DOWN, &adapter->state)) + return; +#endif /* DYNAMIC_LTR_SUPPORT */ + +#ifdef __VMKLNX__ + /* Restart the queue on behalf of e1000_clean_tx_irq, in cases it + * doesn't get chance to do it, e.g. when log spew affects scheduling. + */ + if ((netif_carrier_ok(netdev)) && + (netif_queue_stopped(netdev)) && + (e1000_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD)) { + netif_wake_queue(netdev); + ++adapter->restart_queue; + } +#endif /* __VMKLNX__ */ - link = e1000_has_link(adapter); + link = e1000e_has_link(adapter); if ((netif_carrier_ok(netdev)) && link) { + /* Cancel scheduled suspend requests. */ + pm_runtime_resume(netdev->dev.parent); + e1000e_enable_receives(adapter); goto link_up; } - -#ifdef NETIF_F_HW_VLAN_TX +#if defined(NETIF_F_HW_VLAN_TX) || defined(NETIF_F_HW_VLAN_CTAG_TX) if ((e1000e_enable_tx_pkt_filtering(hw)) && (adapter->mng_vlan_id != adapter->hw.mng_cookie.vlan_id)) e1000_update_mng_vlan(adapter); @@ -4253,70 +5780,69 @@ static void e1000_watchdog_task(struct work_struct *work) #endif if (link) { if (!netif_carrier_ok(netdev)) { - bool txb2b = 1; + bool txb2b = true; + + /* Cancel scheduled suspend requests. */ + pm_runtime_resume(netdev->dev.parent); + #ifdef SIOCGMIIPHY /* update snapshot of PHY registers on LSC */ e1000_phy_read_status(adapter); #endif mac->ops.get_link_up_info(&adapter->hw, - &adapter->link_speed, - &adapter->link_duplex); + &adapter->link_speed, + &adapter->link_duplex); e1000_print_link_info(adapter); - /* - * On supported PHYs, check for duplex mismatch only + + /* check if SmartSpeed worked */ + e1000e_check_downshift(hw); + if (phy->speed_downgraded) + netdev_warn(netdev, + "Link Speed was downgraded by SmartSpeed\n"); + + /* On supported PHYs, check for duplex mismatch only * if link has autonegotiated at 10/100 half */ if ((hw->phy.type == e1000_phy_igp_3 || hw->phy.type == e1000_phy_bm) && - (hw->mac.autoneg == true) && + hw->mac.autoneg && (adapter->link_speed == SPEED_10 || adapter->link_speed == SPEED_100) && (adapter->link_duplex == HALF_DUPLEX)) { u16 autoneg_exp; - e1e_rphy(hw, PHY_AUTONEG_EXP, &autoneg_exp); + e1e_rphy(hw, MII_EXPANSION, &autoneg_exp); - if (!(autoneg_exp & NWAY_ER_LP_NWAY_CAPS)) - e_info("Autonegotiated half duplex but" - " link partner cannot autoneg. " - " Try forcing full duplex if " - "link gets many collisions.\n"); + if (!(autoneg_exp & EXPANSION_NWAY)) + e_info("Autonegotiated half duplex but link partner cannot autoneg. Try forcing full duplex if link gets many collisions.\n"); } - /* - * tweak tx_queue_len according to speed/duplex - * and adjust the timeout factor - */ - netdev->tx_queue_len = adapter->tx_queue_len; + /* adjust timeout factor according to speed/duplex */ adapter->tx_timeout_factor = 1; switch (adapter->link_speed) { case SPEED_10: - txb2b = 0; - netdev->tx_queue_len = 10; + txb2b = false; adapter->tx_timeout_factor = 16; break; case SPEED_100: - txb2b = 0; - netdev->tx_queue_len = 100; + txb2b = false; adapter->tx_timeout_factor = 10; break; } - /* - * workaround: re-program speed mode bit after + /* workaround: re-program speed mode bit after * link-up event */ if ((adapter->flags & FLAG_TARC_SPEED_MODE_BIT) && !txb2b) { u32 tarc0; + tarc0 = er32(TARC(0)); tarc0 &= ~SPEED_MODE_BIT; ew32(TARC(0), tarc0); } - #ifdef NETIF_F_TSO - /* - * disable TSO for pcie and 10/100 speeds, to avoid + /* disable TSO for pcie and 10/100 speeds, to avoid * some hardware issues */ if (!(adapter->flags & FLAG_TSO_FORCE)) { @@ -4342,23 +5868,33 @@ static void e1000_watchdog_task(struct work_struct *work) } #endif - /* - * enable transmits in the hardware, need to do this +#ifdef __VMKLNX__ + /* move this (enabling TX) to e1000e_up in VMKLinux to + * avoid a race between watchdog and e1000e_down + */ + tctl = 0; /* avoid 'tctl' unused warning */ +#else + /* enable transmits in the hardware, need to do this * after setting TARC(0) */ tctl = er32(TCTL); tctl |= E1000_TCTL_EN; ew32(TCTL, tctl); +#endif /* __VMKLNX__ */ - /* - * Perform any post-link-up configuration before + /* Perform any post-link-up configuration before * reporting link up. */ if (phy->ops.cfg_on_link_up) phy->ops.cfg_on_link_up(hw); - +#ifdef __VMKLNX__ + /* Start TX queue on turning on the carrier, to avoid + * VMKLinux's watchdog bark when TX queue starting in + * clean_tx_irq is delayed. */ + netif_wake_queue(netdev); + ++adapter->restart_queue; +#endif /* __VMKLNX__ */ netif_carrier_on(netdev); - netif_tx_wake_all_queues(netdev); if (!test_bit(__E1000_DOWN, &adapter->state)) mod_timer(&adapter->phy_info_timer, @@ -4369,20 +5905,38 @@ static void e1000_watchdog_task(struct work_struct *work) adapter->link_speed = 0; adapter->link_duplex = 0; /* Link status message must follow this format */ - printk(KERN_INFO "e1000e: %s NIC Link is Down\n", - adapter->netdev->name); + pr_info("%s NIC Link is Down\n", adapter->netdev->name); netif_carrier_off(netdev); - netif_tx_stop_all_queues(netdev); - if (!test_bit(__E1000_DOWN, &adapter->state)) - mod_timer(&adapter->phy_info_timer, - round_jiffies(jiffies + 2 * HZ)); + /* 8000ES2LAN requires a Rx packet buffer work-around + * on link down event; reset the controller to flush + * the Rx packet buffer. + */ if (adapter->flags & FLAG_RX_NEEDS_RESTART) - schedule_work(&adapter->reset_task); + adapter->flags |= FLAG_RESTART_NOW; + else + pm_schedule_suspend(netdev->dev.parent, + LINK_TIMEOUT); } } link_up: +#ifdef DYNAMIC_LTR_SUPPORT + if (((hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_LM3) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_V3)) && + adapter->c10_demote_ltr && + (adapter->stats.mpc <= adapter->c10_mpc_count) && + ((adapter->c10_rx_bytes - adapter->stats.gorc) < + adapter->c10_pba_bytes)) { + adapter->c10_demote_ltr = false; + e1000_demote_ltr(hw, adapter->c10_demote_ltr, link); + } + adapter->c10_rx_bytes = adapter->total_rx_bytes; + +#endif /* DYNAMIC_LTR_SUPPORT */ +#ifdef HAVE_NDO_GET_STATS64 + spin_lock(&adapter->stats64_lock); +#endif e1000e_update_stats(adapter); mac->tx_packet_delta = adapter->stats.tpt - adapter->tpt_old; @@ -4394,43 +5948,75 @@ link_up: adapter->gorc_old = adapter->stats.gorc; adapter->gotc = adapter->stats.gotc - adapter->gotc_old; adapter->gotc_old = adapter->stats.gotc; +#ifdef HAVE_NDO_GET_STATS64 + spin_unlock(&adapter->stats64_lock); +#endif + + /* If the link is lost the controller stops DMA, but + * if there is queued Tx work it cannot be done. So + * reset the controller to flush the Tx packet buffers. + */ + if (!netif_carrier_ok(netdev) && + (e1000_desc_unused(tx_ring) + 1 < tx_ring->count)) + adapter->flags |= FLAG_RESTART_NOW; + + /* If reset is necessary, do it outside of interrupt context. */ + if (adapter->flags & FLAG_RESTART_NOW) { + schedule_work(&adapter->reset_task); + /* return immediately since reset is imminent */ + return; + } e1000e_update_adaptive(&adapter->hw); - if (!netif_carrier_ok(netdev)) { - tx_pending = (e1000_desc_unused(tx_ring) + 1 < - tx_ring->count); - if (tx_pending) { - /* - * We've lost link, so the controller stops DMA, - * but we've got queued Tx work that's never going - * to get done, so reset controller to flush Tx. - * (Do the reset outside of interrupt context). - */ - adapter->tx_timeout_count++; - schedule_work(&adapter->reset_task); - } + /* Simple mode for Interrupt Throttle Rate (ITR) */ + if (adapter->itr_setting == 4) { + /* Symmetric Tx/Rx gets a reduced ITR=2000; + * Total asymmetrical Tx or Rx gets ITR=8000; + * everyone else is between 2000-8000. + */ + u32 goc = (adapter->gotc + adapter->gorc) / 10000; + u32 dif = (adapter->gotc > adapter->gorc ? + adapter->gotc - adapter->gorc : + adapter->gorc - adapter->gotc) / 10000; + u32 itr = goc > 0 ? (dif * 6000 / goc + 2000) : 8000; + + e1000e_write_itr(adapter, itr); } /* Cause software interrupt to ensure Rx ring is cleaned */ -#ifdef CONFIG_E1000E_MSIX if (adapter->msix_entries) ew32(ICS, adapter->rx_ring->ims_val); else ew32(ICS, E1000_ICS_RXDMT0); -#else - ew32(ICS, E1000_ICS_RXDMT0); -#endif + + /* flush pending descriptors to memory before detecting Tx hang */ + e1000e_flush_descriptors(adapter); /* Force detection of hung controller every watchdog period */ - adapter->detect_tx_hung = 1; + adapter->detect_tx_hung = true; - /* - * With 82571 controllers, LAA may be overwritten due to controller + /* With 82571 controllers, LAA may be overwritten due to controller * reset from the other port. Set the appropriate LAA in RAR[0] */ if (e1000e_get_laa_state_82571(hw)) - e1000e_rar_set(hw, adapter->hw.mac.addr, 0); + hw->mac.ops.rar_set(hw, adapter->hw.mac.addr, 0); + + if (adapter->flags2 & FLAG2_CHECK_PHY_HANG) + e1000e_check_82574_phy_workaround(adapter); + +#ifdef HAVE_HW_TIME_STAMP + /* Clear valid timestamp stuck in RXSTMPL/H due to a Rx error */ + if (adapter->hwtstamp_config.rx_filter != HWTSTAMP_FILTER_NONE) { + if ((adapter->flags2 & FLAG2_CHECK_RX_HWTSTAMP) && + (er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_VALID)) { + er32(RXSTMPH); + adapter->rx_hwtstamp_cleared++; + } else { + adapter->flags2 |= FLAG2_CHECK_RX_HWTSTAMP; + } + } +#endif /* Reset the timer */ if (!test_bit(__E1000_DOWN, &adapter->state)) @@ -4442,30 +6028,28 @@ link_up: #define E1000_TX_FLAGS_VLAN 0x00000002 #define E1000_TX_FLAGS_TSO 0x00000004 #define E1000_TX_FLAGS_IPV4 0x00000008 +#define E1000_TX_FLAGS_NO_FCS 0x00000010 +#define E1000_TX_FLAGS_HWTSTAMP 0x00000020 #define E1000_TX_FLAGS_VLAN_MASK 0xffff0000 #define E1000_TX_FLAGS_VLAN_SHIFT 16 -static int e1000_tso(struct e1000_adapter *adapter, - struct sk_buff *skb) +static int e1000_tso(struct e1000_ring *tx_ring, struct sk_buff *skb) { #ifdef NETIF_F_TSO - struct e1000_ring *tx_ring = adapter->tx_ring; struct e1000_context_desc *context_desc; struct e1000_buffer *buffer_info; unsigned int i; u32 cmd_length = 0; - u16 ipcse = 0, tucse, mss; + u16 ipcse = 0, mss; u8 ipcss, ipcso, tucss, tucso, hdr_len; int err; if (!skb_is_gso(skb)) return 0; - if (skb_header_cloned(skb)) { - err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC); - if (err) - return err; - } + err = skb_cow_head(skb, 0); + if (err < 0) + return err; hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb); mss = skb_shinfo(skb)->gso_size; @@ -4474,38 +6058,37 @@ static int e1000_tso(struct e1000_adapter *adapter, iph->tot_len = 0; iph->check = 0; tcp_hdr(skb)->check = ~csum_tcpudp_magic(iph->saddr, iph->daddr, - 0, IPPROTO_TCP, 0); + 0, IPPROTO_TCP, 0); cmd_length = E1000_TXD_CMD_IP; ipcse = skb_transport_offset(skb) - 1; #ifdef NETIF_F_TSO6 - } else if (skb_shinfo(skb)->gso_type == SKB_GSO_TCPV6) { + } else if (skb_is_gso_v6(skb)) { ipv6_hdr(skb)->payload_len = 0; tcp_hdr(skb)->check = ~csum_ipv6_magic(&ipv6_hdr(skb)->saddr, - &ipv6_hdr(skb)->daddr, - 0, IPPROTO_TCP, 0); + &ipv6_hdr(skb)->daddr, + 0, IPPROTO_TCP, 0); ipcse = 0; -#endif +#endif /* NETIF_F_TSO6 */ } ipcss = skb_network_offset(skb); ipcso = (void *)&(ip_hdr(skb)->check) - (void *)skb->data; tucss = skb_transport_offset(skb); tucso = (void *)&(tcp_hdr(skb)->check) - (void *)skb->data; - tucse = 0; cmd_length |= (E1000_TXD_CMD_DEXT | E1000_TXD_CMD_TSE | - E1000_TXD_CMD_TCP | (skb->len - (hdr_len))); + E1000_TXD_CMD_TCP | (skb->len - (hdr_len))); i = tx_ring->next_to_use; context_desc = E1000_CONTEXT_DESC(*tx_ring, i); buffer_info = &tx_ring->buffer_info[i]; - context_desc->lower_setup.ip_fields.ipcss = ipcss; - context_desc->lower_setup.ip_fields.ipcso = ipcso; - context_desc->lower_setup.ip_fields.ipcse = cpu_to_le16(ipcse); + context_desc->lower_setup.ip_fields.ipcss = ipcss; + context_desc->lower_setup.ip_fields.ipcso = ipcso; + context_desc->lower_setup.ip_fields.ipcse = cpu_to_le16(ipcse); context_desc->upper_setup.tcp_fields.tucss = tucss; context_desc->upper_setup.tcp_fields.tucso = tucso; - context_desc->upper_setup.tcp_fields.tucse = cpu_to_le16(tucse); - context_desc->tcp_seg_setup.fields.mss = cpu_to_le16(mss); + context_desc->upper_setup.tcp_fields.tucse = 0; + context_desc->tcp_seg_setup.fields.mss = cpu_to_le16(mss); context_desc->tcp_seg_setup.fields.hdr_len = hdr_len; context_desc->cmd_and_length = cpu_to_le32(cmd_length); @@ -4518,42 +6101,55 @@ static int e1000_tso(struct e1000_adapter *adapter, tx_ring->next_to_use = i; return 1; -#else +#else /* NETIF_F_TSO */ return 0; -#endif +#endif /* NETIF_F_TSO */ } -static bool e1000_tx_csum(struct e1000_adapter *adapter, struct sk_buff *skb) +static bool e1000_tx_csum(struct e1000_ring *tx_ring, struct sk_buff *skb) { - struct e1000_ring *tx_ring = adapter->tx_ring; +#ifndef __VMKLNX__ + struct e1000_adapter *adapter = tx_ring->adapter; +#endif /* !__VMKLNX__ */ struct e1000_context_desc *context_desc; struct e1000_buffer *buffer_info; unsigned int i; u8 css; u32 cmd_len = E1000_TXD_CMD_DEXT; + __be16 protocol; if (skb->ip_summed != CHECKSUM_PARTIAL) - return 0; + return false; + +#if defined(NETIF_F_HW_VLAN_TX) || defined(NETIF_F_HW_VLAN_CTAG_TX) + if (skb->protocol == cpu_to_be16(ETH_P_8021Q)) + protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto; + else + protocol = skb->protocol; +#else + protocol = skb->protocol; +#endif - switch (skb->protocol) { - case __constant_htons(ETH_P_IP): + switch (protocol) { + case cpu_to_be16(ETH_P_IP): if (ip_hdr(skb)->protocol == IPPROTO_TCP) cmd_len |= E1000_TXD_CMD_TCP; break; - case __constant_htons(ETH_P_IPV6): + case cpu_to_be16(ETH_P_IPV6): /* XXX not handling all IPV6 headers */ if (ipv6_hdr(skb)->nexthdr == IPPROTO_TCP) cmd_len |= E1000_TXD_CMD_TCP; break; default: -#if !defined(__VMKLNX__) +#ifndef __VMKLNX__ if (unlikely(net_ratelimit())) - e_warn("checksum_partial proto=%x!\n", skb->protocol); -#endif + e_warn("checksum_partial proto=%x!\n", + be16_to_cpu(protocol)); +#endif /* !__VMKLNX__ */ break; } - css = skb_transport_offset(skb); + css = skb_checksum_start_offset(skb); i = tx_ring->next_to_use; buffer_info = &tx_ring->buffer_info[i]; @@ -4561,8 +6157,7 @@ static bool e1000_tx_csum(struct e1000_adapter *adapter, struct sk_buff *skb) context_desc->lower_setup.ip_config = 0; context_desc->upper_setup.tcp_fields.tucss = css; - context_desc->upper_setup.tcp_fields.tucso = - css + skb->csum_offset; + context_desc->upper_setup.tcp_fields.tucso = css + skb->csum_offset; context_desc->upper_setup.tcp_fields.tucse = 0; context_desc->tcp_seg_setup.data = 0; context_desc->cmd_and_length = cpu_to_le32(cmd_len); @@ -4575,23 +6170,19 @@ static bool e1000_tx_csum(struct e1000_adapter *adapter, struct sk_buff *skb) i = 0; tx_ring->next_to_use = i; - return 1; + return true; } -#define E1000_MAX_PER_TXD 8192 -#define E1000_MAX_TXD_PWR 12 - -static int e1000_tx_map(struct e1000_adapter *adapter, - struct sk_buff *skb, unsigned int first, - unsigned int max_per_txd, unsigned int nr_frags, - unsigned int mss) +static int e1000_tx_map(struct e1000_ring *tx_ring, struct sk_buff *skb, + unsigned int first, unsigned int max_per_txd, + unsigned int nr_frags) { - struct e1000_ring *tx_ring = adapter->tx_ring; + struct e1000_adapter *adapter = tx_ring->adapter; struct pci_dev *pdev = adapter->pdev; struct e1000_buffer *buffer_info; - unsigned int len = skb->len - skb->data_len; + unsigned int len = skb_headlen(skb); unsigned int offset = 0, size, count = 0, i; - unsigned int f; + unsigned int f, bytecount, segs; i = tx_ring->next_to_use; @@ -4600,92 +6191,93 @@ static int e1000_tx_map(struct e1000_adapter *adapter, size = min(len, max_per_txd); buffer_info->length = size; - /* set time_stamp *before* dma to help avoid a possible race */ buffer_info->time_stamp = jiffies; - buffer_info->dma = - pci_map_single(pdev, - skb->data + offset, - size, - PCI_DMA_TODEVICE); - if (pci_dma_mapping_error(pdev, buffer_info->dma)) - goto dma_mapping_error; - buffer_info->next_to_watch = i; + buffer_info->dma = dma_map_single(pci_dev_to_dev(pdev), + skb->data + offset, + size, DMA_TO_DEVICE); + buffer_info->mapped_as_page = false; + if (dma_mapping_error(pci_dev_to_dev(pdev), buffer_info->dma)) + goto dma_error; len -= size; offset += size; count++; - i++; - if (i == tx_ring->count) - i = 0; + + if (len) { + i++; + if (i == tx_ring->count) + i = 0; + } } for (f = 0; f < nr_frags; f++) { - struct skb_frag_struct *frag; + const struct skb_frag_struct *frag; frag = &skb_shinfo(skb)->frags[f]; - len = frag->size; - offset = frag->page_offset; + len = skb_frag_size(frag); + offset = 0; while (len) { + i++; + if (i == tx_ring->count) + i = 0; + buffer_info = &tx_ring->buffer_info[i]; size = min(len, max_per_txd); buffer_info->length = size; buffer_info->time_stamp = jiffies; - buffer_info->dma = - pci_map_page(pdev, - frag->page, - offset, - size, - PCI_DMA_TODEVICE); - if (pci_dma_mapping_error(pdev, buffer_info->dma)) - goto dma_mapping_error; - buffer_info->next_to_watch = i; + buffer_info->dma = + skb_frag_dma_map(pci_dev_to_dev(pdev), frag, offset, + size, DMA_TO_DEVICE); + buffer_info->mapped_as_page = true; + if (dma_mapping_error + (pci_dev_to_dev(pdev), buffer_info->dma)) + goto dma_error; len -= size; offset += size; count++; - - i++; - if (i == tx_ring->count) - i = 0; } } - if (i == 0) - i = tx_ring->count - 1; - else - i--; +#ifdef NETIF_F_TSO + segs = skb_shinfo(skb)->gso_segs ? : 1; +#else + segs = 1; +#endif + /* multiply data chunks by size of headers */ + bytecount = ((segs - 1) * skb_headlen(skb)) + skb->len; tx_ring->buffer_info[i].skb = skb; + tx_ring->buffer_info[i].segs = segs; + tx_ring->buffer_info[i].bytecount = bytecount; tx_ring->buffer_info[first].next_to_watch = i; return count; -dma_mapping_error: - - dev_err(&pdev->dev, "TX DMA map failed\n"); +dma_error: + dev_err(pci_dev_to_dev(pdev), "Tx DMA map failed\n"); buffer_info->dma = 0; - count--; - - while (count >=0) { + if (count) count--; + + while (count--) { + if (i == 0) + i += tx_ring->count; i--; - if (i < 0) - i+= tx_ring->count; buffer_info = &tx_ring->buffer_info[i]; - e1000_put_txbuf(adapter, buffer_info);; + e1000_put_txbuf(tx_ring, buffer_info); } - return count; + return 0; } -static void e1000_tx_queue(struct e1000_adapter *adapter, - int tx_flags, int count) +static void e1000_tx_queue(struct e1000_ring *tx_ring, int tx_flags, int count) { - struct e1000_ring *tx_ring = adapter->tx_ring; + struct e1000_adapter *adapter = tx_ring->adapter; struct e1000_tx_desc *tx_desc = NULL; struct e1000_buffer *buffer_info; u32 txd_upper = 0, txd_lower = E1000_TXD_CMD_IFCS; @@ -4693,7 +6285,7 @@ static void e1000_tx_queue(struct e1000_adapter *adapter, if (tx_flags & E1000_TX_FLAGS_TSO) { txd_lower |= E1000_TXD_CMD_DEXT | E1000_TXD_DTYP_D | - E1000_TXD_CMD_TSE; + E1000_TXD_CMD_TSE; txd_upper |= E1000_TXD_POPTS_TXSM << 8; if (tx_flags & E1000_TX_FLAGS_IPV4) @@ -4710,25 +6302,38 @@ static void e1000_tx_queue(struct e1000_adapter *adapter, txd_upper |= (tx_flags & E1000_TX_FLAGS_VLAN_MASK); } + if (unlikely(tx_flags & E1000_TX_FLAGS_NO_FCS)) + txd_lower &= ~(E1000_TXD_CMD_IFCS); + +#ifdef HAVE_HW_TIME_STAMP + if (unlikely(tx_flags & E1000_TX_FLAGS_HWTSTAMP)) { + txd_lower |= E1000_TXD_CMD_DEXT | E1000_TXD_DTYP_D; + txd_upper |= E1000_TXD_EXTCMD_TSTAMP; + } +#endif + i = tx_ring->next_to_use; - while (count--) { + do { buffer_info = &tx_ring->buffer_info[i]; tx_desc = E1000_TX_DESC(*tx_ring, i); tx_desc->buffer_addr = cpu_to_le64(buffer_info->dma); - tx_desc->lower.data = - cpu_to_le32(txd_lower | buffer_info->length); + tx_desc->lower.data = cpu_to_le32(txd_lower | + buffer_info->length); tx_desc->upper.data = cpu_to_le32(txd_upper); i++; if (i == tx_ring->count) i = 0; - } + } while (--count > 0); tx_desc->lower.data |= cpu_to_le32(adapter->txd_cmd); - /* - * Force memory writes to complete before letting h/w + /* txd_cmd re-enables FCS, so we'll re-disable it here as desired. */ + if (unlikely(tx_flags & E1000_TX_FLAGS_NO_FCS)) + tx_desc->lower.data &= ~(cpu_to_le32(E1000_TXD_CMD_IFCS)); + + /* Force memory writes to complete before letting h/w * know there are new descriptors to fetch. (Only * applicable for weak-ordered memory model archs, * such as IA-64). @@ -4736,9 +6341,13 @@ static void e1000_tx_queue(struct e1000_adapter *adapter, wmb(); tx_ring->next_to_use = i; - writel(i, adapter->hw.hw_addr + tx_ring->tail); - /* - * we need this if more than one processor can write to our tail + + if (adapter->flags2 & FLAG2_PCIM2PCI_ARBITER_WA) + e1000e_update_tdt_wa(tx_ring, i); + else + writel(i, tx_ring->tail); + + /* we need this if more than one processor can write to our tail * at a time, it synchronizes IO on IA64/Altix systems */ mmiowb(); @@ -4748,26 +6357,25 @@ static void e1000_tx_queue(struct e1000_adapter *adapter, static int e1000_transfer_dhcp_info(struct e1000_adapter *adapter, struct sk_buff *skb) { - struct e1000_hw *hw = &adapter->hw; + struct e1000_hw *hw = &adapter->hw; u16 length, offset; -#ifdef NETIF_F_HW_VLAN_TX - if (vlan_tx_tag_present(skb)) { - if (!((vlan_tx_tag_get(skb) == adapter->hw.mng_cookie.vlan_id) - && (adapter->hw.mng_cookie.status & - E1000_MNG_DHCP_COOKIE_STATUS_VLAN))) - return 0; - } +#if defined(NETIF_F_HW_VLAN_TX) || defined(NETIF_F_HW_VLAN_CTAG_TX) + if (vlan_tx_tag_present(skb) && + !((vlan_tx_tag_get(skb) == adapter->hw.mng_cookie.vlan_id) && + (adapter->hw.mng_cookie.status & + E1000_MNG_DHCP_COOKIE_STATUS_VLAN))) + return 0; #endif if (skb->len <= MINIMUM_DHCP_PACKET_SIZE) return 0; - if (((struct ethhdr *) skb->data)->h_proto != htons(ETH_P_IP)) + if (((struct ethhdr *)skb->data)->h_proto != htons(ETH_P_IP)) return 0; { - const struct iphdr *ip = (struct iphdr *)((u8 *)skb->data+14); + const struct iphdr *ip = (struct iphdr *)((u8 *)skb->data + 14); struct udphdr *udp; if (ip->protocol != IPPROTO_UDP) @@ -4785,53 +6393,48 @@ static int e1000_transfer_dhcp_info(struct e1000_adapter *adapter, return 0; } -static int __e1000_maybe_stop_tx(struct net_device *netdev, int size) +static int __e1000_maybe_stop_tx(struct e1000_ring *tx_ring, int size) { - struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_adapter *adapter = tx_ring->adapter; - netif_stop_queue(netdev); - /* - * Herbert's original patch had: + netif_stop_queue(adapter->netdev); + /* Herbert's original patch had: * smp_mb__after_netif_stop_queue(); * but since that doesn't exist yet, just open code it. */ smp_mb(); - /* - * We need to check again in a case another CPU has just + /* We need to check again in a case another CPU has just * made room available. */ - if (e1000_desc_unused(adapter->tx_ring) < size) + if (e1000_desc_unused(tx_ring) < size) return -EBUSY; /* A reprieve! */ - netif_start_queue(netdev); + netif_start_queue(adapter->netdev); ++adapter->restart_queue; return 0; } -static int e1000_maybe_stop_tx(struct net_device *netdev, int size) +static int e1000_maybe_stop_tx(struct e1000_ring *tx_ring, int size) { - struct e1000_adapter *adapter = netdev_priv(netdev); + BUG_ON(size > tx_ring->count); - if (e1000_desc_unused(adapter->tx_ring) >= size) + if (e1000_desc_unused(tx_ring) >= size) return 0; - return __e1000_maybe_stop_tx(netdev, size); + return __e1000_maybe_stop_tx(tx_ring, size); } -#define TXD_USE_COUNT(S, X) (((S) >> (X)) + 1) static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb, - struct net_device *netdev) + struct net_device *netdev) { struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_ring *tx_ring = adapter->tx_ring; unsigned int first; - unsigned int max_per_txd = E1000_MAX_PER_TXD; - unsigned int max_txd_pwr = E1000_MAX_TXD_PWR; unsigned int tx_flags = 0; - unsigned int len = skb->len - skb->data_len; + unsigned int len = skb_headlen(skb); unsigned int nr_frags; - unsigned int mss = 0; + unsigned int mss; int count = 0; int tso; unsigned int f; @@ -4846,53 +6449,48 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb, return NETDEV_TX_OK; } + /* The minimum packet size with TCTL.PSP set is 17 bytes so + * pad skb in order to meet this minimum size requirement + */ + if (unlikely(skb->len < 17)) { + if (skb_pad(skb, 17 - skb->len)) + return NETDEV_TX_OK; + skb->len = 17; + skb_set_tail_pointer(skb, 17); + } #ifdef NETIF_F_TSO mss = skb_shinfo(skb)->gso_size; - /* - * The controller does a simple calculation to - * make sure there is enough room in the FIFO before - * initiating the DMA for each buffer. The calc is: - * 4 = ceil(buffer len/mss). To make sure we don't - * overrun the FIFO, adjust the max buffer len if mss - * drops. - */ if (mss) { u8 hdr_len; - max_per_txd = min(mss << 2, max_per_txd); - max_txd_pwr = fls(max_per_txd) - 1; - /* - * TSO Workaround for 82571/2/3 Controllers -- if skb->data + /* TSO Workaround for 82571/2/3 Controllers -- if skb->data * points to just header, pull a few bytes of payload from * frags into skb->data */ hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb); - #ifdef __VMKLNX__ /* * The tcp header plus four bytes must fit in the first * segment otherwise the pnic gets wedged. */ - if (max_per_txd <= (hdr_len + 4)) { + if (adapter->tx_fifo_limit <= (hdr_len + 4)) { dev_kfree_skb_any(skb); return NETDEV_TX_OK; } #endif /* __VMKLNX__ */ - - /* - * we do this workaround for ES2LAN, but it is un-necessary, + /* we do this workaround for ES2LAN, but it is un-necessary, * avoiding it could save a lot of cycles */ if (skb->data_len && (hdr_len == len)) { unsigned int pull_size; - pull_size = min((unsigned int)4, skb->data_len); + pull_size = min_t(unsigned int, 4, skb->data_len); if (!__pskb_pull_tail(skb, pull_size)) { e_err("__pskb_pull_tail failed.\n"); dev_kfree_skb_any(skb); return NETDEV_TX_OK; } - len = skb->len - skb->data_len; + len = skb_headlen(skb); } } @@ -4901,39 +6499,37 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb, count++; count++; #else + mss = 0; + if (skb->ip_summed == CHECKSUM_PARTIAL) - count++; + count++; #endif - count += TXD_USE_COUNT(len, max_txd_pwr); + count += DIV_ROUND_UP(len, adapter->tx_fifo_limit); nr_frags = skb_shinfo(skb)->nr_frags; for (f = 0; f < nr_frags; f++) - count += TXD_USE_COUNT(skb_shinfo(skb)->frags[f].size, - max_txd_pwr); + count += DIV_ROUND_UP(skb_frag_size(&skb_shinfo(skb)->frags[f]), + adapter->tx_fifo_limit); if (adapter->hw.mac.tx_pkt_filtering) e1000_transfer_dhcp_info(adapter, skb); - - /* - * need: count + 2 desc gap to keep tail from touching + /* need: count + 2 desc gap to keep tail from touching * head, otherwise try next time */ - if (e1000_maybe_stop_tx(netdev, count + 2)) { + if (e1000_maybe_stop_tx(tx_ring, count + 2)) return NETDEV_TX_BUSY; - } -#ifdef NETIF_F_HW_VLAN_TX - if (adapter->vlgrp && vlan_tx_tag_present(skb)) { +#if defined(NETIF_F_HW_VLAN_TX) || defined(NETIF_F_HW_VLAN_CTAG_TX) + if (vlan_tx_tag_present(skb)) { tx_flags |= E1000_TX_FLAGS_VLAN; tx_flags |= (vlan_tx_tag_get(skb) << E1000_TX_FLAGS_VLAN_SHIFT); } - #endif first = tx_ring->next_to_use; - tso = e1000_tso(adapter, skb); + tso = e1000_tso(tx_ring, skb); if (tso < 0) { dev_kfree_skb_any(skb); return NETDEV_TX_OK; @@ -4941,32 +6537,67 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb, if (tso) tx_flags |= E1000_TX_FLAGS_TSO; - else if (e1000_tx_csum(adapter, skb)) + else if (e1000_tx_csum(tx_ring, skb)) tx_flags |= E1000_TX_FLAGS_CSUM; - /* - * Old method was to assume IPv4 packet by default if TSO was enabled. + /* Old method was to assume IPv4 packet by default if TSO was enabled. * 82571 hardware supports TSO capabilities for IPv6 as well... * no longer assume, we must. */ if (skb->protocol == htons(ETH_P_IP)) tx_flags |= E1000_TX_FLAGS_IPV4; - count = e1000_tx_map(adapter, skb, first, max_per_txd, nr_frags, mss); - if (count < 0) { - /* handle pci_map_single() error in e1000_tx_map */ +#ifdef IFF_SUPP_NOFCS + if (unlikely(skb->no_fcs)) + tx_flags |= E1000_TX_FLAGS_NO_FCS; +#endif /* IFF_SUPP_NOFCS */ + + /* if count is 0 then mapping error has occurred */ + count = e1000_tx_map(tx_ring, skb, first, adapter->tx_fifo_limit, + nr_frags); + if (count) { +#ifdef HAVE_HW_TIME_STAMP +#ifdef SKB_SHARED_TX_IS_UNION + if (unlikely((skb_shinfo(skb)->tx_flags.flags & + SKBTX_HW_TSTAMP) && !adapter->tx_hwtstamp_skb)) { + skb_shinfo(skb)->tx_flags.flags |= SKBTX_IN_PROGRESS; + tx_flags |= E1000_TX_FLAGS_HWTSTAMP; + adapter->tx_hwtstamp_skb = skb_get(skb); + adapter->tx_hwtstamp_start = jiffies; + schedule_work(&adapter->tx_hwtstamp_work); + } else { + skb_tx_timestamp(skb); + } +#else + if (unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) && + !adapter->tx_hwtstamp_skb)) { + skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; + tx_flags |= E1000_TX_FLAGS_HWTSTAMP; + adapter->tx_hwtstamp_skb = skb_get(skb); + adapter->tx_hwtstamp_start = jiffies; + schedule_work(&adapter->tx_hwtstamp_work); + } else { + skb_tx_timestamp(skb); + } +#endif /* SKB_SHARED_TX_IS_UNION */ +#else + skb_tx_timestamp(skb); +#endif /* HAVE_HW_TIME_STAMP */ + + netdev_sent_queue(netdev, skb->len); + e1000_tx_queue(tx_ring, tx_flags, count); + /* Make sure there is space in the ring for the next send. */ + e1000_maybe_stop_tx(tx_ring, + (MAX_SKB_FRAGS * + DIV_ROUND_UP(PAGE_SIZE, + adapter->tx_fifo_limit) + 2)); + } else { dev_kfree_skb_any(skb); + tx_ring->buffer_info[first].time_stamp = 0; tx_ring->next_to_use = first; - return NETDEV_TX_OK; } - - e1000_tx_queue(adapter, tx_flags, count); - netdev->trans_start = jiffies; - /* Make sure there is space in the ring for the next send. */ - e1000_maybe_stop_tx(netdev, MAX_SKB_FRAGS + 2); - return NETDEV_TX_OK; } @@ -4974,23 +6605,89 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb, * e1000_tx_timeout - Respond to a Tx Hang * @netdev: network interface device structure **/ -static void e1000_tx_timeout(struct net_device *netdev) +static void e1000_tx_timeout(struct net_device *netdev) +{ + struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; + + e_dbg("NETDEV WATCHDOG: transmit timed out - resetting\n"); + + /* Do the reset outside of interrupt context */ + adapter->tx_timeout_count++; + schedule_work(&adapter->reset_task); +} + +static void e1000_reset_task(struct work_struct *work) +{ + struct e1000_adapter *adapter; + adapter = container_of(work, struct e1000_adapter, reset_task); + + /* don't run the task if already down */ + if (test_bit(__E1000_DOWN, &adapter->state)) + return; + + if (!(adapter->flags & FLAG_RESTART_NOW)) { + e1000e_dump(adapter); + e_err("Reset adapter unexpectedly\n"); + } +#ifdef __VMKLNX__ + rtnl_lock(); +#endif /* __VMKLNX__ */ + e1000e_reinit_locked(adapter); +#ifdef __VMKLNX__ + rtnl_unlock(); +#endif /* __VMKLNX__ */ +} + +#ifdef HAVE_NDO_GET_STATS64 +/** + * e1000_get_stats64 - Get System Network Statistics + * @netdev: network interface device structure + * @stats: rtnl_link_stats64 pointer + * + * Returns the address of the device statistics structure. + **/ +struct rtnl_link_stats64 *e1000e_get_stats64(struct net_device *netdev, + struct rtnl_link_stats64 *stats) { struct e1000_adapter *adapter = netdev_priv(netdev); - /* Do the reset outside of interrupt context */ - adapter->tx_timeout_count++; - schedule_work(&adapter->reset_task); -} + memset(stats, 0, sizeof(struct rtnl_link_stats64)); + spin_lock(&adapter->stats64_lock); + e1000e_update_stats(adapter); + /* Fill out the OS statistics structure */ + stats->rx_bytes = adapter->stats.gorc; + stats->rx_packets = adapter->stats.gprc; + stats->tx_bytes = adapter->stats.gotc; + stats->tx_packets = adapter->stats.gptc; + stats->multicast = adapter->stats.mprc; + stats->collisions = adapter->stats.colc; -static void e1000_reset_task(struct work_struct *work) -{ - struct e1000_adapter *adapter; - adapter = container_of(work, struct e1000_adapter, reset_task); + /* Rx Errors */ - e1000e_reinit_locked(adapter); -} + /* RLEC on some newer hardware can be incorrect so build + * our own version based on RUC and ROC + */ + stats->rx_errors = adapter->stats.rxerrc + + adapter->stats.crcerrs + adapter->stats.algnerrc + + adapter->stats.ruc + adapter->stats.roc + adapter->stats.cexterr; + stats->rx_length_errors = adapter->stats.ruc + adapter->stats.roc; + stats->rx_crc_errors = adapter->stats.crcerrs; + stats->rx_frame_errors = adapter->stats.algnerrc; + stats->rx_missed_errors = adapter->stats.mpc; + + /* Tx Errors */ + stats->tx_errors = adapter->stats.ecol + adapter->stats.latecol; + stats->tx_aborted_errors = adapter->stats.ecol; + stats->tx_window_errors = adapter->stats.latecol; + stats->tx_carrier_errors = adapter->stats.tncrs; + + /* Tx Dropped needs to be maintained elsewhere */ + spin_unlock(&adapter->stats64_lock); + return stats; +} +#else /* HAVE_NDO_GET_STATS64 */ /** * e1000_get_stats - Get System Network Statistics * @netdev: network interface device structure @@ -5000,11 +6697,17 @@ static void e1000_reset_task(struct work_struct *work) **/ static struct net_device_stats *e1000_get_stats(struct net_device *netdev) { +#ifndef HAVE_NETDEV_STATS_IN_NETDEV struct e1000_adapter *adapter = netdev_priv(netdev); /* only return the current stats */ return &adapter->net_stats; +#else /* HAVE_NETDEV_STATS_IN_NETDEV */ + /* only return the current stats */ + return &netdev->stats; +#endif /* HAVE_NETDEV_STATS_IN_NETDEV */ } +#endif /* HAVE_NDO_GET_STATS64 */ /** * e1000_change_mtu - Change the Maximum Transfer Unit @@ -5016,7 +6719,7 @@ static struct net_device_stats *e1000_get_stats(struct net_device *netdev) static int e1000_change_mtu(struct net_device *netdev, int new_mtu) { struct e1000_adapter *adapter = netdev_priv(netdev); - int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN; + int max_frame = new_mtu + VLAN_HLEN + ETH_HLEN + ETH_FCS_LEN; /* Jumbo frame support */ if ((max_frame > ETH_FRAME_LEN + ETH_FCS_LEN) && @@ -5032,17 +6735,28 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu) return -EINVAL; } + /* Jumbo frame workaround on 82579 and newer requires CRC be stripped */ + if ((adapter->hw.mac.type >= e1000_pch2lan) && + !(adapter->flags2 & FLAG2_CRC_STRIPPING) && + (new_mtu > ETH_DATA_LEN)) { + e_err("Jumbo Frames not supported on this device when CRC " + "stripping is disabled.\n"); + return -EINVAL; + } + while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) - msleep(1); + usleep_range(1000, 2000); /* e1000e_down -> e1000e_reset dependent on max_frame_size & mtu */ adapter->max_frame_size = max_frame; e_info("changing MTU from %d to %d\n", netdev->mtu, new_mtu); netdev->mtu = new_mtu; + + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + if (netif_running(netdev)) - e1000e_down(adapter); + e1000e_down(adapter, true); - /* - * NOTE: netdev_alloc_skb reserves 16 bytes, and typically NET_IP_ALIGN + /* NOTE: netdev_alloc_skb reserves 16 bytes, and typically NET_IP_ALIGN * means we reserve 2 more, this pushes us to allocate from the next * larger slab size. * i.e. RXBUFFER_2048 --> size-4096 slab @@ -5050,55 +6764,51 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu) * fragmented skbs */ - if (max_frame <= 256) - adapter->rx_buffer_len = 256; - else if (max_frame <= 512) - adapter->rx_buffer_len = 512; - else if (max_frame <= 1024) - adapter->rx_buffer_len = 1024; - else if (max_frame <= 2048) + if (max_frame <= 2048) adapter->rx_buffer_len = 2048; -#if !defined(__VMKLNX__) -#ifdef CONFIG_E1000E_NAPI - else - adapter->rx_buffer_len = 4096; -#else +#ifdef __VMKLNX__ + /* + * When we use jumbo frames we want flat buffers that can go + * up to 4 pages as we do not support splitting. + */ else if (max_frame <= 4096) adapter->rx_buffer_len = 4096; else if (max_frame <= 8192) adapter->rx_buffer_len = 8192; else if (max_frame <= 16384) adapter->rx_buffer_len = 16384; -#endif -#else /* defined(__VMKLNX__) */ - /* - * When we use jumbo frames we want flat buffers that can go - * up to 4 pages as we do not support splitting. - */ +#else /* ifndef __VMKLNX__ */ +#ifdef CONFIG_E1000E_NAPI + else + adapter->rx_buffer_len = 4096; +#else else if (max_frame <= 4096) adapter->rx_buffer_len = 4096; else if (max_frame <= 8192) adapter->rx_buffer_len = 8192; else if (max_frame <= 16384) adapter->rx_buffer_len = 16384; -#endif /* !defined(__VMKLNX__) */ - +#endif +#endif /* __VMKLNX__ */ /* adjust allocation if LPE protects us, and we aren't using SBP */ if ((max_frame == ETH_FRAME_LEN + ETH_FCS_LEN) || - (max_frame == ETH_FRAME_LEN + VLAN_HLEN + ETH_FCS_LEN)) + (max_frame == ETH_FRAME_LEN + VLAN_HLEN + ETH_FCS_LEN)) adapter->rx_buffer_len = ETH_FRAME_LEN + VLAN_HLEN - + ETH_FCS_LEN; + + ETH_FCS_LEN; if (netif_running(netdev)) e1000e_up(adapter); else e1000e_reset(adapter); + pm_runtime_put_sync((netdev_to_dev(netdev))->parent); + clear_bit(__E1000_RESETTING, &adapter->state); return 0; } +#if defined(SIOCGMIIPHY) || defined(SIOCGMIIREG) || defined(SIOCSMIIREG) static int e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) { @@ -5109,9 +6819,12 @@ static int e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, return -EOPNOTSUPP; switch (cmd) { +#ifdef SIOCGMIIPHY case SIOCGMIIPHY: data->phy_id = adapter->hw.phy.addr; break; +#endif +#ifdef SIOCGMIIREG case SIOCGMIIREG: e1000_phy_read_status(adapter); @@ -5150,20 +6863,94 @@ static int e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, return -EIO; } break; +#endif +#ifdef SIOCGMIIREG case SIOCSMIIREG: + /* Fallthrough */ +#endif default: return -EOPNOTSUPP; } return 0; } +#endif /* defined(SIOCGMIIPHY||SIOCGMIIREG||SIOCSMIIREG) */ + +#if defined(SIOCSHWTSTAMP) && defined(HAVE_HW_TIME_STAMP) +/** + * e1000e_hwtstamp_ioctl - control hardware time stamping + * @netdev: network interface device structure + * @ifreq: interface request + * + * Outgoing time stamping can be enabled and disabled. Play nice and + * disable it when requested, although it shouldn't cause any overhead + * when no packet needs it. At most one packet in the queue may be + * marked for time stamping, otherwise it would be impossible to tell + * for sure to which packet the hardware time stamp belongs. + * + * Incoming time stamping has to be configured via the hardware filters. + * Not all combinations are supported, in particular event type has to be + * specified. Matching the kind of event packet is not supported, with the + * exception of "all V2 events regardless of level 2 or 4". + **/ +static int e1000e_hwtstamp_ioctl(struct net_device *netdev, struct ifreq *ifr) +{ + struct e1000_adapter *adapter = netdev_priv(netdev); + struct hwtstamp_config config; + int ret_val; + + if (copy_from_user(&config, ifr->ifr_data, sizeof(config))) + return -EFAULT; + + ret_val = e1000e_config_hwtstamp(adapter, &config); + if (ret_val) + return ret_val; + +#ifdef HAVE_PTP_1588_CLOCK + switch (config.rx_filter) { + case HWTSTAMP_FILTER_PTP_V2_L4_SYNC: + case HWTSTAMP_FILTER_PTP_V2_L2_SYNC: + case HWTSTAMP_FILTER_PTP_V2_SYNC: + case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ: + case HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ: + case HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: + /* With V2 type filters which specify a Sync or Delay Request, + * Path Delay Request/Response messages are also time stamped + * by hardware so notify the caller the requested packets plus + * some others are time stamped. + */ + config.rx_filter = HWTSTAMP_FILTER_SOME; + break; + default: + break; + } +#endif /* HAVE_PTP_1588_CLOCK */ + + return copy_to_user(ifr->ifr_data, &config, + sizeof(config)) ? -EFAULT : 0; +} +#endif /* SIOCSHWTSTAMP && HAVE_HW_TIME_STAMP */ static int e1000_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) { switch (cmd) { +#ifdef SIOCGMIIPHY case SIOCGMIIPHY: + /* Fallthrough */ +#endif +#ifdef SIOCGMIIREG case SIOCGMIIREG: + /* Fallthrough */ +#endif +#ifdef SIOCSMIIREG case SIOCSMIIREG: +#endif +#if defined(SIOCGMIIPHY) || defined(SIOCGMIIREG) || defined(SIOCSMIIREG) return e1000_mii_ioctl(netdev, ifr, cmd); +#endif +#if defined(SIOCSHWTSTAMP) && defined(HAVE_HW_TIME_STAMP) + case SIOCSHWTSTAMP: + return e1000e_hwtstamp_ioctl(netdev, ifr); +#endif #ifdef ETHTOOL_OPS_COMPAT case SIOCETHTOOL: return ethtool_ioctl(ifr); @@ -5176,29 +6963,35 @@ static int e1000_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) static int e1000_init_phy_wakeup(struct e1000_adapter *adapter, u32 wufc) { struct e1000_hw *hw = &adapter->hw; - u32 i, mac_reg; - u16 phy_reg; - int retval = 0; + u32 i, mac_reg, wuc; + u16 phy_reg, wuc_enable; + int retval; /* copy MAC RARs to PHY RARs */ - for (i = 0; i < adapter->hw.mac.rar_entry_count; i++) { - mac_reg = er32(RAL(i)); - e1e_wphy(hw, BM_RAR_L(i), (u16)(mac_reg & 0xFFFF)); - e1e_wphy(hw, BM_RAR_M(i), (u16)((mac_reg >> 16) & 0xFFFF)); - mac_reg = er32(RAH(i)); - e1e_wphy(hw, BM_RAR_H(i), (u16)(mac_reg & 0xFFFF)); - e1e_wphy(hw, BM_RAR_CTRL(i), (u16)((mac_reg >> 16) & 0xFFFF)); + e1000_copy_rx_addrs_to_phy_ich8lan(hw); + + retval = hw->phy.ops.acquire(hw); + if (retval) { + e_err("Could not acquire PHY\n"); + return retval; } - /* copy MAC MTA to PHY MTA */ + /* Enable access to wakeup registers on and set page to BM_WUC_PAGE */ + retval = e1000_enable_phy_wakeup_reg_access_bm(hw, &wuc_enable); + if (retval) + goto release; + + /* copy MAC MTA to PHY MTA - only needed for pchlan */ for (i = 0; i < adapter->hw.mac.mta_reg_count; i++) { mac_reg = E1000_READ_REG_ARRAY(hw, E1000_MTA, i); - e1e_wphy(hw, BM_MTA(i), (u16)(mac_reg & 0xFFFF)); - e1e_wphy(hw, BM_MTA(i) + 1, (u16)((mac_reg >> 16) & 0xFFFF)); + hw->phy.ops.write_reg_page(hw, BM_MTA(i), + (u16)(mac_reg & 0xFFFF)); + hw->phy.ops.write_reg_page(hw, BM_MTA(i) + 1, + (u16)((mac_reg >> 16) & 0xFFFF)); } /* configure PHY Rx Control register */ - e1e_rphy(&adapter->hw, BM_RCTL, &phy_reg); + hw->phy.ops.read_reg_page(&adapter->hw, BM_RCTL, &phy_reg); mac_reg = er32(RCTL); if (mac_reg & E1000_RCTL_UPE) phy_reg |= BM_RCTL_UPE; @@ -5207,7 +7000,7 @@ static int e1000_init_phy_wakeup(struct e1000_adapter *adapter, u32 wufc) phy_reg &= ~(BM_RCTL_MO_MASK); if (mac_reg & E1000_RCTL_MO_3) phy_reg |= (((mac_reg & E1000_RCTL_MO_3) >> E1000_RCTL_MO_SHIFT) - << BM_RCTL_MO_SHIFT); + << BM_RCTL_MO_SHIFT); if (mac_reg & E1000_RCTL_BAM) phy_reg |= BM_RCTL_BAM; if (mac_reg & E1000_RCTL_PMCF) @@ -5215,70 +7008,106 @@ static int e1000_init_phy_wakeup(struct e1000_adapter *adapter, u32 wufc) mac_reg = er32(CTRL); if (mac_reg & E1000_CTRL_RFCE) phy_reg |= BM_RCTL_RFCE; - e1e_wphy(&adapter->hw, BM_RCTL, phy_reg); + hw->phy.ops.write_reg_page(&adapter->hw, BM_RCTL, phy_reg); + + wuc = E1000_WUC_PME_EN; + if (wufc & (E1000_WUFC_MAG | E1000_WUFC_LNKC)) + wuc |= E1000_WUC_APME; /* enable PHY wakeup in MAC register */ ew32(WUFC, wufc); - ew32(WUC, E1000_WUC_PHY_WAKE | E1000_WUC_PME_EN); + ew32(WUC, (E1000_WUC_PHY_WAKE | E1000_WUC_APMPME | + E1000_WUC_PME_STATUS | wuc)); /* configure and enable PHY wakeup in PHY registers */ - e1e_wphy(&adapter->hw, BM_WUFC, wufc); - e1e_wphy(&adapter->hw, BM_WUC, E1000_WUC_PME_EN); + hw->phy.ops.write_reg_page(&adapter->hw, BM_WUFC, wufc); + hw->phy.ops.write_reg_page(&adapter->hw, BM_WUC, wuc); /* activate PHY wakeup */ - retval = hw->phy.ops.acquire(hw); - if (retval) { - e_err("Could not acquire PHY\n"); - return retval; - } - e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, - (BM_WUC_ENABLE_PAGE << IGP_PAGE_SHIFT)); - retval = e1000e_read_phy_reg_mdic(hw, BM_WUC_ENABLE_REG, &phy_reg); - if (retval) { - e_err("Could not read PHY page 769\n"); - goto out; - } - phy_reg |= BM_WUC_ENABLE_BIT | BM_WUC_HOST_WU_BIT; - retval = e1000e_write_phy_reg_mdic(hw, BM_WUC_ENABLE_REG, phy_reg); + wuc_enable |= BM_WUC_ENABLE_BIT | BM_WUC_HOST_WU_BIT; + retval = e1000_disable_phy_wakeup_reg_access_bm(hw, &wuc_enable); if (retval) e_err("Could not set PHY Host Wakeup bit\n"); -out: +release: hw->phy.ops.release(hw); return retval; } -static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake) +static void e1000e_flush_lpic(struct pci_dev *pdev) { struct net_device *netdev = pci_get_drvdata(pdev); struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; - u32 ctrl, ctrl_ext, rctl, status; - u32 wufc = adapter->wol; - int retval = 0; + u32 ret_val; + + pm_runtime_get_sync((netdev_to_dev(netdev))->parent); + + ret_val = hw->phy.ops.acquire(hw); + if (ret_val) + goto fl_out; + + pr_info("EEE TX LPI TIMER: %08X\n", + er32(LPIC) >> E1000_LPIC_LPIET_SHIFT); + + hw->phy.ops.release(hw); + +fl_out: + pm_runtime_put_sync(netdev->dev.parent); + + return; +} + +static int e1000e_pm_freeze(struct device *dev) +{ + struct net_device *netdev = pci_get_drvdata(to_pci_dev(dev)); + struct e1000_adapter *adapter = netdev_priv(netdev); netif_device_detach(netdev); if (netif_running(netdev)) { + int count = E1000_CHECK_RESET_COUNT; + + while (test_bit(__E1000_RESETTING, &adapter->state) && count--) + usleep_range(10000, 20000); + WARN_ON(test_bit(__E1000_RESETTING, &adapter->state)); - e1000e_down(adapter); + + /* Quiesce the device without resetting the hardware */ + e1000e_down(adapter, false); e1000_free_irq(adapter); } -#ifdef CONFIG_E1000E_MSIX e1000e_reset_interrupt_capability(adapter); -#endif + /* Allow time for pending master requests to run */ + e1000e_disable_pcie_master(&adapter->hw); + + return 0; +} + +static int __e1000_shutdown(struct pci_dev *pdev, bool runtime) +{ + struct net_device *netdev = pci_get_drvdata(pdev); + struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; + u32 ctrl, ctrl_ext, rctl, status; + /* Runtime suspend should only enable wakeup for link changes */ + u32 wufc = runtime ? E1000_WUFC_LNKC : adapter->wol; + int retval = 0; + +#ifdef USE_LEGACY_PM_SUPPORT retval = pci_save_state(pdev); if (retval) return retval; +#endif status = er32(STATUS); if (status & E1000_STATUS_LU) wufc &= ~E1000_WUFC_LNKC; if (wufc) { e1000_setup_rctl(adapter); - e1000_set_multi(netdev); + e1000e_set_rx_mode(netdev); /* turn on all-multi mode if wake on multicast is enabled */ if (wufc & E1000_WUFC_MC) { @@ -5288,10 +7117,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake) } ctrl = er32(CTRL); - /* advertise wake from D3Cold */ - #define E1000_CTRL_ADVD3WUC 0x00100000 - /* phy power management enable */ - #define E1000_CTRL_EN_PHY_PWR_MGMT 0x00200000 ctrl |= E1000_CTRL_ADVD3WUC; if (!(adapter->flags2 & FLAG2_HAS_PHY_WAKEUP)) ctrl |= E1000_CTRL_EN_PHY_PWR_MGMT; @@ -5306,11 +7131,11 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake) ew32(CTRL_EXT, ctrl_ext); } - if (adapter->flags & FLAG_IS_ICH) - e1000e_disable_gig_wol_ich8lan(&adapter->hw); + if (!runtime) + e1000e_power_up_phy(adapter); - /* Allow time for pending master requests to run */ - e1000e_disable_pcie_master(&adapter->hw); + if (adapter->flags & FLAG_IS_ICH) + e1000_suspend_workarounds_ich8lan(&adapter->hw); if (adapter->flags2 & FLAG2_HAS_PHY_WAKEUP) { /* enable wakeup by the PHY */ @@ -5325,212 +7150,350 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake) } else { ew32(WUC, 0); ew32(WUFC, 0); + + e1000_power_down_phy(adapter); } - *enable_wake = !!wufc; + if (adapter->hw.phy.type == e1000_phy_igp_3) { + e1000e_igp3_phy_powerdown_workaround_ich8lan(&adapter->hw); + } else if ((hw->mac.type == e1000_pch_lpt) || + (hw->mac.type == e1000_pch_spt)) { + if (!(wufc & (E1000_WUFC_EX | E1000_WUFC_MC | E1000_WUFC_BC))) + /* ULP does not support wake from unicast, multicast + * or broadcast. + */ + retval = e1000_enable_ulp_lpt_lp(hw, !runtime); - /* make sure adapter isn't asleep if manageability is enabled */ - if ((adapter->flags & FLAG_MNG_PT_ENABLED) || - (hw->mac.ops.check_mng_mode(hw))) - *enable_wake = true; + if (retval) + return retval; + } - if (adapter->hw.phy.type == e1000_phy_igp_3) - e1000e_igp3_phy_powerdown_workaround_ich8lan(&adapter->hw); + /* Ensure that the appropriate bits are set in LPI_CTRL + * for EEE in Sx + */ + if ((hw->phy.type >= e1000_phy_i217) && + adapter->eee_advert && hw->dev_spec.ich8lan.eee_lp_ability) { + u16 lpi_ctrl = 0; + retval = hw->phy.ops.acquire(hw); + if (!retval) { + retval = e1e_rphy_locked(hw, I82579_LPI_CTRL, + &lpi_ctrl); + if (!retval) { + if (adapter->eee_advert & + hw->dev_spec.ich8lan.eee_lp_ability & + I82579_EEE_100_SUPPORTED) + lpi_ctrl |= I82579_LPI_CTRL_100_ENABLE; + if (adapter->eee_advert & + hw->dev_spec.ich8lan.eee_lp_ability & + I82579_EEE_1000_SUPPORTED) + lpi_ctrl |= I82579_LPI_CTRL_1000_ENABLE; + + retval = e1e_wphy_locked(hw, I82579_LPI_CTRL, + lpi_ctrl); + } + } + hw->phy.ops.release(hw); + } - /* - * Release control of h/w to f/w. If f/w is AMT enabled, this + /* Release control of h/w to f/w. If f/w is AMT enabled, this * would have already happened in close and is redundant. */ - e1000_release_hw_control(adapter); + e1000e_release_hw_control(adapter); +#ifdef USE_LEGACY_PM_SUPPORT pci_disable_device(pdev); +#else + pci_clear_master(pdev); +#endif + +#ifndef __VMKLNX__ + /* The pci-e switch on some quad port adapters will report a + * correctable error when the MAC transitions from D0 to D3. To + * prevent this we need to mask off the correctable errors on the + * downstream port of the pci-e switch. + */ + if (adapter->flags & FLAG_IS_QUAD_PORT) { + struct pci_dev *us_dev = pdev->bus->self; + u16 devctl; + + pcie_capability_read_word(us_dev, PCI_EXP_DEVCTL, &devctl); + pcie_capability_write_word(us_dev, PCI_EXP_DEVCTL, + (devctl & ~PCI_EXP_DEVCTL_CERE)); + + pci_save_state(pdev); + pci_prepare_to_sleep(pdev); + + pcie_capability_write_word(us_dev, PCI_EXP_DEVCTL, devctl); + } +#ifdef USE_LEGACY_PM_SUPPORT + else + pci_prepare_to_sleep(pdev); +#endif +#endif /* !__VMKLNX__ */ return 0; } -#if !defined(__VMKLNX__) -static void e1000_power_off(struct pci_dev *pdev, bool sleep, bool wake) +#ifdef CONFIG_PCIEASPM +static void __e1000e_disable_aspm(struct pci_dev *pdev, u16 state) { - if (sleep && wake) { - pci_prepare_to_sleep(pdev); - return; - } + pci_disable_link_state_locked(pdev, state); +} +#else +static void __e1000e_disable_aspm(struct pci_dev *pdev, u16 state) +{ + u16 aspm_ctl = 0; + + if (state & PCIE_LINK_STATE_L0S) + aspm_ctl |= PCI_EXP_LNKCTL_ASPM_L0S; + if (state & PCIE_LINK_STATE_L1) + aspm_ctl |= PCI_EXP_LNKCTL_ASPM_L1; - pci_wake_from_d3(pdev, wake); - pci_set_power_state(pdev, PCI_D3hot); + /* Both device and parent should have the same ASPM setting. + * Disable ASPM in downstream component first and then upstream. + */ + pcie_capability_clear_word(pdev, PCI_EXP_LNKCTL, aspm_ctl); + + if (pdev->bus->self) + pcie_capability_clear_word(pdev->bus->self, PCI_EXP_LNKCTL, + aspm_ctl); +} +#endif +static void e1000e_disable_aspm(struct pci_dev *pdev, u16 state) +{ + dev_info(pci_dev_to_dev(pdev), "Disabling ASPM %s %s\n", + (state & PCIE_LINK_STATE_L0S) ? "L0s" : "", + (state & PCIE_LINK_STATE_L1) ? "L1" : ""); + + __e1000e_disable_aspm(pdev, state); } -static void e1000_complete_shutdown(struct pci_dev *pdev, bool sleep, - bool wake) +#ifdef CONFIG_PM +static int __e1000_resume(struct pci_dev *pdev) { struct net_device *netdev = pci_get_drvdata(pdev); struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; + u16 aspm_disable_flag = 0; +#ifdef USE_LEGACY_PM_SUPPORT + u32 err; +#endif - /* - * The pci-e switch on some quad port adapters will report a - * correctable error when the MAC transitions from D0 to D3. To - * prevent this we need to mask off the correctable errors on the - * downstream port of the pci-e switch. - */ - if (adapter->flags & FLAG_IS_QUAD_PORT) { - struct pci_dev *us_dev = pdev->bus->self; - int pos = pci_find_capability(us_dev, PCI_CAP_ID_EXP); - u16 devctl; + if (adapter->flags2 & FLAG2_DISABLE_ASPM_L0S) + aspm_disable_flag = PCIE_LINK_STATE_L0S; + if (adapter->flags2 & FLAG2_DISABLE_ASPM_L1) + aspm_disable_flag |= PCIE_LINK_STATE_L1; + if (aspm_disable_flag) + e1000e_disable_aspm(pdev, aspm_disable_flag); + +#ifdef USE_LEGACY_PM_SUPPORT + pci_set_power_state(pdev, PCI_D0); + pci_restore_state(pdev); + pci_save_state(pdev); + + err = pci_enable_device_mem(pdev); + if (err) { + dev_err(pci_dev_to_dev(pdev), + "Cannot enable PCI device from suspend\n"); + return err; + } + + pci_set_master(pdev); + + pci_enable_wake(pdev, PCI_D3hot, 0); + pci_enable_wake(pdev, PCI_D3cold, 0); +#else /* USE_LEGACY_PM_SUPPORT */ + pci_set_master(pdev); +#endif /* USE_LEGACY_PM_SUPPORT */ + + if (hw->mac.type >= e1000_pch2lan) + e1000_resume_workarounds_pchlan(&adapter->hw); - pci_read_config_word(us_dev, pos + PCI_EXP_DEVCTL, &devctl); - pci_write_config_word(us_dev, pos + PCI_EXP_DEVCTL, - (devctl & ~PCI_EXP_DEVCTL_CERE)); + e1000e_power_up_phy(adapter); - e1000_power_off(pdev, sleep, wake); + /* report the system wakeup cause from S3/S4 */ + if (adapter->flags2 & FLAG2_HAS_PHY_WAKEUP) { + u16 phy_data; - pci_write_config_word(us_dev, pos + PCI_EXP_DEVCTL, devctl); + e1e_rphy(&adapter->hw, BM_WUS, &phy_data); + if (phy_data) { + e_info("PHY Wakeup cause - %s\n", + phy_data & E1000_WUS_EX ? "Unicast Packet" : + phy_data & E1000_WUS_MC ? "Multicast Packet" : + phy_data & E1000_WUS_BC ? "Broadcast Packet" : + phy_data & E1000_WUS_MAG ? "Magic Packet" : + phy_data & E1000_WUS_LNKC ? + "Link Status Change" : "other"); + } + e1e_wphy(&adapter->hw, BM_WUS, ~0); } else { - e1000_power_off(pdev, sleep, wake); + u32 wus = er32(WUS); + + if (wus) { + e_info("MAC Wakeup cause - %s\n", + wus & E1000_WUS_EX ? "Unicast Packet" : + wus & E1000_WUS_MC ? "Multicast Packet" : + wus & E1000_WUS_BC ? "Broadcast Packet" : + wus & E1000_WUS_MAG ? "Magic Packet" : + wus & E1000_WUS_LNKC ? "Link Status Change" : + "other"); + } + ew32(WUS, ~0); } + + e1000e_reset(adapter); + + e1000_init_manageability_pt(adapter); + + /* If the controller has AMT, do not set DRV_LOAD until the interface + * is up. For all other cases, let the f/w know that the h/w is now + * under the control of the driver. + */ + if (!(adapter->flags & FLAG_HAS_AMT)) + e1000e_get_hw_control(adapter); + + return 0; } -#endif /* !defined(__VMKLNX__) */ -static void e1000e_disable_l1aspm(struct pci_dev *pdev) +static int e1000e_pm_thaw(struct device *dev) { - int pos; - u16 val; + struct net_device *netdev = pci_get_drvdata(to_pci_dev(dev)); + struct e1000_adapter *adapter = netdev_priv(netdev); - /* - * 82573 workaround - disable L1 ASPM on mobile chipsets - * - * L1 ASPM on various mobile (ich7) chipsets do not behave properly - * resulting in lost data or garbage information on the pci-e link - * level. This could result in (false) bad EEPROM checksum errors, - * long ping times (up to 2s) or even a system freeze/hang. - * - * Unfortunately this feature saves about 1W power consumption when - * active. - */ - pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); - pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &val); - if (val & 0x2) { - dev_warn(&pdev->dev, "Disabling L1 ASPM\n"); - val &= ~0x2; - pci_write_config_word(pdev, pos + PCI_EXP_LNKCTL, val); + e1000e_set_interrupt_capability(adapter); + if (netif_running(netdev)) { + u32 err = e1000_request_irq(adapter); + + if (err) + return err; + + e1000e_up(adapter); } + + netif_device_attach(netdev); + + return 0; } #ifdef CONFIG_PM -static int e1000_suspend(struct pci_dev *pdev, pm_message_t state) +#ifndef USE_LEGACY_PM_SUPPORT +static int e1000e_pm_suspend(struct device *dev) +#else +static int e1000e_pm_suspend(struct pci_dev *pdev, pm_message_t state) +#endif +{ +#ifndef USE_LEGACY_PM_SUPPORT + struct pci_dev *pdev = to_pci_dev(dev); + + e1000e_flush_lpic(pdev); + + e1000e_pm_freeze(dev); +#else + e1000e_flush_lpic(pdev); + + e1000e_pm_freeze(pci_dev_to_dev(pdev)); +#endif + + return __e1000_shutdown(pdev, false); +} + +#ifndef USE_LEGACY_PM_SUPPORT +static int e1000e_pm_resume(struct device *dev) +#else +static int e1000e_pm_resume(struct pci_dev *pdev) +#endif { - int retval; - bool wake; +#ifndef USE_LEGACY_PM_SUPPORT + struct pci_dev *pdev = to_pci_dev(dev); +#endif + int rc; - retval = __e1000_shutdown(pdev, &wake); - if (!retval) - e1000_complete_shutdown(pdev, true, wake); + rc = __e1000_resume(pdev); + if (rc) + return rc; - return retval; +#ifndef USE_LEGACY_PM_SUPPORT + return e1000e_pm_thaw(dev); +#else + return e1000e_pm_thaw(pci_dev_to_dev(pdev)); +#endif } +#endif /* CONFIG_PM */ -static int e1000_resume(struct pci_dev *pdev) +#ifndef USE_LEGACY_PM_SUPPORT +#ifdef CONFIG_PM_RUNTIME +static int e1000e_pm_runtime_idle(struct device *dev) { + struct pci_dev *pdev = to_pci_dev(dev); struct net_device *netdev = pci_get_drvdata(pdev); struct e1000_adapter *adapter = netdev_priv(netdev); - struct e1000_hw *hw = &adapter->hw; - u32 err; - - pci_set_power_state(pdev, PCI_D0); - pci_restore_state(pdev); - e1000e_disable_l1aspm(pdev); + u16 eee_lp; - err = pci_enable_device_mem(pdev); - if (err) { - dev_err(&pdev->dev, - "Cannot enable PCI device from suspend\n"); - return err; - } + eee_lp = adapter->hw.dev_spec.ich8lan.eee_lp_ability; - /* AER (Advanced Error Reporting) hooks */ - err = pci_enable_pcie_error_reporting(pdev); - if (err) { - dev_err(&pdev->dev, "pci_enable_pcie_error_reporting failed " - "0x%x\n", err); - /* non-fatal, continue */ + if (!e1000e_has_link(adapter)) { + adapter->hw.dev_spec.ich8lan.eee_lp_ability = eee_lp; + pm_schedule_suspend(dev, 5 * MSEC_PER_SEC); } - pci_set_master(pdev); + return -EBUSY; +} - pci_enable_wake(pdev, PCI_D3hot, 0); - pci_enable_wake(pdev, PCI_D3cold, 0); +static int e1000e_pm_runtime_resume(struct device *dev) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct net_device *netdev = pci_get_drvdata(pdev); + struct e1000_adapter *adapter = netdev_priv(netdev); + int rc; -#ifdef CONFIG_E1000E_MSIX - e1000e_set_interrupt_capability(adapter); -#endif - if (netif_running(netdev)) { - err = e1000_request_irq(adapter); - if (err) - return err; - } + rc = __e1000_resume(pdev); + if (rc) + return rc; - e1000e_power_up_phy(adapter); + if (netdev->flags & IFF_UP) + rc = e1000e_up(adapter); - /* report the system wakeup cause from S3/S4 */ - if (adapter->flags2 & FLAG2_HAS_PHY_WAKEUP) { - u16 phy_data; + return rc; +} - e1e_rphy(&adapter->hw, BM_WUS, &phy_data); - if (phy_data) { - e_info("PHY Wakeup cause - %s\n", - phy_data & E1000_WUS_EX ? "Unicast Packet" : - phy_data & E1000_WUS_MC ? "Multicast Packet" : - phy_data & E1000_WUS_BC ? "Broadcast Packet" : - phy_data & E1000_WUS_MAG ? "Magic Packet" : - phy_data & E1000_WUS_LNKC ? "Link Status " - " Change" : "other"); - } - e1e_wphy(&adapter->hw, BM_WUS, ~0); - } else { - u32 wus = er32(WUS); - if (wus) { - e_info("MAC Wakeup cause - %s\n", - wus & E1000_WUS_EX ? "Unicast Packet" : - wus & E1000_WUS_MC ? "Multicast Packet" : - wus & E1000_WUS_BC ? "Broadcast Packet" : - wus & E1000_WUS_MAG ? "Magic Packet" : - wus & E1000_WUS_LNKC ? "Link Status Change" : - "other"); - } - ew32(WUS, ~0); - } +static int e1000e_pm_runtime_suspend(struct device *dev) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct net_device *netdev = pci_get_drvdata(pdev); + struct e1000_adapter *adapter = netdev_priv(netdev); - e1000e_reset(adapter); + if (netdev->flags & IFF_UP) { + int count = E1000_CHECK_RESET_COUNT; - e1000_init_manageability(adapter); + while (test_bit(__E1000_RESETTING, &adapter->state) && count--) + usleep_range(10000, 20000); - if (netif_running(netdev)) - e1000e_up(adapter); + WARN_ON(test_bit(__E1000_RESETTING, &adapter->state)); - netif_device_attach(netdev); + /* Down the device without resetting the hardware */ + e1000e_down(adapter, false); + } - /* - * If the controller has AMT, do not set DRV_LOAD until the interface - * is up. For all other cases, let the f/w know that the h/w is now - * under the control of the driver. - */ - if (!(adapter->flags & FLAG_HAS_AMT)) - e1000_get_hw_control(adapter); + if (__e1000_shutdown(pdev, true)) { + e1000e_pm_runtime_resume(dev); + return -EBUSY; + } return 0; } -#endif +#endif /* CONFIG_PM_RUNTIME */ +#endif /* USE_LEGACY_PM_SUPPORT */ +#endif /* CONFIG_PM */ #ifndef USE_REBOOT_NOTIFIER static void e1000_shutdown(struct pci_dev *pdev) { - bool wake; - __e1000_shutdown(pdev, &wake); + e1000e_flush_lpic(pdev); -#if !defined(__VMKLNX__) - if (system_state == SYSTEM_POWER_OFF) - e1000_complete_shutdown(pdev, false, wake); -#endif + e1000e_pm_freeze(&pdev->dev); + + __e1000_shutdown(pdev, false); } #else static struct pci_driver e1000_driver; @@ -5544,8 +7507,10 @@ static int e1000_notify_reboot(struct notifier_block *nb, unsigned long event, case SYS_HALT: case SYS_POWER_OFF: while ((pdev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pdev))) { - if (pci_dev_driver(pdev) == &e1000_driver) - e1000_suspend(pdev, PMSG_SUSPEND); + if (pci_dev_driver(pdev) == &e1000_driver) { + e1000e_pm_freeze(pci_dev_to_dev(pdev)); + __e1000_shutdown(pdev, false); + } } break; } @@ -5553,14 +7518,48 @@ static int e1000_notify_reboot(struct notifier_block *nb, unsigned long event, } static struct notifier_block e1000_notifier_reboot = { - .notifier_call = e1000_notify_reboot, - .next = NULL, - .priority = 0 + .notifier_call = e1000_notify_reboot, + .next = NULL, + .priority = 0 }; -#endif +#endif /* USE_REBOOT_NOTIFIER */ #ifdef CONFIG_NET_POLL_CONTROLLER -/* + +static irqreturn_t e1000_intr_msix(int __always_unused irq, void *data) +{ + struct net_device *netdev = data; + struct e1000_adapter *adapter = netdev_priv(netdev); + + if (adapter->msix_entries) { + int vector, msix_irq; + + vector = 0; + msix_irq = adapter->msix_entries[vector].vector; + disable_irq(msix_irq); + e1000_intr_msix_rx(msix_irq, netdev); + enable_irq(msix_irq); + + vector++; + msix_irq = adapter->msix_entries[vector].vector; + disable_irq(msix_irq); + e1000_intr_msix_tx(msix_irq, netdev); + enable_irq(msix_irq); + + vector++; + msix_irq = adapter->msix_entries[vector].vector; + disable_irq(msix_irq); + e1000_msix_other(msix_irq, netdev); + enable_irq(msix_irq); + } + + return IRQ_HANDLED; +} + +/** + * e1000_netpoll + * @netdev: network interface device structure + * * Polling 'interrupt' - used by things like netconsole to send skbs * without having to re-enable interrupts. It's not called while * the interrupt routine is executing. @@ -5569,14 +7568,21 @@ static void e1000_netpoll(struct net_device *netdev) { struct e1000_adapter *adapter = netdev_priv(netdev); - disable_irq(adapter->pdev->irq); - e1000_intr(adapter->pdev->irq, netdev); - -#ifndef CONFIG_E1000E_NAPI - adapter->clean_rx(adapter); - -#endif - enable_irq(adapter->pdev->irq); + switch (adapter->int_mode) { + case E1000E_INT_MODE_MSIX: + e1000_intr_msix(adapter->pdev->irq, netdev); + break; + case E1000E_INT_MODE_MSI: + disable_irq(adapter->pdev->irq); + e1000_intr_msi(adapter->pdev->irq, netdev); + enable_irq(adapter->pdev->irq); + break; + default: /* E1000E_INT_MODE_LEGACY */ + disable_irq(adapter->pdev->irq); + e1000_intr(adapter->pdev->irq, netdev); + enable_irq(adapter->pdev->irq); + break; + } } #endif @@ -5601,7 +7607,7 @@ static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev, return PCI_ERS_RESULT_DISCONNECT; if (netif_running(netdev)) - e1000e_down(adapter); + e1000e_down(adapter, true); pci_disable_device(pdev); /* Request a slot slot reset. */ @@ -5613,25 +7619,33 @@ static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev, * @pdev: Pointer to PCI device * * Restart the card from scratch, as if from a cold-boot. Implementation - * resembles the first-half of the e1000_resume routine. + * resembles the first-half of the e1000e_pm_resume routine. */ static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev) { struct net_device *netdev = pci_get_drvdata(pdev); struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; + u16 aspm_disable_flag = 0; int err; pci_ers_result_t result; - e1000e_disable_l1aspm(pdev); + if (adapter->flags2 & FLAG2_DISABLE_ASPM_L0S) + aspm_disable_flag = PCIE_LINK_STATE_L0S; + if (adapter->flags2 & FLAG2_DISABLE_ASPM_L1) + aspm_disable_flag |= PCIE_LINK_STATE_L1; + if (aspm_disable_flag) + e1000e_disable_aspm(pdev, aspm_disable_flag); + err = pci_enable_device_mem(pdev); if (err) { - dev_err(&pdev->dev, + dev_err(pci_dev_to_dev(pdev), "Cannot re-enable PCI device after reset.\n"); result = PCI_ERS_RESULT_DISCONNECT; } else { - pci_set_master(pdev); pci_restore_state(pdev); + pci_set_master(pdev); + pci_save_state(pdev); pci_enable_wake(pdev, PCI_D3hot, 0); pci_enable_wake(pdev, PCI_D3cold, 0); @@ -5652,18 +7666,18 @@ static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev) * * This callback is called when the error recovery driver tells us that * its OK to resume normal operation. Implementation resembles the - * second-half of the e1000_resume routine. + * second-half of the e1000e_pm_resume routine. */ static void e1000_io_resume(struct pci_dev *pdev) { struct net_device *netdev = pci_get_drvdata(pdev); struct e1000_adapter *adapter = netdev_priv(netdev); - e1000_init_manageability(adapter); + e1000_init_manageability_pt(adapter); if (netif_running(netdev)) { if (e1000e_up(adapter)) { - dev_err(&pdev->dev, + dev_err(pci_dev_to_dev(pdev), "can't bring device back up after reset\n"); return; } @@ -5671,14 +7685,12 @@ static void e1000_io_resume(struct pci_dev *pdev) netif_device_attach(netdev); - /* - * If the controller has AMT, do not set DRV_LOAD until the interface + /* If the controller has AMT, do not set DRV_LOAD until the interface * is up. For all other cases, let the f/w know that the h/w is now * under the control of the driver. */ if (!(adapter->flags & FLAG_HAS_AMT)) - e1000_get_hw_control(adapter); - + e1000e_get_hw_control(adapter); } #endif /* HAVE_PCI_ERS */ @@ -5686,22 +7698,26 @@ static void e1000_print_device_info(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; struct net_device *netdev = adapter->netdev; - u32 pba_num; + u32 ret_val; + u8 pba_str[E1000_PBANUM_LENGTH]; /* print bus type/speed/width info */ - e_info("(PCI Express:2.5GB/s:%s) %02x:%02x:%02x:%02x:%02x:%02x\n", + e_info("(PCI Express:2.5GT/s:%s) %02x:%02x:%02x:%02x:%02x:%02x\n", /* bus width */ ((hw->bus.width == e1000_bus_width_pcie_x4) ? "Width x4" : - "Width x1"), + "Width x1"), /* MAC address */ - netdev->dev_addr[0], netdev->dev_addr[1], - netdev->dev_addr[2], netdev->dev_addr[3], - netdev->dev_addr[4], netdev->dev_addr[5]); + netdev->dev_addr[0], netdev->dev_addr[1], + netdev->dev_addr[2], netdev->dev_addr[3], + netdev->dev_addr[4], netdev->dev_addr[5]); e_info("Intel(R) PRO/%s Network Connection\n", (hw->phy.type == e1000_phy_ife) ? "10/100" : "1000"); - e1000e_read_pba_num(hw, &pba_num); - e_info("MAC: %d, PHY: %d, PBA No: %06x-%03x\n", - hw->mac.type, hw->phy.type, (pba_num >> 8), (pba_num & 0xff)); + ret_val = e1000_read_pba_string_generic(hw, pba_str, + E1000_PBANUM_LENGTH); + if (ret_val) + strlcpy((char *)pba_str, "Unknown", sizeof(pba_str)); + e_info("MAC: %d, PHY: %d, PBA No: %s\n", + hw->mac.type, hw->phy.type, pba_str); } static void e1000_eeprom_checks(struct e1000_adapter *adapter) @@ -5709,68 +7725,102 @@ static void e1000_eeprom_checks(struct e1000_adapter *adapter) struct e1000_hw *hw = &adapter->hw; int ret_val; u16 buf = 0; -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)) - struct pci_dev *pdev = adapter->pdev; -#endif if (hw->mac.type != e1000_82573) return; ret_val = e1000_read_nvm(hw, NVM_INIT_CONTROL2_REG, 1, &buf); - if (!ret_val && (!(le16_to_cpu(buf) & (1 << 0)))) { + le16_to_cpus(&buf); + if (!ret_val && (!(buf & (1 << 0)))) { /* Deep Smart Power Down (DSPD) */ - dev_warn(&adapter->pdev->dev, + dev_warn(pci_dev_to_dev(adapter->pdev), "Warning: detected DSPD enabled in EEPROM\n"); } - - ret_val = e1000_read_nvm(hw, NVM_INIT_3GIO_3, 1, &buf); - if (!ret_val && (le16_to_cpu(buf) & (3 << 2))) { - /* ASPM enable */ - dev_warn(&adapter->pdev->dev, - "Warning: detected ASPM enabled in EEPROM\n"); - } } -s32 e1000_read_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value) +#ifdef HAVE_NDO_SET_FEATURES +static int e1000_set_features(struct net_device *netdev, + netdev_features_t features) { - u16 cap_offset; + struct e1000_adapter *adapter = netdev_priv(netdev); + netdev_features_t changed = features ^ netdev->features; + + if (changed & (NETIF_F_TSO | NETIF_F_TSO6)) + adapter->flags |= FLAG_TSO_FORCE; + + if (!(changed & ( +#if defined(NETIF_F_HW_VLAN_CTAG_TX) + NETIF_F_HW_VLAN_CTAG_RX | + NETIF_F_HW_VLAN_CTAG_TX | +#elif defined(NETIF_F_HW_VLAN_TX) + NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX | +#endif + NETIF_F_RXCSUM | NETIF_F_RXHASH | NETIF_F_RXFCS + | NETIF_F_RXALL))) + return 0; + + if (changed & NETIF_F_RXFCS) { + if (features & NETIF_F_RXFCS) { + adapter->flags2 &= ~FLAG2_CRC_STRIPPING; + } else { + /* We need to take it back to defaults, which might mean + * stripping is still disabled at the adapter level. + */ + if (adapter->flags2 & FLAG2_DFLT_CRC_STRIPPING) + adapter->flags2 |= FLAG2_CRC_STRIPPING; + else + adapter->flags2 &= ~FLAG2_CRC_STRIPPING; + } + } - cap_offset = pci_find_capability(hw->adapter->pdev, PCI_CAP_ID_EXP); - if (!cap_offset) - return -E1000_ERR_CONFIG; + netdev->features = features; - pci_read_config_word(hw->adapter->pdev, cap_offset + reg, value); + if (netif_running(netdev)) + e1000e_reinit_locked(adapter); + else + e1000e_reset(adapter); - return E1000_SUCCESS; + return 0; } +#endif /* HAVE_NDO_SET_FEATURES */ #ifdef HAVE_NET_DEVICE_OPS static const struct net_device_ops e1000e_netdev_ops = { .ndo_open = e1000_open, .ndo_stop = e1000_close, .ndo_start_xmit = e1000_xmit_frame, +#ifdef HAVE_NDO_GET_STATS64 + .ndo_get_stats64 = e1000e_get_stats64, +#else /* HAVE_NDO_GET_STATS64 */ .ndo_get_stats = e1000_get_stats, - .ndo_set_multicast_list = e1000_set_multi, +#endif /* HAVE_NDO_GET_STATS64 */ + .ndo_set_rx_mode = e1000e_set_rx_mode, .ndo_set_mac_address = e1000_set_mac, .ndo_change_mtu = e1000_change_mtu, .ndo_do_ioctl = e1000_ioctl, .ndo_tx_timeout = e1000_tx_timeout, .ndo_validate_addr = eth_validate_addr, -#ifdef NETIF_F_HW_VLAN_TX + +#if defined(NETIF_F_HW_VLAN_RX) || defined(NETIF_F_HW_VLAN_CTAG_RX) +#ifdef HAVE_VLAN_RX_REGISTER .ndo_vlan_rx_register = e1000_vlan_rx_register, +#endif .ndo_vlan_rx_add_vid = e1000_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid = e1000_vlan_rx_kill_vid, #endif #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = e1000_netpoll, #endif +#ifdef HAVE_NDO_SET_FEATURES + .ndo_set_features = e1000_set_features, +#endif /* HAVE_NDO_SET_FEATURES */ }; #endif /* HAVE_NET_DEVICE_OPS */ /** * e1000_probe - Device Initialization Routine * @pdev: PCI device information struct - * @ent: entry in e1000e_pci_tbl + * @ent: entry in e1000_pci_tbl * * Returns 0 on success, negative on failure * @@ -5778,50 +7828,61 @@ static const struct net_device_ops e1000e_netdev_ops = { * The OS initialization, configuring of the adapter private structure, * and a hardware reset occur. **/ +#ifdef HAVE_CONFIG_HOTPLUG static int __devinit e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) +#else +static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) +#endif { struct net_device *netdev; struct e1000_adapter *adapter; struct e1000_hw *hw; const struct e1000_info *ei = e1000_info_tbl[ent->driver_data]; + resource_size_t mmio_start, mmio_len; + resource_size_t flash_start, flash_len; static int cards_found; + u16 aspm_disable_flag = 0; int i, err, pci_using_dac; u16 eeprom_data = 0; u16 eeprom_apme_mask = E1000_EEPROM_APME; + s32 rval = 0; - e1000e_disable_l1aspm(pdev); + if (ei->flags2 & FLAG2_DISABLE_ASPM_L0S) + aspm_disable_flag = PCIE_LINK_STATE_L0S; + if (ei->flags2 & FLAG2_DISABLE_ASPM_L1) + aspm_disable_flag |= PCIE_LINK_STATE_L1; + if (aspm_disable_flag) + e1000e_disable_aspm(pdev, aspm_disable_flag); err = pci_enable_device_mem(pdev); if (err) return err; pci_using_dac = 0; - err = pci_set_dma_mask(pdev, DMA_BIT_MASK(64)); + err = dma_set_mask_and_coherent(pci_dev_to_dev(pdev), DMA_BIT_MASK(64)); if (!err) { - err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); - if (!err) - pci_using_dac = 1; + pci_using_dac = 1; } else { - err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); + err = + dma_set_mask_and_coherent(pci_dev_to_dev(pdev), + DMA_BIT_MASK(32)); if (err) { - err = pci_set_consistent_dma_mask(pdev, - DMA_BIT_MASK(32)); - if (err) { - printk(KERN_ERR "%s: No usable DMA " - "configuration, aborting\n", - pci_name(pdev)); - goto err_dma; - } + dev_err(pci_dev_to_dev(pdev), + "No usable DMA configuration, aborting\n"); + goto err_dma; } } err = pci_request_selected_regions_exclusive(pdev, - pci_select_bars(pdev, IORESOURCE_MEM), - e1000e_driver_name); + pci_select_bars(pdev, IORESOURCE_MEM), + e1000e_driver_name); if (err) goto err_pci_reg; + /* AER (Advanced Error Reporting) hooks */ + pci_enable_pcie_error_reporting(pdev); + pci_set_master(pdev); err = -ENOMEM; @@ -5830,11 +7891,20 @@ static int __devinit e1000_probe(struct pci_dev *pdev, goto err_alloc_etherdev; SET_MODULE_OWNER(netdev); - SET_NETDEV_DEV(netdev, &pdev->dev); + SET_NETDEV_DEV(netdev, pci_dev_to_dev(pdev)); + + netdev->irq = pdev->irq; pci_set_drvdata(pdev, netdev); +#ifdef HAVE_PCI_ERS + /* PCI config space info */ + err = pci_save_state(pdev); + if (err) + goto err_ioremap; +#endif /* HAVE_PCI_ERS */ adapter = netdev_priv(netdev); hw = &adapter->hw; + adapter->node = -1; adapter->netdev = netdev; adapter->pdev = pdev; adapter->ei = ei; @@ -5844,99 +7914,108 @@ static int __devinit e1000_probe(struct pci_dev *pdev, adapter->hw.adapter = adapter; adapter->hw.mac.type = ei->mac; adapter->max_hw_frame_size = ei->max_hw_frame_size; - adapter->msg_enable = (1 << NETIF_MSG_DRV | NETIF_MSG_PROBE) - 1; + adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE); - /* PCI config space info */ - hw->device_id = pdev->device; -#ifdef HAVE_PCI_ERS - err = pci_save_state(pdev); - if (err) - goto err_ioremap; -#endif + mmio_start = pci_resource_start(pdev, 0); + mmio_len = pci_resource_len(pdev, 0); err = -EIO; - //PR588148: pre check ioremap args before calling ioremap to avoid - //triggering the ASSERT in vmkapi_mapping.c -#if defined(__VMKLNX__) +#ifdef __VMKLNX__ + #define MIN_IOBASE_LEN 0x100 + /* PR588148: pre check ioremap args before calling ioremap to avoid + * triggering the ASSERT in vmkapi_mapping.c + */ if ( ((pci_resource_len(pdev, 0)) < MIN_IOBASE_LEN) || ((pci_resource_start(pdev, 0)) == 0)) { - e_err("invalid ioremap size : %Ld , BAR 0 not enabled.\n", + e_err("invalid ioremap size : %Ld , BAR 0 not enabled.\n", pci_resource_len(pdev, 0)); goto err_ioremap; } #endif - adapter->hw.hw_addr = pci_ioremap_bar(pdev, 0); + adapter->hw.hw_addr = ioremap(mmio_start, mmio_len); if (!adapter->hw.hw_addr) goto err_ioremap; if ((adapter->flags & FLAG_HAS_FLASH) && - (pci_resource_flags(pdev, 1) & IORESOURCE_MEM)) { -#if defined(__VMKLNX__) - if ( ((pci_resource_len(pdev, 1)) < MIN_IOBASE_LEN) || - ((pci_resource_start(pdev, 1)) == 0)) { - e_err("invalid ioremap size : %Ld, BAR 1 not enabled.\n", - pci_resource_len(pdev, 0)); - goto err_ioremap; - } -#endif - adapter->hw.flash_address = pci_ioremap_bar(pdev, 1); + (pci_resource_flags(pdev, 1) & IORESOURCE_MEM) && + (hw->mac.type < e1000_pch_spt)) { + flash_start = pci_resource_start(pdev, 1); + flash_len = pci_resource_len(pdev, 1); + adapter->hw.flash_address = ioremap(flash_start, flash_len); if (!adapter->hw.flash_address) goto err_flashmap; } - adapter->bd_number = cards_found++; - - e1000e_check_options(adapter); - - /* setup adapter struct */ - err = e1000_sw_init(adapter); - if (err) - goto err_sw_init; - - if (ei->get_variants) { - err = ei->get_variants(adapter); - if (err) - goto err_hw_init; - } + /* Set default EEE advertisement */ + if (adapter->flags2 & FLAG2_HAS_EEE) + adapter->eee_advert = MDIO_EEE_100TX | MDIO_EEE_1000T; /* construct the net_device struct */ #ifdef HAVE_NET_DEVICE_OPS - netdev->netdev_ops = &e1000e_netdev_ops; + netdev->netdev_ops = &e1000e_netdev_ops; #else - netdev->open = &e1000_open; - netdev->stop = &e1000_close; - netdev->hard_start_xmit = &e1000_xmit_frame; - netdev->get_stats = &e1000_get_stats; - netdev->set_multicast_list = &e1000_set_multi; - netdev->set_mac_address = &e1000_set_mac; - netdev->change_mtu = &e1000_change_mtu; - netdev->do_ioctl = &e1000_ioctl; - netdev->tx_timeout = &e1000_tx_timeout; -#ifdef NETIF_F_HW_VLAN_TX - netdev->vlan_rx_register = e1000_vlan_rx_register; - netdev->vlan_rx_add_vid = e1000_vlan_rx_add_vid; - netdev->vlan_rx_kill_vid = e1000_vlan_rx_kill_vid; + netdev->open = &e1000_open; + netdev->stop = &e1000_close; + netdev->hard_start_xmit = &e1000_xmit_frame; + netdev->get_stats = &e1000_get_stats; +#ifdef HAVE_SET_RX_MODE + netdev->set_rx_mode = &e1000e_set_rx_mode; +#endif + netdev->set_multicast_list = &e1000e_set_rx_mode; + netdev->set_mac_address = &e1000_set_mac; + netdev->change_mtu = &e1000_change_mtu; + netdev->do_ioctl = &e1000_ioctl; + netdev->tx_timeout = &e1000_tx_timeout; +#ifdef NETIF_F_HW_VLAN_RX + netdev->vlan_rx_register = e1000_vlan_rx_register; + netdev->vlan_rx_add_vid = e1000_vlan_rx_add_vid; + netdev->vlan_rx_kill_vid = e1000_vlan_rx_kill_vid; #endif #ifdef CONFIG_NET_POLL_CONTROLLER - netdev->poll_controller = e1000_netpoll; + netdev->poll_controller = e1000_netpoll; #endif #endif /* HAVE_NET_DEVICE_OPS */ e1000e_set_ethtool_ops(netdev); - netdev->watchdog_timeo = 5 * HZ; + netdev->watchdog_timeo = 5 * HZ; #ifdef CONFIG_E1000E_NAPI - netif_napi_add(netdev, &adapter->napi, e1000_poll, 64); + netif_napi_add(netdev, &adapter->napi, e1000e_poll, 64); #endif - strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); + strlcpy(netdev->name, pci_name(pdev), sizeof(netdev->name)); + + netdev->mem_start = mmio_start; + netdev->mem_end = mmio_start + mmio_len; + + adapter->bd_number = cards_found++; + + e1000e_check_options(adapter); + + if (adapter->node >= 0) + dev_info(pci_dev_to_dev(pdev), + "Using NUMA node %d for memory allocations\n", + adapter->node); + + /* setup adapter struct */ + err = e1000_sw_init(adapter); + if (err) + goto err_sw_init; + + memcpy(&hw->mac.ops, ei->mac_ops, sizeof(hw->mac.ops)); + memcpy(&hw->nvm.ops, ei->nvm_ops, sizeof(hw->nvm.ops)); + memcpy(&hw->phy.ops, ei->phy_ops, sizeof(hw->phy.ops)); - /* - * Following ifdef was present in inbox driver but not in + err = ei->get_variants(adapter); + if (err) + goto err_hw_init; + +#ifdef __VMKLNX__ + /* + * Following fix was present in inbox driver but not in * linux 1.1.2. Have retained it for now. - */ -#if defined(__VMKLNX__) + */ if ((adapter->flags & FLAG_IS_ICH) && (adapter->flags1 & FLAG_READ_ONLY_NVM)) e1000e_write_protect_nvm_ich8lan(&adapter->hw); -#endif /* defined(__VMKLNX__) */ +#endif /* ifdef __VMKLNX__ */ hw->mac.ops.get_bus_info(&adapter->hw); @@ -5949,55 +8028,101 @@ static int __devinit e1000_probe(struct pci_dev *pdev, adapter->hw.phy.ms_type = e1000_ms_hw_default; } - if (e1000_check_reset_block(&adapter->hw)) - e_info("PHY reset is blocked due to SOL/IDER session.\n"); + if (hw->phy.ops.check_reset_block && hw->phy.ops.check_reset_block(hw)) + dev_info(pci_dev_to_dev(pdev), + "PHY reset is blocked due to SOL/IDER session.\n"); -#ifdef NETIF_F_HW_VLAN_TX - netdev->features = NETIF_F_SG | - NETIF_F_HW_CSUM | - NETIF_F_HW_VLAN_TX | - NETIF_F_HW_VLAN_RX; + /* Set initial default active device features */ + netdev->features = (NETIF_F_SG | +#if defined(NETIF_F_HW_VLAN_CTAG_TX) + NETIF_F_HW_VLAN_CTAG_RX | + NETIF_F_HW_VLAN_CTAG_TX | +#elif defined(NETIF_F_HW_VLAN_TX) + NETIF_F_HW_VLAN_RX | + NETIF_F_HW_VLAN_TX | +#endif +#ifdef NETIF_F_TSO + NETIF_F_TSO | +#ifdef NETIF_F_TSO6 + NETIF_F_TSO6 | +#endif +#endif +#if defined(NETIF_F_RXHASH) + NETIF_F_RXHASH | +#endif +#ifdef NETIF_F_RXCSUM + NETIF_F_RXCSUM | +#endif + NETIF_F_HW_CSUM); + +#ifdef HAVE_NDO_SET_FEATURES + /* Set user-changeable features (subset of all device features) */ + netdev->hw_features = netdev->features; + netdev->hw_features |= NETIF_F_RXFCS; +#ifdef IFF_SUPP_NOFCS + netdev->priv_flags |= IFF_SUPP_NOFCS; +#endif /* IFF_SUPP_NOFCS */ + netdev->hw_features |= NETIF_F_RXALL; +#else /* HAVE_NDO_SET_FEATURES */ +#ifdef NETIF_F_GRO + /* only needed for <2.6.39; otherwise set in register_netdevice() */ + netdev->features |= NETIF_F_GRO; +#endif +#endif /* HAVE_NDO_SET_FEATURES */ +#if defined(NETIF_F_HW_VLAN_FILTER) || defined(NETIF_F_HW_VLAN_CTAG_FILTER) if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) - netdev->features |= NETIF_F_HW_VLAN_FILTER; +#ifdef NETIF_F_HW_VLAN_CTAG_FILTER + netdev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; #else - netdev->features = NETIF_F_SG | NETIF_F_HW_CSUM; + netdev->features |= NETIF_F_HW_VLAN_FILTER; #endif +#endif /* NETIF_F_HW_VLAN_FILTER || NETIF_F_HW_VLAN_CTAG_FILTER */ +#ifdef HAVE_NETDEV_VLAN_FEATURES + netdev->vlan_features |= (NETIF_F_SG | #ifdef NETIF_F_TSO - netdev->features |= NETIF_F_TSO; -#ifdef NETIF_F_TSO6 - netdev->features |= NETIF_F_TSO6; + NETIF_F_TSO | #endif +#ifdef NETIF_F_TSO6 + NETIF_F_TSO6 | #endif + NETIF_F_HW_CSUM); + +#endif /* HAVE_NETDEV_VLAN_FEATURES */ #ifdef __VMKLNX__ #ifdef NETIF_F_OFFLOAD_8OFFSET netdev->features |= NETIF_F_OFFLOAD_8OFFSET; #endif -#endif // __VMKLNX__ +#endif /* __VMKLNX__ */ +#ifdef IFF_UNICAST_FLT + netdev->priv_flags |= IFF_UNICAST_FLT; - if (pci_using_dac) +#endif /* IFF_UNICAST_FLT */ + if (pci_using_dac) { netdev->features |= NETIF_F_HIGHDMA; - +#ifdef HAVE_NETDEV_VLAN_FEATURES + netdev->vlan_features |= NETIF_F_HIGHDMA; +#endif /* HAVE_NETDEV_VLAN_FEATURES */ + } if (e1000e_enable_mng_pass_thru(&adapter->hw)) adapter->flags |= FLAG_MNG_PT_ENABLED; - /* - * before reading the NVM, reset the controller to + /* before reading the NVM, reset the controller to * put the device in a known good starting state */ adapter->hw.mac.ops.reset_hw(&adapter->hw); - /* - * systems with ASPM and others may see the checksum fail on the first + /* systems with ASPM and others may see the checksum fail on the first * attempt. Let's give it a few tries */ for (i = 0;; i++) { if (e1000_validate_nvm_checksum(&adapter->hw) >= 0) break; if (i == 2) { - e_err("The NVM Checksum Is Not Valid\n"); + dev_err(pci_dev_to_dev(pdev), + "The NVM Checksum Is Not Valid\n"); err = -EIO; goto err_eeprom; } @@ -6005,83 +8130,83 @@ static int __devinit e1000_probe(struct pci_dev *pdev, e1000_eeprom_checks(adapter); - /* copy the MAC address out of the NVM */ + /* copy the MAC address */ if (e1000e_read_mac_addr(&adapter->hw)) - e_err("NVM Read Error while reading MAC address\n"); + dev_err(pci_dev_to_dev(pdev), + "NVM Read Error while reading MAC address\n"); memcpy(netdev->dev_addr, adapter->hw.mac.addr, netdev->addr_len); #ifdef ETHTOOL_GPERMADDR memcpy(netdev->perm_addr, adapter->hw.mac.addr, netdev->addr_len); +#endif - if (!is_valid_ether_addr(netdev->perm_addr)) { -#else if (!is_valid_ether_addr(netdev->dev_addr)) { -#endif - e_err("Invalid MAC Address: %02x:%02x:%02x:%02x:%02x:%02x\n", - netdev->dev_addr[0], netdev->dev_addr[1], - netdev->dev_addr[2], netdev->dev_addr[3], - netdev->dev_addr[4], netdev->dev_addr[5]); + dev_err(pci_dev_to_dev(pdev), + "Invalid MAC Address: %02x:%02x:%02x:%02x:%02x:%02x\n", + netdev->dev_addr[0], netdev->dev_addr[1], + netdev->dev_addr[2], netdev->dev_addr[3], + netdev->dev_addr[4], netdev->dev_addr[5]); err = -EIO; goto err_eeprom; } init_timer(&adapter->watchdog_timer); - adapter->watchdog_timer.function = &e1000_watchdog; - adapter->watchdog_timer.data = (unsigned long) adapter; + adapter->watchdog_timer.function = e1000_watchdog; + adapter->watchdog_timer.data = (unsigned long)adapter; init_timer(&adapter->phy_info_timer); - adapter->phy_info_timer.function = &e1000_update_phy_info; - adapter->phy_info_timer.data = (unsigned long) adapter; + adapter->phy_info_timer.function = e1000_update_phy_info; + adapter->phy_info_timer.data = (unsigned long)adapter; INIT_WORK(&adapter->reset_task, e1000_reset_task); INIT_WORK(&adapter->watchdog_task, e1000_watchdog_task); INIT_WORK(&adapter->downshift_task, e1000e_downshift_workaround); INIT_WORK(&adapter->update_phy_task, e1000e_update_phy_task); INIT_WORK(&adapter->print_hang_task, e1000_print_hw_hang); +#ifndef HAVE_ETHTOOL_SET_PHYS_ID + INIT_WORK(&adapter->led_blink_task, e1000e_led_blink_task); +#endif /* Initialize link parameters. User can change them with ethtool */ adapter->hw.mac.autoneg = 1; - adapter->fc_autoneg = 1; - if (adapter->hw.mac.type == e1000_pchlan) { - /* Workaround h/w hang when Tx flow control enabled */ - adapter->hw.fc.requested_mode = e1000_fc_rx_pause; - adapter->hw.fc.current_mode = e1000_fc_rx_pause; - } else { - adapter->hw.fc.requested_mode = e1000_fc_default; - adapter->hw.fc.current_mode = e1000_fc_default; - } + adapter->fc_autoneg = true; + adapter->hw.fc.requested_mode = e1000_fc_default; + adapter->hw.fc.current_mode = e1000_fc_default; adapter->hw.phy.autoneg_advertised = 0x2f; /* ring size defaults */ - adapter->rx_ring->count = 256; - adapter->tx_ring->count = 256; + adapter->rx_ring->count = E1000_DEFAULT_RXD; + adapter->tx_ring->count = E1000_DEFAULT_TXD; - /* - * Initial Wake on LAN setting - If APM wake is enabled in + /* Initial Wake on LAN setting - If APM wake is enabled in * the EEPROM, enable the ACPI Magic Packet filter */ if (adapter->flags & FLAG_APME_IN_WUC) { /* APME bit in EEPROM is mapped to WUC.APME */ eeprom_data = er32(WUC); eeprom_apme_mask = E1000_WUC_APME; - if (eeprom_data & E1000_WUC_PHY_WAKE) + if ((hw->mac.type > e1000_ich10lan) && + (eeprom_data & E1000_WUC_PHY_WAKE)) adapter->flags2 |= FLAG2_HAS_PHY_WAKEUP; } else if (adapter->flags & FLAG_APME_IN_CTRL3) { if (adapter->flags & FLAG_APME_CHECK_PORT_B && (adapter->hw.bus.func == 1)) - e1000_read_nvm(&adapter->hw, NVM_INIT_CONTROL3_PORT_B, - 1, &eeprom_data); + rval = e1000_read_nvm(&adapter->hw, + NVM_INIT_CONTROL3_PORT_B, + 1, &eeprom_data); else - e1000_read_nvm(&adapter->hw, NVM_INIT_CONTROL3_PORT_A, - 1, &eeprom_data); + rval = e1000_read_nvm(&adapter->hw, + NVM_INIT_CONTROL3_PORT_A, + 1, &eeprom_data); } /* fetch WoL from EEPROM */ - if (eeprom_data & eeprom_apme_mask) + if (rval) + e_dbg("NVM read error getting WoL initial values: %d\n", rval); + else if (eeprom_data & eeprom_apme_mask) adapter->eeprom_wol |= E1000_WUFC_MAG; - /* - * now that we have the eeprom settings, apply the special cases + /* now that we have the eeprom settings, apply the special cases * where the eeprom may be wrong or the board simply won't support * wake on lan on a particular port */ @@ -6090,61 +8215,88 @@ static int __devinit e1000_probe(struct pci_dev *pdev, /* initialize the wol settings based on the eeprom settings */ adapter->wol = adapter->eeprom_wol; - device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol); +#ifdef DYNAMIC_LTR_SUPPORT + + /* initialize the DYNAMIC_LTR_SUPPORT variables */ + adapter->c10_mpc_count = 0; + adapter->c10_rx_bytes = 0; + /* bottom 5 bits of PBA holds RXA in KBytes */ + adapter->c10_pba_bytes = er32(PBA) & 0x1F; + adapter->c10_pba_bytes <<= 10; + if ((hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_LM3) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_V3)) + adapter->c10_demote_ltr = false; + else + adapter->c10_demote_ltr = true; +#endif /* DYNAMIC_LTR_SUPPORT */ + + /* make sure adapter isn't asleep if manageability is enabled */ + if (adapter->wol || (adapter->flags & FLAG_MNG_PT_ENABLED) || + (hw->mac.ops.check_mng_mode(hw))) + device_wakeup_enable(pci_dev_to_dev(pdev)); /* save off EEPROM version number */ - e1000_read_nvm(&adapter->hw, 5, 1, &adapter->eeprom_vers); + rval = e1000_read_nvm(&adapter->hw, 5, 1, &adapter->eeprom_vers); + + if (rval) { + e_dbg("NVM read error getting EEPROM version: %d\n", rval); + adapter->eeprom_vers = 0; + } /* reset the hardware with the new settings */ e1000e_reset(adapter); - /* - * If the controller has AMT, do not set DRV_LOAD until the interface + /* If the controller has AMT, do not set DRV_LOAD until the interface * is up. For all other cases, let the f/w know that the h/w is now * under the control of the driver. */ if (!(adapter->flags & FLAG_HAS_AMT)) - e1000_get_hw_control(adapter); + e1000e_get_hw_control(adapter); - /* tell the stack to leave us alone until e1000_open() is called */ - netif_carrier_off(netdev); - netif_tx_stop_all_queues(netdev); +#ifdef __VMKLNX__ + strcpy(netdev->name, ""); +#else + strlcpy(netdev->name, "eth%d", sizeof(netdev->name)); +#endif /* __VMKLNX__ */ -#if !defined(__VMKLNX__) - strcpy(netdev->name, "eth%d"); -#else /* defined(__VMKLNX__) */ - strcpy(netdev->name, ""); -#endif /* !defined(__VMKLNX__) */ err = register_netdev(netdev); if (err) goto err_register; + /* carrier off reporting is important to ethtool even BEFORE open */ + netif_carrier_off(netdev); + + /* init PTP hardware clock */ + e1000e_ptp_init(adapter); + e1000_print_device_info(adapter); + if (pci_dev_run_wake(pdev)) + pm_runtime_put_noidle(pci_dev_to_dev(pdev)); + return 0; err_register: if (!(adapter->flags & FLAG_HAS_AMT)) - e1000_release_hw_control(adapter); + e1000e_release_hw_control(adapter); err_eeprom: - if (!e1000_check_reset_block(&adapter->hw)) + if (hw->phy.ops.check_reset_block && !hw->phy.ops.check_reset_block(hw)) e1000_phy_hw_reset(&adapter->hw); err_hw_init: kfree(adapter->tx_ring); kfree(adapter->rx_ring); err_sw_init: -#ifdef CONFIG_E1000E_MSIX - e1000e_reset_interrupt_capability(adapter); -#endif /* CONFIG_E1000E_MSIX */ - if (adapter->hw.flash_address) + netif_napi_del(&adapter->napi); + if ((adapter->hw.flash_address) && (hw->mac.type < e1000_pch_spt)) iounmap(adapter->hw.flash_address); + e1000e_reset_interrupt_capability(adapter); err_flashmap: iounmap(adapter->hw.hw_addr); err_ioremap: free_netdev(netdev); err_alloc_etherdev: pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_select_bars(pdev, IORESOURCE_MEM)); err_pci_reg: err_dma: pci_disable_device(pdev); @@ -6160,48 +8312,71 @@ err_dma: * Hot-Plug event, or because the driver is going to be removed from * memory. **/ +#ifdef HAVE_CONFIG_HOTPLUG static void __devexit e1000_remove(struct pci_dev *pdev) +#else +static void e1000_remove(struct pci_dev *pdev) +#endif { struct net_device *netdev = pci_get_drvdata(pdev); struct e1000_adapter *adapter = netdev_priv(netdev); + bool down = test_bit(__E1000_DOWN, &adapter->state); - /* - * flush_scheduled work may reschedule our watchdog task, so - * explicitly disable watchdog tasks from being rescheduled + e1000e_ptp_remove(adapter); + + /* The timers may be rescheduled, so explicitly disable them + * from being rescheduled. */ - set_bit(__E1000_DOWN, &adapter->state); + if (!down) + set_bit(__E1000_DOWN, &adapter->state); del_timer_sync(&adapter->watchdog_timer); del_timer_sync(&adapter->phy_info_timer); +#ifndef __VMKLNX__ + /* these works have been canceled in e1000e_close for vmklinux */ cancel_work_sync(&adapter->reset_task); cancel_work_sync(&adapter->watchdog_task); + cancel_work_sync(&adapter->print_hang_task); +#endif /* __VMKLNX__ */ cancel_work_sync(&adapter->downshift_task); cancel_work_sync(&adapter->update_phy_task); - cancel_work_sync(&adapter->print_hang_task); - flush_scheduled_work(); +#ifndef HAVE_ETHTOOL_SET_PHYS_ID + cancel_work_sync(&adapter->led_blink_task); +#endif - if (!(netdev->flags & IFF_UP)) - e1000_power_down_phy(adapter); +#ifdef HAVE_HW_TIME_STAMP + if (adapter->flags & FLAG_HAS_HW_TIMESTAMP) { + cancel_work_sync(&adapter->tx_hwtstamp_work); + if (adapter->tx_hwtstamp_skb) { + dev_kfree_skb_any(adapter->tx_hwtstamp_skb); + adapter->tx_hwtstamp_skb = NULL; + } + } +#endif + /* Don't lie to e1000_close() down the road. */ + if (!down) + clear_bit(__E1000_DOWN, &adapter->state); unregister_netdev(netdev); - /* - * Release control of h/w to f/w. If f/w is AMT enabled, this + if (pci_dev_run_wake(pdev)) + pm_runtime_get_noresume(pci_dev_to_dev(pdev)); + + /* Release control of h/w to f/w. If f/w is AMT enabled, this * would have already happened in close and is redundant. */ - e1000_release_hw_control(adapter); + e1000e_release_hw_control(adapter); -#ifdef CONFIG_E1000E_MSIX e1000e_reset_interrupt_capability(adapter); -#endif /* CONFIG_E1000E_MSIX */ kfree(adapter->tx_ring); kfree(adapter->rx_ring); iounmap(adapter->hw.hw_addr); - if (adapter->hw.flash_address) + if ((adapter->hw.flash_address) && + (adapter->hw.mac.type < e1000_pch_spt)) iounmap(adapter->hw.flash_address); pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_select_bars(pdev, IORESOURCE_MEM)); free_netdev(netdev); @@ -6213,18 +8388,23 @@ static void __devexit e1000_remove(struct pci_dev *pdev) #ifdef HAVE_PCI_ERS /* PCI Error Recovery (ERS) */ +#ifdef HAVE_CONST_STRUCT_PCI_ERROR_HANDLERS +static const struct pci_error_handlers e1000_err_handler = { +#else static struct pci_error_handlers e1000_err_handler = { +#endif .error_detected = e1000_io_error_detected, .slot_reset = e1000_io_slot_reset, .resume = e1000_io_resume, }; #endif -static struct pci_device_id e1000e_pci_tbl[] = { +static const struct pci_device_id e1000_pci_tbl[] = { { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_COPPER), board_82571 }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_FIBER), board_82571 }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_QUAD_COPPER), board_82571 }, - { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_QUAD_COPPER_LP), board_82571 }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_QUAD_COPPER_LP), + board_82571 }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_QUAD_FIBER), board_82571 }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_SERDES), board_82571 }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_SERDES_DUAL), board_82571 }, @@ -6278,26 +8458,67 @@ static struct pci_device_id e1000e_pci_tbl[] = { { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_D_BM_LM), board_ich10lan }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_D_BM_LF), board_ich10lan }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_D_BM_V), board_ich10lan }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_M_HV_LM), board_pchlan }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_M_HV_LC), board_pchlan }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_D_HV_DM), board_pchlan }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_D_HV_DC), board_pchlan }, - { } /* terminate list */ + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH2_LV_LM), board_pch2lan }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH2_LV_V), board_pch2lan }, + + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPT_I217_LM), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPT_I217_V), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_LM), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_V), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM2), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V2), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM3), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V3), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_LM), board_pch_spt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_V), board_pch_spt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_LM2), board_pch_spt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_V2), board_pch_spt }, + + { 0, 0, 0, 0, 0, 0, 0 } /* terminate list */ }; -MODULE_DEVICE_TABLE(pci, e1000e_pci_tbl); +MODULE_DEVICE_TABLE(pci, e1000_pci_tbl); + +#ifdef CONFIG_PM +#ifndef USE_LEGACY_PM_SUPPORT +static const struct dev_pm_ops e1000_pm_ops = { + .suspend = e1000e_pm_suspend, + .resume = e1000e_pm_resume, + .freeze = e1000e_pm_freeze, + .thaw = e1000e_pm_thaw, + .poweroff = e1000e_pm_suspend, + .restore = e1000e_pm_resume, + SET_RUNTIME_PM_OPS(e1000e_pm_runtime_suspend, e1000e_pm_runtime_resume, + e1000e_pm_runtime_idle) +}; +#endif /* USE_LEGACY_PM_SUPPORT */ +#endif /* PCI Device API Driver */ static struct pci_driver e1000_driver = { .name = e1000e_driver_name, - .id_table = e1000e_pci_tbl, + .id_table = e1000_pci_tbl, .probe = e1000_probe, +#ifdef HAVE_CONFIG_HOTPLUG .remove = __devexit_p(e1000_remove), +#else + .remove = e1000_remove, +#endif #ifdef CONFIG_PM - /* Power Management Hooks */ - .suspend = e1000_suspend, - .resume = e1000_resume, +#ifndef USE_LEGACY_PM_SUPPORT + .driver = { + .pm = &e1000_pm_ops, + }, +#elif defined(CONFIG_PM_SLEEP) + .suspend = e1000e_pm_suspend, + .resume = e1000e_pm_resume, +#endif /* USE_LEGACY_PM_SUPPORT */ #endif #ifndef USE_REBOOT_NOTIFIER .shutdown = e1000_shutdown, @@ -6316,10 +8537,10 @@ static struct pci_driver e1000_driver = { static int __init e1000_init_module(void) { int ret; - printk(KERN_INFO "%s: Intel(R) PRO/1000 Network Driver - %s\n", - e1000e_driver_name, e1000e_driver_version); - printk(KERN_INFO "%s: Copyright(c) 1999 - 2009 Intel Corporation.\n", - e1000e_driver_name); + + pr_info("Intel(R) PRO/1000 Network Driver - %s\n", + e1000e_driver_version); + pr_info("Copyright(c) 1999 - 2014 Intel Corporation.\n"); ret = pci_register_driver(&e1000_driver); #ifdef USE_REBOOT_NOTIFIER if (ret >= 0) @@ -6345,7 +8566,6 @@ static void __exit e1000_exit_module(void) } module_exit(e1000_exit_module); - MODULE_AUTHOR("Intel Corporation, "); MODULE_DESCRIPTION("Intel(R) PRO/1000 Network Driver"); MODULE_LICENSE("GPL"); diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_nvm.c b/vmkdrivers/src_9/drivers/net/e1000e/nvm.c similarity index 69% rename from vmkdrivers/src_9/drivers/net/e1000e/e1000_nvm.c rename to vmkdrivers/src_9/drivers/net/e1000e/nvm.c index 9e5dbd53b077ecb24e14413e00225da02e344ef7..71963dff0774480e54745ad662bef6fe335493e1 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_nvm.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/nvm.c @@ -1,49 +1,27 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ #include "e1000.h" -static void e1000_stop_nvm(struct e1000_hw *hw); -static void e1000e_reload_nvm(struct e1000_hw *hw); - -/** - * e1000_init_nvm_ops_generic - Initialize NVM function pointers - * @hw: pointer to the HW structure - * - * Setups up the function pointers to no-op functions - **/ -void e1000_init_nvm_ops_generic(struct e1000_hw *hw) -{ - struct e1000_nvm_info *nvm = &hw->nvm; - /* Initialize function pointers */ - nvm->ops.reload = e1000e_reload_nvm; -} - /** * e1000_raise_eec_clk - Raise EEPROM clock * @hw: pointer to the HW structure @@ -164,7 +142,6 @@ s32 e1000e_poll_eerd_eewr_done(struct e1000_hw *hw, int ee_reg) { u32 attempts = 100000; u32 i, reg = 0; - s32 ret_val = -E1000_ERR_NVM; for (i = 0; i < attempts; i++) { if (ee_reg == E1000_NVM_POLL_READ) @@ -172,15 +149,13 @@ s32 e1000e_poll_eerd_eewr_done(struct e1000_hw *hw, int ee_reg) else reg = er32(EEWR); - if (reg & E1000_NVM_RW_REG_DONE) { - ret_val = E1000_SUCCESS; - break; - } + if (reg & E1000_NVM_RW_REG_DONE) + return 0; udelay(5); } - return ret_val; + return -E1000_ERR_NVM; } /** @@ -195,7 +170,6 @@ s32 e1000e_acquire_nvm(struct e1000_hw *hw) { u32 eecd = er32(EECD); s32 timeout = E1000_NVM_GRANT_ATTEMPTS; - s32 ret_val = E1000_SUCCESS; ew32(EECD, eecd | E1000_EECD_REQ); eecd = er32(EECD); @@ -211,10 +185,10 @@ s32 e1000e_acquire_nvm(struct e1000_hw *hw) eecd &= ~E1000_EECD_REQ; ew32(EECD, eecd); e_dbg("Could not acquire NVM grant\n"); - ret_val = -E1000_ERR_NVM; + return -E1000_ERR_NVM; } - return ret_val; + return 0; } /** @@ -286,26 +260,25 @@ static s32 e1000_ready_nvm_eeprom(struct e1000_hw *hw) { struct e1000_nvm_info *nvm = &hw->nvm; u32 eecd = er32(EECD); - s32 ret_val = E1000_SUCCESS; - u16 timeout = 0; u8 spi_stat_reg; if (nvm->type == e1000_nvm_eeprom_spi) { + u16 timeout = NVM_MAX_RETRY_SPI; + /* Clear SK and CS */ eecd &= ~(E1000_EECD_CS | E1000_EECD_SK); ew32(EECD, eecd); + e1e_flush(); udelay(1); - timeout = NVM_MAX_RETRY_SPI; - /* - * Read "Status Register" repeatedly until the LSB is cleared. + /* Read "Status Register" repeatedly until the LSB is cleared. * The EEPROM will signal that the command has been completed * by clearing bit 0 of the internal status register. If it's * not cleared within 'timeout', then error out. */ while (timeout) { e1000_shift_out_eec_bits(hw, NVM_RDSR_OPCODE_SPI, - hw->nvm.opcode_bits); + hw->nvm.opcode_bits); spi_stat_reg = (u8)e1000_shift_in_eec_bits(hw, 8); if (!(spi_stat_reg & NVM_STATUS_RDY_SPI)) break; @@ -317,13 +290,11 @@ static s32 e1000_ready_nvm_eeprom(struct e1000_hw *hw) if (!timeout) { e_dbg("SPI NVM Status error\n"); - ret_val = -E1000_ERR_NVM; - goto out; + return -E1000_ERR_NVM; } } -out: - return ret_val; + return 0; } /** @@ -339,33 +310,32 @@ s32 e1000e_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) { struct e1000_nvm_info *nvm = &hw->nvm; u32 i, eerd = 0; - s32 ret_val = E1000_SUCCESS; + s32 ret_val = 0; - /* - * A check for invalid values: offset too large, too many words, + /* A check for invalid values: offset too large, too many words, * too many words for the offset, and not enough words. */ if ((offset >= nvm->word_size) || (words > (nvm->word_size - offset)) || (words == 0)) { e_dbg("nvm parameter(s) out of bounds\n"); - ret_val = -E1000_ERR_NVM; - goto out; + return -E1000_ERR_NVM; } for (i = 0; i < words; i++) { - eerd = ((offset+i) << E1000_NVM_RW_ADDR_SHIFT) + - E1000_NVM_RW_REG_START; + eerd = ((offset + i) << E1000_NVM_RW_ADDR_SHIFT) + + E1000_NVM_RW_REG_START; ew32(EERD, eerd); ret_val = e1000e_poll_eerd_eewr_done(hw, E1000_NVM_POLL_READ); if (ret_val) break; - data[i] = (er32(EERD) >> - E1000_NVM_RW_REG_DATA); + data[i] = (er32(EERD) >> E1000_NVM_RW_REG_DATA); } -out: + if (ret_val) + e_dbg("NVM read error: %d\n", ret_val); + return ret_val; } @@ -378,47 +348,46 @@ out: * * Writes data to EEPROM at offset using SPI interface. * - * If e1000_update_nvm_checksum is not called after this function , the + * If e1000e_update_nvm_checksum is not called after this function , the * EEPROM will most likely contain an invalid checksum. **/ s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) { struct e1000_nvm_info *nvm = &hw->nvm; - s32 ret_val; + s32 ret_val = -E1000_ERR_NVM; u16 widx = 0; - /* - * A check for invalid values: offset too large, too many words, + /* A check for invalid values: offset too large, too many words, * and not enough words. */ if ((offset >= nvm->word_size) || (words > (nvm->word_size - offset)) || (words == 0)) { e_dbg("nvm parameter(s) out of bounds\n"); - ret_val = -E1000_ERR_NVM; - goto out; + return -E1000_ERR_NVM; } - ret_val = nvm->ops.acquire(hw); - if (ret_val) - goto out; - while (widx < words) { u8 write_opcode = NVM_WRITE_OPCODE_SPI; - ret_val = e1000_ready_nvm_eeprom(hw); + ret_val = nvm->ops.acquire(hw); if (ret_val) - goto release; + return ret_val; + + ret_val = e1000_ready_nvm_eeprom(hw); + if (ret_val) { + nvm->ops.release(hw); + return ret_val; + } e1000_standby_nvm(hw); /* Send the WRITE ENABLE command (8 bit opcode) */ e1000_shift_out_eec_bits(hw, NVM_WREN_OPCODE_SPI, - nvm->opcode_bits); + nvm->opcode_bits); e1000_standby_nvm(hw); - /* - * Some SPI eeproms use the 8th address bit embedded in the + /* Some SPI eeproms use the 8th address bit embedded in the * opcode */ if ((nvm->address_bits == 8) && (offset >= 128)) @@ -427,7 +396,7 @@ s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) /* Send the Write command (8-bit opcode + addr) */ e1000_shift_out_eec_bits(hw, write_opcode, nvm->opcode_bits); e1000_shift_out_eec_bits(hw, (u16)((offset + widx) * 2), - nvm->address_bits); + nvm->address_bits); /* Loop to allow for up to whole page write of eeprom */ while (widx < words) { @@ -441,56 +410,130 @@ s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) break; } } + usleep_range(10000, 20000); + nvm->ops.release(hw); } - msleep(10); -release: - nvm->ops.release(hw); - -out: return ret_val; } /** - * e1000e_read_pba_num - Read device part number + * e1000_read_pba_string_generic - Read device part number * @hw: pointer to the HW structure * @pba_num: pointer to device part number + * @pba_num_size: size of part number buffer * * Reads the product board assembly (PBA) number from the EEPROM and stores * the value in pba_num. **/ -s32 e1000e_read_pba_num(struct e1000_hw *hw, u32 *pba_num) +s32 e1000_read_pba_string_generic(struct e1000_hw *hw, u8 *pba_num, + u32 pba_num_size) { - s32 ret_val; + s32 ret_val; u16 nvm_data; + u16 pba_ptr; + u16 offset; + u16 length; + + if (pba_num == NULL) { + e_dbg("PBA string buffer was null\n"); + return -E1000_ERR_INVALID_ARGUMENT; + } ret_val = e1000_read_nvm(hw, NVM_PBA_OFFSET_0, 1, &nvm_data); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } - *pba_num = (u32)(nvm_data << 16); - ret_val = e1000_read_nvm(hw, NVM_PBA_OFFSET_1, 1, &nvm_data); + ret_val = e1000_read_nvm(hw, NVM_PBA_OFFSET_1, 1, &pba_ptr); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } - *pba_num |= nvm_data; -out: - return ret_val; + /* if nvm_data is not ptr guard the PBA must be in legacy format which + * means pba_ptr is actually our second data word for the PBA number + * and we can decode it into an ascii string + */ + if (nvm_data != NVM_PBA_PTR_GUARD) { + e_dbg("NVM PBA number is not stored as string\n"); + + /* make sure callers buffer is big enough to store the PBA */ + if (pba_num_size < E1000_PBANUM_LENGTH) { + e_dbg("PBA string buffer too small\n"); + return E1000_ERR_NO_SPACE; + } + + /* extract hex string from data and pba_ptr */ + pba_num[0] = (nvm_data >> 12) & 0xF; + pba_num[1] = (nvm_data >> 8) & 0xF; + pba_num[2] = (nvm_data >> 4) & 0xF; + pba_num[3] = nvm_data & 0xF; + pba_num[4] = (pba_ptr >> 12) & 0xF; + pba_num[5] = (pba_ptr >> 8) & 0xF; + pba_num[6] = '-'; + pba_num[7] = 0; + pba_num[8] = (pba_ptr >> 4) & 0xF; + pba_num[9] = pba_ptr & 0xF; + + /* put a null character on the end of our string */ + pba_num[10] = '\0'; + + /* switch all the data but the '-' to hex char */ + for (offset = 0; offset < 10; offset++) { + if (pba_num[offset] < 0xA) + pba_num[offset] += '0'; + else if (pba_num[offset] < 0x10) + pba_num[offset] += 'A' - 0xA; + } + + return 0; + } + + ret_val = e1000_read_nvm(hw, pba_ptr, 1, &length); + if (ret_val) { + e_dbg("NVM Read Error\n"); + return ret_val; + } + + if (length == 0xFFFF || length == 0) { + e_dbg("NVM PBA number section invalid length\n"); + return -E1000_ERR_NVM_PBA_SECTION; + } + /* check if pba_num buffer is big enough */ + if (pba_num_size < (((u32)length * 2) - 1)) { + e_dbg("PBA string buffer too small\n"); + return -E1000_ERR_NO_SPACE; + } + + /* trim pba length from start of string */ + pba_ptr++; + length--; + + for (offset = 0; offset < length; offset++) { + ret_val = e1000_read_nvm(hw, pba_ptr + offset, 1, &nvm_data); + if (ret_val) { + e_dbg("NVM Read Error\n"); + return ret_val; + } + pba_num[offset * 2] = (u8)(nvm_data >> 8); + pba_num[(offset * 2) + 1] = (u8)(nvm_data & 0xFF); + } + pba_num[offset * 2] = '\0'; + + return 0; } /** - * e1000e_read_mac_addr_generic - Read device MAC address + * e1000_read_mac_addr_generic - Read device MAC address * @hw: pointer to the HW structure * * Reads the device MAC address from the EEPROM and stores the value. * Since devices with two ports use the same EEPROM, we increment the * last bit in the MAC address for the second port. **/ -s32 e1000e_read_mac_addr_generic(struct e1000_hw *hw) +s32 e1000_read_mac_addr_generic(struct e1000_hw *hw) { u32 rar_high; u32 rar_low; @@ -500,15 +543,15 @@ s32 e1000e_read_mac_addr_generic(struct e1000_hw *hw) rar_low = er32(RAL(0)); for (i = 0; i < E1000_RAL_MAC_ADDR_LEN; i++) - hw->mac.perm_addr[i] = (u8)(rar_low >> (i*8)); + hw->mac.perm_addr[i] = (u8)(rar_low >> (i * 8)); for (i = 0; i < E1000_RAH_MAC_ADDR_LEN; i++) - hw->mac.perm_addr[i+4] = (u8)(rar_high >> (i*8)); + hw->mac.perm_addr[i + 4] = (u8)(rar_high >> (i * 8)); - for (i = 0; i < ETH_ADDR_LEN; i++) + for (i = 0; i < ETH_ALEN; i++) hw->mac.addr[i] = hw->mac.perm_addr[i]; - return E1000_SUCCESS; + return 0; } /** @@ -520,7 +563,7 @@ s32 e1000e_read_mac_addr_generic(struct e1000_hw *hw) **/ s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 checksum = 0; u16 i, nvm_data; @@ -528,19 +571,17 @@ s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw) ret_val = e1000_read_nvm(hw, i, 1, &nvm_data); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } checksum += nvm_data; } - if (checksum != (u16) NVM_SUM) { + if (checksum != (u16)NVM_SUM) { e_dbg("NVM Checksum Invalid\n"); - ret_val = -E1000_ERR_NVM; - goto out; + return -E1000_ERR_NVM; } -out: - return ret_val; + return 0; } /** @@ -553,7 +594,7 @@ out: **/ s32 e1000e_update_nvm_checksum_generic(struct e1000_hw *hw) { - s32 ret_val; + s32 ret_val; u16 checksum = 0; u16 i, nvm_data; @@ -561,34 +602,32 @@ s32 e1000e_update_nvm_checksum_generic(struct e1000_hw *hw) ret_val = e1000_read_nvm(hw, i, 1, &nvm_data); if (ret_val) { e_dbg("NVM Read Error while updating checksum.\n"); - goto out; + return ret_val; } checksum += nvm_data; } - checksum = (u16) NVM_SUM - checksum; + checksum = (u16)NVM_SUM - checksum; ret_val = e1000_write_nvm(hw, NVM_CHECKSUM_REG, 1, &checksum); if (ret_val) e_dbg("NVM Write Error while updating checksum.\n"); -out: return ret_val; } /** - * e1000e_reload_nvm - Reloads EEPROM + * e1000e_reload_nvm_generic - Reloads EEPROM * @hw: pointer to the HW structure * * Reloads the EEPROM by setting the "Reinitialize from EEPROM" bit in the * extended control register. **/ -static void e1000e_reload_nvm(struct e1000_hw *hw) +void e1000e_reload_nvm_generic(struct e1000_hw *hw) { u32 ctrl_ext; - udelay(10); + usleep_range(10, 20); ctrl_ext = er32(CTRL_EXT); ctrl_ext |= E1000_CTRL_EXT_EE_RST; ew32(CTRL_EXT, ctrl_ext); e1e_flush(); } - diff --git a/vmkdrivers/src_9/drivers/net/e1000e/nvm.h b/vmkdrivers/src_9/drivers/net/e1000e/nvm.h new file mode 100644 index 0000000000000000000000000000000000000000..d0d05ab353ef13a5020ab81a83a48071fef3897b --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/nvm.h @@ -0,0 +1,41 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +#ifndef _E1000E_NVM_H_ +#define _E1000E_NVM_H_ + +s32 e1000e_acquire_nvm(struct e1000_hw *hw); + +s32 e1000e_poll_eerd_eewr_done(struct e1000_hw *hw, int ee_reg); +s32 e1000_read_mac_addr_generic(struct e1000_hw *hw); +s32 e1000_read_pba_string_generic(struct e1000_hw *hw, u8 *pba_num, + u32 pba_num_size); +s32 e1000e_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); +s32 e1000e_valid_led_default(struct e1000_hw *hw, u16 *data); +s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw); +s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); +s32 e1000e_update_nvm_checksum_generic(struct e1000_hw *hw); +void e1000e_release_nvm(struct e1000_hw *hw); + +#define E1000_STM_OPCODE 0xDB00 + +#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/param.c b/vmkdrivers/src_9/drivers/net/e1000e/param.c index 5e44aba075c80a48894fbc22af4d286a045fcc48..b4a298ede04d5c847a0b140c908c004975ee6be9 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/param.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/param.c @@ -1,40 +1,34 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ #include +#include +#include #include "e1000.h" -/* - * This is the only thing that needs to be changed to adjust the +/* This is the only thing that needs to be changed to adjust the * maximum number of ports that the driver can manage. */ - #define E1000_MAX_NIC 32 #define OPTION_UNSET -1 @@ -45,14 +39,12 @@ unsigned int copybreak = COPYBREAK_DEFAULT; module_param(copybreak, uint, 0644); MODULE_PARM_DESC(copybreak, - "Maximum size of packet that is copied to a new buffer on receive"); + "Maximum size of packet that is copied to a new buffer on receive"); -/* - * All parameters are treated the same, as an integer array of values. +/* All parameters are treated the same, as an integer array of values. * This macro just reduces the need to repeat the same declaration code * over and over (plus this helps to avoid typo bugs). */ - #define E1000_PARAM_INIT { [0 ... E1000_MAX_NIC] = OPTION_UNSET } #ifndef module_param_array /* Module Parameters are always initialized to -1, so that the driver @@ -65,23 +57,27 @@ MODULE_PARM_DESC(copybreak, * "Extensions to the C Language Family" of the GCC documentation. */ #define E1000_PARAM(X, desc) \ - static const int __devinitdata X[E1000_MAX_NIC+1] = E1000_PARAM_INIT; \ + static const int X[E1000_MAX_NIC+1] __devinitconst = E1000_PARAM_INIT; \ static unsigned int num_##X; \ MODULE_PARM(X, "1-" __MODULE_STRING(E1000_MAX_NIC) "i"); \ MODULE_PARM_DESC(X, desc); -#else +#elif defined(HAVE_CONFIG_HOTPLUG) #define E1000_PARAM(X, desc) \ - static int __devinitdata X[E1000_MAX_NIC+1] \ + static int X[E1000_MAX_NIC+1] __devinitdata \ = E1000_PARAM_INIT; \ static unsigned int num_##X; \ module_param_array_named(X, X, int, &num_##X, 0); \ MODULE_PARM_DESC(X, desc); +#else +#define E1000_PARAM(X, desc) \ + static int X[E1000_MAX_NIC+1] = E1000_PARAM_INIT; \ + static unsigned int num_##X; \ + module_param_array_named(X, X, int, &num_##X, 0); \ + MODULE_PARM_DESC(X, desc); #endif - -/* - * Transmit Interrupt Delay in units of 1.024 microseconds - * Tx interrupt delay needs to typically be set to something non zero +/* Transmit Interrupt Delay in units of 1.024 microseconds + * Tx interrupt delay needs to typically be set to something non-zero * * Valid Range: 0-65535 */ @@ -90,8 +86,7 @@ E1000_PARAM(TxIntDelay, "Transmit Interrupt Delay"); #define MAX_TXDELAY 0xFFFF #define MIN_TXDELAY 0 -/* - * Transmit Absolute Interrupt Delay in units of 1.024 microseconds +/* Transmit Absolute Interrupt Delay in units of 1.024 microseconds * * Valid Range: 0-65535 */ @@ -100,51 +95,51 @@ E1000_PARAM(TxAbsIntDelay, "Transmit Absolute Interrupt Delay"); #define MAX_TXABSDELAY 0xFFFF #define MIN_TXABSDELAY 0 -/* - * Receive Interrupt Delay in units of 1.024 microseconds +/* Receive Interrupt Delay in units of 1.024 microseconds * hardware will likely hang if you set this to anything but zero. * * Valid Range: 0-65535 */ E1000_PARAM(RxIntDelay, "Receive Interrupt Delay"); -#define DEFAULT_RDTR 0 #define MAX_RXDELAY 0xFFFF #define MIN_RXDELAY 0 -/* - * Receive Absolute Interrupt Delay in units of 1.024 microseconds +/* Receive Absolute Interrupt Delay in units of 1.024 microseconds * * Valid Range: 0-65535 */ E1000_PARAM(RxAbsIntDelay, "Receive Absolute Interrupt Delay"); -#define DEFAULT_RADV 8 #define MAX_RXABSDELAY 0xFFFF #define MIN_RXABSDELAY 0 -/* - * Interrupt Throttle Rate (interrupts/sec) +/* Interrupt Throttle Rate (interrupts/sec) * - * Valid Range: 100-100000 (0=off, 1=dynamic, 3=dynamic conservative) + * Valid Range: 100-100000 or one of: 0=off, 1=dynamic, 3=dynamic conservative */ E1000_PARAM(InterruptThrottleRate, "Interrupt Throttling Rate"); #define DEFAULT_ITR 3 #define MAX_ITR 100000 #define MIN_ITR 100 -#ifdef CONFIG_E1000E_MSIX /* IntMode (Interrupt Mode) * - * Valid Range: 0 - 2 + * Valid Range: varies depending on kernel configuration & hardware support * - * Default Value: 2 (MSI-X) + * legacy=0, MSI=1, MSI-X=2 + * + * When MSI/MSI-X support is enabled in kernel- + * Default Value: 2 (MSI-X) when supported by hardware, 1 (MSI) otherwise + * When MSI/MSI-X support is not enabled in kernel- + * Default Value: 0 (legacy) + * + * When a mode is specified that is not allowed/supported, it will be + * demoted to the most advanced interrupt mode available. */ E1000_PARAM(IntMode, "Interrupt Mode"); #define MAX_INTMODE 2 #define MIN_INTMODE 0 -#endif /* CONFIG_E1000E_MSIX */ -/* - * Enable Smart Power Down of the PHY +/* Enable Smart Power Down of the PHY * * Valid Range: 0, 1 * @@ -152,8 +147,7 @@ E1000_PARAM(IntMode, "Interrupt Mode"); */ E1000_PARAM(SmartPowerDownEnable, "Enable PHY smart power down"); -/* - * Enable Kumeran Lock Loss workaround +/* Enable Kumeran Lock Loss workaround * * Valid Range: 0, 1 * @@ -161,17 +155,16 @@ E1000_PARAM(SmartPowerDownEnable, "Enable PHY smart power down"); */ E1000_PARAM(KumeranLockLoss, "Enable Kumeran lock loss workaround"); -/* - * Enable CRC Stripping +/* Enable CRC Stripping * * Valid Range: 0, 1 * * Default Value: 1 (enabled) */ -E1000_PARAM(CrcStripping, "Enable CRC Stripping, disable if your BMC needs " \ - "the CRC"); +E1000_PARAM(CrcStripping, + "Enable CRC Stripping, disable if your BMC needs the CRC"); -#if defined(__VMKLNX__) +#ifdef __VMKLNX__ /* * Write Protect NVM * @@ -180,7 +173,26 @@ E1000_PARAM(CrcStripping, "Enable CRC Stripping, disable if your BMC needs " \ * Default Value: 1 (enabled) */ E1000_PARAM(WriteProtectNVM, "Write-protect NVM [WARNING: disabling this can lead to corrupted NVM]"); -#endif /* defined(__VMKLNX__) */ +#endif /* __VMKLNX__ */ + +/* Enable/disable EEE (a.k.a. IEEE802.3az) + * + * Valid Range: 0, 1 + * + * Default Value: 1 + */ +E1000_PARAM(EEE, "Enable/disable on parts that support the feature"); + +/* Enable node specific allocation of all data structures, typically + * specific to routing setups, not generally useful. + * + * Depends on: NUMA configuration + * + * Valid Range: -1, 0-32768 + * + * Default Value: -1 (disabled, default to kernel choice of node) + */ +E1000_PARAM(Node, "[ROUTING] Node to allocate memory on, default -1"); struct e1000_option { enum { enable_option, range_option, list_option } type; @@ -188,20 +200,31 @@ struct e1000_option { const char *err; int def; union { - struct { /* range_option info */ + /* range_option info */ + struct { int min; int max; } r; - struct { /* list_option info */ + /* list_option info */ + struct { int nr; - struct e1000_opt_list { int i; char *str; } *p; + struct e1000_opt_list { + int i; + char *str; + } *p; } l; } arg; }; +#ifdef HAVE_CONFIG_HOTPLUG static int __devinit e1000_validate_option(unsigned int *value, const struct e1000_option *opt, struct e1000_adapter *adapter) +#else +static int e1000_validate_option(unsigned int *value, + const struct e1000_option *opt, + struct e1000_adapter *adapter) +#endif { if (*value == OPTION_UNSET) { *value = opt->def; @@ -212,16 +235,19 @@ static int __devinit e1000_validate_option(unsigned int *value, case enable_option: switch (*value) { case OPTION_ENABLED: - e_info("%s Enabled\n", opt->name); + dev_info(pci_dev_to_dev(adapter->pdev), "%s Enabled\n", + opt->name); return 0; case OPTION_DISABLED: - e_info("%s Disabled\n", opt->name); + dev_info(pci_dev_to_dev(adapter->pdev), "%s Disabled\n", + opt->name); return 0; } break; case range_option: if (*value >= opt->arg.r.min && *value <= opt->arg.r.max) { - e_info("%s set to %i\n", opt->name, *value); + dev_info(pci_dev_to_dev(adapter->pdev), + "%s set to %i\n", opt->name, *value); return 0; } break; @@ -233,7 +259,8 @@ static int __devinit e1000_validate_option(unsigned int *value, ent = &opt->arg.l.p[i]; if (*value == ent->i) { if (ent->str[0] != '\0') - e_info("%s\n", ent->str); + dev_info(pci_dev_to_dev(adapter->pdev), "%s\n", + ent->str); return 0; } } @@ -243,8 +270,9 @@ static int __devinit e1000_validate_option(unsigned int *value, BUG(); } - e_info("Invalid %s value specified (%i) %s\n", opt->name, *value, - opt->err); + dev_info(pci_dev_to_dev(adapter->pdev), + "Invalid %s value specified (%i) %s\n", opt->name, *value, + opt->err); *value = opt->def; return -1; } @@ -258,18 +286,25 @@ static int __devinit e1000_validate_option(unsigned int *value, * value exists, a default value is used. The final value is stored * in a variable in the adapter structure. **/ +#ifdef HAVE_CONFIG_HOTPLUG void __devinit e1000e_check_options(struct e1000_adapter *adapter) +#else +void e1000e_check_options(struct e1000_adapter *adapter) +#endif { struct e1000_hw *hw = &adapter->hw; int bd = adapter->bd_number; if (bd >= E1000_MAX_NIC) { - e_notice("Warning: no configuration for board #%i\n", bd); - e_notice("Using defaults for all values\n"); + dev_notice(pci_dev_to_dev(adapter->pdev), + "Warning: no configuration for board #%i\n", bd); + dev_notice(pci_dev_to_dev(adapter->pdev), + "Using defaults for all values\n"); } - { /* Transmit Interrupt Delay */ - const struct e1000_option opt = { + /* Transmit Interrupt Delay */ + { + static const struct e1000_option opt = { .type = range_option, .name = "Transmit Interrupt Delay", .err = "using default of " @@ -287,8 +322,9 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) adapter->tx_int_delay = opt.def; } } - { /* Transmit Absolute Interrupt Delay */ - const struct e1000_option opt = { + /* Transmit Absolute Interrupt Delay */ + { + static const struct e1000_option opt = { .type = range_option, .name = "Transmit Absolute Interrupt Delay", .err = "using default of " @@ -306,8 +342,9 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) adapter->tx_abs_int_delay = opt.def; } } - { /* Receive Interrupt Delay */ - struct e1000_option opt = { + /* Receive Interrupt Delay */ + { + static struct e1000_option opt = { .type = range_option, .name = "Receive Interrupt Delay", .err = "using default of " @@ -325,8 +362,9 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) adapter->rx_int_delay = opt.def; } } - { /* Receive Absolute Interrupt Delay */ - const struct e1000_option opt = { + /* Receive Absolute Interrupt Delay */ + { + static const struct e1000_option opt = { .type = range_option, .name = "Receive Absolute Interrupt Delay", .err = "using default of " @@ -344,8 +382,9 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) adapter->rx_abs_int_delay = opt.def; } } - { /* Interrupt Throttling Rate */ - const struct e1000_option opt = { + /* Interrupt Throttling Rate */ + { + static const struct e1000_option opt = { .type = range_option, .name = "Interrupt Throttling Rate (ints/sec)", .err = "using default of " @@ -357,61 +396,101 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) if (num_InterruptThrottleRate > bd) { adapter->itr = InterruptThrottleRate[bd]; - switch (adapter->itr) { - case 0: - e_info("%s turned off\n", opt.name); - break; - case 1: - e_info("%s set to dynamic mode\n", opt.name); - adapter->itr_setting = adapter->itr; - adapter->itr = 20000; - break; - case 3: - e_info("%s set to dynamic conservative mode\n", - opt.name); - adapter->itr_setting = adapter->itr; - adapter->itr = 20000; - break; - default: - /* - * Save the setting, because the dynamic bits - * change itr. - */ - if (e1000_validate_option(&adapter->itr, &opt, - adapter) && - (adapter->itr == 3)) { - /* - * In case of invalid user value, - * default to conservative mode. - */ - adapter->itr_setting = adapter->itr; - adapter->itr = 20000; - } else { - /* - * Clear the lower two bits because - * they are used as control. - */ - adapter->itr_setting = - adapter->itr & ~3; - } - break; - } + + /* Make sure a message is printed for non-special + * values. And in case of an invalid option, display + * warning, use default and go through itr/itr_setting + * adjustment logic below + */ + if ((adapter->itr > 4) && + e1000_validate_option(&adapter->itr, &opt, adapter)) + adapter->itr = opt.def; } else { + /* If no option specified, use default value and go + * through the logic below to adjust itr/itr_setting + */ + adapter->itr = opt.def; + + /* Make sure a message is printed for non-special + * default values + */ + if (adapter->itr > 4) + dev_info(pci_dev_to_dev(adapter->pdev), + "%s set to default %d\n", opt.name, + adapter->itr); + } + + adapter->itr_setting = adapter->itr; + switch (adapter->itr) { + case 0: + dev_info(pci_dev_to_dev(adapter->pdev), + "%s turned off\n", opt.name); + break; + case 1: + dev_info(pci_dev_to_dev(adapter->pdev), + "%s set to dynamic mode\n", opt.name); + adapter->itr = 20000; + break; + case 2: + dev_info(pci_dev_to_dev(adapter->pdev), + "%s Invalid mode - setting default\n", + opt.name); adapter->itr_setting = opt.def; + /* fall-through */ + case 3: + dev_info(pci_dev_to_dev(adapter->pdev), + "%s set to dynamic conservative mode\n", + opt.name); adapter->itr = 20000; + break; + case 4: + dev_info(pci_dev_to_dev(adapter->pdev), + "%s set to simplified (2000-8000 ints) mode\n", + opt.name); + break; + default: + /* Save the setting, because the dynamic bits + * change itr. + * + * Clear the lower two bits because + * they are used as control. + */ + adapter->itr_setting &= ~3; + break; } } -#ifdef CONFIG_E1000E_MSIX - { /* Interrupt Mode */ - struct e1000_option opt = { + /* Interrupt Mode */ + { + static struct e1000_option opt = { .type = range_option, .name = "Interrupt Mode", - .err = "defaulting to 2 (MSI-X)", - .def = E1000E_INT_MODE_MSIX, - .arg = { .r = { .min = MIN_INTMODE, - .max = MAX_INTMODE } } +#ifndef CONFIG_PCI_MSI + .err = "defaulting to 0 (legacy)", + .def = E1000E_INT_MODE_LEGACY, + .arg = { .r = { .min = 0, + .max = 0 } } +#endif }; +#ifdef CONFIG_PCI_MSI + if (adapter->flags & FLAG_HAS_MSIX) { + opt.err = kstrdup("defaulting to 2 (MSI-X)", + GFP_KERNEL); + opt.def = E1000E_INT_MODE_MSIX; + opt.arg.r.max = E1000E_INT_MODE_MSIX; + } else { + opt.err = kstrdup("defaulting to 1 (MSI)", GFP_KERNEL); + opt.def = E1000E_INT_MODE_MSI; + opt.arg.r.max = E1000E_INT_MODE_MSI; + } + + if (!opt.err) { + dev_err(pci_dev_to_dev(adapter->pdev), + "Failed to allocate memory\n"); + return; + } +#endif + if (num_IntMode > bd) { unsigned int int_mode = IntMode[bd]; e1000_validate_option(&int_mode, &opt, adapter); @@ -419,10 +498,14 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) } else { adapter->int_mode = opt.def; } + +#ifdef CONFIG_PCI_MSI + kfree(opt.err); +#endif } -#endif /* CONFIG_E1000E_MSIX */ - { /* Smart Power Down */ - const struct e1000_option opt = { + /* Smart Power Down */ + { + static const struct e1000_option opt = { .type = enable_option, .name = "PHY Smart Power Down", .err = "defaulting to Disabled", @@ -432,13 +515,13 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) if (num_SmartPowerDownEnable > bd) { unsigned int spd = SmartPowerDownEnable[bd]; e1000_validate_option(&spd, &opt, adapter); - if ((adapter->flags & FLAG_HAS_SMART_POWER_DOWN) - && spd) + if ((adapter->flags & FLAG_HAS_SMART_POWER_DOWN) && spd) adapter->flags |= FLAG_SMART_POWER_DOWN; } } - { /* CRC Stripping */ - const struct e1000_option opt = { + /* CRC Stripping */ + { + static const struct e1000_option opt = { .type = enable_option, .name = "CRC Stripping", .err = "defaulting to Enabled", @@ -448,33 +531,99 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) if (num_CrcStripping > bd) { unsigned int crc_stripping = CrcStripping[bd]; e1000_validate_option(&crc_stripping, &opt, adapter); - if (crc_stripping == OPTION_ENABLED) + if (crc_stripping == OPTION_ENABLED) { adapter->flags2 |= FLAG2_CRC_STRIPPING; + adapter->flags2 |= FLAG2_DFLT_CRC_STRIPPING; + } } else { adapter->flags2 |= FLAG2_CRC_STRIPPING; + adapter->flags2 |= FLAG2_DFLT_CRC_STRIPPING; } } - { /* Kumeran Lock Loss Workaround */ - const struct e1000_option opt = { + /* Kumeran Lock Loss Workaround */ + { + static const struct e1000_option opt = { .type = enable_option, .name = "Kumeran Lock Loss Workaround", .err = "defaulting to Enabled", .def = OPTION_ENABLED }; + bool enabled = opt.def; if (num_KumeranLockLoss > bd) { unsigned int kmrn_lock_loss = KumeranLockLoss[bd]; e1000_validate_option(&kmrn_lock_loss, &opt, adapter); - if (hw->mac.type == e1000_ich8lan) - e1000e_set_kmrn_lock_loss_workaround_ich8lan(hw, - kmrn_lock_loss); - } else { - if (hw->mac.type == e1000_ich8lan) - e1000e_set_kmrn_lock_loss_workaround_ich8lan(hw, - opt.def); + enabled = kmrn_lock_loss; + } + + if (hw->mac.type == e1000_ich8lan) + e1000e_set_kmrn_lock_loss_workaround_ich8lan(hw, + enabled); + } + /* EEE for parts supporting the feature */ + { + static const struct e1000_option opt = { + .type = enable_option, + .name = "EEE Support", + .err = "defaulting to Enabled (100T/1000T full)", + .def = OPTION_ENABLED + }; + + if (adapter->flags2 & FLAG2_HAS_EEE) { + /* Currently only supported on 82579 and newer */ + if (num_EEE > bd) { + unsigned int eee = EEE[bd]; + e1000_validate_option(&eee, &opt, adapter); + hw->dev_spec.ich8lan.eee_disable = !eee; + } else { + hw->dev_spec.ich8lan.eee_disable = !opt.def; + } } } -#if defined(__VMKLNX__) + /* configure node specific allocation */ + { + static struct e1000_option opt = { + .type = range_option, + .name = "Node used to allocate memory", + .err = "defaulting to -1 (disabled)", +#ifdef HAVE_EARLY_VMALLOC_NODE + .def = 0, +#else + .def = -1, +#endif + .arg = { .r = { .min = 0, + .max = MAX_NUMNODES - 1 } } + }; + int node = opt.def; + + /* if the default was zero then we need to set the + * default value to an online node, which is not + * necessarily zero, and the constant initializer + * above can't take first_online_node + */ + if (node == 0) { + /* must set opt.def for validate */ + node = first_online_node; + opt.def = node; + } + + if (num_Node > bd) { + node = Node[bd]; + e1000_validate_option((unsigned int *)&node, &opt, + adapter); + if (node != OPTION_UNSET) + e_info("node used for allocation: %d\n", node); + } + + /* check sanity of the value */ + if ((node != -1) && !node_online(node)) { + e_info("ignoring node set to invalid value %d\n", node); + node = opt.def; + } + + adapter->node = node; + } +#ifdef __VMKLNX__ { /* Write-protect NVM */ const struct e1000_option opt = { .type = enable_option, @@ -496,5 +645,5 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) } } } -#endif /* defined(__VMKLNX__) */ +#endif /* __VMKLNX__ */ } diff --git a/vmkdrivers/src_9/drivers/net/e1000e/e1000_phy.c b/vmkdrivers/src_9/drivers/net/e1000e/phy.c similarity index 65% rename from vmkdrivers/src_9/drivers/net/e1000e/e1000_phy.c rename to vmkdrivers/src_9/drivers/net/e1000e/phy.c index ec1b572bab02483398c1ebb6074ba7f997232ae9..a28d9b46152d88d13bd0f3f0bc7eb35ed3446eca 100644 --- a/vmkdrivers/src_9/drivers/net/e1000e/e1000_phy.c +++ b/vmkdrivers/src_9/drivers/net/e1000e/phy.c @@ -1,68 +1,64 @@ -/******************************************************************************* - - Intel PRO/1000 Linux driver - Copyright(c) 1999 - 2009 Intel Corporation. - - This program is free software; you can redistribute it and/or modify it - under the terms and conditions of the GNU General Public License, - version 2, as published by the Free Software Foundation. - - This program is distributed in the hope it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - - The full GNU General Public License is included in this distribution in - the file called "COPYING". - - Contact Information: - Linux NICS - e1000-devel Mailing List - Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ #include "e1000.h" -static s32 e1000_copper_link_autoneg(struct e1000_hw *hw); -static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw); -static u32 e1000_get_phy_addr_for_bm_page(u32 page, u32 reg); +static s32 e1000_wait_autoneg(struct e1000_hw *hw); static s32 e1000_access_phy_wakeup_reg_bm(struct e1000_hw *hw, u32 offset, - u16 *data, bool read); + u16 *data, bool read, bool page_set); static u32 e1000_get_phy_addr_for_hv_page(u32 page); static s32 e1000_access_phy_debug_regs_hv(struct e1000_hw *hw, u32 offset, - u16 *data, bool read); + u16 *data, bool read); /* Cable length tables */ -static const u16 e1000_m88_cable_length_table[] = - { 0, 50, 80, 110, 140, 140, E1000_CABLE_LENGTH_UNDEFINED }; +static const u16 e1000_m88_cable_length_table[] = { + 0, 50, 80, 110, 140, 140, E1000_CABLE_LENGTH_UNDEFINED +}; + #define M88E1000_CABLE_LENGTH_TABLE_SIZE \ - (sizeof(e1000_m88_cable_length_table) / \ - sizeof(e1000_m88_cable_length_table[0])) - -static const u16 e1000_igp_2_cable_length_table[] = - { 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 8, 11, 13, 16, 18, 21, - 0, 0, 0, 3, 6, 10, 13, 16, 19, 23, 26, 29, 32, 35, 38, 41, - 6, 10, 14, 18, 22, 26, 30, 33, 37, 41, 44, 48, 51, 54, 58, 61, - 21, 26, 31, 35, 40, 44, 49, 53, 57, 61, 65, 68, 72, 75, 79, 82, - 40, 45, 51, 56, 61, 66, 70, 75, 79, 83, 87, 91, 94, 98, 101, 104, - 60, 66, 72, 77, 82, 87, 92, 96, 100, 104, 108, 111, 114, 117, 119, 121, - 83, 89, 95, 100, 105, 109, 113, 116, 119, 122, 124, - 104, 109, 114, 118, 121, 124}; + (sizeof(e1000_m88_cable_length_table) / \ + sizeof(e1000_m88_cable_length_table[0])) + +static const u16 e1000_igp_2_cable_length_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 8, 11, 13, 16, 18, 21, 0, 0, 0, 3, + 6, 10, 13, 16, 19, 23, 26, 29, 32, 35, 38, 41, 6, 10, 14, 18, 22, + 26, 30, 33, 37, 41, 44, 48, 51, 54, 58, 61, 21, 26, 31, 35, 40, + 44, 49, 53, 57, 61, 65, 68, 72, 75, 79, 82, 40, 45, 51, 56, 61, + 66, 70, 75, 79, 83, 87, 91, 94, 98, 101, 104, 60, 66, 72, 77, 82, + 87, 92, 96, 100, 104, 108, 111, 114, 117, 119, 121, 83, 89, 95, + 100, 105, 109, 113, 116, 119, 122, 124, 104, 109, 114, 118, 121, + 124 +}; + #define IGP02E1000_CABLE_LENGTH_TABLE_SIZE \ - (sizeof(e1000_igp_2_cable_length_table) / \ - sizeof(e1000_igp_2_cable_length_table[0])) + (sizeof(e1000_igp_2_cable_length_table) / \ + sizeof(e1000_igp_2_cable_length_table[0])) /** * e1000e_check_reset_block_generic - Check if PHY reset is blocked * @hw: pointer to the HW structure * * Read the PHY management control register and check whether a PHY reset - * is blocked. If a reset is not blocked return E1000_SUCCESS, otherwise + * is blocked. If a reset is not blocked return 0, otherwise * return E1000_BLK_PHY_RESET (12). **/ s32 e1000e_check_reset_block_generic(struct e1000_hw *hw) @@ -71,8 +67,7 @@ s32 e1000e_check_reset_block_generic(struct e1000_hw *hw) manc = er32(MANC); - return (manc & E1000_MANC_BLK_PHY_RST_ON_IDE) ? - E1000_BLK_PHY_RESET : E1000_SUCCESS; + return (manc & E1000_MANC_BLK_PHY_RST_ON_IDE) ? E1000_BLK_PHY_RESET : 0; } /** @@ -85,57 +80,34 @@ s32 e1000e_check_reset_block_generic(struct e1000_hw *hw) s32 e1000e_get_phy_id(struct e1000_hw *hw) { struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; + s32 ret_val = 0; u16 phy_id; u16 retry_count = 0; - if (!(phy->ops.read_reg)) - goto out; + if (!phy->ops.read_reg) + return 0; while (retry_count < 2) { - ret_val = e1e_rphy(hw, PHY_ID1, &phy_id); + ret_val = e1e_rphy(hw, MII_PHYSID1, &phy_id); if (ret_val) - goto out; + return ret_val; phy->id = (u32)(phy_id << 16); - udelay(20); - ret_val = e1e_rphy(hw, PHY_ID2, &phy_id); + usleep_range(20, 40); + ret_val = e1e_rphy(hw, MII_PHYSID2, &phy_id); if (ret_val) - goto out; + return ret_val; phy->id |= (u32)(phy_id & PHY_REVISION_MASK); phy->revision = (u32)(phy_id & ~PHY_REVISION_MASK); if (phy->id != 0 && phy->id != PHY_REVISION_MASK) - goto out; - - /* - * If the PHY ID is still unknown, we may have an 82577 - * without link. We will try again after setting Slow MDIC - * mode. No harm in trying again in this case since the PHY - * ID is unknown at this point anyway. - */ - ret_val = phy->ops.acquire(hw); - if (ret_val) - goto out; - ret_val = e1000_set_mdio_slow_mode_hv(hw, true); - if (ret_val) - goto out; - phy->ops.release(hw); + return 0; retry_count++; } -out: - /* Revert to MDIO fast mode, if applicable */ - if (retry_count) { - ret_val = phy->ops.acquire(hw); - if (ret_val) - return ret_val; - ret_val = e1000_set_mdio_slow_mode_hv(hw, false); - phy->ops.release(hw); - } - return ret_val; + return 0; } /** @@ -146,19 +118,13 @@ out: **/ s32 e1000e_phy_reset_dsp(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; - - if (!(hw->phy.ops.write_reg)) - goto out; + s32 ret_val; ret_val = e1e_wphy(hw, M88E1000_PHY_GEN_CONTROL, 0xC1); if (ret_val) - goto out; - - ret_val = e1e_wphy(hw, M88E1000_PHY_GEN_CONTROL, 0); + return ret_val; -out: - return ret_val; + return e1e_wphy(hw, M88E1000_PHY_GEN_CONTROL, 0); } /** @@ -174,21 +140,23 @@ s32 e1000e_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data) { struct e1000_phy_info *phy = &hw->phy; u32 i, mdic = 0; - s32 ret_val = E1000_SUCCESS; - /* - * Set up Op-code, Phy Address, and register offset in the MDI + if (offset > MAX_PHY_REG_ADDRESS) { + e_dbg("PHY Address %d is out of range\n", offset); + return -E1000_ERR_PARAM; + } + + /* Set up Op-code, Phy Address, and register offset in the MDI * Control register. The MAC will take care of interfacing with the * PHY to retrieve the desired data. */ mdic = ((offset << E1000_MDIC_REG_SHIFT) | - (phy->addr << E1000_MDIC_PHY_SHIFT) | - (E1000_MDIC_OP_READ)); + (phy->addr << E1000_MDIC_PHY_SHIFT) | + (E1000_MDIC_OP_READ)); ew32(MDIC, mdic); - /* - * Poll the ready bit to see if the MDI read completed + /* Poll the ready bit to see if the MDI read completed * Increasing the time out as testing showed failures with * the lower time out */ @@ -200,18 +168,27 @@ s32 e1000e_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data) } if (!(mdic & E1000_MDIC_READY)) { e_dbg("MDI Read did not complete\n"); - ret_val = -E1000_ERR_PHY; - goto out; + return -E1000_ERR_PHY; } if (mdic & E1000_MDIC_ERROR) { e_dbg("MDI Error\n"); - ret_val = -E1000_ERR_PHY; - goto out; + return -E1000_ERR_PHY; + } + if (((mdic & E1000_MDIC_REG_MASK) >> E1000_MDIC_REG_SHIFT) != offset) { + e_dbg("MDI Read offset error - requested %d, returned %d\n", + offset, + (mdic & E1000_MDIC_REG_MASK) >> E1000_MDIC_REG_SHIFT); + return -E1000_ERR_PHY; } - *data = (u16) mdic; + *data = (u16)mdic; -out: - return ret_val; + /* Allow some time after each MDIC transaction to avoid + * reading duplicate data in the next MDIC transaction. + */ + if (hw->mac.type == e1000_pch2lan) + udelay(100); + + return 0; } /** @@ -226,22 +203,24 @@ s32 e1000e_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data) { struct e1000_phy_info *phy = &hw->phy; u32 i, mdic = 0; - s32 ret_val = E1000_SUCCESS; - /* - * Set up Op-code, Phy Address, and register offset in the MDI + if (offset > MAX_PHY_REG_ADDRESS) { + e_dbg("PHY Address %d is out of range\n", offset); + return -E1000_ERR_PARAM; + } + + /* Set up Op-code, Phy Address, and register offset in the MDI * Control register. The MAC will take care of interfacing with the * PHY to retrieve the desired data. */ mdic = (((u32)data) | - (offset << E1000_MDIC_REG_SHIFT) | - (phy->addr << E1000_MDIC_PHY_SHIFT) | - (E1000_MDIC_OP_WRITE)); + (offset << E1000_MDIC_REG_SHIFT) | + (phy->addr << E1000_MDIC_PHY_SHIFT) | + (E1000_MDIC_OP_WRITE)); ew32(MDIC, mdic); - /* - * Poll the ready bit to see if the MDI read completed + /* Poll the ready bit to see if the MDI read completed * Increasing the time out as testing showed failures with * the lower time out */ @@ -253,17 +232,26 @@ s32 e1000e_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data) } if (!(mdic & E1000_MDIC_READY)) { e_dbg("MDI Write did not complete\n"); - ret_val = -E1000_ERR_PHY; - goto out; + return -E1000_ERR_PHY; } if (mdic & E1000_MDIC_ERROR) { e_dbg("MDI Error\n"); - ret_val = -E1000_ERR_PHY; - goto out; + return -E1000_ERR_PHY; + } + if (((mdic & E1000_MDIC_REG_MASK) >> E1000_MDIC_REG_SHIFT) != offset) { + e_dbg("MDI Write offset error - requested %d, returned %d\n", + offset, + (mdic & E1000_MDIC_REG_MASK) >> E1000_MDIC_REG_SHIFT); + return -E1000_ERR_PHY; } -out: - return ret_val; + /* Allow some time after each MDIC transaction to avoid + * reading duplicate data in the next MDIC transaction. + */ + if (hw->mac.type == e1000_pch2lan) + udelay(100); + + return 0; } /** @@ -278,21 +266,17 @@ out: **/ s32 e1000e_read_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 *data) { - s32 ret_val = E1000_SUCCESS; - - if (!(hw->phy.ops.acquire)) - goto out; + s32 ret_val; ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, - data); + data); hw->phy.ops.release(hw); -out: return ret_val; } @@ -307,24 +291,38 @@ out: **/ s32 e1000e_write_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 data) { - s32 ret_val = E1000_SUCCESS; - - if (!(hw->phy.ops.acquire)) - goto out; + s32 ret_val; ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, - data); + data); hw->phy.ops.release(hw); -out: return ret_val; } +/** + * e1000_set_page_igp - Set page as on IGP-like PHY(s) + * @hw: pointer to the HW structure + * @page: page to set (shifted left when necessary) + * + * Sets PHY page required for PHY register access. Assumes semaphore is + * already acquired. Note, this function sets phy.addr to 1 so the caller + * must set it appropriately (if necessary) after this function returns. + **/ +s32 e1000_set_page_igp(struct e1000_hw *hw, u16 page) +{ + e_dbg("Setting page 0x%x\n", page); + + hw->phy.addr = 1; + + return e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, page); +} + /** * __e1000e_read_phy_reg_igp - Read igp PHY register * @hw: pointer to the HW structure @@ -337,36 +335,33 @@ out: * semaphores before exiting. **/ static s32 __e1000e_read_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 *data, - bool locked) + bool locked) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val = 0; if (!locked) { - if (!(hw->phy.ops.acquire)) - goto out; + if (!hw->phy.ops.acquire) + return 0; ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; } - if (offset > MAX_PHY_MULTI_PAGE_REG) { + if (offset > MAX_PHY_MULTI_PAGE_REG) ret_val = e1000e_write_phy_reg_mdic(hw, - IGP01E1000_PHY_PAGE_SELECT, - (u16)offset); - if (ret_val) - goto release; - } - - ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, - data); - -release: + IGP01E1000_PHY_PAGE_SELECT, + (u16)offset); + if (!ret_val) + ret_val = e1000e_read_phy_reg_mdic(hw, + MAX_PHY_REG_ADDRESS & offset, + data); if (!locked) hw->phy.ops.release(hw); -out: + return ret_val; } + /** * e1000e_read_phy_reg_igp - Read igp PHY register * @hw: pointer to the HW structure @@ -407,35 +402,29 @@ s32 e1000e_read_phy_reg_igp_locked(struct e1000_hw *hw, u32 offset, u16 *data) * at the offset. Release any acquired semaphores before exiting. **/ static s32 __e1000e_write_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 data, - bool locked) + bool locked) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val = 0; if (!locked) { - if (!(hw->phy.ops.acquire)) - goto out; + if (!hw->phy.ops.acquire) + return 0; ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; } - if (offset > MAX_PHY_MULTI_PAGE_REG) { + if (offset > MAX_PHY_MULTI_PAGE_REG) ret_val = e1000e_write_phy_reg_mdic(hw, - IGP01E1000_PHY_PAGE_SELECT, - (u16)offset); - if (ret_val) - goto release; - } - - ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, - data); - -release: + IGP01E1000_PHY_PAGE_SELECT, + (u16)offset); + if (!ret_val) + ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & + offset, data); if (!locked) hw->phy.ops.release(hw); -out: return ret_val; } @@ -479,23 +468,25 @@ s32 e1000e_write_phy_reg_igp_locked(struct e1000_hw *hw, u32 offset, u16 data) * Release any acquired semaphores before exiting. **/ static s32 __e1000_read_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 *data, - bool locked) + bool locked) { u32 kmrnctrlsta; - s32 ret_val = E1000_SUCCESS; if (!locked) { - if (!(hw->phy.ops.acquire)) - goto out; + s32 ret_val = 0; + + if (!hw->phy.ops.acquire) + return 0; ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; } kmrnctrlsta = ((offset << E1000_KMRNCTRLSTA_OFFSET_SHIFT) & - E1000_KMRNCTRLSTA_OFFSET) | E1000_KMRNCTRLSTA_REN; + E1000_KMRNCTRLSTA_OFFSET) | E1000_KMRNCTRLSTA_REN; ew32(KMRNCTRLSTA, kmrnctrlsta); + e1e_flush(); udelay(2); @@ -505,8 +496,7 @@ static s32 __e1000_read_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 *data, if (!locked) hw->phy.ops.release(hw); -out: - return ret_val; + return 0; } /** @@ -551,31 +541,32 @@ s32 e1000e_read_kmrn_reg_locked(struct e1000_hw *hw, u32 offset, u16 *data) * before exiting. **/ static s32 __e1000_write_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 data, - bool locked) + bool locked) { u32 kmrnctrlsta; - s32 ret_val = E1000_SUCCESS; if (!locked) { - if (!(hw->phy.ops.acquire)) - goto out; + s32 ret_val = 0; + + if (!hw->phy.ops.acquire) + return 0; ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; } kmrnctrlsta = ((offset << E1000_KMRNCTRLSTA_OFFSET_SHIFT) & - E1000_KMRNCTRLSTA_OFFSET) | data; + E1000_KMRNCTRLSTA_OFFSET) | data; ew32(KMRNCTRLSTA, kmrnctrlsta); + e1e_flush(); udelay(2); if (!locked) hw->phy.ops.release(hw); -out: - return ret_val; + return 0; } /** @@ -606,6 +597,45 @@ s32 e1000e_write_kmrn_reg_locked(struct e1000_hw *hw, u32 offset, u16 data) return __e1000_write_kmrn_reg(hw, offset, data, true); } +/** + * e1000_set_master_slave_mode - Setup PHY for Master/slave mode + * @hw: pointer to the HW structure + * + * Sets up Master/slave mode + **/ +static s32 e1000_set_master_slave_mode(struct e1000_hw *hw) +{ + s32 ret_val; + u16 phy_data; + + /* Resolve Master/Slave mode */ + ret_val = e1e_rphy(hw, MII_CTRL1000, &phy_data); + if (ret_val) + return ret_val; + + /* load defaults for future use */ + hw->phy.original_ms_type = (phy_data & CTL1000_ENABLE_MASTER) ? + ((phy_data & CTL1000_AS_MASTER) ? + e1000_ms_force_master : e1000_ms_force_slave) : e1000_ms_auto; + + switch (hw->phy.ms_type) { + case e1000_ms_force_master: + phy_data |= (CTL1000_ENABLE_MASTER | CTL1000_AS_MASTER); + break; + case e1000_ms_force_slave: + phy_data |= CTL1000_ENABLE_MASTER; + phy_data &= ~(CTL1000_AS_MASTER); + break; + case e1000_ms_auto: + phy_data &= ~CTL1000_ENABLE_MASTER; + /* fall-through */ + default: + break; + } + + return e1e_wphy(hw, MII_CTRL1000, phy_data); +} + /** * e1000_copper_link_setup_82577 - Setup 82577 PHY for copper link * @hw: pointer to the HW structure @@ -614,19 +644,13 @@ s32 e1000e_write_kmrn_reg_locked(struct e1000_hw *hw, u32 offset, u16 data) **/ s32 e1000_copper_link_setup_82577(struct e1000_hw *hw) { - struct e1000_phy_info *phy = &hw->phy; s32 ret_val; u16 phy_data; - if (phy->reset_disable) { - ret_val = E1000_SUCCESS; - goto out; - } - - /* Enable CRS on TX. This must be set for half-duplex operation. */ + /* Enable CRS on Tx. This must be set for half-duplex operation. */ ret_val = e1e_rphy(hw, I82577_CFG_REG, &phy_data); if (ret_val) - goto out; + return ret_val; phy_data |= I82577_CFG_ASSERT_CRS_ON_TX; @@ -634,9 +658,35 @@ s32 e1000_copper_link_setup_82577(struct e1000_hw *hw) phy_data |= I82577_CFG_ENABLE_DOWNSHIFT; ret_val = e1e_wphy(hw, I82577_CFG_REG, phy_data); + if (ret_val) + return ret_val; -out: - return ret_val; + /* Set MDI/MDIX mode */ + ret_val = e1e_rphy(hw, I82577_PHY_CTRL_2, &phy_data); + if (ret_val) + return ret_val; + phy_data &= ~I82577_PHY_CTRL2_MDIX_CFG_MASK; + /* Options: + * 0 - Auto (default) + * 1 - MDI mode + * 2 - MDI-X mode + */ + switch (hw->phy.mdix) { + case 1: + break; + case 2: + phy_data |= I82577_PHY_CTRL2_MANUAL_MDIX; + break; + case 0: + default: + phy_data |= I82577_PHY_CTRL2_AUTO_MDI_MDIX; + break; + } + ret_val = e1e_wphy(hw, I82577_PHY_CTRL_2, phy_data); + if (ret_val) + return ret_val; + + return e1000_set_master_slave_mode(hw); } /** @@ -652,22 +702,16 @@ s32 e1000e_copper_link_setup_m88(struct e1000_hw *hw) s32 ret_val; u16 phy_data; - if (phy->reset_disable) { - ret_val = E1000_SUCCESS; - goto out; - } - - /* Enable CRS on TX. This must be set for half-duplex operation. */ + /* Enable CRS on Tx. This must be set for half-duplex operation. */ ret_val = e1e_rphy(hw, M88E1000_PHY_SPEC_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; /* For BM PHY this bit is downshift enable */ if (phy->type != e1000_phy_bm) phy_data |= M88E1000_PSCR_ASSERT_CRS_ON_TX; - /* - * Options: + /* Options: * MDI/MDI-X = 0 (default) * 0 - Auto for all speeds * 1 - MDI mode @@ -692,93 +736,103 @@ s32 e1000e_copper_link_setup_m88(struct e1000_hw *hw) break; } - /* - * Options: + /* Options: * disable_polarity_correction = 0 (default) * Automatic Correction for Reversed Cable Polarity * 0 - Disabled * 1 - Enabled */ phy_data &= ~M88E1000_PSCR_POLARITY_REVERSAL; - if (phy->disable_polarity_correction == 1) + if (phy->disable_polarity_correction) phy_data |= M88E1000_PSCR_POLARITY_REVERSAL; /* Enable downshift on BM (disabled by default) */ - if (phy->type == e1000_phy_bm) + if (phy->type == e1000_phy_bm) { + /* For 82574/82583, first disable then enable downshift */ + if (phy->id == BME1000_E_PHY_ID_R2) { + phy_data &= ~BME1000_PSCR_ENABLE_DOWNSHIFT; + ret_val = e1e_wphy(hw, M88E1000_PHY_SPEC_CTRL, + phy_data); + if (ret_val) + return ret_val; + /* Commit the changes. */ + ret_val = phy->ops.commit(hw); + if (ret_val) { + e_dbg("Error committing the PHY changes\n"); + return ret_val; + } + } + phy_data |= BME1000_PSCR_ENABLE_DOWNSHIFT; + } ret_val = e1e_wphy(hw, M88E1000_PHY_SPEC_CTRL, phy_data); if (ret_val) - goto out; + return ret_val; if ((phy->type == e1000_phy_m88) && (phy->revision < E1000_REVISION_4) && (phy->id != BME1000_E_PHY_ID_R2)) { - /* - * Force TX_CLK in the Extended PHY Specific Control Register + /* Force TX_CLK in the Extended PHY Specific Control Register * to 25MHz clock. */ - ret_val = e1e_rphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, - &phy_data); + ret_val = e1e_rphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; phy_data |= M88E1000_EPSCR_TX_CLK_25; - if ((phy->revision == E1000_REVISION_2) && - (phy->id == M88E1111_I_PHY_ID)) { + if ((phy->revision == 2) && (phy->id == M88E1111_I_PHY_ID)) { /* 82573L PHY - set the downshift counter to 5x. */ phy_data &= ~M88EC018_EPSCR_DOWNSHIFT_COUNTER_MASK; phy_data |= M88EC018_EPSCR_DOWNSHIFT_COUNTER_5X; } else { /* Configure Master and Slave downshift values */ phy_data &= ~(M88E1000_EPSCR_MASTER_DOWNSHIFT_MASK | - M88E1000_EPSCR_SLAVE_DOWNSHIFT_MASK); + M88E1000_EPSCR_SLAVE_DOWNSHIFT_MASK); phy_data |= (M88E1000_EPSCR_MASTER_DOWNSHIFT_1X | - M88E1000_EPSCR_SLAVE_DOWNSHIFT_1X); + M88E1000_EPSCR_SLAVE_DOWNSHIFT_1X); } - ret_val = e1e_wphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, - phy_data); + ret_val = e1e_wphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, phy_data); if (ret_val) - goto out; + return ret_val; } if ((phy->type == e1000_phy_bm) && (phy->id == BME1000_E_PHY_ID_R2)) { /* Set PHY page 0, register 29 to 0x0003 */ ret_val = e1e_wphy(hw, 29, 0x0003); if (ret_val) - goto out; + return ret_val; /* Set PHY page 0, register 30 to 0x0000 */ ret_val = e1e_wphy(hw, 30, 0x0000); if (ret_val) - goto out; + return ret_val; } /* Commit the changes. */ - ret_val = e1000e_commit_phy(hw); - if (ret_val) { - e_dbg("Error committing the PHY changes\n"); - goto out; + if (phy->ops.commit) { + ret_val = phy->ops.commit(hw); + if (ret_val) { + e_dbg("Error committing the PHY changes\n"); + return ret_val; + } } if (phy->type == e1000_phy_82578) { - ret_val = e1e_rphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, - &phy_data); + ret_val = e1e_rphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; /* 82578 PHY - set the downshift count to 1x. */ phy_data |= I82578_EPSCR_DOWNSHIFT_ENABLE; phy_data &= ~I82578_EPSCR_DOWNSHIFT_COUNTER_MASK; - ret_val = e1e_wphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, - phy_data); + ret_val = e1e_wphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, phy_data); if (ret_val) - goto out; + return ret_val; } -out: - return ret_val; + return 0; } /** @@ -794,48 +848,29 @@ s32 e1000e_copper_link_setup_igp(struct e1000_hw *hw) s32 ret_val; u16 data; - if (phy->reset_disable) { - ret_val = E1000_SUCCESS; - goto out; - } - ret_val = e1000_phy_hw_reset(hw); if (ret_val) { e_dbg("Error resetting the PHY.\n"); - goto out; + return ret_val; } - /* - * Wait 100ms for MAC to configure PHY from NVM settings, to avoid + /* Wait 100ms for MAC to configure PHY from NVM settings, to avoid * timeout issues when LFS is enabled. */ msleep(100); - /* - * The NVM settings will configure LPLU in D3 for - * non-IGP1 PHYs. - */ - if (phy->type == e1000_phy_igp) { - /* disable lplu d3 during driver init */ - ret_val = hw->phy.ops.set_d3_lplu_state(hw, false); - if (ret_val) { - e_dbg("Error Disabling LPLU D3\n"); - goto out; - } - } - /* disable lplu d0 during driver init */ if (hw->phy.ops.set_d0_lplu_state) { ret_val = hw->phy.ops.set_d0_lplu_state(hw, false); if (ret_val) { e_dbg("Error Disabling LPLU D0\n"); - goto out; + return ret_val; } } /* Configure mdi-mdix settings */ ret_val = e1e_rphy(hw, IGP01E1000_PHY_PORT_CTRL, &data); if (ret_val) - goto out; + return ret_val; data &= ~IGP01E1000_PSCR_AUTO_MDIX; @@ -853,139 +888,41 @@ s32 e1000e_copper_link_setup_igp(struct e1000_hw *hw) } ret_val = e1e_wphy(hw, IGP01E1000_PHY_PORT_CTRL, data); if (ret_val) - goto out; + return ret_val; /* set auto-master slave resolution settings */ if (hw->mac.autoneg) { - /* - * when autonegotiation advertisement is only 1000Mbps then we + /* when autonegotiation advertisement is only 1000Mbps then we * should disable SmartSpeed and enable Auto MasterSlave * resolution as hardware default. */ if (phy->autoneg_advertised == ADVERTISE_1000_FULL) { /* Disable SmartSpeed */ ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); + IGP01E1000_PHY_PORT_CONFIG, &data); if (ret_val) - goto out; + return ret_val; data &= ~IGP01E1000_PSCFR_SMART_SPEED; ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); + IGP01E1000_PHY_PORT_CONFIG, data); if (ret_val) - goto out; + return ret_val; /* Set auto Master/Slave resolution process */ - ret_val = e1e_rphy(hw, PHY_1000T_CTRL, &data); + ret_val = e1e_rphy(hw, MII_CTRL1000, &data); if (ret_val) - goto out; + return ret_val; - data &= ~CR_1000T_MS_ENABLE; - ret_val = e1e_wphy(hw, PHY_1000T_CTRL, data); + data &= ~CTL1000_ENABLE_MASTER; + ret_val = e1e_wphy(hw, MII_CTRL1000, data); if (ret_val) - goto out; + return ret_val; } - ret_val = e1e_rphy(hw, PHY_1000T_CTRL, &data); - if (ret_val) - goto out; - - /* load defaults for future use */ - phy->original_ms_type = (data & CR_1000T_MS_ENABLE) ? - ((data & CR_1000T_MS_VALUE) ? - e1000_ms_force_master : - e1000_ms_force_slave) : - e1000_ms_auto; - - switch (phy->ms_type) { - case e1000_ms_force_master: - data |= (CR_1000T_MS_ENABLE | CR_1000T_MS_VALUE); - break; - case e1000_ms_force_slave: - data |= CR_1000T_MS_ENABLE; - data &= ~(CR_1000T_MS_VALUE); - break; - case e1000_ms_auto: - data &= ~CR_1000T_MS_ENABLE; - default: - break; - } - ret_val = e1e_wphy(hw, PHY_1000T_CTRL, data); - if (ret_val) - goto out; + ret_val = e1000_set_master_slave_mode(hw); } -out: - return ret_val; -} - -/** - * e1000_copper_link_autoneg - Setup/Enable autoneg for copper link - * @hw: pointer to the HW structure - * - * Performs initial bounds checking on autoneg advertisement parameter, then - * configure to advertise the full capability. Setup the PHY to autoneg - * and restart the negotiation process between the link partner. If - * autoneg_wait_to_complete, then wait for autoneg to complete before exiting. - **/ -static s32 e1000_copper_link_autoneg(struct e1000_hw *hw) -{ - struct e1000_phy_info *phy = &hw->phy; - s32 ret_val; - u16 phy_ctrl; - - /* - * Perform some bounds checking on the autoneg advertisement - * parameter. - */ - phy->autoneg_advertised &= phy->autoneg_mask; - - /* - * If autoneg_advertised is zero, we assume it was not defaulted - * by the calling code so we set to advertise full capability. - */ - if (phy->autoneg_advertised == 0) - phy->autoneg_advertised = phy->autoneg_mask; - - e_dbg("Reconfiguring auto-neg advertisement params\n"); - ret_val = e1000_phy_setup_autoneg(hw); - if (ret_val) { - e_dbg("Error Setting up Auto-Negotiation\n"); - goto out; - } - e_dbg("Restarting Auto-Neg\n"); - - /* - * Restart auto-negotiation by setting the Auto Neg Enable bit and - * the Auto Neg Restart bit in the PHY control register. - */ - ret_val = e1e_rphy(hw, PHY_CONTROL, &phy_ctrl); - if (ret_val) - goto out; - - phy_ctrl |= (MII_CR_AUTO_NEG_EN | MII_CR_RESTART_AUTO_NEG); - ret_val = e1e_wphy(hw, PHY_CONTROL, phy_ctrl); - if (ret_val) - goto out; - - /* - * Does the user want to wait for Auto-Neg to complete here, or - * check at a later time (for example, callback routine). - */ - if (phy->autoneg_wait_to_complete) { - ret_val = hw->mac.ops.wait_autoneg(hw); - if (ret_val) { - e_dbg("Error while waiting for " - "autoneg to complete\n"); - goto out; - } - } - - hw->mac.get_link_status = true; - -out: return ret_val; } @@ -1008,61 +945,57 @@ static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw) phy->autoneg_advertised &= phy->autoneg_mask; /* Read the MII Auto-Neg Advertisement Register (Address 4). */ - ret_val = e1e_rphy(hw, PHY_AUTONEG_ADV, &mii_autoneg_adv_reg); + ret_val = e1e_rphy(hw, MII_ADVERTISE, &mii_autoneg_adv_reg); if (ret_val) - goto out; + return ret_val; if (phy->autoneg_mask & ADVERTISE_1000_FULL) { /* Read the MII 1000Base-T Control Register (Address 9). */ - ret_val = e1e_rphy(hw, PHY_1000T_CTRL, - &mii_1000t_ctrl_reg); + ret_val = e1e_rphy(hw, MII_CTRL1000, &mii_1000t_ctrl_reg); if (ret_val) - goto out; + return ret_val; } - /* - * Need to parse both autoneg_advertised and fc and set up + /* Need to parse both autoneg_advertised and fc and set up * the appropriate PHY registers. First we will parse for * autoneg_advertised software override. Since we can advertise * a plethora of combinations, we need to check each bit * individually. */ - /* - * First we clear all the 10/100 mb speed bits in the Auto-Neg + /* First we clear all the 10/100 mb speed bits in the Auto-Neg * Advertisement Register (Address 4) and the 1000 mb speed bits in * the 1000Base-T Control Register (Address 9). */ - mii_autoneg_adv_reg &= ~(NWAY_AR_100TX_FD_CAPS | - NWAY_AR_100TX_HD_CAPS | - NWAY_AR_10T_FD_CAPS | - NWAY_AR_10T_HD_CAPS); - mii_1000t_ctrl_reg &= ~(CR_1000T_HD_CAPS | CR_1000T_FD_CAPS); + mii_autoneg_adv_reg &= ~(ADVERTISE_100FULL | + ADVERTISE_100HALF | + ADVERTISE_10FULL | ADVERTISE_10HALF); + mii_1000t_ctrl_reg &= ~(ADVERTISE_1000HALF | ADVERTISE_1000FULL); e_dbg("autoneg_advertised %x\n", phy->autoneg_advertised); /* Do we want to advertise 10 Mb Half Duplex? */ if (phy->autoneg_advertised & ADVERTISE_10_HALF) { e_dbg("Advertise 10mb Half duplex\n"); - mii_autoneg_adv_reg |= NWAY_AR_10T_HD_CAPS; + mii_autoneg_adv_reg |= ADVERTISE_10HALF; } /* Do we want to advertise 10 Mb Full Duplex? */ if (phy->autoneg_advertised & ADVERTISE_10_FULL) { e_dbg("Advertise 10mb Full duplex\n"); - mii_autoneg_adv_reg |= NWAY_AR_10T_FD_CAPS; + mii_autoneg_adv_reg |= ADVERTISE_10FULL; } /* Do we want to advertise 100 Mb Half Duplex? */ if (phy->autoneg_advertised & ADVERTISE_100_HALF) { e_dbg("Advertise 100mb Half duplex\n"); - mii_autoneg_adv_reg |= NWAY_AR_100TX_HD_CAPS; + mii_autoneg_adv_reg |= ADVERTISE_100HALF; } /* Do we want to advertise 100 Mb Full Duplex? */ if (phy->autoneg_advertised & ADVERTISE_100_FULL) { e_dbg("Advertise 100mb Full duplex\n"); - mii_autoneg_adv_reg |= NWAY_AR_100TX_FD_CAPS; + mii_autoneg_adv_reg |= ADVERTISE_100FULL; } /* We do not allow the Phy to advertise 1000 Mb Half Duplex */ @@ -1072,15 +1005,14 @@ static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw) /* Do we want to advertise 1000 Mb Full Duplex? */ if (phy->autoneg_advertised & ADVERTISE_1000_FULL) { e_dbg("Advertise 1000mb Full duplex\n"); - mii_1000t_ctrl_reg |= CR_1000T_FD_CAPS; + mii_1000t_ctrl_reg |= ADVERTISE_1000FULL; } - /* - * Check for a software override of the flow control settings, and + /* Check for a software override of the flow control settings, and * setup the PHY advertisement registers accordingly. If * auto-negotiation is enabled, then software will have to set the * "PAUSE" bits to the correct value in the Auto-Negotiation - * Advertisement Register (PHY_AUTONEG_ADV) and re-start auto- + * Advertisement Register (MII_ADVERTISE) and re-start auto- * negotiation. * * The possible values of the "fc" parameter are: @@ -1095,15 +1027,14 @@ static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw) */ switch (hw->fc.current_mode) { case e1000_fc_none: - /* - * Flow control (Rx & Tx) is completely disabled by a + /* Flow control (Rx & Tx) is completely disabled by a * software over-ride. */ - mii_autoneg_adv_reg &= ~(NWAY_AR_ASM_DIR | NWAY_AR_PAUSE); + mii_autoneg_adv_reg &= + ~(ADVERTISE_PAUSE_ASYM | ADVERTISE_PAUSE_CAP); break; case e1000_fc_rx_pause: - /* - * Rx Flow control is enabled, and Tx Flow control is + /* Rx Flow control is enabled, and Tx Flow control is * disabled, by a software over-ride. * * Since there really isn't a way to advertise that we are @@ -1112,44 +1043,99 @@ static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw) * (in e1000e_config_fc_after_link_up) we will disable the * hw's ability to send PAUSE frames. */ - mii_autoneg_adv_reg |= (NWAY_AR_ASM_DIR | NWAY_AR_PAUSE); + mii_autoneg_adv_reg |= + (ADVERTISE_PAUSE_ASYM | ADVERTISE_PAUSE_CAP); break; case e1000_fc_tx_pause: - /* - * Tx Flow control is enabled, and Rx Flow control is + /* Tx Flow control is enabled, and Rx Flow control is * disabled, by a software over-ride. */ - mii_autoneg_adv_reg |= NWAY_AR_ASM_DIR; - mii_autoneg_adv_reg &= ~NWAY_AR_PAUSE; + mii_autoneg_adv_reg |= ADVERTISE_PAUSE_ASYM; + mii_autoneg_adv_reg &= ~ADVERTISE_PAUSE_CAP; break; case e1000_fc_full: - /* - * Flow control (both Rx and Tx) is enabled by a software + /* Flow control (both Rx and Tx) is enabled by a software * over-ride. */ - mii_autoneg_adv_reg |= (NWAY_AR_ASM_DIR | NWAY_AR_PAUSE); + mii_autoneg_adv_reg |= + (ADVERTISE_PAUSE_ASYM | ADVERTISE_PAUSE_CAP); break; default: e_dbg("Flow control param set incorrectly\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; + return -E1000_ERR_CONFIG; } - ret_val = e1e_wphy(hw, PHY_AUTONEG_ADV, mii_autoneg_adv_reg); + ret_val = e1e_wphy(hw, MII_ADVERTISE, mii_autoneg_adv_reg); if (ret_val) - goto out; + return ret_val; e_dbg("Auto-Neg Advertising %x\n", mii_autoneg_adv_reg); - if (phy->autoneg_mask & ADVERTISE_1000_FULL) { - ret_val = e1e_wphy(hw, - PHY_1000T_CTRL, - mii_1000t_ctrl_reg); - if (ret_val) - goto out; + if (phy->autoneg_mask & ADVERTISE_1000_FULL) + ret_val = e1e_wphy(hw, MII_CTRL1000, mii_1000t_ctrl_reg); + + return ret_val; +} + +/** + * e1000_copper_link_autoneg - Setup/Enable autoneg for copper link + * @hw: pointer to the HW structure + * + * Performs initial bounds checking on autoneg advertisement parameter, then + * configure to advertise the full capability. Setup the PHY to autoneg + * and restart the negotiation process between the link partner. If + * autoneg_wait_to_complete, then wait for autoneg to complete before exiting. + **/ +static s32 e1000_copper_link_autoneg(struct e1000_hw *hw) +{ + struct e1000_phy_info *phy = &hw->phy; + s32 ret_val; + u16 phy_ctrl; + + /* Perform some bounds checking on the autoneg advertisement + * parameter. + */ + phy->autoneg_advertised &= phy->autoneg_mask; + + /* If autoneg_advertised is zero, we assume it was not defaulted + * by the calling code so we set to advertise full capability. + */ + if (!phy->autoneg_advertised) + phy->autoneg_advertised = phy->autoneg_mask; + + e_dbg("Reconfiguring auto-neg advertisement params\n"); + ret_val = e1000_phy_setup_autoneg(hw); + if (ret_val) { + e_dbg("Error Setting up Auto-Negotiation\n"); + return ret_val; } + e_dbg("Restarting Auto-Neg\n"); + + /* Restart auto-negotiation by setting the Auto Neg Enable bit and + * the Auto Neg Restart bit in the PHY control register. + */ + ret_val = e1e_rphy(hw, MII_BMCR, &phy_ctrl); + if (ret_val) + return ret_val; + + phy_ctrl |= (BMCR_ANENABLE | BMCR_ANRESTART); + ret_val = e1e_wphy(hw, MII_BMCR, phy_ctrl); + if (ret_val) + return ret_val; + + /* Does the user want to wait for Auto-Neg to complete here, or + * check at a later time (for example, callback routine). + */ + if (phy->autoneg_wait_to_complete) { + ret_val = e1000_wait_autoneg(hw); + if (ret_val) { + e_dbg("Error while waiting for autoneg to complete\n"); + return ret_val; + } + } + + hw->mac.get_link_status = true; -out: return ret_val; } @@ -1168,46 +1154,40 @@ s32 e1000e_setup_copper_link(struct e1000_hw *hw) bool link; if (hw->mac.autoneg) { - /* - * Setup autoneg and flow control advertisement and perform + /* Setup autoneg and flow control advertisement and perform * autonegotiation. */ ret_val = e1000_copper_link_autoneg(hw); if (ret_val) - goto out; + return ret_val; } else { - /* - * PHY will be set to 10H, 10F, 100H or 100F + /* PHY will be set to 10H, 10F, 100H or 100F * depending on user settings. */ e_dbg("Forcing Speed and Duplex\n"); ret_val = hw->phy.ops.force_speed_duplex(hw); if (ret_val) { e_dbg("Error Forcing Speed and Duplex\n"); - goto out; + return ret_val; } } - /* - * Check link status. Wait up to 100 microseconds for link to become + /* Check link status. Wait up to 100 microseconds for link to become * valid. */ - ret_val = e1000e_phy_has_link_generic(hw, - COPPER_LINK_UP_LIMIT, - 10, - &link); + ret_val = e1000e_phy_has_link_generic(hw, COPPER_LINK_UP_LIMIT, 10, + &link); if (ret_val) - goto out; + return ret_val; if (link) { e_dbg("Valid link established!!!\n"); - e1000e_config_collision_dist(hw); + hw->mac.ops.config_collision_dist(hw); ret_val = e1000e_config_fc_after_link_up(hw); } else { e_dbg("Unable to establish link!!!\n"); } -out: return ret_val; } @@ -1226,30 +1206,29 @@ s32 e1000e_phy_force_speed_duplex_igp(struct e1000_hw *hw) u16 phy_data; bool link; - ret_val = e1e_rphy(hw, PHY_CONTROL, &phy_data); + ret_val = e1e_rphy(hw, MII_BMCR, &phy_data); if (ret_val) - goto out; + return ret_val; e1000e_phy_force_speed_duplex_setup(hw, &phy_data); - ret_val = e1e_wphy(hw, PHY_CONTROL, phy_data); + ret_val = e1e_wphy(hw, MII_BMCR, phy_data); if (ret_val) - goto out; + return ret_val; - /* - * Clear Auto-Crossover to force MDI manually. IGP requires MDI + /* Clear Auto-Crossover to force MDI manually. IGP requires MDI * forced whenever speed and duplex are forced. */ ret_val = e1e_rphy(hw, IGP01E1000_PHY_PORT_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; phy_data &= ~IGP01E1000_PSCR_AUTO_MDIX; phy_data &= ~IGP01E1000_PSCR_FORCE_MDI_MDIX; ret_val = e1e_wphy(hw, IGP01E1000_PHY_PORT_CTRL, phy_data); if (ret_val) - goto out; + return ret_val; e_dbg("IGP PSCR: %X\n", phy_data); @@ -1258,26 +1237,19 @@ s32 e1000e_phy_force_speed_duplex_igp(struct e1000_hw *hw) if (phy->autoneg_wait_to_complete) { e_dbg("Waiting for forced speed/duplex link on IGP phy.\n"); - ret_val = e1000e_phy_has_link_generic(hw, - PHY_FORCE_LIMIT, - 100000, - &link); + ret_val = e1000e_phy_has_link_generic(hw, PHY_FORCE_LIMIT, + 100000, &link); if (ret_val) - goto out; + return ret_val; if (!link) e_dbg("Link taking longer than expected.\n"); /* Try once more */ - ret_val = e1000e_phy_has_link_generic(hw, - PHY_FORCE_LIMIT, - 100000, - &link); - if (ret_val) - goto out; + ret_val = e1000e_phy_has_link_generic(hw, PHY_FORCE_LIMIT, + 100000, &link); } -out: return ret_val; } @@ -1298,92 +1270,96 @@ s32 e1000e_phy_force_speed_duplex_m88(struct e1000_hw *hw) u16 phy_data; bool link; - /* - * Clear Auto-Crossover to force MDI manually. M88E1000 requires MDI + /* Clear Auto-Crossover to force MDI manually. M88E1000 requires MDI * forced whenever speed and duplex are forced. */ ret_val = e1e_rphy(hw, M88E1000_PHY_SPEC_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; phy_data &= ~M88E1000_PSCR_AUTO_X_MODE; ret_val = e1e_wphy(hw, M88E1000_PHY_SPEC_CTRL, phy_data); if (ret_val) - goto out; + return ret_val; e_dbg("M88E1000 PSCR: %X\n", phy_data); - ret_val = e1e_rphy(hw, PHY_CONTROL, &phy_data); + ret_val = e1e_rphy(hw, MII_BMCR, &phy_data); if (ret_val) - goto out; + return ret_val; e1000e_phy_force_speed_duplex_setup(hw, &phy_data); - ret_val = e1e_wphy(hw, PHY_CONTROL, phy_data); + ret_val = e1e_wphy(hw, MII_BMCR, phy_data); if (ret_val) - goto out; + return ret_val; /* Reset the phy to commit changes. */ - ret_val = e1000e_commit_phy(hw); - if (ret_val) - goto out; + if (hw->phy.ops.commit) { + ret_val = hw->phy.ops.commit(hw); + if (ret_val) + return ret_val; + } if (phy->autoneg_wait_to_complete) { e_dbg("Waiting for forced speed/duplex link on M88 phy.\n"); ret_val = e1000e_phy_has_link_generic(hw, PHY_FORCE_LIMIT, - 100000, &link); + 100000, &link); if (ret_val) - goto out; + return ret_val; if (!link) { - /* - * We didn't get link. - * Reset the DSP and cross our fingers. - */ - ret_val = e1e_wphy(hw, - M88E1000_PHY_PAGE_SELECT, - 0x001d); - if (ret_val) - goto out; - ret_val = e1000e_phy_reset_dsp(hw); - if (ret_val) - goto out; + if (hw->phy.type != e1000_phy_m88) { + e_dbg("Link taking longer than expected.\n"); + } else { + /* We didn't get link. + * Reset the DSP and cross our fingers. + */ + ret_val = e1e_wphy(hw, + M88E1000_PHY_PAGE_SELECT, + 0x001d); + if (ret_val) + return ret_val; + ret_val = e1000e_phy_reset_dsp(hw); + if (ret_val) + return ret_val; + } } /* Try once more */ ret_val = e1000e_phy_has_link_generic(hw, PHY_FORCE_LIMIT, - 100000, &link); + 100000, &link); if (ret_val) - goto out; + return ret_val; } + if (hw->phy.type != e1000_phy_m88) + return 0; + ret_val = e1e_rphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; - /* - * Resetting the phy means we need to re-force TX_CLK in the + /* Resetting the phy means we need to re-force TX_CLK in the * Extended PHY Specific Control Register to 25MHz clock from * the reset value of 2.5MHz. */ phy_data |= M88E1000_EPSCR_TX_CLK_25; ret_val = e1e_wphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, phy_data); if (ret_val) - goto out; + return ret_val; - /* - * In addition, we must re-enable CRS on Tx for both half and full + /* In addition, we must re-enable CRS on Tx for both half and full * duplex. */ ret_val = e1e_rphy(hw, M88E1000_PHY_SPEC_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; phy_data |= M88E1000_PSCR_ASSERT_CRS_ON_TX; ret_val = e1e_wphy(hw, M88E1000_PHY_SPEC_CTRL, phy_data); -out: return ret_val; } @@ -1402,32 +1378,27 @@ s32 e1000_phy_force_speed_duplex_ife(struct e1000_hw *hw) u16 data; bool link; - if (phy->type != e1000_phy_ife) { - ret_val = e1000e_phy_force_speed_duplex_igp(hw); - goto out; - } - - ret_val = e1e_rphy(hw, PHY_CONTROL, &data); + ret_val = e1e_rphy(hw, MII_BMCR, &data); if (ret_val) - goto out; + return ret_val; e1000e_phy_force_speed_duplex_setup(hw, &data); - ret_val = e1e_wphy(hw, PHY_CONTROL, data); + ret_val = e1e_wphy(hw, MII_BMCR, data); if (ret_val) - goto out; + return ret_val; /* Disable MDI-X support for 10/100 */ ret_val = e1e_rphy(hw, IFE_PHY_MDIX_CONTROL, &data); if (ret_val) - goto out; + return ret_val; data &= ~IFE_PMC_AUTO_MDIX; data &= ~IFE_PMC_FORCE_MDIX; ret_val = e1e_wphy(hw, IFE_PHY_MDIX_CONTROL, data); if (ret_val) - goto out; + return ret_val; e_dbg("IFE PMC: %X\n", data); @@ -1436,39 +1407,34 @@ s32 e1000_phy_force_speed_duplex_ife(struct e1000_hw *hw) if (phy->autoneg_wait_to_complete) { e_dbg("Waiting for forced speed/duplex link on IFE phy.\n"); - ret_val = e1000e_phy_has_link_generic(hw, - PHY_FORCE_LIMIT, - 100000, - &link); + ret_val = e1000e_phy_has_link_generic(hw, PHY_FORCE_LIMIT, + 100000, &link); if (ret_val) - goto out; + return ret_val; if (!link) e_dbg("Link taking longer than expected.\n"); /* Try once more */ - ret_val = e1000e_phy_has_link_generic(hw, - PHY_FORCE_LIMIT, - 100000, - &link); + ret_val = e1000e_phy_has_link_generic(hw, PHY_FORCE_LIMIT, + 100000, &link); if (ret_val) - goto out; + return ret_val; } -out: - return ret_val; + return 0; } /** * e1000e_phy_force_speed_duplex_setup - Configure forced PHY speed/duplex * @hw: pointer to the HW structure - * @phy_ctrl: pointer to current value of PHY_CONTROL + * @phy_ctrl: pointer to current value of MII_BMCR * * Forces speed and duplex on the PHY by doing the following: disable flow * control, force speed/duplex on the MAC, disable auto speed detection, * disable auto-negotiation, configure duplex, configure speed, configure * the collision distance, write configuration to CTRL register. The - * caller must write to the PHY_CONTROL register for these settings to + * caller must write to the MII_BMCR register for these settings to * take affect. **/ void e1000e_phy_force_speed_duplex_setup(struct e1000_hw *hw, u16 *phy_ctrl) @@ -1488,33 +1454,32 @@ void e1000e_phy_force_speed_duplex_setup(struct e1000_hw *hw, u16 *phy_ctrl) ctrl &= ~E1000_CTRL_ASDE; /* Disable autoneg on the phy */ - *phy_ctrl &= ~MII_CR_AUTO_NEG_EN; + *phy_ctrl &= ~BMCR_ANENABLE; /* Forcing Full or Half Duplex? */ if (mac->forced_speed_duplex & E1000_ALL_HALF_DUPLEX) { ctrl &= ~E1000_CTRL_FD; - *phy_ctrl &= ~MII_CR_FULL_DUPLEX; + *phy_ctrl &= ~BMCR_FULLDPLX; e_dbg("Half Duplex\n"); } else { ctrl |= E1000_CTRL_FD; - *phy_ctrl |= MII_CR_FULL_DUPLEX; + *phy_ctrl |= BMCR_FULLDPLX; e_dbg("Full Duplex\n"); } /* Forcing 10mb or 100mb? */ if (mac->forced_speed_duplex & E1000_ALL_100_SPEED) { ctrl |= E1000_CTRL_SPD_100; - *phy_ctrl |= MII_CR_SPEED_100; - *phy_ctrl &= ~(MII_CR_SPEED_1000 | MII_CR_SPEED_10); + *phy_ctrl |= BMCR_SPEED100; + *phy_ctrl &= ~BMCR_SPEED1000; e_dbg("Forcing 100mb\n"); } else { ctrl &= ~(E1000_CTRL_SPD_1000 | E1000_CTRL_SPD_100); - *phy_ctrl |= MII_CR_SPEED_10; - *phy_ctrl &= ~(MII_CR_SPEED_1000 | MII_CR_SPEED_100); + *phy_ctrl &= ~(BMCR_SPEED1000 | BMCR_SPEED100); e_dbg("Forcing 10mb\n"); } - e1000e_config_collision_dist(hw); + hw->mac.ops.config_collision_dist(hw); ew32(CTRL, ctrl); } @@ -1536,76 +1501,63 @@ void e1000e_phy_force_speed_duplex_setup(struct e1000_hw *hw, u16 *phy_ctrl) s32 e1000e_set_d3_lplu_state(struct e1000_hw *hw, bool active) { struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 data; - if (!(hw->phy.ops.read_reg)) - goto out; - ret_val = e1e_rphy(hw, IGP02E1000_PHY_POWER_MGMT, &data); if (ret_val) - goto out; + return ret_val; if (!active) { data &= ~IGP02E1000_PM_D3_LPLU; - ret_val = e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, - data); + ret_val = e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, data); if (ret_val) - goto out; - /* - * LPLU and SmartSpeed are mutually exclusive. LPLU is used + return ret_val; + /* LPLU and SmartSpeed are mutually exclusive. LPLU is used * during Dx states where the power conservation is most * important. During driver activity we should enable * SmartSpeed, so performance is maintained. */ if (phy->smart_speed == e1000_smart_speed_on) { ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); + IGP01E1000_PHY_PORT_CONFIG, &data); if (ret_val) - goto out; + return ret_val; data |= IGP01E1000_PSCFR_SMART_SPEED; ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); + IGP01E1000_PHY_PORT_CONFIG, data); if (ret_val) - goto out; + return ret_val; } else if (phy->smart_speed == e1000_smart_speed_off) { ret_val = e1e_rphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - &data); + IGP01E1000_PHY_PORT_CONFIG, &data); if (ret_val) - goto out; + return ret_val; data &= ~IGP01E1000_PSCFR_SMART_SPEED; ret_val = e1e_wphy(hw, - IGP01E1000_PHY_PORT_CONFIG, - data); + IGP01E1000_PHY_PORT_CONFIG, data); if (ret_val) - goto out; + return ret_val; } } else if ((phy->autoneg_advertised == E1000_ALL_SPEED_DUPLEX) || - (phy->autoneg_advertised == E1000_ALL_NOT_GIG) || - (phy->autoneg_advertised == E1000_ALL_10_SPEED)) { + (phy->autoneg_advertised == E1000_ALL_NOT_GIG) || + (phy->autoneg_advertised == E1000_ALL_10_SPEED)) { data |= IGP02E1000_PM_D3_LPLU; - ret_val = e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, - data); + ret_val = e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, data); if (ret_val) - goto out; + return ret_val; /* When LPLU is enabled, we should disable SmartSpeed */ - ret_val = e1e_rphy(hw, IGP01E1000_PHY_PORT_CONFIG, - &data); + ret_val = e1e_rphy(hw, IGP01E1000_PHY_PORT_CONFIG, &data); if (ret_val) - goto out; + return ret_val; data &= ~IGP01E1000_PSCFR_SMART_SPEED; - ret_val = e1e_wphy(hw, IGP01E1000_PHY_PORT_CONFIG, - data); + ret_val = e1e_wphy(hw, IGP01E1000_PHY_PORT_CONFIG, data); } -out: return ret_val; } @@ -1628,28 +1580,25 @@ s32 e1000e_check_downshift(struct e1000_hw *hw) case e1000_phy_gg82563: case e1000_phy_bm: case e1000_phy_82578: - offset = M88E1000_PHY_SPEC_STATUS; - mask = M88E1000_PSSR_DOWNSHIFT; + offset = M88E1000_PHY_SPEC_STATUS; + mask = M88E1000_PSSR_DOWNSHIFT; break; case e1000_phy_igp_2: - case e1000_phy_igp: case e1000_phy_igp_3: - offset = IGP01E1000_PHY_LINK_HEALTH; - mask = IGP01E1000_PLHR_SS_DOWNGRADE; + offset = IGP01E1000_PHY_LINK_HEALTH; + mask = IGP01E1000_PLHR_SS_DOWNGRADE; break; default: /* speed downshift not supported */ phy->speed_downgraded = false; - ret_val = E1000_SUCCESS; - goto out; + return 0; } ret_val = e1e_rphy(hw, offset, &phy_data); if (!ret_val) - phy->speed_downgraded = (phy_data & mask) ? true : false; + phy->speed_downgraded = !!(phy_data & mask); -out: return ret_val; } @@ -1670,9 +1619,9 @@ s32 e1000_check_polarity_m88(struct e1000_hw *hw) ret_val = e1e_rphy(hw, M88E1000_PHY_SPEC_STATUS, &data); if (!ret_val) - phy->cable_polarity = (data & M88E1000_PSSR_REV_POLARITY) - ? e1000_rev_polarity_reversed - : e1000_rev_polarity_normal; + phy->cable_polarity = ((data & M88E1000_PSSR_REV_POLARITY) + ? e1000_rev_polarity_reversed + : e1000_rev_polarity_normal); return ret_val; } @@ -1692,35 +1641,32 @@ s32 e1000_check_polarity_igp(struct e1000_hw *hw) s32 ret_val; u16 data, offset, mask; - /* - * Polarity is determined based on the speed of + /* Polarity is determined based on the speed of * our connection. */ ret_val = e1e_rphy(hw, IGP01E1000_PHY_PORT_STATUS, &data); if (ret_val) - goto out; + return ret_val; if ((data & IGP01E1000_PSSR_SPEED_MASK) == IGP01E1000_PSSR_SPEED_1000MBPS) { - offset = IGP01E1000_PHY_PCS_INIT_REG; - mask = IGP01E1000_PHY_POLARITY_MASK; + offset = IGP01E1000_PHY_PCS_INIT_REG; + mask = IGP01E1000_PHY_POLARITY_MASK; } else { - /* - * This really only applies to 10Mbps since + /* This really only applies to 10Mbps since * there is no polarity for 100Mbps (always 0). */ - offset = IGP01E1000_PHY_PORT_STATUS; - mask = IGP01E1000_PSSR_POLARITY_REVERSED; + offset = IGP01E1000_PHY_PORT_STATUS; + mask = IGP01E1000_PSSR_POLARITY_REVERSED; } ret_val = e1e_rphy(hw, offset, &data); if (!ret_val) - phy->cable_polarity = (data & mask) - ? e1000_rev_polarity_reversed - : e1000_rev_polarity_normal; + phy->cable_polarity = ((data & mask) + ? e1000_rev_polarity_reversed + : e1000_rev_polarity_normal); -out: return ret_val; } @@ -1736,8 +1682,7 @@ s32 e1000_check_polarity_ife(struct e1000_hw *hw) s32 ret_val; u16 phy_data, offset, mask; - /* - * Polarity is determined based on the reversal feature being enabled. + /* Polarity is determined based on the reversal feature being enabled. */ if (phy->polarity_correction) { offset = IFE_PHY_EXTENDED_STATUS_CONTROL; @@ -1750,9 +1695,9 @@ s32 e1000_check_polarity_ife(struct e1000_hw *hw) ret_val = e1e_rphy(hw, offset, &phy_data); if (!ret_val) - phy->cable_polarity = (phy_data & mask) - ? e1000_rev_polarity_reversed - : e1000_rev_polarity_normal; + phy->cable_polarity = ((phy_data & mask) + ? e1000_rev_polarity_reversed + : e1000_rev_polarity_normal); return ret_val; } @@ -1764,29 +1709,25 @@ s32 e1000_check_polarity_ife(struct e1000_hw *hw) * Waits for auto-negotiation to complete or for the auto-negotiation time * limit to expire, which ever happens first. **/ -s32 e1000_wait_autoneg(struct e1000_hw *hw) +static s32 e1000_wait_autoneg(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val = 0; u16 i, phy_status; - if (!(hw->phy.ops.read_reg)) - return E1000_SUCCESS; - /* Break after autoneg completes or PHY_AUTO_NEG_LIMIT expires. */ for (i = PHY_AUTO_NEG_LIMIT; i > 0; i--) { - ret_val = e1e_rphy(hw, PHY_STATUS, &phy_status); + ret_val = e1e_rphy(hw, MII_BMSR, &phy_status); if (ret_val) break; - ret_val = e1e_rphy(hw, PHY_STATUS, &phy_status); + ret_val = e1e_rphy(hw, MII_BMSR, &phy_status); if (ret_val) break; - if (phy_status & MII_SR_AUTONEG_COMPLETE) + if (phy_status & BMSR_ANEGCOMPLETE) break; msleep(100); } - /* - * PHY_AUTO_NEG_TIME expiration doesn't guarantee auto-negotiation + /* PHY_AUTO_NEG_TIME expiration doesn't guarantee auto-negotiation * has completed. */ return ret_val; @@ -1802,41 +1743,39 @@ s32 e1000_wait_autoneg(struct e1000_hw *hw) * Polls the PHY status register for link, 'iterations' number of times. **/ s32 e1000e_phy_has_link_generic(struct e1000_hw *hw, u32 iterations, - u32 usec_interval, bool *success) + u32 usec_interval, bool *success) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val = 0; u16 i, phy_status; - if (!(hw->phy.ops.read_reg)) - return E1000_SUCCESS; - for (i = 0; i < iterations; i++) { - /* - * Some PHYs require the PHY_STATUS register to be read + /* Some PHYs require the MII_BMSR register to be read * twice due to the link bit being sticky. No harm doing * it across the board. */ - ret_val = e1e_rphy(hw, PHY_STATUS, &phy_status); + ret_val = e1e_rphy(hw, MII_BMSR, &phy_status); if (ret_val) { - /* - * If the first read fails, another entity may have + /* If the first read fails, another entity may have * ownership of the resources, wait and try again to * see if they have relinquished the resources yet. */ - udelay(usec_interval); + if (usec_interval >= 1000) + msleep(usec_interval / 1000); + else + udelay(usec_interval); } - ret_val = e1e_rphy(hw, PHY_STATUS, &phy_status); + ret_val = e1e_rphy(hw, MII_BMSR, &phy_status); if (ret_val) break; - if (phy_status & MII_SR_LINK_STATUS) + if (phy_status & BMSR_LSTATUS) break; if (usec_interval >= 1000) - mdelay(usec_interval/1000); + msleep(usec_interval / 1000); else udelay(usec_interval); } - *success = (i < iterations) ? true : false; + *success = (i < iterations); return ret_val; } @@ -1864,22 +1803,20 @@ s32 e1000e_get_cable_length_m88(struct e1000_hw *hw) ret_val = e1e_rphy(hw, M88E1000_PHY_SPEC_STATUS, &phy_data); if (ret_val) - goto out; + return ret_val; - index = (phy_data & M88E1000_PSSR_CABLE_LENGTH) >> - M88E1000_PSSR_CABLE_LENGTH_SHIFT; - if (index >= M88E1000_CABLE_LENGTH_TABLE_SIZE - 1) { - ret_val = -E1000_ERR_PHY; - goto out; - } + index = ((phy_data & M88E1000_PSSR_CABLE_LENGTH) >> + M88E1000_PSSR_CABLE_LENGTH_SHIFT); + + if (index >= M88E1000_CABLE_LENGTH_TABLE_SIZE - 1) + return -E1000_ERR_PHY; phy->min_cable_length = e1000_m88_cable_length_table[index]; phy->max_cable_length = e1000_m88_cable_length_table[index + 1]; phy->cable_length = (phy->min_cable_length + phy->max_cable_length) / 2; -out: - return ret_val; + return 0; } /** @@ -1896,37 +1833,35 @@ out: s32 e1000e_get_cable_length_igp_2(struct e1000_hw *hw) { struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 phy_data, i, agc_value = 0; u16 cur_agc_index, max_agc_index = 0; u16 min_agc_index = IGP02E1000_CABLE_LENGTH_TABLE_SIZE - 1; - u16 agc_reg_array[IGP02E1000_PHY_CHANNEL_NUM] = - {IGP02E1000_PHY_AGC_A, - IGP02E1000_PHY_AGC_B, - IGP02E1000_PHY_AGC_C, - IGP02E1000_PHY_AGC_D}; + static const u16 agc_reg_array[IGP02E1000_PHY_CHANNEL_NUM] = { + IGP02E1000_PHY_AGC_A, + IGP02E1000_PHY_AGC_B, + IGP02E1000_PHY_AGC_C, + IGP02E1000_PHY_AGC_D + }; /* Read the AGC registers for all channels */ for (i = 0; i < IGP02E1000_PHY_CHANNEL_NUM; i++) { ret_val = e1e_rphy(hw, agc_reg_array[i], &phy_data); if (ret_val) - goto out; + return ret_val; - /* - * Getting bits 15:9, which represent the combination of + /* Getting bits 15:9, which represent the combination of * coarse and fine gain values. The result is a number * that can be put into the lookup table to obtain the * approximate cable length. */ - cur_agc_index = (phy_data >> IGP02E1000_AGC_LENGTH_SHIFT) & - IGP02E1000_AGC_LENGTH_MASK; + cur_agc_index = ((phy_data >> IGP02E1000_AGC_LENGTH_SHIFT) & + IGP02E1000_AGC_LENGTH_MASK); /* Array index bound check. */ if ((cur_agc_index >= IGP02E1000_CABLE_LENGTH_TABLE_SIZE) || - (cur_agc_index == 0)) { - ret_val = -E1000_ERR_PHY; - goto out; - } + (cur_agc_index == 0)) + return -E1000_ERR_PHY; /* Remove min & max AGC values from calculation. */ if (e1000_igp_2_cable_length_table[min_agc_index] > @@ -1940,18 +1875,17 @@ s32 e1000e_get_cable_length_igp_2(struct e1000_hw *hw) } agc_value -= (e1000_igp_2_cable_length_table[min_agc_index] + - e1000_igp_2_cable_length_table[max_agc_index]); + e1000_igp_2_cable_length_table[max_agc_index]); agc_value /= (IGP02E1000_PHY_CHANNEL_NUM - 2); /* Calculate cable length with the error range of +/- 10 meters. */ - phy->min_cable_length = ((agc_value - IGP02E1000_AGC_RANGE) > 0) ? - (agc_value - IGP02E1000_AGC_RANGE) : 0; + phy->min_cable_length = (((agc_value - IGP02E1000_AGC_RANGE) > 0) ? + (agc_value - IGP02E1000_AGC_RANGE) : 0); phy->max_cable_length = agc_value + IGP02E1000_AGC_RANGE; phy->cable_length = (phy->min_cable_length + phy->max_cable_length) / 2; -out: - return ret_val; + return 0; } /** @@ -1967,59 +1901,55 @@ out: s32 e1000e_get_phy_info_m88(struct e1000_hw *hw) { struct e1000_phy_info *phy = &hw->phy; - s32 ret_val; + s32 ret_val; u16 phy_data; bool link; if (phy->media_type != e1000_media_type_copper) { e_dbg("Phy info is only valid for copper media\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; + return -E1000_ERR_CONFIG; } ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); if (ret_val) - goto out; + return ret_val; if (!link) { e_dbg("Phy info is only valid if link is up\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; + return -E1000_ERR_CONFIG; } ret_val = e1e_rphy(hw, M88E1000_PHY_SPEC_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; - phy->polarity_correction = (phy_data & M88E1000_PSCR_POLARITY_REVERSAL) - ? true : false; + phy->polarity_correction = !!(phy_data & + M88E1000_PSCR_POLARITY_REVERSAL); ret_val = e1000_check_polarity_m88(hw); if (ret_val) - goto out; + return ret_val; ret_val = e1e_rphy(hw, M88E1000_PHY_SPEC_STATUS, &phy_data); if (ret_val) - goto out; + return ret_val; - phy->is_mdix = (phy_data & M88E1000_PSSR_MDIX) ? true : false; + phy->is_mdix = !!(phy_data & M88E1000_PSSR_MDIX); if ((phy_data & M88E1000_PSSR_SPEED) == M88E1000_PSSR_1000MBS) { - ret_val = e1000_get_cable_length(hw); + ret_val = hw->phy.ops.get_cable_length(hw); if (ret_val) - goto out; + return ret_val; - ret_val = e1e_rphy(hw, PHY_1000T_STATUS, &phy_data); + ret_val = e1e_rphy(hw, MII_STAT1000, &phy_data); if (ret_val) - goto out; + return ret_val; - phy->local_rx = (phy_data & SR_1000T_LOCAL_RX_STATUS) - ? e1000_1000t_rx_status_ok - : e1000_1000t_rx_status_not_ok; + phy->local_rx = (phy_data & LPA_1000LOCALRXOK) + ? e1000_1000t_rx_status_ok : e1000_1000t_rx_status_not_ok; - phy->remote_rx = (phy_data & SR_1000T_REMOTE_RX_STATUS) - ? e1000_1000t_rx_status_ok - : e1000_1000t_rx_status_not_ok; + phy->remote_rx = (phy_data & LPA_1000REMRXOK) + ? e1000_1000t_rx_status_ok : e1000_1000t_rx_status_not_ok; } else { /* Set values to "undefined" */ phy->cable_length = E1000_CABLE_LENGTH_UNDEFINED; @@ -2027,7 +1957,6 @@ s32 e1000e_get_phy_info_m88(struct e1000_hw *hw) phy->remote_rx = e1000_1000t_rx_status_undefined; } -out: return ret_val; } @@ -2049,51 +1978,99 @@ s32 e1000e_get_phy_info_igp(struct e1000_hw *hw) ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); if (ret_val) - goto out; + return ret_val; if (!link) { e_dbg("Phy info is only valid if link is up\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; + return -E1000_ERR_CONFIG; } phy->polarity_correction = true; ret_val = e1000_check_polarity_igp(hw); if (ret_val) - goto out; + return ret_val; ret_val = e1e_rphy(hw, IGP01E1000_PHY_PORT_STATUS, &data); if (ret_val) - goto out; + return ret_val; - phy->is_mdix = (data & IGP01E1000_PSSR_MDIX) ? true : false; + phy->is_mdix = !!(data & IGP01E1000_PSSR_MDIX); if ((data & IGP01E1000_PSSR_SPEED_MASK) == IGP01E1000_PSSR_SPEED_1000MBPS) { ret_val = phy->ops.get_cable_length(hw); if (ret_val) - goto out; + return ret_val; - ret_val = e1e_rphy(hw, PHY_1000T_STATUS, &data); + ret_val = e1e_rphy(hw, MII_STAT1000, &data); if (ret_val) - goto out; + return ret_val; - phy->local_rx = (data & SR_1000T_LOCAL_RX_STATUS) - ? e1000_1000t_rx_status_ok - : e1000_1000t_rx_status_not_ok; + phy->local_rx = (data & LPA_1000LOCALRXOK) + ? e1000_1000t_rx_status_ok : e1000_1000t_rx_status_not_ok; - phy->remote_rx = (data & SR_1000T_REMOTE_RX_STATUS) - ? e1000_1000t_rx_status_ok - : e1000_1000t_rx_status_not_ok; + phy->remote_rx = (data & LPA_1000REMRXOK) + ? e1000_1000t_rx_status_ok : e1000_1000t_rx_status_not_ok; } else { phy->cable_length = E1000_CABLE_LENGTH_UNDEFINED; phy->local_rx = e1000_1000t_rx_status_undefined; phy->remote_rx = e1000_1000t_rx_status_undefined; } -out: - return ret_val; + return ret_val; +} + +/** + * e1000_get_phy_info_ife - Retrieves various IFE PHY states + * @hw: pointer to the HW structure + * + * Populates "phy" structure with various feature states. + **/ +s32 e1000_get_phy_info_ife(struct e1000_hw *hw) +{ + struct e1000_phy_info *phy = &hw->phy; + s32 ret_val; + u16 data; + bool link; + + ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); + if (ret_val) + return ret_val; + + if (!link) { + e_dbg("Phy info is only valid if link is up\n"); + return -E1000_ERR_CONFIG; + } + + ret_val = e1e_rphy(hw, IFE_PHY_SPECIAL_CONTROL, &data); + if (ret_val) + return ret_val; + phy->polarity_correction = !(data & IFE_PSC_AUTO_POLARITY_DISABLE); + + if (phy->polarity_correction) { + ret_val = e1000_check_polarity_ife(hw); + if (ret_val) + return ret_val; + } else { + /* Polarity is forced */ + phy->cable_polarity = ((data & IFE_PSC_FORCE_POLARITY) + ? e1000_rev_polarity_reversed + : e1000_rev_polarity_normal); + } + + ret_val = e1e_rphy(hw, IFE_PHY_MDIX_CONTROL, &data); + if (ret_val) + return ret_val; + + phy->is_mdix = !!(data & IFE_PMC_MDIX_STATUS); + + /* The following parameters are undefined for 10/100 operation. */ + phy->cable_length = E1000_CABLE_LENGTH_UNDEFINED; + phy->local_rx = e1000_1000t_rx_status_undefined; + phy->remote_rx = e1000_1000t_rx_status_undefined; + + return 0; } /** @@ -2105,24 +2082,20 @@ out: **/ s32 e1000e_phy_sw_reset(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u16 phy_ctrl; - if (!(hw->phy.ops.read_reg)) - goto out; - - ret_val = e1e_rphy(hw, PHY_CONTROL, &phy_ctrl); + ret_val = e1e_rphy(hw, MII_BMCR, &phy_ctrl); if (ret_val) - goto out; + return ret_val; - phy_ctrl |= MII_CR_RESET; - ret_val = e1e_wphy(hw, PHY_CONTROL, phy_ctrl); + phy_ctrl |= BMCR_RESET; + ret_val = e1e_wphy(hw, MII_BMCR, phy_ctrl); if (ret_val) - goto out; + return ret_val; udelay(1); -out: return ret_val; } @@ -2138,18 +2111,18 @@ out: s32 e1000e_phy_hw_reset_generic(struct e1000_hw *hw) { struct e1000_phy_info *phy = &hw->phy; - s32 ret_val = E1000_SUCCESS; + s32 ret_val; u32 ctrl; - ret_val = e1000_check_reset_block(hw); - if (ret_val) { - ret_val = E1000_SUCCESS; - goto out; + if (phy->ops.check_reset_block) { + ret_val = phy->ops.check_reset_block(hw); + if (ret_val) + return 0; } ret_val = phy->ops.acquire(hw); if (ret_val) - goto out; + return ret_val; ctrl = er32(CTRL); ew32(CTRL, ctrl | E1000_CTRL_PHY_RST); @@ -2160,37 +2133,34 @@ s32 e1000e_phy_hw_reset_generic(struct e1000_hw *hw) ew32(CTRL, ctrl); e1e_flush(); - udelay(150); + usleep_range(150, 300); phy->ops.release(hw); - ret_val = phy->ops.get_cfg_done(hw); - -out: - return ret_val; + return phy->ops.get_cfg_done(hw); } /** - * e1000e_get_cfg_done - Generic configuration done + * e1000e_get_cfg_done_generic - Generic configuration done * @hw: pointer to the HW structure * * Generic function to wait 10 milli-seconds for configuration to complete * and return success. **/ -s32 e1000e_get_cfg_done(struct e1000_hw *hw) +s32 e1000e_get_cfg_done_generic(struct e1000_hw __always_unused *hw) { mdelay(10); - return E1000_SUCCESS; + return 0; } /** - * e1000_phy_init_script_igp3 - Inits the IGP3 PHY + * e1000e_phy_init_script_igp3 - Inits the IGP3 PHY * @hw: pointer to the HW structure * * Initializes a Intel Gigabit PHY3 when an EEPROM is not present. **/ -s32 e1000_phy_init_script_igp3(struct e1000_hw *hw) +s32 e1000e_phy_init_script_igp3(struct e1000_hw *hw) { e_dbg("Running IGP 3 PHY init script\n"); @@ -2247,15 +2217,13 @@ s32 e1000_phy_init_script_igp3(struct e1000_hw *hw) e1e_wphy(hw, 0x1796, 0x0008); /* Change cg_icount + enable integbp for channels BCD */ e1e_wphy(hw, 0x1798, 0xD008); - /* - * Change cg_icount + enable integbp + change prop_factor_master + /* Change cg_icount + enable integbp + change prop_factor_master * to 8 for channel A */ e1e_wphy(hw, 0x1898, 0xD918); /* Disable AHT in Slave mode on channel A */ e1e_wphy(hw, 0x187A, 0x0800); - /* - * Enable LPLU and disable AN to 1000 in non-D0a states, + /* Enable LPLU and disable AN to 1000 in non-D0a states, * Enable SPD+B2B */ e1e_wphy(hw, 0x0019, 0x008D); @@ -2266,7 +2234,7 @@ s32 e1000_phy_init_script_igp3(struct e1000_hw *hw) /* Restart AN, Speed selection is 1000 */ e1e_wphy(hw, 0x0000, 0x1340); - return E1000_SUCCESS; + return 0; } /** @@ -2279,14 +2247,14 @@ enum e1000_phy_type e1000e_get_phy_type_from_id(u32 phy_id) { enum e1000_phy_type phy_type = e1000_phy_unknown; - switch (phy_id) { + switch (phy_id) { case M88E1000_I_PHY_ID: case M88E1000_E_PHY_ID: case M88E1111_I_PHY_ID: case M88E1011_I_PHY_ID: phy_type = e1000_phy_m88; break; - case IGP01E1000_I_PHY_ID: /* IGP 1 & 2 share this */ + case IGP01E1000_I_PHY_ID: /* IGP 1 & 2 share this */ phy_type = e1000_phy_igp_2; break; case GG82563_E_PHY_ID: @@ -2310,6 +2278,12 @@ enum e1000_phy_type e1000e_get_phy_type_from_id(u32 phy_id) case I82577_E_PHY_ID: phy_type = e1000_phy_82577; break; + case I82579_E_PHY_ID: + phy_type = e1000_phy_82579; + break; + case I217_E_PHY_ID: + phy_type = e1000_phy_i217; + break; default: phy_type = e1000_phy_unknown; break; @@ -2327,7 +2301,6 @@ enum e1000_phy_type e1000e_get_phy_type_from_id(u32 phy_id) **/ s32 e1000e_determine_phy_address(struct e1000_hw *hw) { - s32 ret_val = -E1000_ERR_PHY_TYPE; u32 phy_addr = 0; u32 i; enum e1000_phy_type phy_type = e1000_phy_unknown; @@ -2342,21 +2315,18 @@ s32 e1000e_determine_phy_address(struct e1000_hw *hw) e1000e_get_phy_id(hw); phy_type = e1000e_get_phy_type_from_id(hw->phy.id); - /* - * If phy_type is valid, break - we found our + /* If phy_type is valid, break - we found our * PHY address */ - if (phy_type != e1000_phy_unknown) { - ret_val = E1000_SUCCESS; - goto out; - } - msleep(1); + if (phy_type != e1000_phy_unknown) + return 0; + + usleep_range(1000, 2000); i++; } while (i < 10); } -out: - return ret_val; + return -E1000_ERR_PHY_TYPE; } /** @@ -2387,9 +2357,7 @@ static u32 e1000_get_phy_addr_for_bm_page(u32 page, u32 reg) s32 e1000e_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data) { s32 ret_val; - u32 page_select = 0; u32 page = offset >> IGP_PAGE_SHIFT; - u32 page_shift = 0; ret_val = hw->phy.ops.acquire(hw); if (ret_val) @@ -2398,15 +2366,16 @@ s32 e1000e_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data) /* Page 800 works differently than the rest so it has its own func */ if (page == BM_WUC_PAGE) { ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, &data, - false); - goto out; + false, false); + goto release; } hw->phy.addr = e1000_get_phy_addr_for_bm_page(page, offset); if (offset > MAX_PHY_MULTI_PAGE_REG) { - /* - * Page select is register 31 for phy address 1 and 22 for + u32 page_shift, page_select; + + /* Page select is register 31 for phy address 1 and 22 for * phy address 2 and 3. Page select is shifted only for * phy address 1. */ @@ -2420,15 +2389,15 @@ s32 e1000e_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data) /* Page is shifted left, PHY expects (page x 32) */ ret_val = e1000e_write_phy_reg_mdic(hw, page_select, - (page << page_shift)); + (page << page_shift)); if (ret_val) - goto out; + goto release; } ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, - data); + data); -out: +release: hw->phy.ops.release(hw); return ret_val; } @@ -2446,9 +2415,7 @@ out: s32 e1000e_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data) { s32 ret_val; - u32 page_select = 0; u32 page = offset >> IGP_PAGE_SHIFT; - u32 page_shift = 0; ret_val = hw->phy.ops.acquire(hw); if (ret_val) @@ -2457,15 +2424,16 @@ s32 e1000e_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data) /* Page 800 works differently than the rest so it has its own func */ if (page == BM_WUC_PAGE) { ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, data, - true); - goto out; + true, false); + goto release; } hw->phy.addr = e1000_get_phy_addr_for_bm_page(page, offset); if (offset > MAX_PHY_MULTI_PAGE_REG) { - /* - * Page select is register 31 for phy address 1 and 22 for + u32 page_shift, page_select; + + /* Page select is register 31 for phy address 1 and 22 for * phy address 2 and 3. Page select is shifted only for * phy address 1. */ @@ -2479,14 +2447,14 @@ s32 e1000e_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data) /* Page is shifted left, PHY expects (page x 32) */ ret_val = e1000e_write_phy_reg_mdic(hw, page_select, - (page << page_shift)); + (page << page_shift)); if (ret_val) - goto out; + goto release; } ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, - data); -out: + data); +release: hw->phy.ops.release(hw); return ret_val; } @@ -2513,25 +2481,24 @@ s32 e1000e_read_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 *data) /* Page 800 works differently than the rest so it has its own func */ if (page == BM_WUC_PAGE) { ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, data, - true); - goto out; + true, false); + goto release; } hw->phy.addr = 1; if (offset > MAX_PHY_MULTI_PAGE_REG) { - /* Page is shifted left, PHY expects (page x 32) */ ret_val = e1000e_write_phy_reg_mdic(hw, BM_PHY_PAGE_SELECT, - page); + page); if (ret_val) - goto out; + goto release; } ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, - data); -out: + data); +release: hw->phy.ops.release(hw); return ret_val; } @@ -2557,8 +2524,8 @@ s32 e1000e_write_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 data) /* Page 800 works differently than the rest so it has its own func */ if (page == BM_WUC_PAGE) { ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, &data, - false); - goto out; + false, false); + goto release; } hw->phy.addr = 1; @@ -2566,123 +2533,176 @@ s32 e1000e_write_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 data) if (offset > MAX_PHY_MULTI_PAGE_REG) { /* Page is shifted left, PHY expects (page x 32) */ ret_val = e1000e_write_phy_reg_mdic(hw, BM_PHY_PAGE_SELECT, - page); + page); if (ret_val) - goto out; + goto release; } ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, - data); + data); -out: +release: hw->phy.ops.release(hw); return ret_val; } +/** + * e1000_enable_phy_wakeup_reg_access_bm - enable access to BM wakeup registers + * @hw: pointer to the HW structure + * @phy_reg: pointer to store original contents of BM_WUC_ENABLE_REG + * + * Assumes semaphore already acquired and phy_reg points to a valid memory + * address to store contents of the BM_WUC_ENABLE_REG register. + **/ +s32 e1000_enable_phy_wakeup_reg_access_bm(struct e1000_hw *hw, u16 *phy_reg) +{ + s32 ret_val; + u16 temp; + + /* All page select, port ctrl and wakeup registers use phy address 1 */ + hw->phy.addr = 1; + + /* Select Port Control Registers page */ + ret_val = e1000_set_page_igp(hw, (BM_PORT_CTRL_PAGE << IGP_PAGE_SHIFT)); + if (ret_val) { + e_dbg("Could not set Port Control page\n"); + return ret_val; + } + + ret_val = e1000e_read_phy_reg_mdic(hw, BM_WUC_ENABLE_REG, phy_reg); + if (ret_val) { + e_dbg("Could not read PHY register %d.%d\n", + BM_PORT_CTRL_PAGE, BM_WUC_ENABLE_REG); + return ret_val; + } + + /* Enable both PHY wakeup mode and Wakeup register page writes. + * Prevent a power state change by disabling ME and Host PHY wakeup. + */ + temp = *phy_reg; + temp |= BM_WUC_ENABLE_BIT; + temp &= ~(BM_WUC_ME_WU_BIT | BM_WUC_HOST_WU_BIT); + + ret_val = e1000e_write_phy_reg_mdic(hw, BM_WUC_ENABLE_REG, temp); + if (ret_val) { + e_dbg("Could not write PHY register %d.%d\n", + BM_PORT_CTRL_PAGE, BM_WUC_ENABLE_REG); + return ret_val; + } + + /* Select Host Wakeup Registers page - caller now able to write + * registers on the Wakeup registers page + */ + return e1000_set_page_igp(hw, (BM_WUC_PAGE << IGP_PAGE_SHIFT)); +} + +/** + * e1000_disable_phy_wakeup_reg_access_bm - disable access to BM wakeup regs + * @hw: pointer to the HW structure + * @phy_reg: pointer to original contents of BM_WUC_ENABLE_REG + * + * Restore BM_WUC_ENABLE_REG to its original value. + * + * Assumes semaphore already acquired and *phy_reg is the contents of the + * BM_WUC_ENABLE_REG before register(s) on BM_WUC_PAGE were accessed by + * caller. + **/ +s32 e1000_disable_phy_wakeup_reg_access_bm(struct e1000_hw *hw, u16 *phy_reg) +{ + s32 ret_val; + + /* Select Port Control Registers page */ + ret_val = e1000_set_page_igp(hw, (BM_PORT_CTRL_PAGE << IGP_PAGE_SHIFT)); + if (ret_val) { + e_dbg("Could not set Port Control page\n"); + return ret_val; + } + + /* Restore 769.17 to its original value */ + ret_val = e1000e_write_phy_reg_mdic(hw, BM_WUC_ENABLE_REG, *phy_reg); + if (ret_val) + e_dbg("Could not restore PHY register %d.%d\n", + BM_PORT_CTRL_PAGE, BM_WUC_ENABLE_REG); + + return ret_val; +} /** - * e1000_access_phy_wakeup_reg_bm - Read BM PHY wakeup register + * e1000_access_phy_wakeup_reg_bm - Read/write BM PHY wakeup register * @hw: pointer to the HW structure * @offset: register offset to be read or written * @data: pointer to the data to read or write * @read: determines if operation is read or write + * @page_set: BM_WUC_PAGE already set and access enabled * - * Acquires semaphore, if necessary, then reads the PHY register at offset - * and storing the retrieved information in data. Release any acquired - * semaphores before exiting. Note that procedure to read the wakeup - * registers are different. It works as such: - * 1) Set page 769, register 17, bit 2 = 1 + * Read the PHY register at offset and store the retrieved information in + * data, or write data to PHY register at offset. Note the procedure to + * access the PHY wakeup registers is different than reading the other PHY + * registers. It works as such: + * 1) Set 769.17.2 (page 769, register 17, bit 2) = 1 * 2) Set page to 800 for host (801 if we were manageability) * 3) Write the address using the address opcode (0x11) * 4) Read or write the data using the data opcode (0x12) - * 5) Restore 769_17.2 to its original value + * 5) Restore 769.17.2 to its original value * - * Assumes semaphore already acquired. + * Steps 1 and 2 are done by e1000_enable_phy_wakeup_reg_access_bm() and + * step 5 is done by e1000_disable_phy_wakeup_reg_access_bm(). + * + * Assumes semaphore is already acquired. When page_set==true, assumes + * the PHY page is set to BM_WUC_PAGE (i.e. a function in the call stack + * is responsible for calls to e1000_[enable|disable]_phy_wakeup_reg_bm()). **/ static s32 e1000_access_phy_wakeup_reg_bm(struct e1000_hw *hw, u32 offset, - u16 *data, bool read) + u16 *data, bool read, bool page_set) { s32 ret_val; u16 reg = BM_PHY_REG_NUM(offset); + u16 page = BM_PHY_REG_PAGE(offset); u16 phy_reg = 0; - /* Gig must be disabled for MDIO accesses to page 800 */ + /* Gig must be disabled for MDIO accesses to Host Wakeup reg page */ if ((hw->mac.type == e1000_pchlan) && - (!(er32(PHY_CTRL) & E1000_PHY_CTRL_GBE_DISABLE))) - e_dbg("Attempting to access page 800 while gig enabled.\n"); - - /* All operations in this function are phy address 1 */ - hw->phy.addr = 1; + (!(er32(PHY_CTRL) & E1000_PHY_CTRL_GBE_DISABLE))) + e_dbg("Attempting to access page %d while gig enabled.\n", + page); - /* Set page 769 */ - e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, - (BM_WUC_ENABLE_PAGE << IGP_PAGE_SHIFT)); - - ret_val = e1000e_read_phy_reg_mdic(hw, BM_WUC_ENABLE_REG, &phy_reg); - if (ret_val) { - e_dbg("Could not read PHY page 769\n"); - goto out; - } - - /* First clear bit 4 to avoid a power state change */ - phy_reg &= ~(BM_WUC_HOST_WU_BIT); - ret_val = e1000e_write_phy_reg_mdic(hw, BM_WUC_ENABLE_REG, phy_reg); - if (ret_val) { - e_dbg("Could not clear PHY page 769 bit 4\n"); - goto out; - } - - /* Write bit 2 = 1, and clear bit 4 to 769_17 */ - ret_val = e1000e_write_phy_reg_mdic(hw, BM_WUC_ENABLE_REG, - phy_reg | BM_WUC_ENABLE_BIT); - if (ret_val) { - e_dbg("Could not write PHY page 769 bit 2\n"); - goto out; + if (!page_set) { + /* Enable access to PHY wakeup registers */ + ret_val = e1000_enable_phy_wakeup_reg_access_bm(hw, &phy_reg); + if (ret_val) { + e_dbg("Could not enable PHY wakeup reg access\n"); + return ret_val; + } } - /* Select page 800 */ - ret_val = e1000e_write_phy_reg_mdic(hw, - IGP01E1000_PHY_PAGE_SELECT, - (BM_WUC_PAGE << IGP_PAGE_SHIFT)); + e_dbg("Accessing PHY page %d reg 0x%x\n", page, reg); - /* Write the page 800 offset value using opcode 0x11 */ + /* Write the Wakeup register page offset value using opcode 0x11 */ ret_val = e1000e_write_phy_reg_mdic(hw, BM_WUC_ADDRESS_OPCODE, reg); if (ret_val) { - e_dbg("Could not write address opcode to page 800\n"); - goto out; + e_dbg("Could not write address opcode to page %d\n", page); + return ret_val; } if (read) { - /* Read the page 800 value using opcode 0x12 */ + /* Read the Wakeup register page value using opcode 0x12 */ ret_val = e1000e_read_phy_reg_mdic(hw, BM_WUC_DATA_OPCODE, - data); + data); } else { - /* Write the page 800 value using opcode 0x12 */ + /* Write the Wakeup register page value using opcode 0x12 */ ret_val = e1000e_write_phy_reg_mdic(hw, BM_WUC_DATA_OPCODE, - *data); + *data); } if (ret_val) { - e_dbg("Could not access data value from page 800\n"); - goto out; + e_dbg("Could not access PHY reg %d.%d\n", page, reg); + return ret_val; } - /* - * Restore 769_17.2 to its original value - * Set page 769 - */ - e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, - (BM_WUC_ENABLE_PAGE << IGP_PAGE_SHIFT)); - - /* Clear 769_17.2 */ - ret_val = e1000e_write_phy_reg_mdic(hw, BM_WUC_ENABLE_REG, phy_reg); - if (ret_val) { - e_dbg("Could not clear PHY page 769 bit 2\n"); - goto out; - } + if (!page_set) + ret_val = e1000_disable_phy_wakeup_reg_access_bm(hw, &phy_reg); -out: return ret_val; } @@ -2699,9 +2719,9 @@ void e1000_power_up_phy_copper(struct e1000_hw *hw) u16 mii_reg = 0; /* The PHY will retain its settings across a power down/up cycle */ - e1e_rphy(hw, PHY_CONTROL, &mii_reg); - mii_reg &= ~MII_CR_POWER_DOWN; - e1e_wphy(hw, PHY_CONTROL, mii_reg); + e1e_rphy(hw, MII_BMCR, &mii_reg); + mii_reg &= ~BMCR_PDOWN; + e1e_wphy(hw, MII_BMCR, mii_reg); } /** @@ -2717,42 +2737,10 @@ void e1000_power_down_phy_copper(struct e1000_hw *hw) u16 mii_reg = 0; /* The PHY will retain its settings across a power down/up cycle */ - e1e_rphy(hw, PHY_CONTROL, &mii_reg); - mii_reg |= MII_CR_POWER_DOWN; - e1e_wphy(hw, PHY_CONTROL, mii_reg); - msleep(1); -} - -/** - * e1000_set_mdio_slow_mode_hv - Set slow MDIO access mode - * @hw: pointer to the HW structure - * @slow: true for slow mode, false for normal mode - * - * Assumes semaphore already acquired. - **/ -s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw, bool slow) -{ - s32 ret_val = E1000_SUCCESS; - u16 data = 0; - - /* Set MDIO mode - page 769, register 16: 0x2580==slow, 0x2180==fast */ - hw->phy.addr = 1; - ret_val = e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, - (BM_PORT_CTRL_PAGE << IGP_PAGE_SHIFT)); - if (ret_val) - goto out; - - ret_val = e1000e_write_phy_reg_mdic(hw, BM_CS_CTRL1, - (0x2180 | (slow << 10))); - if (ret_val) - goto out; - - /* dummy read when reverting to fast mode - throw away result */ - if (!slow) - ret_val = e1000e_read_phy_reg_mdic(hw, BM_CS_CTRL1, &data); - -out: - return ret_val; + e1e_rphy(hw, MII_BMCR, &mii_reg); + mii_reg |= BMCR_PDOWN; + e1e_wphy(hw, MII_BMCR, mii_reg); + usleep_range(1000, 2000); } /** @@ -2767,12 +2755,12 @@ out: * semaphore before exiting. **/ static s32 __e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data, - bool locked) + bool locked, bool page_set) { s32 ret_val; u16 page = BM_PHY_REG_PAGE(offset); u16 reg = BM_PHY_REG_NUM(offset); - bool in_slow_mode = false; + u32 phy_addr = hw->phy.addr = e1000_get_phy_addr_for_hv_page(page); if (!locked) { ret_val = hw->phy.ops.acquire(hw); @@ -2780,56 +2768,40 @@ static s32 __e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data, return ret_val; } - /* Workaround failure in MDIO access while cable is disconnected */ - if ((hw->phy.type == e1000_phy_82577) && - !(er32(STATUS) & E1000_STATUS_LU)) { - ret_val = e1000_set_mdio_slow_mode_hv(hw, true); - if (ret_val) - goto out; - - in_slow_mode = true; - } - /* Page 800 works differently than the rest so it has its own func */ if (page == BM_WUC_PAGE) { - ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, - data, true); + ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, data, + true, page_set); goto out; } if (page > 0 && page < HV_INTC_FC_PAGE_START) { ret_val = e1000_access_phy_debug_regs_hv(hw, offset, - data, true); + data, true); goto out; } - hw->phy.addr = e1000_get_phy_addr_for_hv_page(page); - - if (page == HV_INTC_FC_PAGE_START) - page = 0; + if (!page_set) { + if (page == HV_INTC_FC_PAGE_START) + page = 0; - if (reg > MAX_PHY_MULTI_PAGE_REG) { - u32 phy_addr = hw->phy.addr; + if (reg > MAX_PHY_MULTI_PAGE_REG) { + /* Page is shifted left, PHY expects (page x 32) */ + ret_val = e1000_set_page_igp(hw, + (page << IGP_PAGE_SHIFT)); - hw->phy.addr = 1; + hw->phy.addr = phy_addr; - /* Page is shifted left, PHY expects (page x 32) */ - ret_val = e1000e_write_phy_reg_mdic(hw, - IGP01E1000_PHY_PAGE_SELECT, - (page << IGP_PAGE_SHIFT)); - hw->phy.addr = phy_addr; - - if (ret_val) - goto out; + if (ret_val) + goto out; + } } - ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & reg, - data); -out: - /* Revert to MDIO fast mode, if applicable */ - if ((hw->phy.type == e1000_phy_82577) && in_slow_mode) - ret_val |= e1000_set_mdio_slow_mode_hv(hw, false); + e_dbg("reading PHY page %d (or 0x%x shifted) reg 0x%x\n", page, + page << IGP_PAGE_SHIFT, reg); + ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & reg, data); +out: if (!locked) hw->phy.ops.release(hw); @@ -2848,7 +2820,7 @@ out: **/ s32 e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data) { - return __e1000_read_phy_reg_hv(hw, offset, data, false); + return __e1000_read_phy_reg_hv(hw, offset, data, false, false); } /** @@ -2862,7 +2834,21 @@ s32 e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data) **/ s32 e1000_read_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, u16 *data) { - return __e1000_read_phy_reg_hv(hw, offset, data, true); + return __e1000_read_phy_reg_hv(hw, offset, data, true, false); +} + +/** + * e1000_read_phy_reg_page_hv - Read HV PHY register + * @hw: pointer to the HW structure + * @offset: register offset to write to + * @data: data to write at register offset + * + * Reads the PHY register at offset and stores the retrieved information + * in data. Assumes semaphore already acquired and page already set. + **/ +s32 e1000_read_phy_reg_page_hv(struct e1000_hw *hw, u32 offset, u16 *data) +{ + return __e1000_read_phy_reg_hv(hw, offset, data, true, true); } /** @@ -2876,12 +2862,12 @@ s32 e1000_read_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, u16 *data) * at the offset. Release any acquired semaphores before exiting. **/ static s32 __e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data, - bool locked) + bool locked, bool page_set) { s32 ret_val; u16 page = BM_PHY_REG_PAGE(offset); u16 reg = BM_PHY_REG_NUM(offset); - bool in_slow_mode = false; + u32 phy_addr = hw->phy.addr = e1000_get_phy_addr_for_hv_page(page); if (!locked) { ret_val = hw->phy.ops.acquire(hw); @@ -2889,73 +2875,57 @@ static s32 __e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data, return ret_val; } - /* Workaround failure in MDIO access while cable is disconnected */ - if ((hw->phy.type == e1000_phy_82577) && - !(er32(STATUS) & E1000_STATUS_LU)) { - ret_val = e1000_set_mdio_slow_mode_hv(hw, true); - if (ret_val) - goto out; - - in_slow_mode = true; - } - /* Page 800 works differently than the rest so it has its own func */ if (page == BM_WUC_PAGE) { - ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, - &data, false); + ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, &data, + false, page_set); goto out; } if (page > 0 && page < HV_INTC_FC_PAGE_START) { ret_val = e1000_access_phy_debug_regs_hv(hw, offset, - &data, false); + &data, false); goto out; } - hw->phy.addr = e1000_get_phy_addr_for_hv_page(page); - - if (page == HV_INTC_FC_PAGE_START) - page = 0; - - /* - * Workaround MDIO accesses being disabled after entering IEEE Power - * Down (whenever bit 11 of the PHY Control register is set) - */ - if ((hw->phy.type == e1000_phy_82578) && - (hw->phy.revision >= 1) && - (hw->phy.addr == 2) && - ((MAX_PHY_REG_ADDRESS & reg) == 0) && - (data & (1 << 11))) { - u16 data2 = 0x7EFF; - ret_val = e1000_access_phy_debug_regs_hv(hw, (1 << 6) | 0x3, - &data2, false); - if (ret_val) - goto out; - } + if (!page_set) { + if (page == HV_INTC_FC_PAGE_START) + page = 0; - if (reg > MAX_PHY_MULTI_PAGE_REG) { - u32 phy_addr = hw->phy.addr; + /* Workaround MDIO accesses being disabled after entering IEEE + * Power Down (when bit 11 of the PHY Control register is set) + */ + if ((hw->phy.type == e1000_phy_82578) && + (hw->phy.revision >= 1) && + (hw->phy.addr == 2) && + !(MAX_PHY_REG_ADDRESS & reg) && (data & (1 << 11))) { + u16 data2 = 0x7EFF; + ret_val = e1000_access_phy_debug_regs_hv(hw, + (1 << 6) | 0x3, + &data2, false); + if (ret_val) + goto out; + } - hw->phy.addr = 1; + if (reg > MAX_PHY_MULTI_PAGE_REG) { + /* Page is shifted left, PHY expects (page x 32) */ + ret_val = e1000_set_page_igp(hw, + (page << IGP_PAGE_SHIFT)); - /* Page is shifted left, PHY expects (page x 32) */ - ret_val = e1000e_write_phy_reg_mdic(hw, - IGP01E1000_PHY_PAGE_SELECT, - (page << IGP_PAGE_SHIFT)); - hw->phy.addr = phy_addr; + hw->phy.addr = phy_addr; - if (ret_val) - goto out; + if (ret_val) + goto out; + } } + e_dbg("writing PHY page %d (or 0x%x shifted) reg 0x%x\n", page, + page << IGP_PAGE_SHIFT, reg); + ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & reg, - data); + data); out: - /* Revert to MDIO fast mode, if applicable */ - if ((hw->phy.type == e1000_phy_82577) && in_slow_mode) - ret_val |= e1000_set_mdio_slow_mode_hv(hw, false); - if (!locked) hw->phy.ops.release(hw); @@ -2973,7 +2943,7 @@ out: **/ s32 e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data) { - return __e1000_write_phy_reg_hv(hw, offset, data, false); + return __e1000_write_phy_reg_hv(hw, offset, data, false, false); } /** @@ -2987,11 +2957,25 @@ s32 e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data) **/ s32 e1000_write_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, u16 data) { - return __e1000_write_phy_reg_hv(hw, offset, data, true); + return __e1000_write_phy_reg_hv(hw, offset, data, true, false); +} + +/** + * e1000_write_phy_reg_page_hv - Write HV PHY register + * @hw: pointer to the HW structure + * @offset: register offset to write to + * @data: data to write at register offset + * + * Writes the data to PHY register at the offset. Assumes semaphore + * already acquired and page already set. + **/ +s32 e1000_write_phy_reg_page_hv(struct e1000_hw *hw, u32 offset, u16 data) +{ + return __e1000_write_phy_reg_hv(hw, offset, data, true, true); } /** - * e1000_get_phy_addr_for_hv_page - Get PHY adrress based on page + * e1000_get_phy_addr_for_hv_page - Get PHY address based on page * @page: page to be accessed **/ static u32 e1000_get_phy_addr_for_hv_page(u32 page) @@ -3009,22 +2993,23 @@ static u32 e1000_get_phy_addr_for_hv_page(u32 page) * @hw: pointer to the HW structure * @offset: register offset to be read or written * @data: pointer to the data to be read or written - * @read: determines if operation is read or written + * @read: determines if operation is read or write * * Reads the PHY register at offset and stores the retreived information * in data. Assumes semaphore already acquired. Note that the procedure - * to read these regs uses the address port and data port to read/write. + * to access these regs uses the address port and data port to read/write. + * These accesses done with PHY address 2 and without using pages. **/ static s32 e1000_access_phy_debug_regs_hv(struct e1000_hw *hw, u32 offset, - u16 *data, bool read) + u16 *data, bool read) { s32 ret_val; - u32 addr_reg = 0; - u32 data_reg = 0; + u32 addr_reg; + u32 data_reg; /* This takes care of the difference with desktop vs mobile phy */ - addr_reg = (hw->phy.type == e1000_phy_82578) ? - I82578_ADDR_REG : I82577_ADDR_REG; + addr_reg = ((hw->phy.type == e1000_phy_82578) ? + I82578_ADDR_REG : I82577_ADDR_REG); data_reg = addr_reg + 1; /* All operations in this function are phy address 2 */ @@ -3033,8 +3018,8 @@ static s32 e1000_access_phy_debug_regs_hv(struct e1000_hw *hw, u32 offset, /* masking with 0x3F to remove the page from offset */ ret_val = e1000e_write_phy_reg_mdic(hw, addr_reg, (u16)offset & 0x3F); if (ret_val) { - e_dbg("Could not write PHY the HV address register\n"); - goto out; + e_dbg("Could not write the Address Offset port register\n"); + return ret_val; } /* Read or write the data value next */ @@ -3043,12 +3028,9 @@ static s32 e1000_access_phy_debug_regs_hv(struct e1000_hw *hw, u32 offset, else ret_val = e1000e_write_phy_reg_mdic(hw, data_reg, *data); - if (ret_val) { - e_dbg("Could not read data value from HV data register\n"); - goto out; - } + if (ret_val) + e_dbg("Could not access the Data port register\n"); -out: return ret_val; } @@ -3065,45 +3047,39 @@ out: **/ s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw) { - s32 ret_val = E1000_SUCCESS; + s32 ret_val = 0; u16 data; if (hw->phy.type != e1000_phy_82578) - goto out; + return 0; /* Do not apply workaround if in PHY loopback bit 14 set */ - e1e_rphy(hw, PHY_CONTROL, &data); - if (data & PHY_CONTROL_LB) - goto out; - + e1e_rphy(hw, MII_BMCR, &data); + if (data & BMCR_LOOPBACK) + return 0; + /* check if link is up and at 1Gbps */ ret_val = e1e_rphy(hw, BM_CS_STATUS, &data); if (ret_val) - goto out; + return ret_val; - data &= BM_CS_STATUS_LINK_UP | - BM_CS_STATUS_RESOLVED | - BM_CS_STATUS_SPEED_MASK; + data &= (BM_CS_STATUS_LINK_UP | BM_CS_STATUS_RESOLVED | + BM_CS_STATUS_SPEED_MASK); - if (data != (BM_CS_STATUS_LINK_UP | - BM_CS_STATUS_RESOLVED | - BM_CS_STATUS_SPEED_1000)) - goto out; + if (data != (BM_CS_STATUS_LINK_UP | BM_CS_STATUS_RESOLVED | + BM_CS_STATUS_SPEED_1000)) + return 0; msleep(200); /* flush the packets in the fifo buffer */ ret_val = e1e_wphy(hw, HV_MUX_DATA_CTRL, - HV_MUX_DATA_CTRL_GEN_TO_MAC | - HV_MUX_DATA_CTRL_FORCE_SPEED); + (HV_MUX_DATA_CTRL_GEN_TO_MAC | + HV_MUX_DATA_CTRL_FORCE_SPEED)); if (ret_val) - goto out; - - ret_val = e1e_wphy(hw, HV_MUX_DATA_CTRL, - HV_MUX_DATA_CTRL_GEN_TO_MAC); + return ret_val; -out: - return ret_val; + return e1e_wphy(hw, HV_MUX_DATA_CTRL, HV_MUX_DATA_CTRL_GEN_TO_MAC); } /** @@ -3123,9 +3099,9 @@ s32 e1000_check_polarity_82577(struct e1000_hw *hw) ret_val = e1e_rphy(hw, I82577_PHY_STATUS_2, &data); if (!ret_val) - phy->cable_polarity = (data & I82577_PHY_STATUS2_REV_POLARITY) - ? e1000_rev_polarity_reversed - : e1000_rev_polarity_normal; + phy->cable_polarity = ((data & I82577_PHY_STATUS2_REV_POLARITY) + ? e1000_rev_polarity_reversed + : e1000_rev_polarity_normal); return ret_val; } @@ -3134,9 +3110,7 @@ s32 e1000_check_polarity_82577(struct e1000_hw *hw) * e1000_phy_force_speed_duplex_82577 - Force speed/duplex for I82577 PHY * @hw: pointer to the HW structure * - * Calls the PHY setup function to force speed and duplex. Clears the - * auto-crossover to force MDI manually. Waits for link and returns - * successful if link up is successful, else -E1000_ERR_PHY (-2). + * Calls the PHY setup function to force speed and duplex. **/ s32 e1000_phy_force_speed_duplex_82577(struct e1000_hw *hw) { @@ -3145,58 +3119,34 @@ s32 e1000_phy_force_speed_duplex_82577(struct e1000_hw *hw) u16 phy_data; bool link; - ret_val = e1e_rphy(hw, PHY_CONTROL, &phy_data); + ret_val = e1e_rphy(hw, MII_BMCR, &phy_data); if (ret_val) - goto out; + return ret_val; e1000e_phy_force_speed_duplex_setup(hw, &phy_data); - ret_val = e1e_wphy(hw, PHY_CONTROL, phy_data); - if (ret_val) - goto out; - - /* - * Clear Auto-Crossover to force MDI manually. 82577 requires MDI - * forced whenever speed and duplex are forced. - */ - ret_val = e1e_rphy(hw, I82577_PHY_CTRL_2, &phy_data); - if (ret_val) - goto out; - - phy_data &= ~I82577_PHY_CTRL2_AUTO_MDIX; - phy_data &= ~I82577_PHY_CTRL2_FORCE_MDI_MDIX; - - ret_val = e1e_wphy(hw, I82577_PHY_CTRL_2, phy_data); + ret_val = e1e_wphy(hw, MII_BMCR, phy_data); if (ret_val) - goto out; - - e_dbg("I82577_PHY_CTRL_2: %X\n", phy_data); + return ret_val; udelay(1); if (phy->autoneg_wait_to_complete) { e_dbg("Waiting for forced speed/duplex link on 82577 phy\n"); - ret_val = e1000e_phy_has_link_generic(hw, - PHY_FORCE_LIMIT, - 100000, - &link); + ret_val = e1000e_phy_has_link_generic(hw, PHY_FORCE_LIMIT, + 100000, &link); if (ret_val) - goto out; + return ret_val; if (!link) e_dbg("Link taking longer than expected.\n"); /* Try once more */ - ret_val = e1000e_phy_has_link_generic(hw, - PHY_FORCE_LIMIT, - 100000, - &link); - if (ret_val) - goto out; + ret_val = e1000e_phy_has_link_generic(hw, PHY_FORCE_LIMIT, + 100000, &link); } -out: return ret_val; } @@ -3218,51 +3168,47 @@ s32 e1000_get_phy_info_82577(struct e1000_hw *hw) ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); if (ret_val) - goto out; + return ret_val; if (!link) { e_dbg("Phy info is only valid if link is up\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; + return -E1000_ERR_CONFIG; } phy->polarity_correction = true; ret_val = e1000_check_polarity_82577(hw); if (ret_val) - goto out; + return ret_val; ret_val = e1e_rphy(hw, I82577_PHY_STATUS_2, &data); if (ret_val) - goto out; + return ret_val; - phy->is_mdix = (data & I82577_PHY_STATUS2_MDIX) ? true : false; + phy->is_mdix = !!(data & I82577_PHY_STATUS2_MDIX); if ((data & I82577_PHY_STATUS2_SPEED_MASK) == I82577_PHY_STATUS2_SPEED_1000MBPS) { - ret_val = e1000_get_cable_length(hw); + ret_val = hw->phy.ops.get_cable_length(hw); if (ret_val) - goto out; + return ret_val; - ret_val = e1e_rphy(hw, PHY_1000T_STATUS, &data); + ret_val = e1e_rphy(hw, MII_STAT1000, &data); if (ret_val) - goto out; + return ret_val; - phy->local_rx = (data & SR_1000T_LOCAL_RX_STATUS) - ? e1000_1000t_rx_status_ok - : e1000_1000t_rx_status_not_ok; + phy->local_rx = (data & LPA_1000LOCALRXOK) + ? e1000_1000t_rx_status_ok : e1000_1000t_rx_status_not_ok; - phy->remote_rx = (data & SR_1000T_REMOTE_RX_STATUS) - ? e1000_1000t_rx_status_ok - : e1000_1000t_rx_status_not_ok; + phy->remote_rx = (data & LPA_1000REMRXOK) + ? e1000_1000t_rx_status_ok : e1000_1000t_rx_status_not_ok; } else { phy->cable_length = E1000_CABLE_LENGTH_UNDEFINED; phy->local_rx = e1000_1000t_rx_status_undefined; phy->remote_rx = e1000_1000t_rx_status_undefined; } -out: - return ret_val; + return 0; } /** @@ -3280,16 +3226,15 @@ s32 e1000_get_cable_length_82577(struct e1000_hw *hw) ret_val = e1e_rphy(hw, I82577_PHY_DIAG_STATUS, &phy_data); if (ret_val) - goto out; + return ret_val; - length = (phy_data & I82577_DSTATUS_CABLE_LENGTH) >> - I82577_DSTATUS_CABLE_LENGTH_SHIFT; + length = ((phy_data & I82577_DSTATUS_CABLE_LENGTH) >> + I82577_DSTATUS_CABLE_LENGTH_SHIFT); if (length == E1000_CABLE_LENGTH_UNDEFINED) - ret_val = -E1000_ERR_PHY; + return -E1000_ERR_PHY; phy->cable_length = length; -out: - return ret_val; + return 0; } diff --git a/vmkdrivers/src_9/drivers/net/e1000e/phy.h b/vmkdrivers/src_9/drivers/net/e1000e/phy.h new file mode 100644 index 0000000000000000000000000000000000000000..e8268bf816ede33b25695595376dcae043a51dac --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/phy.h @@ -0,0 +1,237 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +#ifndef _E1000E_PHY_H_ +#define _E1000E_PHY_H_ + +s32 e1000e_check_downshift(struct e1000_hw *hw); +s32 e1000_check_polarity_m88(struct e1000_hw *hw); +s32 e1000_check_polarity_igp(struct e1000_hw *hw); +s32 e1000_check_polarity_ife(struct e1000_hw *hw); +s32 e1000e_check_reset_block_generic(struct e1000_hw *hw); +s32 e1000e_copper_link_setup_igp(struct e1000_hw *hw); +s32 e1000e_copper_link_setup_m88(struct e1000_hw *hw); +s32 e1000e_phy_force_speed_duplex_igp(struct e1000_hw *hw); +s32 e1000e_phy_force_speed_duplex_m88(struct e1000_hw *hw); +s32 e1000_phy_force_speed_duplex_ife(struct e1000_hw *hw); +s32 e1000e_get_cable_length_m88(struct e1000_hw *hw); +s32 e1000e_get_cable_length_igp_2(struct e1000_hw *hw); +s32 e1000e_get_cfg_done_generic(struct e1000_hw *hw); +s32 e1000e_get_phy_id(struct e1000_hw *hw); +s32 e1000e_get_phy_info_igp(struct e1000_hw *hw); +s32 e1000e_get_phy_info_m88(struct e1000_hw *hw); +s32 e1000_get_phy_info_ife(struct e1000_hw *hw); +s32 e1000e_phy_sw_reset(struct e1000_hw *hw); +void e1000e_phy_force_speed_duplex_setup(struct e1000_hw *hw, u16 *phy_ctrl); +s32 e1000e_phy_hw_reset_generic(struct e1000_hw *hw); +s32 e1000e_phy_reset_dsp(struct e1000_hw *hw); +s32 e1000e_read_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000e_read_kmrn_reg_locked(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000_set_page_igp(struct e1000_hw *hw, u16 page); +s32 e1000e_read_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000e_read_phy_reg_igp_locked(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000e_read_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000e_set_d3_lplu_state(struct e1000_hw *hw, bool active); +s32 e1000e_setup_copper_link(struct e1000_hw *hw); +s32 e1000e_write_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 data); +s32 e1000e_write_kmrn_reg_locked(struct e1000_hw *hw, u32 offset, u16 data); +s32 e1000e_write_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 data); +s32 e1000e_write_phy_reg_igp_locked(struct e1000_hw *hw, u32 offset, u16 data); +s32 e1000e_write_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 data); +s32 e1000e_phy_has_link_generic(struct e1000_hw *hw, u32 iterations, + u32 usec_interval, bool *success); +s32 e1000e_phy_init_script_igp3(struct e1000_hw *hw); +enum e1000_phy_type e1000e_get_phy_type_from_id(u32 phy_id); +s32 e1000e_determine_phy_address(struct e1000_hw *hw); +s32 e1000e_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data); +s32 e1000e_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000_enable_phy_wakeup_reg_access_bm(struct e1000_hw *hw, u16 *phy_reg); +s32 e1000_disable_phy_wakeup_reg_access_bm(struct e1000_hw *hw, u16 *phy_reg); +s32 e1000e_read_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000e_write_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 data); +void e1000_power_up_phy_copper(struct e1000_hw *hw); +void e1000_power_down_phy_copper(struct e1000_hw *hw); +s32 e1000e_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000e_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data); +s32 e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000_read_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000_read_phy_reg_page_hv(struct e1000_hw *hw, u32 offset, u16 *data); +s32 e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data); +s32 e1000_write_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, u16 data); +s32 e1000_write_phy_reg_page_hv(struct e1000_hw *hw, u32 offset, u16 data); +s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw); +s32 e1000_copper_link_setup_82577(struct e1000_hw *hw); +s32 e1000_check_polarity_82577(struct e1000_hw *hw); +s32 e1000_get_phy_info_82577(struct e1000_hw *hw); +s32 e1000_phy_force_speed_duplex_82577(struct e1000_hw *hw); +s32 e1000_get_cable_length_82577(struct e1000_hw *hw); + +#define E1000_MAX_PHY_ADDR 8 + +/* IGP01E1000 Specific Registers */ +#define IGP01E1000_PHY_PORT_CONFIG 0x10 /* Port Config */ +#define IGP01E1000_PHY_PORT_STATUS 0x11 /* Status */ +#define IGP01E1000_PHY_PORT_CTRL 0x12 /* Control */ +#define IGP01E1000_PHY_LINK_HEALTH 0x13 /* PHY Link Health */ +#define IGP02E1000_PHY_POWER_MGMT 0x19 /* Power Management */ +#define IGP01E1000_PHY_PAGE_SELECT 0x1F /* Page Select */ +#define BM_PHY_PAGE_SELECT 22 /* Page Select for BM */ +#define IGP_PAGE_SHIFT 5 +#define PHY_REG_MASK 0x1F + +/* BM/HV Specific Registers */ +#define BM_PORT_CTRL_PAGE 769 +#define BM_WUC_PAGE 800 +#define BM_WUC_ADDRESS_OPCODE 0x11 +#define BM_WUC_DATA_OPCODE 0x12 +#define BM_WUC_ENABLE_PAGE BM_PORT_CTRL_PAGE +#define BM_WUC_ENABLE_REG 17 +#define BM_WUC_ENABLE_BIT (1 << 2) +#define BM_WUC_HOST_WU_BIT (1 << 4) +#define BM_WUC_ME_WU_BIT (1 << 5) + +#define PHY_UPPER_SHIFT 21 +#define BM_PHY_REG(page, reg) \ + (((reg) & MAX_PHY_REG_ADDRESS) |\ + (((page) & 0xFFFF) << PHY_PAGE_SHIFT) |\ + (((reg) & ~MAX_PHY_REG_ADDRESS) << (PHY_UPPER_SHIFT - PHY_PAGE_SHIFT))) +#define BM_PHY_REG_PAGE(offset) \ + ((u16)(((offset) >> PHY_PAGE_SHIFT) & 0xFFFF)) +#define BM_PHY_REG_NUM(offset) \ + ((u16)(((offset) & MAX_PHY_REG_ADDRESS) |\ + (((offset) >> (PHY_UPPER_SHIFT - PHY_PAGE_SHIFT)) &\ + ~MAX_PHY_REG_ADDRESS))) + +#define HV_INTC_FC_PAGE_START 768 +#define I82578_ADDR_REG 29 +#define I82577_ADDR_REG 16 +#define I82577_CFG_REG 22 +#define I82577_CFG_ASSERT_CRS_ON_TX (1 << 15) +#define I82577_CFG_ENABLE_DOWNSHIFT (3 << 10) /* auto downshift */ +#define I82577_CTRL_REG 23 + +/* 82577 specific PHY registers */ +#define I82577_PHY_CTRL_2 18 +#define I82577_PHY_LBK_CTRL 19 +#define I82577_PHY_STATUS_2 26 +#define I82577_PHY_DIAG_STATUS 31 + +/* I82577 PHY Status 2 */ +#define I82577_PHY_STATUS2_REV_POLARITY 0x0400 +#define I82577_PHY_STATUS2_MDIX 0x0800 +#define I82577_PHY_STATUS2_SPEED_MASK 0x0300 +#define I82577_PHY_STATUS2_SPEED_1000MBPS 0x0200 + +/* I82577 PHY Control 2 */ +#define I82577_PHY_CTRL2_MANUAL_MDIX 0x0200 +#define I82577_PHY_CTRL2_AUTO_MDI_MDIX 0x0400 +#define I82577_PHY_CTRL2_MDIX_CFG_MASK 0x0600 + +/* I82577 PHY Diagnostics Status */ +#define I82577_DSTATUS_CABLE_LENGTH 0x03FC +#define I82577_DSTATUS_CABLE_LENGTH_SHIFT 2 + +/* BM PHY Copper Specific Control 1 */ +#define BM_CS_CTRL1 16 + +/* BM PHY Copper Specific Status */ +#define BM_CS_STATUS 17 +#define BM_CS_STATUS_LINK_UP 0x0400 +#define BM_CS_STATUS_RESOLVED 0x0800 +#define BM_CS_STATUS_SPEED_MASK 0xC000 +#define BM_CS_STATUS_SPEED_1000 0x8000 + +/* 82577 Mobile Phy Status Register */ +#define HV_M_STATUS 26 +#define HV_M_STATUS_AUTONEG_COMPLETE 0x1000 +#define HV_M_STATUS_SPEED_MASK 0x0300 +#define HV_M_STATUS_SPEED_1000 0x0200 +#define HV_M_STATUS_SPEED_100 0x0100 +#define HV_M_STATUS_LINK_UP 0x0040 + +#define IGP01E1000_PHY_PCS_INIT_REG 0x00B4 +#define IGP01E1000_PHY_POLARITY_MASK 0x0078 + +#define IGP01E1000_PSCR_AUTO_MDIX 0x1000 +#define IGP01E1000_PSCR_FORCE_MDI_MDIX 0x2000 /* 0=MDI, 1=MDIX */ + +#define IGP01E1000_PSCFR_SMART_SPEED 0x0080 + +#define IGP02E1000_PM_SPD 0x0001 /* Smart Power Down */ +#define IGP02E1000_PM_D0_LPLU 0x0002 /* For D0a states */ +#define IGP02E1000_PM_D3_LPLU 0x0004 /* For all other states */ + +#define IGP01E1000_PLHR_SS_DOWNGRADE 0x8000 + +#define IGP01E1000_PSSR_POLARITY_REVERSED 0x0002 +#define IGP01E1000_PSSR_MDIX 0x0800 +#define IGP01E1000_PSSR_SPEED_MASK 0xC000 +#define IGP01E1000_PSSR_SPEED_1000MBPS 0xC000 + +#define IGP02E1000_PHY_CHANNEL_NUM 4 +#define IGP02E1000_PHY_AGC_A 0x11B1 +#define IGP02E1000_PHY_AGC_B 0x12B1 +#define IGP02E1000_PHY_AGC_C 0x14B1 +#define IGP02E1000_PHY_AGC_D 0x18B1 + +#define IGP02E1000_AGC_LENGTH_SHIFT 9 /* Course=15:13, Fine=12:9 */ +#define IGP02E1000_AGC_LENGTH_MASK 0x7F +#define IGP02E1000_AGC_RANGE 15 + +#define E1000_CABLE_LENGTH_UNDEFINED 0xFF + +#define E1000_KMRNCTRLSTA_OFFSET 0x001F0000 +#define E1000_KMRNCTRLSTA_OFFSET_SHIFT 16 +#define E1000_KMRNCTRLSTA_REN 0x00200000 +#define E1000_KMRNCTRLSTA_CTRL_OFFSET 0x1 /* Kumeran Control */ +#define E1000_KMRNCTRLSTA_DIAG_OFFSET 0x3 /* Kumeran Diagnostic */ +#define E1000_KMRNCTRLSTA_TIMEOUTS 0x4 /* Kumeran Timeouts */ +#define E1000_KMRNCTRLSTA_INBAND_PARAM 0x9 /* Kumeran InBand Parameters */ +#define E1000_KMRNCTRLSTA_IBIST_DISABLE 0x0200 /* Kumeran IBIST Disable */ +#define E1000_KMRNCTRLSTA_DIAG_NELPBK 0x1000 /* Nearend Loopback mode */ +#define E1000_KMRNCTRLSTA_K1_CONFIG 0x7 +#define E1000_KMRNCTRLSTA_K1_ENABLE 0x0002 /* enable K1 */ +#define E1000_KMRNCTRLSTA_HD_CTRL 0x10 /* Kumeran HD Control */ + +#define IFE_PHY_EXTENDED_STATUS_CONTROL 0x10 +#define IFE_PHY_SPECIAL_CONTROL 0x11 /* 100BaseTx PHY Special Ctrl */ +#define IFE_PHY_SPECIAL_CONTROL_LED 0x1B /* PHY Special and LED Ctrl */ +#define IFE_PHY_MDIX_CONTROL 0x1C /* MDI/MDI-X Control */ + +/* IFE PHY Extended Status Control */ +#define IFE_PESC_POLARITY_REVERSED 0x0100 + +/* IFE PHY Special Control */ +#define IFE_PSC_AUTO_POLARITY_DISABLE 0x0010 +#define IFE_PSC_FORCE_POLARITY 0x0020 + +/* IFE PHY Special Control and LED Control */ +#define IFE_PSCL_PROBE_MODE 0x0020 +#define IFE_PSCL_PROBE_LEDS_OFF 0x0006 /* Force LEDs 0 and 2 off */ +#define IFE_PSCL_PROBE_LEDS_ON 0x0007 /* Force LEDs 0 and 2 on */ + +/* IFE PHY MDIX Control */ +#define IFE_PMC_MDIX_STATUS 0x0020 /* 1=MDI-X, 0=MDI */ +#define IFE_PMC_FORCE_MDIX 0x0040 /* 1=force MDI-X, 0=force MDI */ +#define IFE_PMC_AUTO_MDIX 0x0080 /* 1=enable auto, 0=disable */ + +#endif diff --git a/vmkdrivers/src_9/drivers/net/e1000e/ptp.c b/vmkdrivers/src_9/drivers/net/e1000e/ptp.c new file mode 100644 index 0000000000000000000000000000000000000000..caa0c6f5ad33c20a625ede43f2cc0e9c7957087a --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/ptp.c @@ -0,0 +1,277 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +/* PTP 1588 Hardware Clock (PHC) + * Derived from PTP Hardware Clock driver for Intel 82576 and 82580 (igb) + * Copyright (C) 2011 Richard Cochran + */ + +#include "e1000.h" + +/** + * e1000e_phc_adjfreq - adjust the frequency of the hardware clock + * @ptp: ptp clock structure + * @delta: Desired frequency change in parts per billion + * + * Adjust the frequency of the PHC cycle counter by the indicated delta from + * the base frequency. + **/ +static int e1000e_phc_adjfreq(struct ptp_clock_info *ptp, s32 delta) +{ + struct e1000_adapter *adapter = container_of(ptp, struct e1000_adapter, + ptp_clock_info); + struct e1000_hw *hw = &adapter->hw; + bool neg_adj = false; + unsigned long flags; + u64 adjustment; + u32 timinca, incvalue; + s32 ret_val; + + if ((delta > ptp->max_adj) || (delta <= -1000000000)) + return -EINVAL; + + if (delta < 0) { + neg_adj = true; + delta = -delta; + } + + /* Get the System Time Register SYSTIM base frequency */ + ret_val = e1000e_get_base_timinca(adapter, &timinca); + if (ret_val) + return ret_val; + + spin_lock_irqsave(&adapter->systim_lock, flags); + + incvalue = timinca & E1000_TIMINCA_INCVALUE_MASK; + + adjustment = incvalue; + adjustment *= delta; + adjustment = div_u64(adjustment, 1000000000); + + incvalue = neg_adj ? (incvalue - adjustment) : (incvalue + adjustment); + + timinca &= ~E1000_TIMINCA_INCVALUE_MASK; + timinca |= incvalue; + + ew32(TIMINCA, timinca); + + spin_unlock_irqrestore(&adapter->systim_lock, flags); + + return 0; +} + +/** + * e1000e_phc_adjtime - Shift the time of the hardware clock + * @ptp: ptp clock structure + * @delta: Desired change in nanoseconds + * + * Adjust the timer by resetting the timecounter structure. + **/ +static int e1000e_phc_adjtime(struct ptp_clock_info *ptp, s64 delta) +{ + struct e1000_adapter *adapter = container_of(ptp, struct e1000_adapter, + ptp_clock_info); + unsigned long flags; + s64 now; + + spin_lock_irqsave(&adapter->systim_lock, flags); + now = timecounter_read(&adapter->tc); + now += delta; + timecounter_init(&adapter->tc, &adapter->cc, now); + spin_unlock_irqrestore(&adapter->systim_lock, flags); + + return 0; +} + +/** + * e1000e_phc_gettime - Reads the current time from the hardware clock + * @ptp: ptp clock structure + * @ts: timespec structure to hold the current time value + * + * Read the timecounter and return the correct value in ns after converting + * it into a struct timespec. + **/ +static int e1000e_phc_gettime(struct ptp_clock_info *ptp, struct timespec *ts) +{ + struct e1000_adapter *adapter = container_of(ptp, struct e1000_adapter, + ptp_clock_info); + unsigned long flags; + u32 remainder; + u64 ns; + + spin_lock_irqsave(&adapter->systim_lock, flags); + ns = timecounter_read(&adapter->tc); + spin_unlock_irqrestore(&adapter->systim_lock, flags); + + ts->tv_sec = div_u64_rem(ns, NSEC_PER_SEC, &remainder); + ts->tv_nsec = remainder; + + return 0; +} + +/** + * e1000e_phc_settime - Set the current time on the hardware clock + * @ptp: ptp clock structure + * @ts: timespec containing the new time for the cycle counter + * + * Reset the timecounter to use a new base value instead of the kernel + * wall timer value. + **/ +static int e1000e_phc_settime(struct ptp_clock_info *ptp, + const struct timespec *ts) +{ + struct e1000_adapter *adapter = container_of(ptp, struct e1000_adapter, + ptp_clock_info); + unsigned long flags; + u64 ns; + + ns = timespec_to_ns(ts); + + /* reset the timecounter */ + spin_lock_irqsave(&adapter->systim_lock, flags); + timecounter_init(&adapter->tc, &adapter->cc, ns); + spin_unlock_irqrestore(&adapter->systim_lock, flags); + + return 0; +} + +/** + * e1000e_phc_enable - enable or disable an ancillary feature + * @ptp: ptp clock structure + * @request: Desired resource to enable or disable + * @on: Caller passes one to enable or zero to disable + * + * Enable (or disable) ancillary features of the PHC subsystem. + * Currently, no ancillary features are supported. + **/ +static int e1000e_phc_enable(struct ptp_clock_info __always_unused *ptp, + struct ptp_clock_request __always_unused *request, + int __always_unused on) +{ + return -EOPNOTSUPP; +} + +static void e1000e_systim_overflow_work(struct work_struct *work) +{ + struct e1000_adapter *adapter = container_of(work, struct e1000_adapter, + systim_overflow_work.work); + struct e1000_hw *hw = &adapter->hw; + struct timespec ts; + + adapter->ptp_clock_info.gettime(&adapter->ptp_clock_info, &ts); + + e_dbg("SYSTIM overflow check at %ld.%09lu\n", ts.tv_sec, ts.tv_nsec); + + schedule_delayed_work(&adapter->systim_overflow_work, + E1000_SYSTIM_OVERFLOW_PERIOD); +} + +static const struct ptp_clock_info e1000e_ptp_clock_info = { + .owner = THIS_MODULE, + .n_alarm = 0, + .n_ext_ts = 0, + .n_per_out = 0, + .pps = 0, + .adjfreq = e1000e_phc_adjfreq, + .adjtime = e1000e_phc_adjtime, + .gettime = e1000e_phc_gettime, + .settime = e1000e_phc_settime, + .enable = e1000e_phc_enable, +}; + +/** + * e1000e_ptp_init - initialize PTP for devices which support it + * @adapter: board private structure + * + * This function performs the required steps for enabling PTP support. + * If PTP support has already been loaded it simply calls the cyclecounter + * init routine and exits. + **/ +void e1000e_ptp_init(struct e1000_adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + + adapter->ptp_clock = NULL; + + if (!(adapter->flags & FLAG_HAS_HW_TIMESTAMP)) + return; + + adapter->ptp_clock_info = e1000e_ptp_clock_info; + + snprintf(adapter->ptp_clock_info.name, + sizeof(adapter->ptp_clock_info.name), "%pm", + adapter->netdev->perm_addr); + + switch (hw->mac.type) { + case e1000_pch2lan: + case e1000_pch_lpt: + case e1000_pch_spt: + if (((hw->mac.type != e1000_pch_lpt) && + (hw->mac.type != e1000_pch_spt)) || + (er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_SYSCFI)) { + adapter->ptp_clock_info.max_adj = 24000000 - 1; + break; + } + /* fall-through */ + case e1000_82574: + case e1000_82583: + adapter->ptp_clock_info.max_adj = 600000000 - 1; + break; + default: + break; + } + + INIT_DELAYED_WORK(&adapter->systim_overflow_work, + e1000e_systim_overflow_work); + + schedule_delayed_work(&adapter->systim_overflow_work, + E1000_SYSTIM_OVERFLOW_PERIOD); + + adapter->ptp_clock = ptp_clock_register(&adapter->ptp_clock_info, + pci_dev_to_dev(adapter->pdev)); + if (IS_ERR(adapter->ptp_clock)) { + adapter->ptp_clock = NULL; + e_err("ptp_clock_register failed\n"); + } else { + e_info("registered PHC clock\n"); + } +} + +/** + * e1000e_ptp_remove - disable PTP device and stop the overflow check + * @adapter: board private structure + * + * Stop the PTP support, and cancel the delayed work. + **/ +void e1000e_ptp_remove(struct e1000_adapter *adapter) +{ + if (!(adapter->flags & FLAG_HAS_HW_TIMESTAMP)) + return; + + cancel_delayed_work_sync(&adapter->systim_overflow_work); + + if (adapter->ptp_clock) { + ptp_clock_unregister(adapter->ptp_clock); + adapter->ptp_clock = NULL; + e_info("removed PHC\n"); + } +} diff --git a/vmkdrivers/src_9/drivers/net/e1000e/regs.h b/vmkdrivers/src_9/drivers/net/e1000e/regs.h new file mode 100644 index 0000000000000000000000000000000000000000..516ce580c8983502358e6379b48acd306979044a --- /dev/null +++ b/vmkdrivers/src_9/drivers/net/e1000e/regs.h @@ -0,0 +1,254 @@ +/* + * Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */ + +#ifndef _E1000E_REGS_H_ +#define _E1000E_REGS_H_ + +#define E1000_CTRL 0x00000 /* Device Control - RW */ +#define E1000_STATUS 0x00008 /* Device Status - RO */ +#define E1000_EECD 0x00010 /* EEPROM/Flash Control - RW */ +#define E1000_EERD 0x00014 /* EEPROM Read - RW */ +#define E1000_CTRL_EXT 0x00018 /* Extended Device Control - RW */ +#define E1000_FLA 0x0001C /* Flash Access - RW */ +#define E1000_MDIC 0x00020 /* MDI Control - RW */ +#define E1000_SCTL 0x00024 /* SerDes Control - RW */ +#define E1000_FCAL 0x00028 /* Flow Control Address Low - RW */ +#define E1000_FCAH 0x0002C /* Flow Control Address High -RW */ +#define E1000_FEXT 0x0002C /* Future Extended - RW */ +#define E1000_FEXTNVM 0x00028 /* Future Extended NVM - RW */ +#define E1000_FEXTNVM3 0x0003C /* Future Extended NVM 3 - RW */ +#define E1000_FEXTNVM4 0x00024 /* Future Extended NVM 4 - RW */ +#define E1000_FEXTNVM6 0x00010 /* Future Extended NVM 6 - RW */ +#define E1000_FEXTNVM7 0x000E4 /* Future Extended NVM 7 - RW */ +#define E1000_FCT 0x00030 /* Flow Control Type - RW */ +#define E1000_VET 0x00038 /* VLAN Ether Type - RW */ +#define E1000_ICR 0x000C0 /* Interrupt Cause Read - R/clr */ +#define E1000_ITR 0x000C4 /* Interrupt Throttling Rate - RW */ +#define E1000_ICS 0x000C8 /* Interrupt Cause Set - WO */ +#define E1000_IMS 0x000D0 /* Interrupt Mask Set - RW */ +#define E1000_IMC 0x000D8 /* Interrupt Mask Clear - WO */ +#define E1000_IAM 0x000E0 /* Interrupt Acknowledge Auto Mask */ +#define E1000_IVAR 0x000E4 /* Interrupt Vector Allocation Register - RW */ +#define E1000_SVCR 0x000F0 +#define E1000_SVT 0x000F4 +#define E1000_LPIC 0x000FC /* Low Power IDLE control */ +#define E1000_RCTL 0x00100 /* Rx Control - RW */ +#define E1000_FCTTV 0x00170 /* Flow Control Transmit Timer Value - RW */ +#define E1000_TXCW 0x00178 /* Tx Configuration Word - RW */ +#define E1000_RXCW 0x00180 /* Rx Configuration Word - RO */ +#define E1000_PBA_ECC 0x01100 /* PBA ECC Register */ +#define E1000_TCTL 0x00400 /* Tx Control - RW */ +#define E1000_TCTL_EXT 0x00404 /* Extended Tx Control - RW */ +#define E1000_TIPG 0x00410 /* Tx Inter-packet gap -RW */ +#define E1000_AIT 0x00458 /* Adaptive Interframe Spacing Throttle - RW */ +#define E1000_LEDCTL 0x00E00 /* LED Control - RW */ +#define E1000_EXTCNF_CTRL 0x00F00 /* Extended Configuration Control */ +#define E1000_EXTCNF_SIZE 0x00F08 /* Extended Configuration Size */ +#define E1000_PHY_CTRL 0x00F10 /* PHY Control Register in CSR */ +#define E1000_POEMB E1000_PHY_CTRL /* PHY OEM Bits */ +#define E1000_PBA 0x01000 /* Packet Buffer Allocation - RW */ +#define E1000_PBS 0x01008 /* Packet Buffer Size */ +#define E1000_PBECCSTS 0x0100C /* Packet Buffer ECC Status - RW */ +#define E1000_IOSFPC 0x00F28 /* TX corrupted data */ +#define E1000_EEMNGCTL 0x01010 /* MNG EEprom Control */ +#define E1000_EEWR 0x0102C /* EEPROM Write Register - RW */ +#define E1000_FLOP 0x0103C /* FLASH Opcode Register */ +#define E1000_ERT 0x02008 /* Early Rx Threshold - RW */ +#define E1000_FCRTL 0x02160 /* Flow Control Receive Threshold Low - RW */ +#define E1000_FCRTH 0x02168 /* Flow Control Receive Threshold High - RW */ +#define E1000_PSRCTL 0x02170 /* Packet Split Receive Control - RW */ +#define E1000_RDFH 0x02410 /* Rx Data FIFO Head - RW */ +#define E1000_RDFT 0x02418 /* Rx Data FIFO Tail - RW */ +#define E1000_RDFHS 0x02420 /* Rx Data FIFO Head Saved - RW */ +#define E1000_RDFTS 0x02428 /* Rx Data FIFO Tail Saved - RW */ +#define E1000_RDFPC 0x02430 /* Rx Data FIFO Packet Count - RW */ +/* Split and Replication Rx Control - RW */ +#define E1000_RDTR 0x02820 /* Rx Delay Timer - RW */ +#define E1000_RADV 0x0282C /* Rx Interrupt Absolute Delay Timer - RW */ +/* Convenience macros + * + * Note: "_n" is the queue number of the register to be written to. + * + * Example usage: + * E1000_RDBAL_REG(current_rx_queue) + */ +#define E1000_RDBAL(_n) ((_n) < 4 ? (0x02800 + ((_n) * 0x100)) : \ + (0x0C000 + ((_n) * 0x40))) +#define E1000_RDBAH(_n) ((_n) < 4 ? (0x02804 + ((_n) * 0x100)) : \ + (0x0C004 + ((_n) * 0x40))) +#define E1000_RDLEN(_n) ((_n) < 4 ? (0x02808 + ((_n) * 0x100)) : \ + (0x0C008 + ((_n) * 0x40))) +#define E1000_RDH(_n) ((_n) < 4 ? (0x02810 + ((_n) * 0x100)) : \ + (0x0C010 + ((_n) * 0x40))) +#define E1000_RDT(_n) ((_n) < 4 ? (0x02818 + ((_n) * 0x100)) : \ + (0x0C018 + ((_n) * 0x40))) +#define E1000_RXDCTL(_n) ((_n) < 4 ? (0x02828 + ((_n) * 0x100)) : \ + (0x0C028 + ((_n) * 0x40))) +#define E1000_TDBAL(_n) ((_n) < 4 ? (0x03800 + ((_n) * 0x100)) : \ + (0x0E000 + ((_n) * 0x40))) +#define E1000_TDBAH(_n) ((_n) < 4 ? (0x03804 + ((_n) * 0x100)) : \ + (0x0E004 + ((_n) * 0x40))) +#define E1000_TDLEN(_n) ((_n) < 4 ? (0x03808 + ((_n) * 0x100)) : \ + (0x0E008 + ((_n) * 0x40))) +#define E1000_TDH(_n) ((_n) < 4 ? (0x03810 + ((_n) * 0x100)) : \ + (0x0E010 + ((_n) * 0x40))) +#define E1000_TDT(_n) ((_n) < 4 ? (0x03818 + ((_n) * 0x100)) : \ + (0x0E018 + ((_n) * 0x40))) +#define E1000_TXDCTL(_n) ((_n) < 4 ? (0x03828 + ((_n) * 0x100)) : \ + (0x0E028 + ((_n) * 0x40))) +#define E1000_TARC(_n) (0x03840 + ((_n) * 0x100)) +#define E1000_KABGTXD 0x03004 /* AFE Band Gap Transmit Ref Data */ +#define E1000_RAL(_i) (((_i) <= 15) ? (0x05400 + ((_i) * 8)) : \ + (0x054E0 + ((_i - 16) * 8))) +#define E1000_RAH(_i) (((_i) <= 15) ? (0x05404 + ((_i) * 8)) : \ + (0x054E4 + ((_i - 16) * 8))) +#define E1000_SHRAL(_i) (0x05438 + ((_i) * 8)) +#define E1000_SHRAH(_i) (0x0543C + ((_i) * 8)) +#define E1000_TARC0_CB_MULTIQ_3_REQ (1 << 28 | 1 << 29) +#define E1000_TDFH 0x03410 /* Tx Data FIFO Head - RW */ +#define E1000_TDFT 0x03418 /* Tx Data FIFO Tail - RW */ +#define E1000_TDFHS 0x03420 /* Tx Data FIFO Head Saved - RW */ +#define E1000_TDFTS 0x03428 /* Tx Data FIFO Tail Saved - RW */ +#define E1000_TDFPC 0x03430 /* Tx Data FIFO Packet Count - RW */ +#define E1000_TIDV 0x03820 /* Tx Interrupt Delay Value - RW */ +#define E1000_TADV 0x0382C /* Tx Interrupt Absolute Delay Val - RW */ +#define E1000_CRCERRS 0x04000 /* CRC Error Count - R/clr */ +#define E1000_ALGNERRC 0x04004 /* Alignment Error Count - R/clr */ +#define E1000_SYMERRS 0x04008 /* Symbol Error Count - R/clr */ +#define E1000_RXERRC 0x0400C /* Receive Error Count - R/clr */ +#define E1000_MPC 0x04010 /* Missed Packet Count - R/clr */ +#define E1000_SCC 0x04014 /* Single Collision Count - R/clr */ +#define E1000_ECOL 0x04018 /* Excessive Collision Count - R/clr */ +#define E1000_MCC 0x0401C /* Multiple Collision Count - R/clr */ +#define E1000_LATECOL 0x04020 /* Late Collision Count - R/clr */ +#define E1000_COLC 0x04028 /* Collision Count - R/clr */ +#define E1000_DC 0x04030 /* Defer Count - R/clr */ +#define E1000_TNCRS 0x04034 /* Tx-No CRS - R/clr */ +#define E1000_SEC 0x04038 /* Sequence Error Count - R/clr */ +#define E1000_CEXTERR 0x0403C /* Carrier Extension Error Count - R/clr */ +#define E1000_RLEC 0x04040 /* Receive Length Error Count - R/clr */ +#define E1000_XONRXC 0x04048 /* XON Rx Count - R/clr */ +#define E1000_XONTXC 0x0404C /* XON Tx Count - R/clr */ +#define E1000_XOFFRXC 0x04050 /* XOFF Rx Count - R/clr */ +#define E1000_XOFFTXC 0x04054 /* XOFF Tx Count - R/clr */ +#define E1000_FCRUC 0x04058 /* Flow Control Rx Unsupported Count- R/clr */ +#define E1000_PRC64 0x0405C /* Packets Rx (64 bytes) - R/clr */ +#define E1000_PRC127 0x04060 /* Packets Rx (65-127 bytes) - R/clr */ +#define E1000_PRC255 0x04064 /* Packets Rx (128-255 bytes) - R/clr */ +#define E1000_PRC511 0x04068 /* Packets Rx (255-511 bytes) - R/clr */ +#define E1000_PRC1023 0x0406C /* Packets Rx (512-1023 bytes) - R/clr */ +#define E1000_PRC1522 0x04070 /* Packets Rx (1024-1522 bytes) - R/clr */ +#define E1000_GPRC 0x04074 /* Good Packets Rx Count - R/clr */ +#define E1000_BPRC 0x04078 /* Broadcast Packets Rx Count - R/clr */ +#define E1000_MPRC 0x0407C /* Multicast Packets Rx Count - R/clr */ +#define E1000_GPTC 0x04080 /* Good Packets Tx Count - R/clr */ +#define E1000_GORCL 0x04088 /* Good Octets Rx Count Low - R/clr */ +#define E1000_GORCH 0x0408C /* Good Octets Rx Count High - R/clr */ +#define E1000_GOTCL 0x04090 /* Good Octets Tx Count Low - R/clr */ +#define E1000_GOTCH 0x04094 /* Good Octets Tx Count High - R/clr */ +#define E1000_RNBC 0x040A0 /* Rx No Buffers Count - R/clr */ +#define E1000_RUC 0x040A4 /* Rx Undersize Count - R/clr */ +#define E1000_RFC 0x040A8 /* Rx Fragment Count - R/clr */ +#define E1000_ROC 0x040AC /* Rx Oversize Count - R/clr */ +#define E1000_RJC 0x040B0 /* Rx Jabber Count - R/clr */ +#define E1000_MGTPRC 0x040B4 /* Management Packets Rx Count - R/clr */ +#define E1000_MGTPDC 0x040B8 /* Management Packets Dropped Count - R/clr */ +#define E1000_MGTPTC 0x040BC /* Management Packets Tx Count - R/clr */ +#define E1000_TORL 0x040C0 /* Total Octets Rx Low - R/clr */ +#define E1000_TORH 0x040C4 /* Total Octets Rx High - R/clr */ +#define E1000_TOTL 0x040C8 /* Total Octets Tx Low - R/clr */ +#define E1000_TOTH 0x040CC /* Total Octets Tx High - R/clr */ +#define E1000_TPR 0x040D0 /* Total Packets Rx - R/clr */ +#define E1000_TPT 0x040D4 /* Total Packets Tx - R/clr */ +#define E1000_PTC64 0x040D8 /* Packets Tx (64 bytes) - R/clr */ +#define E1000_PTC127 0x040DC /* Packets Tx (65-127 bytes) - R/clr */ +#define E1000_PTC255 0x040E0 /* Packets Tx (128-255 bytes) - R/clr */ +#define E1000_PTC511 0x040E4 /* Packets Tx (256-511 bytes) - R/clr */ +#define E1000_PTC1023 0x040E8 /* Packets Tx (512-1023 bytes) - R/clr */ +#define E1000_PTC1522 0x040EC /* Packets Tx (1024-1522 Bytes) - R/clr */ +#define E1000_MPTC 0x040F0 /* Multicast Packets Tx Count - R/clr */ +#define E1000_BPTC 0x040F4 /* Broadcast Packets Tx Count - R/clr */ +#define E1000_TSCTC 0x040F8 /* TCP Segmentation Context Tx - R/clr */ +#define E1000_TSCTFC 0x040FC /* TCP Segmentation Context Tx Fail - R/clr */ +#define E1000_IAC 0x04100 /* Interrupt Assertion Count */ +#define E1000_ICRXPTC 0x04104 /* Interrupt Cause Rx Pkt Timer Expire Count */ +#define E1000_ICRXATC 0x04108 /* Interrupt Cause Rx Abs Timer Expire Count */ +#define E1000_ICTXPTC 0x0410C /* Interrupt Cause Tx Pkt Timer Expire Count */ +#define E1000_ICTXATC 0x04110 /* Interrupt Cause Tx Abs Timer Expire Count */ +#define E1000_ICTXQEC 0x04118 /* Interrupt Cause Tx Queue Empty Count */ +#define E1000_ICTXQMTC 0x0411C /* Interrupt Cause Tx Queue Min Thresh Count */ +#define E1000_ICRXDMTC 0x04120 /* Interrupt Cause Rx Desc Min Thresh Count */ +#define E1000_ICRXOC 0x04124 /* Interrupt Cause Receiver Overrun Count */ +#define E1000_CRC_OFFSET 0x05F50 /* CRC Offset register */ + +#define E1000_PCS_LCTL 0x04208 /* PCS Link Control - RW */ +#define E1000_PCS_LSTAT 0x0420C /* PCS Link Status - RO */ +#define E1000_PCS_ANADV 0x04218 /* AN advertisement - RW */ +#define E1000_PCS_LPAB 0x0421C /* Link Partner Ability - RW */ +#define E1000_RXCSUM 0x05000 /* Rx Checksum Control - RW */ +#define E1000_RFCTL 0x05008 /* Receive Filter Control */ +#define E1000_MTA 0x05200 /* Multicast Table Array - RW Array */ +#define E1000_RA 0x05400 /* Receive Address - RW Array */ +#define E1000_VFTA 0x05600 /* VLAN Filter Table Array - RW Array */ +#define E1000_WUC 0x05800 /* Wakeup Control - RW */ +#define E1000_WUFC 0x05808 /* Wakeup Filter Control - RW */ +#define E1000_WUS 0x05810 /* Wakeup Status - RO */ +#define E1000_MANC 0x05820 /* Management Control - RW */ +#define E1000_FFLT 0x05F00 /* Flexible Filter Length Table - RW Array */ +#define E1000_HOST_IF 0x08800 /* Host Interface */ + +#define E1000_KMRNCTRLSTA 0x00034 /* MAC-PHY interface - RW */ +#define E1000_MANC2H 0x05860 /* Management Control To Host - RW */ +/* Management Decision Filters */ +#define E1000_MDEF(_n) (0x05890 + (4 * (_n))) +#define E1000_SW_FW_SYNC 0x05B5C /* SW-FW Synchronization - RW */ +#define E1000_GCR 0x05B00 /* PCI-Ex Control */ +#define E1000_GCR2 0x05B64 /* PCI-Ex Control #2 */ +#define E1000_FACTPS 0x05B30 /* Function Active and Power State to MNG */ +#define E1000_SWSM 0x05B50 /* SW Semaphore */ +#define E1000_FWSM 0x05B54 /* FW Semaphore */ +/* Driver-only SW semaphore (not used by BOOT agents) */ +#define E1000_SWSM2 0x05B58 +#define E1000_FFLT_DBG 0x05F04 /* Debug Register */ +#define E1000_HICR 0x08F00 /* Host Interface Control */ + +/* RSS registers */ +#define E1000_MRQC 0x05818 /* Multiple Receive Control - RW */ +#define E1000_RETA(_i) (0x05C00 + ((_i) * 4)) /* Redirection Table - RW */ +#define E1000_RSSRK(_i) (0x05C80 + ((_i) * 4)) /* RSS Random Key - RW */ +#define E1000_TSYNCRXCTL 0x0B620 /* Rx Time Sync Control register - RW */ +#define E1000_TSYNCTXCTL 0x0B614 /* Tx Time Sync Control register - RW */ +#define E1000_RXSTMPL 0x0B624 /* Rx timestamp Low - RO */ +#define E1000_RXSTMPH 0x0B628 /* Rx timestamp High - RO */ +#define E1000_TXSTMPL 0x0B618 /* Tx timestamp value Low - RO */ +#define E1000_TXSTMPH 0x0B61C /* Tx timestamp value High - RO */ +#define E1000_SYSTIML 0x0B600 /* System time register Low - RO */ +#define E1000_SYSTIMH 0x0B604 /* System time register High - RO */ +#define E1000_TIMINCA 0x0B608 /* Increment attributes register - RW */ +#define E1000_SYSSTMPL 0x0B648 /* HH Timesync system stamp low register */ +#define E1000_SYSSTMPH 0x0B64C /* HH Timesync system stamp hi register */ +#define E1000_PLTSTMPL 0x0B640 /* HH Timesync platform stamp low register */ +#define E1000_PLTSTMPH 0x0B644 /* HH Timesync platform stamp hi register */ +#define E1000_RXMTRL 0x0B634 /* Time sync Rx EtherType and Msg Type - RW */ +#define E1000_RXUDP 0x0B638 /* Time Sync Rx UDP Port - RW */ + +#endif diff --git a/vmkdrivers/src_9/drivers/net/igb/igb_ethtool.c b/vmkdrivers/src_9/drivers/net/igb/igb_ethtool.c index 366352e511be6f075c0f3ea803104e391c0b3533..8de51834938f9ae854994e5f963ab788657b23a3 100644 --- a/vmkdrivers/src_9/drivers/net/igb/igb_ethtool.c +++ b/vmkdrivers/src_9/drivers/net/igb/igb_ethtool.c @@ -475,7 +475,7 @@ static void igb_set_msglevel(struct net_device *netdev, u32 data) static int igb_get_regs_len(struct net_device *netdev) { -#define IGB_REGS_LEN 555 +#define IGB_REGS_LEN 587 return IGB_REGS_LEN * sizeof(u32); } @@ -698,6 +698,8 @@ static void igb_get_regs(struct net_device *netdev, regs_buff[553] = adapter->stats.o2bspc; regs_buff[554] = adapter->stats.b2ogprc; } + for (i = 0; i < 32; i++) + regs_buff[555 + i] = E1000_READ_REG(hw, E1000_RETA(i)); } static int igb_get_eeprom_len(struct net_device *netdev) diff --git a/vmkdrivers/src_9/drivers/net/igb/igb_main.c b/vmkdrivers/src_9/drivers/net/igb/igb_main.c index 0725ba8b01e4cfd518ada770e4ef499ccb026579..cc4e8869257e1dbddd4bae24ca14498083a03400 100644 --- a/vmkdrivers/src_9/drivers/net/igb/igb_main.c +++ b/vmkdrivers/src_9/drivers/net/igb/igb_main.c @@ -3290,7 +3290,8 @@ static void igb_setup_mrqc(struct igb_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; u32 mrqc, rxcsum; - u32 j, num_rx_queues, shift = 0, shift2 = 0; + u32 j, num_rx_queues; + volatile u32 shift = 0, shift2 = 0; static const u32 rsskey[10] = { 0xDA565A6D, 0xC20E5B25, 0x3D256741, 0xB08FA343, 0xCB2BCAD0, 0xB4307BAE, 0xA32DCB77, 0x0CF23080, 0x3BB7426A, diff --git a/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_hw.c b/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_hw.c index 2c0e64c51b04e65b6f5f86a95068f13962b75e73..a8687802606148444eddbc8ed1da14cd0a847112 100644 --- a/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_hw.c +++ b/vmkdrivers/src_9/drivers/net/nx_nic/unm_nic_hw.c @@ -25,7 +25,7 @@ /* * Source file for NIC routines to access the Phantom hardware * - * $Id: //depot/vmkdrivers/vsphere55u2/src_9/drivers/net/nx_nic/unm_nic_hw.c#1 $ + * $Id: //depot/vmkdrivers/vsphere55u3/src_9/drivers/net/nx_nic/unm_nic_hw.c#1 $ * */ #include diff --git a/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_drv.c b/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_drv.c index 65bc601a9421065befad492c54ebe5a3988272e9..28c261d0d43a15d25ab4bb495eca7f331834b702 100644 --- a/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_drv.c @@ -900,28 +900,41 @@ vmxnet3_map_pkt(struct sk_buff *skb, struct vmxnet3_tx_ctx *ctx, for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; - - tbi = tq->buf_info + tq->tx_ring.next2fill; - tbi->map_type = VMXNET3_MAP_PAGE; - tbi->dma_addr = pci_map_page(adapter->pdev, - frag->page, frag->page_offset, - frag->size, PCI_DMA_TODEVICE); - - tbi->len = frag->size; - - gdesc = tq->tx_ring.base + tq->tx_ring.next2fill; - BUG_ON(gdesc->txd.gen == tq->tx_ring.gen); - - gdesc->txd.addr = cpu_to_le64(tbi->dma_addr); - gdesc->dword[2] = cpu_to_le32(dw2 | frag->size); - gdesc->dword[3] = 0; - - dev_dbg(&adapter->pdev->dev, - "txd[%u]: 0x%llu %u %u\n", - tq->tx_ring.next2fill, le64_to_cpu(gdesc->txd.addr), - le32_to_cpu(gdesc->dword[2]), gdesc->dword[3]); - vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring); - dw2 = tq->tx_ring.gen << VMXNET3_TXD_GEN_SHIFT; + u32 buf_size; + buf_offset = frag->page_offset; + len = frag->size; + + while (len) { + tbi = tq->buf_info + tq->tx_ring.next2fill; + if (len < VMXNET3_MAX_TX_BUF_SIZE) { + buf_size = len; + dw2 |= len; + } else { + buf_size = VMXNET3_MAX_TX_BUF_SIZE; + /* spec says that for TxDesc.len, 0 == 2^14 */ + } + tbi->map_type = VMXNET3_MAP_PAGE; + tbi->dma_addr = pci_map_page(adapter->pdev, frag->page, + buf_offset, buf_size, + PCI_DMA_TODEVICE); + + tbi->len = buf_size; + gdesc = tq->tx_ring.base + tq->tx_ring.next2fill; + BUG_ON(gdesc->txd.gen == tq->tx_ring.gen); + + gdesc->txd.addr = cpu_to_le64(tbi->dma_addr); + gdesc->dword[2] = cpu_to_le32(dw2); + gdesc->dword[3] = 0; + + vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring); + dw2 = tq->tx_ring.gen << VMXNET3_TXD_GEN_SHIFT; + dev_dbg(&adapter->pdev->dev, + "txd[%u]: 0x%llu %u %u\n", + tq->tx_ring.next2fill, le64_to_cpu(gdesc->txd.addr), + le32_to_cpu(gdesc->dword[2]), gdesc->dword[3]); + len -= buf_size; + buf_offset += buf_size; + } } ctx->eop_txd = gdesc; @@ -1053,6 +1066,20 @@ inline void vmxnet3_le32_add_cpu(uint32 *addTo, uint32 addThis) } +static int txd_estimate(const struct sk_buff *skb) +{ + int count = VMXNET3_TXD_NEEDED(skb_headlen(skb)) + 1; + int i; + + for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { + const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i]; + count += VMXNET3_TXD_NEEDED(frag->size); + } + return count; +} + + + /* * transmit a pkt thru a given tq * @@ -1084,8 +1111,7 @@ vmxnet3_tq_xmit(struct sk_buff *skb, #endif /* conservatively estimate # of descriptors to use */ - count = VMXNET3_TXD_NEEDED(skb_headlen(skb)) + - skb_shinfo(skb)->nr_frags + 1; + count = txd_estimate(skb); ctx.ipv4 = (skb->protocol == __constant_ntohs(ETH_P_IP)); @@ -1203,7 +1229,7 @@ vmxnet3_tq_xmit(struct sk_buff *skb, #endif dev_dbg(&adapter->pdev->dev, "txd[%u]: SOP 0x%llu 0x%x 0x%x\n", - (u32)((union Vmxnet3_GenericDesc *)ctx.sop_txd - + (u32)(ctx.sop_txd - tq->tx_ring.base), le64_to_cpu(gdesc->txd.addr), le32_to_cpu(gdesc->dword[2]), le32_to_cpu(gdesc->dword[3])); @@ -2232,13 +2258,20 @@ static void vmxnet3_netpoll(struct net_device *netdev) { struct vmxnet3_adapter *adapter = netdev_priv(netdev); - - if (adapter->intr.mask_mode == VMXNET3_IMM_ACTIVE) - vmxnet3_disable_all_intrs(adapter); - - vmxnet3_do_poll(adapter, adapter->rx_queue[0].rx_ring[0].size); - vmxnet3_enable_all_intrs(adapter); - + switch (adapter->intr.type) { +# ifdef CONFIG_PCI_MSI + case VMXNET3_IT_MSIX: { + int i; + for (i = 0; i < adapter->num_rx_queues; i++) + vmxnet3_msix_rx(0, &adapter->rx_queue[i], NULL); + break; + } +# endif + case VMXNET3_IT_MSI: + default: + vmxnet3_intr(0, adapter->netdev, NULL); + break; + } } #endif /* CONFIG_NET_POLL_CONTROLLER */ @@ -3893,6 +3926,7 @@ vmxnet3_probe_device(struct pci_dev *pdev, INIT_WORK(&adapter->reset_work, vmxnet3_reset_work); INIT_WORK(&adapter->resize_ring_work, vmxnet3_resize_ring_work); + set_bit(VMXNET3_STATE_BIT_QUIESCED, &adapter->state); #ifdef VMXNET3_NAPI if (adapter->intr.type == VMXNET3_IT_MSIX) { @@ -3918,7 +3952,6 @@ vmxnet3_probe_device(struct pci_dev *pdev, goto err_register; } - set_bit(VMXNET3_STATE_BIT_QUIESCED, &adapter->state); vmxnet3_check_link(adapter, FALSE); atomic_inc(&devices_found); return 0; diff --git a/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_version.h b/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_version.h index eb87688f1081b78177c9f1d08304e3d7bc43a67c..d5e8cb561d2b5b08f8077e8ad326eedf93b2e75c 100644 --- a/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_version.h +++ b/vmkdrivers/src_9/drivers/net/vmxnet3/vmxnet3_version.h @@ -29,11 +29,11 @@ #ifndef _VMXNET3_VERSION_H_ #define _VMXNET3_VERSION_H_ -#define VMXNET3_DRIVER_VERSION 1.2.1.0 -#define VMXNET3_DRIVER_VERSION_COMMAS 1,2,1,0 -#define VMXNET3_DRIVER_VERSION_STRING "1.2.1.0" +#define VMXNET3_DRIVER_VERSION 1.3.2.0 +#define VMXNET3_DRIVER_VERSION_COMMAS 1,3,2,0 +#define VMXNET3_DRIVER_VERSION_STRING "1.3.2.0" /* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */ -#define VMXNET3_DRIVER_VERSION_NUM 0x01020100 +#define VMXNET3_DRIVER_VERSION_NUM 0x01030200 #endif /* _VMXNET3_VERSION_H_ */ diff --git a/vmkdrivers/src_92/drivers/usb/core/devio.c b/vmkdrivers/src_92/drivers/usb/core/devio.c index 2d7dcfcef6548c53f7b16c87af8dbd84f39467ae..4d53b2d9fe1fb531932e6344eeca29cd24de36e9 100644 --- a/vmkdrivers/src_92/drivers/usb/core/devio.c +++ b/vmkdrivers/src_92/drivers/usb/core/devio.c @@ -2012,11 +2012,24 @@ static inline int readsafe_ioctl_cmd(unsigned int cmd) return 1; /* - * The below are needed by lsusb for some options (-v ?) but might - * not be safe for readonly access. XXX Todo: investigate and fix. + * libusb-1.0 uses USBDEVFS_SUBMITURB instead of USBDEVFS_CONTROL. If + * claiming interfaces is disallowed then it is safe to allow these + * ioctls because they internally check that the interface is claimed + * if the target is not endpoint 0. */ - case USBDEVFS_CLAIMINTERFACE: - case USBDEVFS_RELEASEINTERFACE: + case USBDEVFS_SUBMITURB: + case USBDEVFS_SUBMITURB32: + return 1; + + /* + * These are safe as they operate on URBs which have already been + * submitted. + */ + case USBDEVFS_DISCARDURB: + case USBDEVFS_REAPURB: + case USBDEVFS_REAPURB32: + case USBDEVFS_REAPURBNDELAY: + case USBDEVFS_REAPURBNDELAY32: return 1; /* @@ -2281,7 +2294,12 @@ static unsigned int usbdev_poll(struct file *file, unsigned int mask = 0; poll_wait(file, &ps->wait, wait); +#if defined(__VMKLNX__) + /* On vmkernel URBs may be submitted to "read-only" devices. */ + if (!list_empty(&ps->async_completed)) +#else if (file->f_mode & FMODE_WRITE && !list_empty(&ps->async_completed)) +#endif mask |= POLLOUT | POLLWRNORM; if (!connected(ps)) mask |= POLLERR | POLLHUP; @@ -2444,6 +2462,7 @@ static void usbfs_add_device(struct usb_device *dev) name, dev->vmklnx_major); } else { dev->dev.devt = MKDEV(USB_DEVICE_MAJOR, dev->vmklnx_major); + usbfs_conn_disc_event(); dev_info(&dev->dev, "usbfs: registered %s\n", name); } } @@ -2482,6 +2501,8 @@ static void usbfs_remove_device(struct usb_device *dev) } } + + usbfs_conn_disc_event(); } static int usbfs_notify(struct notifier_block *self, unsigned long action, void *dev) diff --git a/vmkdrivers/src_92/drivers/usb/core/driver.c b/vmkdrivers/src_92/drivers/usb/core/driver.c index 47017567f4f0f033239cb58369e1fc25ad335505..a43e5fb59105572a72355c04597e65933abffb74 100644 --- a/vmkdrivers/src_92/drivers/usb/core/driver.c +++ b/vmkdrivers/src_92/drivers/usb/core/driver.c @@ -252,7 +252,7 @@ static int usb_probe_device(struct device *dev) if (!error) #if defined(__VMKLNX__) - VMKAPI_MODULE_CALL(udriver->module->moduleID, + VMKAPI_MODULE_CALL(udriver->module->moduleID, error, udriver->probe, udev); #else error = udriver->probe(udev); @@ -283,21 +283,21 @@ static void update_passthrough(struct usb_interface *iface) { struct usb_device *usb_dev = interface_to_usbdev(iface); struct usb_host_config *actconfig = usb_dev->actconfig; - int i; + int i; if (usb_dev->state == USB_STATE_NOTATTACHED || !actconfig) return; for (i = 0; i < actconfig->desc.bNumInterfaces; i++) { struct usb_interface *intf = actconfig->interface[i]; - if (intf->condition == USB_INTERFACE_BOUND && + if (intf->condition == USB_INTERFACE_BOUND && to_usb_driver(intf->dev.driver) != &usbfs_driver) { - dev_info(&intf->dev, "interface is claimed by %s\n", + dev_info(&intf->dev, "interface is claimed by %s\n", intf->dev.driver->name); break; } } - + if (i == actconfig->desc.bNumInterfaces) { /* none of the interfaces is claimed */ usb_dev->passthrough = 1; @@ -306,6 +306,8 @@ static void update_passthrough(struct usb_interface *iface) } dev_info(&usb_dev->dev, "device is %savailable for passthrough\n", usb_dev->passthrough ? "" : "not "); + + usbfs_conn_disc_event(); } #endif @@ -1127,7 +1129,12 @@ static int usb_suspend_device(struct usb_device *udev, pm_message_t msg) udev->do_remote_wakeup = 0; udriver = &usb_generic_driver; } +#if defined(__VMKLNX__) + VMKAPI_MODULE_CALL(udriver->module->moduleID, + status, udriver->suspend, udev, msg); +#else status = udriver->suspend(udev, msg); +#endif done: #if defined(__VMKLNX__) @@ -1175,7 +1182,12 @@ static int usb_resume_device(struct usb_device *udev, pm_message_t msg) udev->reset_resume = 1; udriver = to_usb_device_driver(udev->dev.driver); +#if defined(__VMKLNX__) + VMKAPI_MODULE_CALL(udriver->module->moduleID, + status, udriver->resume, udev, msg); +#else status = udriver->resume(udev, msg); +#endif done: #if defined(__VMKLNX__) @@ -1199,7 +1211,12 @@ static int usb_suspend_interface(struct usb_device *udev, driver = to_usb_driver(intf->dev.driver); if (driver->suspend) { +#if defined(__VMKLNX__) + VMKAPI_MODULE_CALL(driver->module->moduleID, + status, driver->suspend, intf, msg); +#else status = driver->suspend(intf, msg); +#endif if (status && !(msg.event & PM_EVENT_AUTO)) dev_err(&intf->dev, "%s error %d\n", "suspend", status); @@ -1252,7 +1269,12 @@ static int usb_resume_interface(struct usb_device *udev, if (reset_resume) { if (driver->reset_resume) { +#if defined(__VMKLNX__) + VMKAPI_MODULE_CALL(driver->module->moduleID, + status, driver->reset_resume, intf); +#else status = driver->reset_resume(intf); +#endif if (status) dev_err(&intf->dev, "%s error %d\n", "reset_resume", status); @@ -1263,7 +1285,12 @@ static int usb_resume_interface(struct usb_device *udev, } } else { if (driver->resume) { +#if defined(__VMKLNX__) + VMKAPI_MODULE_CALL(driver->module->moduleID, + status, driver->resume, intf); +#else status = driver->resume(intf); +#endif if (status) dev_err(&intf->dev, "%s error %d\n", "resume", status); @@ -1989,4 +2016,7 @@ struct bus_type usb_bus_type = { .match = usb_device_match, .uevent = usb_uevent, .pm = &usb_bus_pm_ops, +#if defined(__VMKLNX__) + .owner = THIS_MODULE, +#endif }; diff --git a/vmkdrivers/src_92/drivers/usb/core/hcd-pci.c b/vmkdrivers/src_92/drivers/usb/core/hcd-pci.c index 18f1b8cc6a61f7361cb5508b6e9298ed6bf7fe34..f68f2538e9d89d6a6945fc006b06f4095d6994c1 100644 --- a/vmkdrivers/src_92/drivers/usb/core/hcd-pci.c +++ b/vmkdrivers/src_92/drivers/usb/core/hcd-pci.c @@ -194,7 +194,10 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) return -ENODEV; dev->current_state = PCI_D0; - if (!dev->irq) { + /* The xHCI driver supports MSI and MSI-X, + * so don't fail if the BIOS doesn't provide a legacy IRQ. + */ + if (!dev->irq && (driver->flags & HCD_MASK) != HCD_USB3) { dev_err(&dev->dev, "Found HC with no IRQ. Check BIOS/PCI %s setup!\n", pci_name(dev)); diff --git a/vmkdrivers/src_92/drivers/usb/core/hcd.c b/vmkdrivers/src_92/drivers/usb/core/hcd.c index 83b51096d97463ddf81b5f0149f763c1adf5afa6..448984060f6976319d1ceb632feda227d456de3a 100644 --- a/vmkdrivers/src_92/drivers/usb/core/hcd.c +++ b/vmkdrivers/src_92/drivers/usb/core/hcd.c @@ -1,5 +1,5 @@ /* - * Portions Copyright 2008-2011 VMware, Inc. + * Portions Copyright 2008-2013 VMware, Inc. */ /* * (C) Copyright Linus Torvalds 1999 @@ -1401,11 +1401,13 @@ static int map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, urb->setup_packet, sizeof(struct usb_ctrlrequest), DMA_TO_DEVICE); -#if! defined(__VMKLNX__) +#if defined(__VMKLNX__) + if (dma_mapping_error(urb->setup_dma)) +#else if (dma_mapping_error(hcd->self.controller, urb->setup_dma)) - return -EAGAIN; #endif + return -EAGAIN; urb->transfer_flags |= URB_SETUP_MAP_SINGLE; } else if (hcd->driver->flags & HCD_LOCAL_MEM) ret = hcd_alloc_coherent( @@ -1458,12 +1460,14 @@ static int map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, urb->transfer_buffer, urb->transfer_buffer_length, dir); -#if !defined(__VMKLNX__) +#if defined(__VMKLNX__) + if (dma_mapping_error(urb->transfer_dma)) +#else if (dma_mapping_error(hcd->self.controller, urb->transfer_dma)) +#endif ret = -EAGAIN; else -#endif urb->transfer_flags |= URB_DMA_MAP_SINGLE; } } else if (hcd->driver->flags & HCD_LOCAL_MEM) { @@ -2618,8 +2622,10 @@ int usb_add_hcd(struct usb_hcd *hcd, && device_can_wakeup(&hcd->self.root_hub->dev)) dev_dbg(hcd->self.controller, "supports USB remote wakeup\n"); - /* enable irqs just before we start the controller */ - if (usb_hcd_is_primary_hcd(hcd)) { + /* enable irqs just before we start the controller, + * if the BIOS provides legacy PCI irqs. + */ + if (usb_hcd_is_primary_hcd(hcd) && irqnum) { retval = usb_hcd_request_irqs(hcd, irqnum, irqflags); if (retval) goto err_request_irq; diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/compat/hash.c b/vmkdrivers/src_92/drivers/usb/host/xhci/compat/hash.c new file mode 100755 index 0000000000000000000000000000000000000000..ed38800cd1a852c0405bfa3709b913ac4356b009 --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/compat/hash.c @@ -0,0 +1,256 @@ +/* + * Copyright (c) 2011-2013 Mellanox Technologies. All rights reserved. + * + * This software is available to you under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + */ + +#include +#include +#include "hash.h" + + +/************************************************************************/ +struct hash_node { + unsigned long key; // key for lookup + void *p_data; // pointer to stored data + struct hash_node *p_next; // pointer to next node +}; + + +/************************************************************************/ +#define MINIMUM_HASH_TABLE_SIZE 512 +/* TODO: Need to fix expand latter */ +#ifdef __VMKERNEL_HASH_EXPAND_ENABLE__ +#define EXPAND_HASH_TABLE_LIMIT_ORDER 1 +#endif /* __VMKERNEL_HASH_EXPAND_ENABLE__ */ + + +/************************************************************************/ +static unsigned long hash(hdl_hash_t p_table, unsigned long key) +{ + return (key & p_table->mask); +} + +/************/ +void hash_print(hdl_hash_t p_table) +{ + hash_node_t *p_node; + unsigned long i; + + printk("HASH ID=%p\n", p_table); + // if empty + if (p_table->size == 0) { + printk("HASH is EMPTY!\n"); + return; + } + + printk("HASH size=%lu\n", p_table->size); + printk("HASH mask=%lu\n", p_table->mask); + printk("HASH entries=%lu\n", p_table->entries); + printk("HASH bucket:\n"); + for (i = 0; i < p_table->size; ++i) { + p_node = p_table->bucket[i]; + printk("[%lu] ", i); + while (p_node) { + printk("Key=0x%lx --> ", p_node->key); + p_node = p_node->p_next; + } + printk("\n"); + } +} + +/************/ +int hash_init(hdl_hash_t p_table, unsigned long table_size) +{ + p_table->entries = 0; + p_table->size = 2; + p_table->mask = p_table->size - 1; + + // round to power of 2 + while (p_table->size < table_size) + p_table->size <<= 1; + p_table->mask = p_table->size - 1; + + // allocate + p_table->bucket = (hash_node_t **)kcalloc(p_table->size, + sizeof(hash_node_t *), GFP_KERNEL); + if (!p_table->bucket) + return -ENOMEM; + return 0; +} + +/************/ +void hash_destroy(hdl_hash_t p_table) +{ + hash_node_t *p_node, *p_prev_node; + unsigned long i; + + for (i = 0; i < p_table->size; ++i) { + p_node = p_table->bucket[i]; + while (p_node) { + p_prev_node = p_node; + p_node = p_node->p_next; + kfree(p_prev_node); + } + } + kfree(p_table->bucket); + memset(p_table, 0, sizeof(struct hash_table)); +} + +/************/ +#ifdef __VMKERNEL_HASH_EXPAND_ENABLE__ +static int hash_expand(hdl_hash_t p_table) +{ + hash_node_t **prev_bucket; + hash_node_t *p_prev_node, *p_tmp_node; + unsigned long prev_size, hash_entry, i; + int rc = 0; + + + prev_bucket = p_table->bucket; + prev_size = p_table->size; + + if ((rc = hash_init(p_table, (prev_size << 1))) != 0); + return rc; + for (i = 0; i < prev_size; ++i) { + p_prev_node = prev_bucket[i]; + // we have several nodes in this hash entry + while (p_prev_node) { + p_tmp_node = p_prev_node; + p_prev_node = p_prev_node->p_next; + hash_entry = hash(p_table, p_tmp_node->key); + p_tmp_node->p_next = p_table->bucket[hash_entry]; + p_table->bucket[hash_entry] = p_tmp_node; + ++p_table->entries; + } + } + + // free only the previous bucket array, not the nodes + // because we will use the nodes pointers in new large hash + kfree(prev_bucket); + return 0; +} +#endif /* __VMKERNEL_HASH_EXPAND_ENABLE__ */ + +/************/ +void * hash_lookup(hdl_hash_t p_table, unsigned long key) +{ + hash_node_t *p_node; + unsigned long hash_entry; + + // if empty + if (p_table->size == 0) + return NULL; + + hash_entry = hash(p_table, key); + for (p_node = p_table->bucket[hash_entry]; p_node; + p_node = p_node->p_next) { + if (key == p_node->key) + break; + } + return (p_node ? p_node->p_data : NULL); +} + +/************/ +int hash_insert(hdl_hash_t p_table, unsigned long key, void *p_data) +{ + void *p_tmp_data; + hash_node_t *p_node; + unsigned long hash_entry; + int rc = 0; + + // if empty + if (!p_table->size) { + rc = hash_init(p_table, MINIMUM_HASH_TABLE_SIZE); + if (rc) + return rc; + + } + + // if data not valid + if (!p_data) + return -EINVAL; + + // maybe already exists + p_tmp_data = hash_lookup(p_table, key); + if (p_tmp_data) + return -EEXIST; + +#ifdef __VMKERNEL_HASH_EXPAND_ENABLE__ + // maybe we need to expand + while (p_table->entries >= (p_table->size >> EXPAND_HASH_TABLE_LIMIT_ORDER)) { + if ((rc = hash_expand(p_table)) != 0) + return rc; + } +#endif /* __VMKERNEL_HASH_EXPAND_ENABLE__ */ + + // allocate memory for new entry + p_node = (hash_node_t *)kmalloc(sizeof(hash_node_t), GFP_KERNEL); + if (!p_node) + return -ENOMEM; + + // insert the new entry + p_node->p_data = p_data; + p_node->key = key; + hash_entry = hash(p_table, key); + p_node->p_next = p_table->bucket[hash_entry]; + p_table->bucket[hash_entry] = p_node; + ++p_table->entries; + return 0; +} + +/************/ +void * hash_delete(hdl_hash_t p_table, unsigned long key) +{ + hash_node_t *p_node, *p_prev_node; + void *p_data; + unsigned long hash_entry; + + // if empty + if (!p_table->size) { + return NULL; + } + + // find what to remove + hash_entry = hash(p_table, key); + for (p_node = p_table->bucket[hash_entry]; p_node; + p_node = p_node->p_next) { + if (key == p_node->key) + break; + } + if (!p_node) + return NULL; // nothing to remove + + // remove the selected node + if (p_node == p_table->bucket[hash_entry]) { + p_table->bucket[hash_entry] = p_node->p_next; + goto free_node; + } + for (p_prev_node = p_table->bucket[hash_entry]; + p_prev_node && p_prev_node->p_next; + p_prev_node = p_prev_node->p_next) { + if (p_prev_node->p_next == p_node) + break; + } + p_prev_node->p_next = p_node->p_next; + +free_node: + p_data = p_node->p_data; + kfree(p_node); + + /* + * TODO: maybe we will want to implement shrink of the hash + */ + // if empty + if (--p_table->entries == 0) + hash_destroy(p_table); + + return p_data; +} diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/compat/hash.h b/vmkdrivers/src_92/drivers/usb/host/xhci/compat/hash.h new file mode 100755 index 0000000000000000000000000000000000000000..300bc33eccaaab0a0fac5fdd698541c1c9760343 --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/compat/hash.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2011-2013 Mellanox Technologies. All rights reserved. + * + * This software is available to you under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + */ + +#ifndef _MLNX_HASH_H +#define _MLNX_HASH_H + + +/************************************************************************/ +typedef struct hash_node hash_node_t; + +struct hash_table { + hash_node_t **bucket; // the hash array + unsigned long size; // size of the array + unsigned long entries; // number of used entries in hash + unsigned long mask; // used to select bits for hashing +}; + +typedef struct hash_table * hdl_hash_t; + + +/************************************************************************/ +void hash_print(hdl_hash_t p_table); +int hash_init(hdl_hash_t p_table, unsigned long table_size); +void hash_destroy(hdl_hash_t p_table); +void * hash_lookup(hdl_hash_t p_table, unsigned long key); +int hash_insert(hdl_hash_t p_table, unsigned long key, void *p_data); +void * hash_delete(hdl_hash_t p_table, unsigned long key); + + +#endif /* _MLNX_HASH_H */ diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/compat/xhci_compat.c b/vmkdrivers/src_92/drivers/usb/host/xhci/compat/xhci_compat.c new file mode 100644 index 0000000000000000000000000000000000000000..d4826f6453012524e77bb6a022283db70147b707 --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/compat/xhci_compat.c @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2015 VMware, Inc. + * + * Copyright (c) 2011-2012 Mellanox Technologies. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + + +#include "xhci_compat.h" + + +/************************************************************************/ +#include "hash.c" + + +/************************************************************************/ + diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/compat/xhci_compat.h b/vmkdrivers/src_92/drivers/usb/host/xhci/compat/xhci_compat.h new file mode 100644 index 0000000000000000000000000000000000000000..4d495f907674c436f3781a5e40fbb4a00bc9688c --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/compat/xhci_compat.h @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2015 VMware, Inc. + * + * Copyright (c) 2011-2013 Mellanox Technologies. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + + +#ifndef _XHCI_COMPAT_H +#define _XHCI_COMPAT_H + + +/************************************************************************/ +#include "hash.h" + +/************************************************************************/ +/* Radix tree */ +#define radix_tree_root hash_table +#define radix_tree_lookup xhci_radix_tree_lookup +#define radix_tree_insert xhci_radix_tree_insert +#define radix_tree_delete xhci_radix_tree_delete + +#ifdef INIT_RADIX_TREE +#undef INIT_RADIX_TREE +#endif + +#define INIT_RADIX_TREE(p_tree, flags) do { \ + memset((p_tree), 0, sizeof(struct hash_table)); \ +} while (0); + + +static inline void * xhci_radix_tree_lookup(struct radix_tree_root *p_tree, + unsigned long index) { + return hash_lookup(p_tree, index); +} + +static inline int xhci_radix_tree_insert(struct radix_tree_root *p_tree, + unsigned long index, + void *p_data) { + return hash_insert(p_tree, index, p_data); +} + +static inline void * xhci_radix_tree_delete(struct radix_tree_root *p_tree, + unsigned long index) { + return hash_delete(p_tree, index); +} + + +/************************************************************************/ + +#endif /* _XHCI_COMPAT_H */ diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-dbg.c b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-dbg.c new file mode 100644 index 0000000000000000000000000000000000000000..4b436f5a41711bc1a7747f3c7b187ff547c7acbd --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-dbg.c @@ -0,0 +1,576 @@ +/* + * xHCI host controller driver + * + * Copyright (C) 2008 Intel Corp. + * + * Author: Sarah Sharp + * Some code borrowed from the Linux EHCI driver. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "xhci.h" + +#define XHCI_INIT_VALUE 0x0 + +/* Add verbose debugging later, just print everything for now */ + +void xhci_dbg_regs(struct xhci_hcd *xhci) +{ + u32 temp; + + xhci_dbg(xhci, "// xHCI capability registers at %p:\n", + xhci->cap_regs); + temp = xhci_readl(xhci, &xhci->cap_regs->hc_capbase); + xhci_dbg(xhci, "// @%p = 0x%x (CAPLENGTH AND HCIVERSION)\n", + &xhci->cap_regs->hc_capbase, temp); + xhci_dbg(xhci, "// CAPLENGTH: 0x%x\n", + (unsigned int) HC_LENGTH(temp)); +#if 0 + xhci_dbg(xhci, "// HCIVERSION: 0x%x\n", + (unsigned int) HC_VERSION(temp)); +#endif + + xhci_dbg(xhci, "// xHCI operational registers at %p:\n", xhci->op_regs); + + temp = xhci_readl(xhci, &xhci->cap_regs->run_regs_off); + xhci_dbg(xhci, "// @%p = 0x%x RTSOFF\n", + &xhci->cap_regs->run_regs_off, + (unsigned int) temp & RTSOFF_MASK); + xhci_dbg(xhci, "// xHCI runtime registers at %p:\n", xhci->run_regs); + + temp = xhci_readl(xhci, &xhci->cap_regs->db_off); + xhci_dbg(xhci, "// @%p = 0x%x DBOFF\n", &xhci->cap_regs->db_off, temp); + xhci_dbg(xhci, "// Doorbell array at %p:\n", xhci->dba); +} + +static void xhci_print_cap_regs(struct xhci_hcd *xhci) +{ + u32 temp; + + xhci_dbg(xhci, "xHCI capability registers at %p:\n", xhci->cap_regs); + + temp = xhci_readl(xhci, &xhci->cap_regs->hc_capbase); + xhci_dbg(xhci, "CAPLENGTH AND HCIVERSION 0x%x:\n", + (unsigned int) temp); + xhci_dbg(xhci, "CAPLENGTH: 0x%x\n", + (unsigned int) HC_LENGTH(temp)); + xhci_dbg(xhci, "HCIVERSION: 0x%x\n", + (unsigned int) HC_VERSION(temp)); + + temp = xhci_readl(xhci, &xhci->cap_regs->hcs_params1); + xhci_dbg(xhci, "HCSPARAMS 1: 0x%x\n", + (unsigned int) temp); + xhci_dbg(xhci, " Max device slots: %u\n", + (unsigned int) HCS_MAX_SLOTS(temp)); + xhci_dbg(xhci, " Max interrupters: %u\n", + (unsigned int) HCS_MAX_INTRS(temp)); + xhci_dbg(xhci, " Max ports: %u\n", + (unsigned int) HCS_MAX_PORTS(temp)); + + temp = xhci_readl(xhci, &xhci->cap_regs->hcs_params2); + xhci_dbg(xhci, "HCSPARAMS 2: 0x%x\n", + (unsigned int) temp); + xhci_dbg(xhci, " Isoc scheduling threshold: %u\n", + (unsigned int) HCS_IST(temp)); + xhci_dbg(xhci, " Maximum allowed segments in event ring: %u\n", + (unsigned int) HCS_ERST_MAX(temp)); + + temp = xhci_readl(xhci, &xhci->cap_regs->hcs_params3); + xhci_dbg(xhci, "HCSPARAMS 3 0x%x:\n", + (unsigned int) temp); + xhci_dbg(xhci, " Worst case U1 device exit latency: %u\n", + (unsigned int) HCS_U1_LATENCY(temp)); + xhci_dbg(xhci, " Worst case U2 device exit latency: %u\n", + (unsigned int) HCS_U2_LATENCY(temp)); + + temp = xhci_readl(xhci, &xhci->cap_regs->hcc_params); + xhci_dbg(xhci, "HCC PARAMS 0x%x:\n", (unsigned int) temp); + xhci_dbg(xhci, " HC generates %s bit addresses\n", + HCC_64BIT_ADDR(temp) ? "64" : "32"); + /* FIXME */ + xhci_dbg(xhci, " FIXME: more HCCPARAMS debugging\n"); + + temp = xhci_readl(xhci, &xhci->cap_regs->run_regs_off); + xhci_dbg(xhci, "RTSOFF 0x%x:\n", temp & RTSOFF_MASK); +} + +static void xhci_print_command_reg(struct xhci_hcd *xhci) +{ + u32 temp; + + temp = xhci_readl(xhci, &xhci->op_regs->command); + xhci_dbg(xhci, "USBCMD 0x%x:\n", temp); + xhci_dbg(xhci, " HC is %s\n", + (temp & CMD_RUN) ? "running" : "being stopped"); + xhci_dbg(xhci, " HC has %sfinished hard reset\n", + (temp & CMD_RESET) ? "not " : ""); + xhci_dbg(xhci, " Event Interrupts %s\n", + (temp & CMD_EIE) ? "enabled " : "disabled"); + xhci_dbg(xhci, " Host System Error Interrupts %s\n", + (temp & CMD_HSEIE) ? "enabled " : "disabled"); + xhci_dbg(xhci, " HC has %sfinished light reset\n", + (temp & CMD_LRESET) ? "not " : ""); +} + +static void xhci_print_status(struct xhci_hcd *xhci) +{ + u32 temp; + + temp = xhci_readl(xhci, &xhci->op_regs->status); + xhci_dbg(xhci, "USBSTS 0x%x:\n", temp); + xhci_dbg(xhci, " Event ring is %sempty\n", + (temp & STS_EINT) ? "not " : ""); + xhci_dbg(xhci, " %sHost System Error\n", + (temp & STS_FATAL) ? "WARNING: " : "No "); + xhci_dbg(xhci, " HC is %s\n", + (temp & STS_HALT) ? "halted" : "running"); +} + +static void xhci_print_op_regs(struct xhci_hcd *xhci) +{ + xhci_dbg(xhci, "xHCI operational registers at %p:\n", xhci->op_regs); + xhci_print_command_reg(xhci); + xhci_print_status(xhci); +} + +static void xhci_print_ports(struct xhci_hcd *xhci) +{ + __le32 __iomem *addr; + int i, j; + int ports; + char *names[NUM_PORT_REGS] = { + "status", + "power", + "link", + "reserved", + }; + + ports = HCS_MAX_PORTS(xhci->hcs_params1); + addr = &xhci->op_regs->port_status_base; + for (i = 0; i < ports; i++) { + for (j = 0; j < NUM_PORT_REGS; ++j) { + xhci_dbg(xhci, "%p port %s reg = 0x%x\n", + addr, names[j], + (unsigned int) xhci_readl(xhci, addr)); + addr++; + } + } +} + +void xhci_print_ir_set(struct xhci_hcd *xhci, int set_num) +{ + struct xhci_intr_reg __iomem *ir_set = &xhci->run_regs->ir_set[set_num]; + void __iomem *addr; + u32 temp; + u64 temp_64; + + addr = &ir_set->irq_pending; + temp = xhci_readl(xhci, addr); + if (temp == XHCI_INIT_VALUE) + return; + + xhci_dbg(xhci, " %p: ir_set[%i]\n", ir_set, set_num); + + xhci_dbg(xhci, " %p: ir_set.pending = 0x%x\n", addr, + (unsigned int)temp); + + addr = &ir_set->irq_control; + temp = xhci_readl(xhci, addr); + xhci_dbg(xhci, " %p: ir_set.control = 0x%x\n", addr, + (unsigned int)temp); + + addr = &ir_set->erst_size; + temp = xhci_readl(xhci, addr); + xhci_dbg(xhci, " %p: ir_set.erst_size = 0x%x\n", addr, + (unsigned int)temp); + + addr = &ir_set->rsvd; + temp = xhci_readl(xhci, addr); + if (temp != XHCI_INIT_VALUE) + xhci_dbg(xhci, " WARN: %p: ir_set.rsvd = 0x%x\n", + addr, (unsigned int)temp); + + addr = &ir_set->erst_base; + temp_64 = xhci_read_64(xhci, addr); + xhci_dbg(xhci, " %p: ir_set.erst_base = @%08llx\n", + addr, temp_64); + + addr = &ir_set->erst_dequeue; + temp_64 = xhci_read_64(xhci, addr); + xhci_dbg(xhci, " %p: ir_set.erst_dequeue = @%08llx\n", + addr, temp_64); +} + +void xhci_print_run_regs(struct xhci_hcd *xhci) +{ + u32 temp; + int i; + + xhci_dbg(xhci, "xHCI runtime registers at %p:\n", xhci->run_regs); + temp = xhci_readl(xhci, &xhci->run_regs->microframe_index); + xhci_dbg(xhci, " %p: Microframe index = 0x%x\n", + &xhci->run_regs->microframe_index, + (unsigned int) temp); + for (i = 0; i < 7; ++i) { + temp = xhci_readl(xhci, &xhci->run_regs->rsvd[i]); + if (temp != XHCI_INIT_VALUE) + xhci_dbg(xhci, " WARN: %p: Rsvd[%i] = 0x%x\n", + &xhci->run_regs->rsvd[i], + i, (unsigned int) temp); + } +} + +void xhci_print_registers(struct xhci_hcd *xhci) +{ + xhci_print_cap_regs(xhci); + xhci_print_op_regs(xhci); + xhci_print_ports(xhci); +} + +void xhci_print_trb_offsets(struct xhci_hcd *xhci, union xhci_trb *trb) +{ + int i; + for (i = 0; i < 4; ++i) + xhci_dbg(xhci, "Offset 0x%x = 0x%x\n", + i*4, trb->generic.field[i]); +} + +/** + * Debug a transfer request block (TRB). + */ +void xhci_debug_trb(struct xhci_hcd *xhci, union xhci_trb *trb) +{ + u64 address; + u32 type = le32_to_cpu(trb->link.control) & TRB_TYPE_BITMASK; + + switch (type) { + case TRB_TYPE(TRB_LINK): + xhci_dbg(xhci, "Link TRB:\n"); + xhci_print_trb_offsets(xhci, trb); + + address = le64_to_cpu(trb->link.segment_ptr); + xhci_dbg(xhci, "Next ring segment DMA address = 0x%llx\n", address); + + xhci_dbg(xhci, "Interrupter target = 0x%x\n", + GET_INTR_TARGET(le32_to_cpu(trb->link.intr_target))); + xhci_dbg(xhci, "Cycle bit = %u\n", + le32_to_cpu(trb->link.control) & TRB_CYCLE); + xhci_dbg(xhci, "Toggle cycle bit = %u\n", + le32_to_cpu(trb->link.control) & LINK_TOGGLE); + xhci_dbg(xhci, "No Snoop bit = %u\n", + le32_to_cpu(trb->link.control) & TRB_NO_SNOOP); + break; + case TRB_TYPE(TRB_TRANSFER): + address = le64_to_cpu(trb->trans_event.buffer); + /* + * FIXME: look at flags to figure out if it's an address or if + * the data is directly in the buffer field. + */ + xhci_dbg(xhci, "DMA address or buffer contents= %llu\n", address); + break; + case TRB_TYPE(TRB_COMPLETION): + address = le64_to_cpu(trb->event_cmd.cmd_trb); + xhci_dbg(xhci, "Command TRB pointer = %llu\n", address); + xhci_dbg(xhci, "Completion status = %u\n", + GET_COMP_CODE(le32_to_cpu(trb->event_cmd.status))); + xhci_dbg(xhci, "Flags = 0x%x\n", + le32_to_cpu(trb->event_cmd.flags)); + break; + default: + xhci_dbg(xhci, "Unknown TRB with TRB type ID %u\n", + (unsigned int) type>>10); + xhci_print_trb_offsets(xhci, trb); + break; + } +} + +/** + * Debug a segment with an xHCI ring. + * + * @return The Link TRB of the segment, or NULL if there is no Link TRB + * (which is a bug, since all segments must have a Link TRB). + * + * Prints out all TRBs in the segment, even those after the Link TRB. + * + * XXX: should we print out TRBs that the HC owns? As long as we don't + * write, that should be fine... We shouldn't expect that the memory pointed to + * by the TRB is valid at all. Do we care about ones the HC owns? Probably, + * for HC debugging. + */ +void xhci_debug_segment(struct xhci_hcd *xhci, struct xhci_segment *seg) +{ + int i; + u64 addr = seg->dma; + union xhci_trb *trb = seg->trbs; + + for (i = 0; i < TRBS_PER_SEGMENT; ++i) { + trb = &seg->trbs[i]; + xhci_dbg(xhci, "@%016llx %08x %08x %08x %08x\n", addr, + lower_32_bits(le64_to_cpu(trb->link.segment_ptr)), + upper_32_bits(le64_to_cpu(trb->link.segment_ptr)), + le32_to_cpu(trb->link.intr_target), + le32_to_cpu(trb->link.control)); + addr += sizeof(*trb); + } +} + +void xhci_dbg_ring_ptrs(struct xhci_hcd *xhci, struct xhci_ring *ring) +{ + xhci_dbg(xhci, "Ring deq = %p (virt), 0x%llx (dma)\n", + ring->dequeue, + (unsigned long long)xhci_trb_virt_to_dma(ring->deq_seg, + ring->dequeue)); + xhci_dbg(xhci, "Ring deq updated %u times\n", + ring->deq_updates); + xhci_dbg(xhci, "Ring enq = %p (virt), 0x%llx (dma)\n", + ring->enqueue, + (unsigned long long)xhci_trb_virt_to_dma(ring->enq_seg, + ring->enqueue)); + xhci_dbg(xhci, "Ring enq updated %u times\n", + ring->enq_updates); +} + +/** + * Debugging for an xHCI ring, which is a queue broken into multiple segments. + * + * Print out each segment in the ring. Check that the DMA address in + * each link segment actually matches the segment's stored DMA address. + * Check that the link end bit is only set at the end of the ring. + * Check that the dequeue and enqueue pointers point to real data in this ring + * (not some other ring). + */ +void xhci_debug_ring(struct xhci_hcd *xhci, struct xhci_ring *ring) +{ + /* FIXME: Throw an error if any segment doesn't have a Link TRB */ + struct xhci_segment *seg; + struct xhci_segment *first_seg = ring->first_seg; + xhci_debug_segment(xhci, first_seg); + + if (!ring->enq_updates && !ring->deq_updates) { + xhci_dbg(xhci, " Ring has not been updated\n"); + return; + } + for (seg = first_seg->next; seg != first_seg; seg = seg->next) + xhci_debug_segment(xhci, seg); +} + +void xhci_dbg_ep_rings(struct xhci_hcd *xhci, + unsigned int slot_id, unsigned int ep_index, + struct xhci_virt_ep *ep) +{ + int i; + struct xhci_ring *ring; + + if (ep->ep_state & EP_HAS_STREAMS) { + for (i = 1; i < ep->stream_info->num_streams; i++) { + ring = ep->stream_info->stream_rings[i]; + xhci_dbg(xhci, "Dev %d endpoint %d stream ID %d:\n", + slot_id, ep_index, i); + xhci_debug_segment(xhci, ring->deq_seg); + } + } else { + ring = ep->ring; + if (!ring) + return; + xhci_dbg(xhci, "Dev %d endpoint ring %d:\n", + slot_id, ep_index); + xhci_debug_segment(xhci, ring->deq_seg); + } +} + +void xhci_dbg_erst(struct xhci_hcd *xhci, struct xhci_erst *erst) +{ + u64 addr = erst->erst_dma_addr; + int i; + struct xhci_erst_entry *entry; + + for (i = 0; i < erst->num_entries; ++i) { + entry = &erst->entries[i]; + xhci_dbg(xhci, "@%016llx %08x %08x %08x %08x\n", + addr, + lower_32_bits(le64_to_cpu(entry->seg_addr)), + upper_32_bits(le64_to_cpu(entry->seg_addr)), + le32_to_cpu(entry->seg_size), + le32_to_cpu(entry->rsvd)); + addr += sizeof(*entry); + } +} + +void xhci_dbg_cmd_ptrs(struct xhci_hcd *xhci) +{ + u64 val; + + val = xhci_read_64(xhci, &xhci->op_regs->cmd_ring); + xhci_dbg(xhci, "// xHC command ring deq ptr low bits + flags = @%08x\n", + lower_32_bits(val)); + xhci_dbg(xhci, "// xHC command ring deq ptr high bits = @%08x\n", + upper_32_bits(val)); +} + +/* Print the last 32 bytes for 64-byte contexts */ +static void dbg_rsvd64(struct xhci_hcd *xhci, u64 *ctx, dma_addr_t dma) +{ + int i; + for (i = 0; i < 4; ++i) { + xhci_dbg(xhci, "@%p (virt) @%08llx " + "(dma) %#08llx - rsvd64[%d]\n", + &ctx[4 + i], (unsigned long long)dma, + ctx[4 + i], i); + dma += 8; + } +} + +char *xhci_get_slot_state(struct xhci_hcd *xhci, + struct xhci_container_ctx *ctx) +{ + struct xhci_slot_ctx *slot_ctx = xhci_get_slot_ctx(xhci, ctx); + + switch (GET_SLOT_STATE(le32_to_cpu(slot_ctx->dev_state))) { + case SLOT_STATE_ENABLED: + return "enabled/disabled"; + case SLOT_STATE_DEFAULT: + return "default"; + case SLOT_STATE_ADDRESSED: + return "addressed"; + case SLOT_STATE_CONFIGURED: + return "configured"; + default: + return "reserved"; + } +} + +static void xhci_dbg_slot_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx) +{ + /* Fields are 32 bits wide, DMA addresses are in bytes */ + int field_size = 32 / 8; + int i; + + struct xhci_slot_ctx *slot_ctx = xhci_get_slot_ctx(xhci, ctx); + dma_addr_t dma = ctx->dma + + ((unsigned long)slot_ctx - (unsigned long)ctx->bytes); + int csz = HCC_64BYTE_CONTEXT(xhci->hcc_params); + + xhci_dbg(xhci, "Slot Context:\n"); + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - dev_info\n", + &slot_ctx->dev_info, + (unsigned long long)dma, slot_ctx->dev_info); + dma += field_size; + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - dev_info2\n", + &slot_ctx->dev_info2, + (unsigned long long)dma, slot_ctx->dev_info2); + dma += field_size; + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - tt_info\n", + &slot_ctx->tt_info, + (unsigned long long)dma, slot_ctx->tt_info); + dma += field_size; + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - dev_state\n", + &slot_ctx->dev_state, + (unsigned long long)dma, slot_ctx->dev_state); + dma += field_size; + for (i = 0; i < 4; ++i) { + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - rsvd[%d]\n", + &slot_ctx->reserved[i], (unsigned long long)dma, + slot_ctx->reserved[i], i); + dma += field_size; + } + + if (csz) + dbg_rsvd64(xhci, (u64 *)slot_ctx, dma); +} + +static void xhci_dbg_ep_ctx(struct xhci_hcd *xhci, + struct xhci_container_ctx *ctx, + unsigned int last_ep) +{ + int i, j; + int last_ep_ctx = 31; + /* Fields are 32 bits wide, DMA addresses are in bytes */ + int field_size = 32 / 8; + int csz = HCC_64BYTE_CONTEXT(xhci->hcc_params); + + if (last_ep < 31) + last_ep_ctx = last_ep + 1; + for (i = 0; i < last_ep_ctx; ++i) { + struct xhci_ep_ctx *ep_ctx = xhci_get_ep_ctx(xhci, ctx, i); + dma_addr_t dma = ctx->dma + + ((unsigned long)ep_ctx - (unsigned long)ctx->bytes); + + xhci_dbg(xhci, "Endpoint %02d Context:\n", i); + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - ep_info\n", + &ep_ctx->ep_info, + (unsigned long long)dma, ep_ctx->ep_info); + dma += field_size; + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - ep_info2\n", + &ep_ctx->ep_info2, + (unsigned long long)dma, ep_ctx->ep_info2); + dma += field_size; + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08llx - deq\n", + &ep_ctx->deq, + (unsigned long long)dma, ep_ctx->deq); + dma += 2*field_size; + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - tx_info\n", + &ep_ctx->tx_info, + (unsigned long long)dma, ep_ctx->tx_info); + dma += field_size; + for (j = 0; j < 3; ++j) { + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - rsvd[%d]\n", + &ep_ctx->reserved[j], + (unsigned long long)dma, + ep_ctx->reserved[j], j); + dma += field_size; + } + + if (csz) + dbg_rsvd64(xhci, (u64 *)ep_ctx, dma); + } +} + +void xhci_dbg_ctx(struct xhci_hcd *xhci, + struct xhci_container_ctx *ctx, + unsigned int last_ep) +{ + int i; + /* Fields are 32 bits wide, DMA addresses are in bytes */ + int field_size = 32 / 8; + struct xhci_slot_ctx *slot_ctx; + dma_addr_t dma = ctx->dma; + int csz = HCC_64BYTE_CONTEXT(xhci->hcc_params); + + if (ctx->type == XHCI_CTX_TYPE_INPUT) { + struct xhci_input_control_ctx *ctrl_ctx = + xhci_get_input_control_ctx(xhci, ctx); + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - drop flags\n", + &ctrl_ctx->drop_flags, (unsigned long long)dma, + ctrl_ctx->drop_flags); + dma += field_size; + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - add flags\n", + &ctrl_ctx->add_flags, (unsigned long long)dma, + ctrl_ctx->add_flags); + dma += field_size; + for (i = 0; i < 6; ++i) { + xhci_dbg(xhci, "@%p (virt) @%08llx (dma) %#08x - rsvd2[%d]\n", + &ctrl_ctx->rsvd2[i], (unsigned long long)dma, + ctrl_ctx->rsvd2[i], i); + dma += field_size; + } + + if (csz) + dbg_rsvd64(xhci, (u64 *)ctrl_ctx, dma); + } + + slot_ctx = xhci_get_slot_ctx(xhci, ctx); + xhci_dbg_slot_ctx(xhci, ctx); + xhci_dbg_ep_ctx(xhci, ctx, last_ep); +} diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-ext-caps.h b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-ext-caps.h new file mode 100644 index 0000000000000000000000000000000000000000..377f4242dabb8cac56456258506b0c3982495b2a --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-ext-caps.h @@ -0,0 +1,155 @@ +/* + * xHCI host controller driver + * + * Copyright (C) 2008 Intel Corp. + * + * Author: Sarah Sharp + * Some code borrowed from the Linux EHCI driver. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* Up to 16 ms to halt an HC */ +#define XHCI_MAX_HALT_USEC (16*1000) +/* HC not running - set to 1 when run/stop bit is cleared. */ +#define XHCI_STS_HALT (1<<0) + +/* HCCPARAMS offset from PCI base address */ +#define XHCI_HCC_PARAMS_OFFSET 0x10 +/* HCCPARAMS contains the first extended capability pointer */ +#define XHCI_HCC_EXT_CAPS(p) (((p)>>16)&0xffff) + +/* Command and Status registers offset from the Operational Registers address */ +#define XHCI_CMD_OFFSET 0x00 +#define XHCI_STS_OFFSET 0x04 + +#define XHCI_MAX_EXT_CAPS 50 + +/* Capability Register */ +/* bits 7:0 - how long is the Capabilities register */ +#define XHCI_HC_LENGTH(p) (((p)>>00)&0x00ff) + +/* Extended capability register fields */ +#define XHCI_EXT_CAPS_ID(p) (((p)>>0)&0xff) +#define XHCI_EXT_CAPS_NEXT(p) (((p)>>8)&0xff) +#define XHCI_EXT_CAPS_VAL(p) ((p)>>16) +/* Extended capability IDs - ID 0 reserved */ +#define XHCI_EXT_CAPS_LEGACY 1 +#define XHCI_EXT_CAPS_PROTOCOL 2 +#define XHCI_EXT_CAPS_PM 3 +#define XHCI_EXT_CAPS_VIRT 4 +#define XHCI_EXT_CAPS_ROUTE 5 +/* IDs 6-9 reserved */ +#define XHCI_EXT_CAPS_DEBUG 10 +/* USB Legacy Support Capability - section 7.1.1 */ +#define XHCI_HC_BIOS_OWNED (1 << 16) +#define XHCI_HC_OS_OWNED (1 << 24) + +/* USB Legacy Support Capability - section 7.1.1 */ +/* Add this offset, plus the value of xECP in HCCPARAMS to the base address */ +#define XHCI_LEGACY_SUPPORT_OFFSET (0x00) + +/* USB Legacy Support Control and Status Register - section 7.1.2 */ +/* Add this offset, plus the value of xECP in HCCPARAMS to the base address */ +#define XHCI_LEGACY_CONTROL_OFFSET (0x04) +/* bits 1:3, 5:12, and 17:19 need to be preserved; bits 21:28 should be zero */ +#define XHCI_LEGACY_DISABLE_SMI ((0x7 << 1) + (0xff << 5) + (0x7 << 17)) +#define XHCI_LEGACY_SMI_EVENTS (0x7 << 29) + +/* USB 2.0 xHCI 0.96 L1C capability - section 7.2.2.1.3.2 */ +#define XHCI_L1C (1 << 16) + +/* USB 2.0 xHCI 1.0 hardware LMP capability - section 7.2.2.1.3.2 */ +#define XHCI_HLC (1 << 19) + +/* command register values to disable interrupts and halt the HC */ +/* start/stop HC execution - do not write unless HC is halted*/ +#define XHCI_CMD_RUN (1 << 0) +/* Event Interrupt Enable - get irq when EINT bit is set in USBSTS register */ +#define XHCI_CMD_EIE (1 << 2) +/* Host System Error Interrupt Enable - get irq when HSEIE bit set in USBSTS */ +#define XHCI_CMD_HSEIE (1 << 3) +/* Enable Wrap Event - '1' means xHC generates an event when MFINDEX wraps. */ +#define XHCI_CMD_EWE (1 << 10) + +#define XHCI_IRQS (XHCI_CMD_EIE | XHCI_CMD_HSEIE | XHCI_CMD_EWE) + +/* true: Controller Not Ready to accept doorbell or op reg writes after reset */ +#define XHCI_STS_CNR (1 << 11) + +#include + +/** + * Return the next extended capability pointer register. + * + * @base PCI register base address. + * + * @ext_offset Offset of the 32-bit register that contains the extended + * capabilites pointer. If searching for the first extended capability, pass + * in XHCI_HCC_PARAMS_OFFSET. If searching for the next extended capability, + * pass in the offset of the current extended capability register. + * + * Returns 0 if there is no next extended capability register or returns the register offset + * from the PCI registers base address. + */ +static inline int xhci_find_next_cap_offset(void __iomem *base, int ext_offset) +{ + u32 next; + + next = readl(base + ext_offset); + + if (ext_offset == XHCI_HCC_PARAMS_OFFSET) { + /* Find the first extended capability */ + next = XHCI_HCC_EXT_CAPS(next); + ext_offset = 0; + } else { + /* Find the next extended capability */ + next = XHCI_EXT_CAPS_NEXT(next); + } + + if (!next) + return 0; + /* + * Address calculation from offset of extended capabilities + * (or HCCPARAMS) register - see section 5.3.6 and section 7. + */ + return ext_offset + (next << 2); +} + +/** + * Find the offset of the extended capabilities with capability ID id. + * + * @base PCI MMIO registers base address. + * @ext_offset Offset from base of the first extended capability to look at, + * or the address of HCCPARAMS. + * @id Extended capability ID to search for. + * + * This uses an arbitrary limit of XHCI_MAX_EXT_CAPS extended capabilities + * to make sure that the list doesn't contain a loop. + */ +static inline int xhci_find_ext_cap_by_id(void __iomem *base, int ext_offset, int id) +{ + u32 val; + int limit = XHCI_MAX_EXT_CAPS; + + while (ext_offset && limit > 0) { + val = readl(base + ext_offset); + if (XHCI_EXT_CAPS_ID(val) == id) + break; + ext_offset = xhci_find_next_cap_offset(base, ext_offset); + limit--; + } + if (limit > 0) + return ext_offset; + return 0; +} diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-hub.c b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-hub.c new file mode 100644 index 0000000000000000000000000000000000000000..e78779c80389dfd70c8d36fef6fbc4f21fdfa9c8 --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-hub.c @@ -0,0 +1,1068 @@ +/* + * xHCI host controller driver + * + * Copyright (C) 2008 Intel Corp. + * + * Author: Sarah Sharp + * Some code borrowed from the Linux EHCI driver. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include + +#include "xhci.h" + +#define PORT_WAKE_BITS (PORT_WKOC_E | PORT_WKDISC_E | PORT_WKCONN_E) +#define PORT_RWC_BITS (PORT_CSC | PORT_PEC | PORT_WRC | PORT_OCC | \ + PORT_RC | PORT_PLC | PORT_PE) + +/* usb 1.1 root hub device descriptor */ +static u8 usb_bos_descriptor [] = { + USB_DT_BOS_SIZE, /* __u8 bLength, 5 bytes */ + USB_DT_BOS, /* __u8 bDescriptorType */ + 0x0F, 0x00, /* __le16 wTotalLength, 15 bytes */ + 0x1, /* __u8 bNumDeviceCaps */ + /* First device capability */ + USB_DT_USB_SS_CAP_SIZE, /* __u8 bLength, 10 bytes */ + USB_DT_DEVICE_CAPABILITY, /* Device Capability */ + USB_SS_CAP_TYPE, /* bDevCapabilityType, SUPERSPEED_USB */ + 0x00, /* bmAttributes, LTM off by default */ + USB_5GBPS_OPERATION, 0x00, /* wSpeedsSupported, 5Gbps only */ + 0x03, /* bFunctionalitySupport, + USB 3.0 speed only */ + 0x00, /* bU1DevExitLat, set later. */ + 0x00, 0x00 /* __le16 bU2DevExitLat, set later. */ +}; + + +static void xhci_common_hub_descriptor(struct xhci_hcd *xhci, + struct usb_hub_descriptor *desc, int ports) +{ + u16 temp; + + desc->bPwrOn2PwrGood = 10; /* xhci section 5.4.9 says 20ms max */ + desc->bHubContrCurrent = 0; + + desc->bNbrPorts = ports; + temp = 0; + /* Bits 1:0 - support per-port power switching, or power always on */ + if (HCC_PPC(xhci->hcc_params)) + temp |= HUB_CHAR_INDV_PORT_LPSM; + else + temp |= HUB_CHAR_NO_LPSM; + /* Bit 2 - root hubs are not part of a compound device */ + /* Bits 4:3 - individual port over current protection */ + temp |= HUB_CHAR_INDV_PORT_OCPM; + /* Bits 6:5 - no TTs in root ports */ + /* Bit 7 - no port indicators */ + desc->wHubCharacteristics = cpu_to_le16(temp); +} + +/* Fill in the USB 2.0 roothub descriptor */ +static void xhci_usb2_hub_descriptor(struct usb_hcd *hcd, struct xhci_hcd *xhci, + struct usb_hub_descriptor *desc) +{ + int ports; + u16 temp; + __u8 port_removable[(USB_MAXCHILDREN + 1 + 7) / 8]; + u32 portsc; + unsigned int i; + + ports = xhci->num_usb2_ports; + + xhci_common_hub_descriptor(xhci, desc, ports); + desc->bDescriptorType = USB_DT_HUB; + temp = 1 + (ports / 8); + desc->bDescLength = USB_DT_HUB_NONVAR_SIZE + 2 * temp; + + /* The Device Removable bits are reported on a byte granularity. + * If the port doesn't exist within that byte, the bit is set to 0. + */ + memset(port_removable, 0, sizeof(port_removable)); + for (i = 0; i < ports; i++) { + portsc = xhci_readl(xhci, xhci->usb2_ports[i]); + /* If a device is removable, PORTSC reports a 0, same as in the + * hub descriptor DeviceRemovable bits. + */ + if (portsc & PORT_DEV_REMOVE) + /* This math is hairy because bit 0 of DeviceRemovable + * is reserved, and bit 1 is for port 1, etc. + */ + port_removable[(i + 1) / 8] |= 1 << ((i + 1) % 8); + } + + /* ch11.h defines a hub descriptor that has room for USB_MAXCHILDREN + * ports on it. The USB 2.0 specification says that there are two + * variable length fields at the end of the hub descriptor: + * DeviceRemovable and PortPwrCtrlMask. But since we can have less than + * USB_MAXCHILDREN ports, we may need to use the DeviceRemovable array + * to set PortPwrCtrlMask bits. PortPwrCtrlMask must always be set to + * 0xFF, so we initialize the both arrays (DeviceRemovable and + * PortPwrCtrlMask) to 0xFF. Then we set the DeviceRemovable for each + * set of ports that actually exist. + */ + memset(desc->u.hs.DeviceRemovable, 0xff, + sizeof(desc->u.hs.DeviceRemovable)); + memset(desc->u.hs.PortPwrCtrlMask, 0xff, + sizeof(desc->u.hs.PortPwrCtrlMask)); + + for (i = 0; i < (ports + 1 + 7) / 8; i++) + memset(&desc->u.hs.DeviceRemovable[i], port_removable[i], + sizeof(__u8)); +} + +/* Fill in the USB 3.0 roothub descriptor */ +static void xhci_usb3_hub_descriptor(struct usb_hcd *hcd, struct xhci_hcd *xhci, + struct usb_hub_descriptor *desc) +{ + int ports; + u16 port_removable; + u32 portsc; + unsigned int i; + + ports = xhci->num_usb3_ports; + xhci_common_hub_descriptor(xhci, desc, ports); + desc->bDescriptorType = USB_DT_SS_HUB; + desc->bDescLength = USB_DT_SS_HUB_SIZE; + + /* header decode latency should be zero for roothubs, + * see section 4.23.5.2. + */ + desc->u.ss.bHubHdrDecLat = 0; + desc->u.ss.wHubDelay = 0; + + port_removable = 0; + /* bit 0 is reserved, bit 1 is for port 1, etc. */ + for (i = 0; i < ports; i++) { + portsc = xhci_readl(xhci, xhci->usb3_ports[i]); + if (portsc & PORT_DEV_REMOVE) + port_removable |= 1 << (i + 1); + } + memset(&desc->u.ss.DeviceRemovable, + (__force __u16) cpu_to_le16(port_removable), + sizeof(__u16)); +} + +static void xhci_hub_descriptor(struct usb_hcd *hcd, struct xhci_hcd *xhci, + struct usb_hub_descriptor *desc) +{ + + if (hcd->speed == HCD_USB3) + xhci_usb3_hub_descriptor(hcd, xhci, desc); + else + xhci_usb2_hub_descriptor(hcd, xhci, desc); + +} + +static unsigned int xhci_port_speed(unsigned int port_status) +{ + if (DEV_LOWSPEED(port_status)) + return USB_PORT_STAT_LOW_SPEED; + if (DEV_HIGHSPEED(port_status)) + return USB_PORT_STAT_HIGH_SPEED; + /* + * FIXME: Yes, we should check for full speed, but the core uses that as + * a default in portspeed() in usb/core/hub.c (which is the only place + * USB_PORT_STAT_*_SPEED is used). + */ + return 0; +} + +/* + * These bits are Read Only (RO) and should be saved and written to the + * registers: 0, 3, 10:13, 30 + * connect status, over-current status, port speed, and device removable. + * connect status and port speed are also sticky - meaning they're in + * the AUX well and they aren't changed by a hot, warm, or cold reset. + */ +#define XHCI_PORT_RO ((1<<0) | (1<<3) | (0xf<<10) | (1<<30)) +/* + * These bits are RW; writing a 0 clears the bit, writing a 1 sets the bit: + * bits 5:8, 9, 14:15, 25:27 + * link state, port power, port indicator state, "wake on" enable state + */ +#define XHCI_PORT_RWS ((0xf<<5) | (1<<9) | (0x3<<14) | (0x7<<25)) +/* + * These bits are RW; writing a 1 sets the bit, writing a 0 has no effect: + * bit 4 (port reset) + */ +#define XHCI_PORT_RW1S ((1<<4)) +/* + * These bits are RW; writing a 1 clears the bit, writing a 0 has no effect: + * bits 1, 17, 18, 19, 20, 21, 22, 23 + * port enable/disable, and + * change bits: connect, PED, warm port reset changed (reserved zero for USB 2.0 ports), + * over-current, reset, link state, and L1 change + */ +#define XHCI_PORT_RW1CS ((1<<1) | (0x7f<<17)) +/* + * Bit 16 is RW, and writing a '1' to it causes the link state control to be + * latched in + */ +#define XHCI_PORT_RW ((1<<16)) +/* + * These bits are Reserved Zero (RsvdZ) and zero should be written to them: + * bits 2, 24, 28:31 + */ +#define XHCI_PORT_RZ ((1<<2) | (1<<24) | (0xf<<28)) + +/* + * Given a port state, this function returns a value that would result in the + * port being in the same state, if the value was written to the port status + * control register. + * Save Read Only (RO) bits and save read/write bits where + * writing a 0 clears the bit and writing a 1 sets the bit (RWS). + * For all other types (RW1S, RW1CS, RW, and RZ), writing a '0' has no effect. + */ +u32 xhci_port_state_to_neutral(u32 state) +{ + /* Save read-only status and port state */ + return (state & XHCI_PORT_RO) | (state & XHCI_PORT_RWS); +} + +/* + * find slot id based on port number. + * @port: The one-based port number from one of the two split roothubs. + */ +int xhci_find_slot_id_by_port(struct usb_hcd *hcd, struct xhci_hcd *xhci, + u16 port) +{ + int slot_id; + int i; + enum usb_device_speed speed; + + slot_id = 0; + for (i = 0; i < MAX_HC_SLOTS; i++) { + if (!xhci->devs[i]) + continue; + speed = xhci->devs[i]->udev->speed; + if (((speed == USB_SPEED_SUPER) == (hcd->speed == HCD_USB3)) + && xhci->devs[i]->fake_port == port) { + slot_id = i; + break; + } + } + + return slot_id; +} + +/* + * Stop device + * It issues stop endpoint command for EP 0 to 30. And wait the last command + * to complete. + * suspend will set to 1, if suspend bit need to set in command. + */ +static int xhci_stop_device(struct xhci_hcd *xhci, int slot_id, int suspend) +{ + struct xhci_virt_device *virt_dev; + struct xhci_command *cmd; + unsigned long flags; + int timeleft; + int ret; + int i; + + ret = 0; + virt_dev = xhci->devs[slot_id]; + cmd = xhci_alloc_command(xhci, false, true, GFP_NOIO); + if (!cmd) { + xhci_dbg(xhci, "Couldn't allocate command structure.\n"); + return -ENOMEM; + } + + spin_lock_irqsave(&xhci->lock, flags); + for (i = LAST_EP_INDEX; i > 0; i--) { + if (virt_dev->eps[i].ring && virt_dev->eps[i].ring->dequeue) + xhci_queue_stop_endpoint(xhci, slot_id, i, suspend); + } + cmd->command_trb = xhci->cmd_ring->enqueue; + list_add_tail(&cmd->cmd_list, &virt_dev->cmd_list); + xhci_queue_stop_endpoint(xhci, slot_id, 0, suspend); + xhci_ring_cmd_db(xhci); + spin_unlock_irqrestore(&xhci->lock, flags); + + /* Wait for last stop endpoint command to finish */ + timeleft = wait_for_completion_interruptible_timeout( + cmd->completion, + USB_CTRL_SET_TIMEOUT); + if (timeleft <= 0) { + xhci_warn(xhci, "%s while waiting for stop endpoint command\n", + timeleft == 0 ? "Timeout" : "Signal"); + spin_lock_irqsave(&xhci->lock, flags); + /* The timeout might have raced with the event ring handler, so + * only delete from the list if the item isn't poisoned. + */ + if (cmd->cmd_list.next != LIST_POISON1) + list_del(&cmd->cmd_list); + spin_unlock_irqrestore(&xhci->lock, flags); + ret = -ETIME; + goto command_cleanup; + } + +command_cleanup: + xhci_free_command(xhci, cmd); + return ret; +} + +/* + * Ring device, it rings the all doorbells unconditionally. + */ +void xhci_ring_device(struct xhci_hcd *xhci, int slot_id) +{ + int i; + + for (i = 0; i < LAST_EP_INDEX + 1; i++) + if (xhci->devs[slot_id]->eps[i].ring && + xhci->devs[slot_id]->eps[i].ring->dequeue) + xhci_ring_ep_doorbell(xhci, slot_id, i, 0); + + return; +} + +static void xhci_disable_port(struct usb_hcd *hcd, struct xhci_hcd *xhci, + u16 wIndex, __le32 __iomem *addr, u32 port_status) +{ + /* Don't allow the USB core to disable SuperSpeed ports. */ + if (hcd->speed == HCD_USB3) { + xhci_dbg(xhci, "Ignoring request to disable " + "SuperSpeed port.\n"); + return; + } + + /* Write 1 to disable the port */ + xhci_writel(xhci, port_status | PORT_PE, addr); + port_status = xhci_readl(xhci, addr); + xhci_dbg(xhci, "disable port, actual port %d status = 0x%x\n", + wIndex, port_status); +} + +static void xhci_clear_port_change_bit(struct xhci_hcd *xhci, u16 wValue, + u16 wIndex, __le32 __iomem *addr, u32 port_status) +{ + char *port_change_bit; + u32 status; + + switch (wValue) { + case USB_PORT_FEAT_C_RESET: + status = PORT_RC; + port_change_bit = "reset"; + break; + case USB_PORT_FEAT_C_BH_PORT_RESET: + status = PORT_WRC; + port_change_bit = "warm(BH) reset"; + break; + case USB_PORT_FEAT_C_CONNECTION: + status = PORT_CSC; + port_change_bit = "connect"; + break; + case USB_PORT_FEAT_C_OVER_CURRENT: + status = PORT_OCC; + port_change_bit = "over-current"; + break; + case USB_PORT_FEAT_C_ENABLE: + status = PORT_PEC; + port_change_bit = "enable/disable"; + break; + case USB_PORT_FEAT_C_SUSPEND: + status = PORT_PLC; + port_change_bit = "suspend/resume"; + break; + case USB_PORT_FEAT_C_PORT_LINK_STATE: + status = PORT_PLC; + port_change_bit = "link state"; + break; + default: + /* Should never happen */ + return; + } + /* Change bits are all write 1 to clear */ + xhci_writel(xhci, port_status | status, addr); + port_status = xhci_readl(xhci, addr); + xhci_dbg(xhci, "clear port %s change, actual port %d status = 0x%x\n", + port_change_bit, wIndex, port_status); +} + +static int xhci_get_ports(struct usb_hcd *hcd, __le32 __iomem ***port_array) +{ + int max_ports; + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + + if (hcd->speed == HCD_USB3) { + max_ports = xhci->num_usb3_ports; + *port_array = xhci->usb3_ports; + } else { + max_ports = xhci->num_usb2_ports; + *port_array = xhci->usb2_ports; + } + + return max_ports; +} + +void xhci_set_link_state(struct xhci_hcd *xhci, __le32 __iomem **port_array, + int port_id, u32 link_state) +{ + u32 temp; + + temp = xhci_readl(xhci, port_array[port_id]); + temp = xhci_port_state_to_neutral(temp); + temp &= ~PORT_PLS_MASK; + temp |= PORT_LINK_STROBE | link_state; + xhci_writel(xhci, temp, port_array[port_id]); +} + +void xhci_set_remote_wake_mask(struct xhci_hcd *xhci, + __le32 __iomem **port_array, int port_id, u16 wake_mask) +{ + u32 temp; + + temp = xhci_readl(xhci, port_array[port_id]); + temp = xhci_port_state_to_neutral(temp); + + if (wake_mask & USB_PORT_FEAT_REMOTE_WAKE_CONNECT) + temp |= PORT_WKCONN_E; + else + temp &= ~PORT_WKCONN_E; + + if (wake_mask & USB_PORT_FEAT_REMOTE_WAKE_DISCONNECT) + temp |= PORT_WKDISC_E; + else + temp &= ~PORT_WKDISC_E; + + if (wake_mask & USB_PORT_FEAT_REMOTE_WAKE_OVER_CURRENT) + temp |= PORT_WKOC_E; + else + temp &= ~PORT_WKOC_E; + + xhci_writel(xhci, temp, port_array[port_id]); +} + +/* Test and clear port RWC bit */ +void xhci_test_and_clear_bit(struct xhci_hcd *xhci, __le32 __iomem **port_array, + int port_id, u32 port_bit) +{ + u32 temp; + + temp = xhci_readl(xhci, port_array[port_id]); + if (temp & port_bit) { + temp = xhci_port_state_to_neutral(temp); + temp |= port_bit; + xhci_writel(xhci, temp, port_array[port_id]); + } +} + +int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, + u16 wIndex, char *buf, u16 wLength) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + int max_ports; + unsigned long flags; + u32 temp, status; + int retval = 0; + __le32 __iomem **port_array; + int slot_id; + struct xhci_bus_state *bus_state; + u16 link_state = 0; + u16 wake_mask = 0; + + max_ports = xhci_get_ports(hcd, &port_array); + bus_state = &xhci->bus_state[hcd_index(hcd)]; + + spin_lock_irqsave(&xhci->lock, flags); + switch (typeReq) { + case GetHubStatus: + /* No power source, over-current reported per port */ + memset(buf, 0, 4); + break; + case GetHubDescriptor: + /* Check to make sure userspace is asking for the USB 3.0 hub + * descriptor for the USB 3.0 roothub. If not, we stall the + * endpoint, like external hubs do. + */ + if (hcd->speed == HCD_USB3 && + (wLength < USB_DT_SS_HUB_SIZE || + wValue != (USB_DT_SS_HUB << 8))) { + xhci_dbg(xhci, "Wrong hub descriptor type for " + "USB 3.0 roothub.\n"); + goto error; + } + xhci_hub_descriptor(hcd, xhci, + (struct usb_hub_descriptor *) buf); + break; + case DeviceRequest | USB_REQ_GET_DESCRIPTOR: + if ((wValue & 0xff00) != (USB_DT_BOS << 8)) + goto error; + + if (hcd->speed != HCD_USB3) + goto error; + + memcpy(buf, &usb_bos_descriptor, + USB_DT_BOS_SIZE + USB_DT_USB_SS_CAP_SIZE); + temp = xhci_readl(xhci, &xhci->cap_regs->hcs_params3); + buf[12] = HCS_U1_LATENCY(temp); +#if defined(__VMKLNX__) + put_unaligned(cpu_to_le16(HCS_U2_LATENCY(temp)), &buf[13]); +#else + put_unaligned_le16(HCS_U2_LATENCY(temp), &buf[13]); +#endif + + spin_unlock_irqrestore(&xhci->lock, flags); + return USB_DT_BOS_SIZE + USB_DT_USB_SS_CAP_SIZE; + case GetPortStatus: + if (!wIndex || wIndex > max_ports) + goto error; + wIndex--; + status = 0; + temp = xhci_readl(xhci, port_array[wIndex]); + if (temp == 0xffffffff) { + retval = -ENODEV; + break; + } + xhci_dbg(xhci, "get port status, actual port %d status = 0x%x\n", wIndex, temp); + + /* wPortChange bits */ + if (temp & PORT_CSC) + status |= USB_PORT_STAT_C_CONNECTION << 16; + if (temp & PORT_PEC) + status |= USB_PORT_STAT_C_ENABLE << 16; + if ((temp & PORT_OCC)) + status |= USB_PORT_STAT_C_OVERCURRENT << 16; + if ((temp & PORT_RC)) + status |= USB_PORT_STAT_C_RESET << 16; + /* USB3.0 only */ + if (hcd->speed == HCD_USB3) { + if ((temp & PORT_PLC)) + status |= USB_PORT_STAT_C_LINK_STATE << 16; + if ((temp & PORT_WRC)) + status |= USB_PORT_STAT_C_BH_RESET << 16; + } + + if (hcd->speed != HCD_USB3) { + if ((temp & PORT_PLS_MASK) == XDEV_U3 + && (temp & PORT_POWER)) + status |= USB_PORT_STAT_SUSPEND; + } + if ((temp & PORT_PLS_MASK) == XDEV_RESUME && + !DEV_SUPERSPEED(temp)) { + if ((temp & PORT_RESET) || !(temp & PORT_PE)) + goto error; + if (time_after_eq(jiffies, + bus_state->resume_done[wIndex])) { + xhci_dbg(xhci, "Resume USB2 port %d\n", + wIndex + 1); + bus_state->resume_done[wIndex] = 0; + clear_bit(wIndex, &bus_state->resuming_ports); + xhci_set_link_state(xhci, port_array, wIndex, + XDEV_U0); + xhci_dbg(xhci, "set port %d resume\n", + wIndex + 1); + slot_id = xhci_find_slot_id_by_port(hcd, xhci, + wIndex + 1); + if (!slot_id) { + xhci_dbg(xhci, "slot_id is zero\n"); + goto error; + } + xhci_ring_device(xhci, slot_id); + bus_state->port_c_suspend |= 1 << wIndex; + bus_state->suspended_ports &= ~(1 << wIndex); + } else { + /* + * The resume has been signaling for less than + * 20ms. Report the port status as SUSPEND, + * let the usbcore check port status again + * and clear resume signaling later. + */ + status |= USB_PORT_STAT_SUSPEND; + } + } + if ((temp & PORT_PLS_MASK) == XDEV_U0 + && (temp & PORT_POWER) + && (bus_state->suspended_ports & (1 << wIndex))) { + bus_state->suspended_ports &= ~(1 << wIndex); + if (hcd->speed != HCD_USB3) + bus_state->port_c_suspend |= 1 << wIndex; + } + if (temp & PORT_CONNECT) { + status |= USB_PORT_STAT_CONNECTION; + status |= xhci_port_speed(temp); + } + if (temp & PORT_PE) + status |= USB_PORT_STAT_ENABLE; + if (temp & PORT_OC) + status |= USB_PORT_STAT_OVERCURRENT; + if (temp & PORT_RESET) + status |= USB_PORT_STAT_RESET; + if (temp & PORT_POWER) { + if (hcd->speed == HCD_USB3) + status |= USB_SS_PORT_STAT_POWER; + else + status |= USB_PORT_STAT_POWER; + } + /* Port Link State */ + if (hcd->speed == HCD_USB3) { + /* resume state is a xHCI internal state. + * Do not report it to usb core. + */ + if ((temp & PORT_PLS_MASK) != XDEV_RESUME) + status |= (temp & PORT_PLS_MASK); + } + if (bus_state->port_c_suspend & (1 << wIndex)) + status |= 1 << USB_PORT_FEAT_C_SUSPEND; + xhci_dbg(xhci, "Get port status returned 0x%x\n", status); + put_unaligned(cpu_to_le32(status), (__le32 *) buf); + break; + case SetPortFeature: + if (wValue == USB_PORT_FEAT_LINK_STATE) + link_state = (wIndex & 0xff00) >> 3; + if (wValue == USB_PORT_FEAT_REMOTE_WAKE_MASK) + wake_mask = wIndex & 0xff00; + wIndex &= 0xff; + if (!wIndex || wIndex > max_ports) + goto error; + wIndex--; + temp = xhci_readl(xhci, port_array[wIndex]); + if (temp == 0xffffffff) { + retval = -ENODEV; + break; + } + temp = xhci_port_state_to_neutral(temp); + /* FIXME: What new port features do we need to support? */ + switch (wValue) { + case USB_PORT_FEAT_SUSPEND: + temp = xhci_readl(xhci, port_array[wIndex]); + if ((temp & PORT_PLS_MASK) != XDEV_U0) { + /* Resume the port to U0 first */ + xhci_set_link_state(xhci, port_array, wIndex, + XDEV_U0); + spin_unlock_irqrestore(&xhci->lock, flags); + msleep(10); + spin_lock_irqsave(&xhci->lock, flags); + } + /* In spec software should not attempt to suspend + * a port unless the port reports that it is in the + * enabled (PED = ‘1’,PLS < ‘3’) state. + */ + temp = xhci_readl(xhci, port_array[wIndex]); + if ((temp & PORT_PE) == 0 || (temp & PORT_RESET) + || (temp & PORT_PLS_MASK) >= XDEV_U3) { + xhci_warn(xhci, "USB core suspending device " + "not in U0/U1/U2.\n"); + goto error; + } + + slot_id = xhci_find_slot_id_by_port(hcd, xhci, + wIndex + 1); + if (!slot_id) { + xhci_warn(xhci, "slot_id is zero\n"); + goto error; + } + /* unlock to execute stop endpoint commands */ + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_stop_device(xhci, slot_id, 1); + spin_lock_irqsave(&xhci->lock, flags); + + xhci_set_link_state(xhci, port_array, wIndex, XDEV_U3); + + spin_unlock_irqrestore(&xhci->lock, flags); + msleep(10); /* wait device to enter */ + spin_lock_irqsave(&xhci->lock, flags); + + temp = xhci_readl(xhci, port_array[wIndex]); + bus_state->suspended_ports |= 1 << wIndex; + break; + case USB_PORT_FEAT_LINK_STATE: + temp = xhci_readl(xhci, port_array[wIndex]); + /* Software should not attempt to set + * port link state above '5' (Rx.Detect) and the port + * must be enabled. + */ + if ((temp & PORT_PE) == 0 || + (link_state > USB_SS_PORT_LS_RX_DETECT)) { + xhci_warn(xhci, "Cannot set link state.\n"); + goto error; + } + + if (link_state == USB_SS_PORT_LS_U3) { + slot_id = xhci_find_slot_id_by_port(hcd, xhci, + wIndex + 1); + if (slot_id) { + /* unlock to execute stop endpoint + * commands */ + spin_unlock_irqrestore(&xhci->lock, + flags); + xhci_stop_device(xhci, slot_id, 1); + spin_lock_irqsave(&xhci->lock, flags); + } + } + + xhci_set_link_state(xhci, port_array, wIndex, + link_state); + + spin_unlock_irqrestore(&xhci->lock, flags); + msleep(20); /* wait device to enter */ + spin_lock_irqsave(&xhci->lock, flags); + + temp = xhci_readl(xhci, port_array[wIndex]); + if (link_state == USB_SS_PORT_LS_U3) + bus_state->suspended_ports |= 1 << wIndex; + break; + case USB_PORT_FEAT_POWER: + /* + * Turn on ports, even if there isn't per-port switching. + * HC will report connect events even before this is set. + * However, khubd will ignore the roothub events until + * the roothub is registered. + */ + xhci_writel(xhci, temp | PORT_POWER, + port_array[wIndex]); + + temp = xhci_readl(xhci, port_array[wIndex]); + xhci_dbg(xhci, "set port power, actual port %d status = 0x%x\n", wIndex, temp); + break; + case USB_PORT_FEAT_RESET: + temp = (temp | PORT_RESET); + xhci_writel(xhci, temp, port_array[wIndex]); + + temp = xhci_readl(xhci, port_array[wIndex]); + xhci_dbg(xhci, "set port reset, actual port %d status = 0x%x\n", wIndex, temp); + break; + case USB_PORT_FEAT_REMOTE_WAKE_MASK: + xhci_set_remote_wake_mask(xhci, port_array, + wIndex, wake_mask); + temp = xhci_readl(xhci, port_array[wIndex]); + xhci_dbg(xhci, "set port remote wake mask, " + "actual port %d status = 0x%x\n", + wIndex, temp); + break; + case USB_PORT_FEAT_BH_PORT_RESET: + temp |= PORT_WR; + xhci_writel(xhci, temp, port_array[wIndex]); + + temp = xhci_readl(xhci, port_array[wIndex]); + break; + default: + goto error; + } + /* unblock any posted writes */ + temp = xhci_readl(xhci, port_array[wIndex]); + break; + case ClearPortFeature: + if (!wIndex || wIndex > max_ports) + goto error; + wIndex--; + temp = xhci_readl(xhci, port_array[wIndex]); + if (temp == 0xffffffff) { + retval = -ENODEV; + break; + } + /* FIXME: What new port features do we need to support? */ + temp = xhci_port_state_to_neutral(temp); + switch (wValue) { + case USB_PORT_FEAT_SUSPEND: + temp = xhci_readl(xhci, port_array[wIndex]); + xhci_dbg(xhci, "clear USB_PORT_FEAT_SUSPEND\n"); + xhci_dbg(xhci, "PORTSC %04x\n", temp); + if (temp & PORT_RESET) + goto error; + if ((temp & PORT_PLS_MASK) == XDEV_U3) { + if ((temp & PORT_PE) == 0) + goto error; + + xhci_set_link_state(xhci, port_array, wIndex, + XDEV_RESUME); + spin_unlock_irqrestore(&xhci->lock, flags); + msleep(20); + spin_lock_irqsave(&xhci->lock, flags); + xhci_set_link_state(xhci, port_array, wIndex, + XDEV_U0); + } + bus_state->port_c_suspend |= 1 << wIndex; + + slot_id = xhci_find_slot_id_by_port(hcd, xhci, + wIndex + 1); + if (!slot_id) { + xhci_dbg(xhci, "slot_id is zero\n"); + goto error; + } + xhci_ring_device(xhci, slot_id); + break; + case USB_PORT_FEAT_C_SUSPEND: + bus_state->port_c_suspend &= ~(1 << wIndex); + case USB_PORT_FEAT_C_RESET: + case USB_PORT_FEAT_C_BH_PORT_RESET: + case USB_PORT_FEAT_C_CONNECTION: + case USB_PORT_FEAT_C_OVER_CURRENT: + case USB_PORT_FEAT_C_ENABLE: + case USB_PORT_FEAT_C_PORT_LINK_STATE: + xhci_clear_port_change_bit(xhci, wValue, wIndex, + port_array[wIndex], temp); + break; + case USB_PORT_FEAT_ENABLE: + xhci_disable_port(hcd, xhci, wIndex, + port_array[wIndex], temp); + break; + default: + goto error; + } + break; + default: +error: + /* "stall" on error */ + retval = -EPIPE; + } + spin_unlock_irqrestore(&xhci->lock, flags); + return retval; +} + +/* + * Returns 0 if the status hasn't changed, or the number of bytes in buf. + * Ports are 0-indexed from the HCD point of view, + * and 1-indexed from the USB core pointer of view. + * + * Note that the status change bits will be cleared as soon as a port status + * change event is generated, so we use the saved status from that event. + */ +int xhci_hub_status_data(struct usb_hcd *hcd, char *buf) +{ + unsigned long flags; + u32 temp, status; + u32 mask; + int i, retval; + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + int max_ports; + __le32 __iomem **port_array; + struct xhci_bus_state *bus_state; + + max_ports = xhci_get_ports(hcd, &port_array); + bus_state = &xhci->bus_state[hcd_index(hcd)]; + + /* Initial status is no changes */ + retval = (max_ports + 8) / 8; + memset(buf, 0, retval); + + /* + * Inform the usbcore about resume-in-progress by returning + * a non-zero value even if there are no status changes. + */ + status = bus_state->resuming_ports; + + mask = PORT_CSC | PORT_PEC | PORT_OCC | PORT_PLC | PORT_WRC; + + spin_lock_irqsave(&xhci->lock, flags); + /* For each port, did anything change? If so, set that bit in buf. */ + for (i = 0; i < max_ports; i++) { + temp = xhci_readl(xhci, port_array[i]); + if (temp == 0xffffffff) { + retval = -ENODEV; + break; + } + if ((temp & mask) != 0 || + (bus_state->port_c_suspend & 1 << i) || + (bus_state->resume_done[i] && time_after_eq( + jiffies, bus_state->resume_done[i]))) { + buf[(i + 1) / 8] |= 1 << (i + 1) % 8; + status = 1; + } + } + spin_unlock_irqrestore(&xhci->lock, flags); + return status ? retval : 0; +} + +#ifdef CONFIG_PM + +int xhci_bus_suspend(struct usb_hcd *hcd) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + int max_ports, port_index; + __le32 __iomem **port_array; + struct xhci_bus_state *bus_state; + unsigned long flags; + + max_ports = xhci_get_ports(hcd, &port_array); + bus_state = &xhci->bus_state[hcd_index(hcd)]; + + spin_lock_irqsave(&xhci->lock, flags); + + if (hcd->self.root_hub->do_remote_wakeup) { + if (bus_state->resuming_ports) { + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_dbg(xhci, "suspend failed because " + "a port is resuming\n"); + return -EBUSY; + } + } + + port_index = max_ports; + bus_state->bus_suspended = 0; + while (port_index--) { + /* suspend the port if the port is not suspended */ + u32 t1, t2; + int slot_id; + + t1 = xhci_readl(xhci, port_array[port_index]); + t2 = xhci_port_state_to_neutral(t1); + + if ((t1 & PORT_PE) && !(t1 & PORT_PLS_MASK)) { + xhci_dbg(xhci, "port %d not suspended\n", port_index); + slot_id = xhci_find_slot_id_by_port(hcd, xhci, + port_index + 1); + if (slot_id) { + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_stop_device(xhci, slot_id, 1); + spin_lock_irqsave(&xhci->lock, flags); + } + t2 &= ~PORT_PLS_MASK; + t2 |= PORT_LINK_STROBE | XDEV_U3; + set_bit(port_index, &bus_state->bus_suspended); + } + /* USB core sets remote wake mask for USB 3.0 hubs, + * including the USB 3.0 roothub, but only if CONFIG_USB_SUSPEND + * is enabled, so also enable remote wake here. + */ + if (hcd->self.root_hub->do_remote_wakeup) { + if (t1 & PORT_CONNECT) { + t2 |= PORT_WKOC_E | PORT_WKDISC_E; + t2 &= ~PORT_WKCONN_E; + } else { + t2 |= PORT_WKOC_E | PORT_WKCONN_E; + t2 &= ~PORT_WKDISC_E; + } + } else + t2 &= ~PORT_WAKE_BITS; + + t1 = xhci_port_state_to_neutral(t1); + if (t1 != t2) + xhci_writel(xhci, t2, port_array[port_index]); + + if (hcd->speed != HCD_USB3) { + /* enable remote wake up for USB 2.0 */ + __le32 __iomem *addr; + u32 tmp; + + /* Add one to the port status register address to get + * the port power control register address. + */ + addr = port_array[port_index] + 1; + tmp = xhci_readl(xhci, addr); + tmp |= PORT_RWE; + xhci_writel(xhci, tmp, addr); + } + } + hcd->state = HC_STATE_SUSPENDED; + bus_state->next_statechange = jiffies + msecs_to_jiffies(10); + spin_unlock_irqrestore(&xhci->lock, flags); + return 0; +} + +int xhci_bus_resume(struct usb_hcd *hcd) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + int max_ports, port_index; + __le32 __iomem **port_array; + struct xhci_bus_state *bus_state; + u32 temp; + unsigned long flags; + + max_ports = xhci_get_ports(hcd, &port_array); + bus_state = &xhci->bus_state[hcd_index(hcd)]; + + if (time_before(jiffies, bus_state->next_statechange)) + msleep(5); + + spin_lock_irqsave(&xhci->lock, flags); + if (!HCD_HW_ACCESSIBLE(hcd)) { + spin_unlock_irqrestore(&xhci->lock, flags); + return -ESHUTDOWN; + } + + /* delay the irqs */ + temp = xhci_readl(xhci, &xhci->op_regs->command); + temp &= ~CMD_EIE; + xhci_writel(xhci, temp, &xhci->op_regs->command); + + port_index = max_ports; + while (port_index--) { + /* Check whether need resume ports. If needed + resume port and disable remote wakeup */ + u32 temp; + int slot_id; + + temp = xhci_readl(xhci, port_array[port_index]); + if (DEV_SUPERSPEED(temp)) + temp &= ~(PORT_RWC_BITS | PORT_CEC | PORT_WAKE_BITS); + else + temp &= ~(PORT_RWC_BITS | PORT_WAKE_BITS); + if (test_bit(port_index, &bus_state->bus_suspended) && + (temp & PORT_PLS_MASK)) { + if (DEV_SUPERSPEED(temp)) { + xhci_set_link_state(xhci, port_array, + port_index, XDEV_U0); + } else { + xhci_set_link_state(xhci, port_array, + port_index, XDEV_RESUME); + + spin_unlock_irqrestore(&xhci->lock, flags); + msleep(20); + spin_lock_irqsave(&xhci->lock, flags); + + xhci_set_link_state(xhci, port_array, + port_index, XDEV_U0); + } + /* wait for the port to enter U0 and report port link + * state change. + */ + spin_unlock_irqrestore(&xhci->lock, flags); + msleep(20); + spin_lock_irqsave(&xhci->lock, flags); + + /* Clear PLC */ + xhci_test_and_clear_bit(xhci, port_array, port_index, + PORT_PLC); + + slot_id = xhci_find_slot_id_by_port(hcd, + xhci, port_index + 1); + if (slot_id) + xhci_ring_device(xhci, slot_id); + } else + xhci_writel(xhci, temp, port_array[port_index]); + + if (hcd->speed != HCD_USB3) { + /* disable remote wake up for USB 2.0 */ + __le32 __iomem *addr; + u32 tmp; + + /* Add one to the port status register address to get + * the port power control register address. + */ + addr = port_array[port_index] + 1; + tmp = xhci_readl(xhci, addr); + tmp &= ~PORT_RWE; + xhci_writel(xhci, tmp, addr); + } + } + + (void) xhci_readl(xhci, &xhci->op_regs->command); + + bus_state->next_statechange = jiffies + msecs_to_jiffies(5); + /* re-enable irqs */ + temp = xhci_readl(xhci, &xhci->op_regs->command); + temp |= CMD_EIE; + xhci_writel(xhci, temp, &xhci->op_regs->command); + temp = xhci_readl(xhci, &xhci->op_regs->command); + + spin_unlock_irqrestore(&xhci->lock, flags); + return 0; +} + +#endif /* CONFIG_PM */ diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-mem.c b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-mem.c new file mode 100644 index 0000000000000000000000000000000000000000..7a220376c690259ce2df48f5a70defca5e7d093e --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-mem.c @@ -0,0 +1,2530 @@ +/* + * xHCI host controller driver + * + * Copyright (C) 2008 Intel Corp. + * + * Author: Sarah Sharp + * Some code borrowed from the Linux EHCI driver. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include + +#include "xhci.h" + +/* + * Allocates a generic ring segment from the ring pool, sets the dma address, + * initializes the segment to zero, and sets the private next pointer to NULL. + * + * Section 4.11.1.1: + * "All components of all Command and Transfer TRBs shall be initialized to '0'" + */ +static struct xhci_segment *xhci_segment_alloc(struct xhci_hcd *xhci, + unsigned int cycle_state, gfp_t flags) +{ + struct xhci_segment *seg; + dma_addr_t dma; + int i; + + seg = kzalloc(sizeof *seg, flags); + if (!seg) + return NULL; + + seg->trbs = dma_pool_alloc(xhci->segment_pool, flags, &dma); + if (!seg->trbs) { + kfree(seg); + return NULL; + } + + memset(seg->trbs, 0, SEGMENT_SIZE); + /* If the cycle state is 0, set the cycle bit to 1 for all the TRBs */ + if (cycle_state == 0) { + for (i = 0; i < TRBS_PER_SEGMENT; i++) + seg->trbs[i].link.control |= TRB_CYCLE; + } + seg->dma = dma; + seg->next = NULL; + + return seg; +} + +static void xhci_segment_free(struct xhci_hcd *xhci, struct xhci_segment *seg) +{ + if (seg->trbs) { + dma_pool_free(xhci->segment_pool, seg->trbs, seg->dma); + seg->trbs = NULL; + } + kfree(seg); +} + +static void xhci_free_segments_for_ring(struct xhci_hcd *xhci, + struct xhci_segment *first) +{ + struct xhci_segment *seg; + + seg = first->next; + while (seg != first) { + struct xhci_segment *next = seg->next; + xhci_segment_free(xhci, seg); + seg = next; + } + xhci_segment_free(xhci, first); +} + +/* + * Make the prev segment point to the next segment. + * + * Change the last TRB in the prev segment to be a Link TRB which points to the + * DMA address of the next segment. The caller needs to set any Link TRB + * related flags, such as End TRB, Toggle Cycle, and no snoop. + */ +static void xhci_link_segments(struct xhci_hcd *xhci, struct xhci_segment *prev, + struct xhci_segment *next, enum xhci_ring_type type) +{ + u32 val; + + if (!prev || !next) + return; + prev->next = next; + if (type != TYPE_EVENT) { + prev->trbs[TRBS_PER_SEGMENT-1].link.segment_ptr = + cpu_to_le64(next->dma); + + /* Set the last TRB in the segment to have a TRB type ID of Link TRB */ + val = le32_to_cpu(prev->trbs[TRBS_PER_SEGMENT-1].link.control); + val &= ~TRB_TYPE_BITMASK; + val |= TRB_TYPE(TRB_LINK); + /* Always set the chain bit with 0.95 hardware */ + /* Set chain bit for isoc rings on AMD 0.96 host */ + if (xhci_link_trb_quirk(xhci) || + (type == TYPE_ISOC && + (xhci->quirks & XHCI_AMD_0x96_HOST))) + val |= TRB_CHAIN; + prev->trbs[TRBS_PER_SEGMENT-1].link.control = cpu_to_le32(val); + } +} + +/* + * Link the ring to the new segments. + * Set Toggle Cycle for the new ring if needed. + */ +static void xhci_link_rings(struct xhci_hcd *xhci, struct xhci_ring *ring, + struct xhci_segment *first, struct xhci_segment *last, + unsigned int num_segs) +{ + struct xhci_segment *next; + + if (!ring || !first || !last) + return; + + next = ring->enq_seg->next; + xhci_link_segments(xhci, ring->enq_seg, first, ring->type); + xhci_link_segments(xhci, last, next, ring->type); + ring->num_segs += num_segs; + ring->num_trbs_free += (TRBS_PER_SEGMENT - 1) * num_segs; + + if (ring->type != TYPE_EVENT && ring->enq_seg == ring->last_seg) { + ring->last_seg->trbs[TRBS_PER_SEGMENT-1].link.control + &= ~cpu_to_le32(LINK_TOGGLE); + last->trbs[TRBS_PER_SEGMENT-1].link.control + |= cpu_to_le32(LINK_TOGGLE); + ring->last_seg = last; + } +} + +/* XXX: Do we need the hcd structure in all these functions? */ +void xhci_ring_free(struct xhci_hcd *xhci, struct xhci_ring *ring) +{ + if (!ring) + return; + + if (ring->first_seg) + xhci_free_segments_for_ring(xhci, ring->first_seg); + + kfree(ring); +} + +static void xhci_initialize_ring_info(struct xhci_ring *ring, + unsigned int cycle_state) +{ + /* The ring is empty, so the enqueue pointer == dequeue pointer */ + ring->enqueue = ring->first_seg->trbs; + ring->enq_seg = ring->first_seg; + ring->dequeue = ring->enqueue; + ring->deq_seg = ring->first_seg; + /* The ring is initialized to 0. The producer must write 1 to the cycle + * bit to handover ownership of the TRB, so PCS = 1. The consumer must + * compare CCS to the cycle bit to check ownership, so CCS = 1. + * + * New rings are initialized with cycle state equal to 1; if we are + * handling ring expansion, set the cycle state equal to the old ring. + */ + ring->cycle_state = cycle_state; + /* Not necessary for new rings, but needed for re-initialized rings */ + ring->enq_updates = 0; + ring->deq_updates = 0; + + /* + * Each segment has a link TRB, and leave an extra TRB for SW + * accounting purpose + */ + ring->num_trbs_free = ring->num_segs * (TRBS_PER_SEGMENT - 1) - 1; +} + +/* Allocate segments and link them for a ring */ +static int xhci_alloc_segments_for_ring(struct xhci_hcd *xhci, + struct xhci_segment **first, struct xhci_segment **last, + unsigned int num_segs, unsigned int cycle_state, + enum xhci_ring_type type, gfp_t flags) +{ + struct xhci_segment *prev; + + prev = xhci_segment_alloc(xhci, cycle_state, flags); + if (!prev) + return -ENOMEM; + num_segs--; + + *first = prev; + while (num_segs > 0) { + struct xhci_segment *next; + + next = xhci_segment_alloc(xhci, cycle_state, flags); + if (!next) { + xhci_free_segments_for_ring(xhci, *first); + return -ENOMEM; + } + xhci_link_segments(xhci, prev, next, type); + + prev = next; + num_segs--; + } + xhci_link_segments(xhci, prev, *first, type); + *last = prev; + + return 0; +} + +/** + * Create a new ring with zero or more segments. + * + * Link each segment together into a ring. + * Set the end flag and the cycle toggle bit on the last segment. + * See section 4.9.1 and figures 15 and 16. + */ +static struct xhci_ring *xhci_ring_alloc(struct xhci_hcd *xhci, + unsigned int num_segs, unsigned int cycle_state, + enum xhci_ring_type type, gfp_t flags) +{ + struct xhci_ring *ring; + int ret; + + ring = kzalloc(sizeof *(ring), flags); + if (!ring) + return NULL; + + ring->num_segs = num_segs; + INIT_LIST_HEAD(&ring->td_list); + ring->type = type; + if (num_segs == 0) + return ring; + + ret = xhci_alloc_segments_for_ring(xhci, &ring->first_seg, + &ring->last_seg, num_segs, cycle_state, type, flags); + if (ret) + goto fail; + + /* Only event ring does not use link TRB */ + if (type != TYPE_EVENT) { + /* See section 4.9.2.1 and 6.4.4.1 */ + ring->last_seg->trbs[TRBS_PER_SEGMENT - 1].link.control |= + cpu_to_le32(LINK_TOGGLE); + } + xhci_initialize_ring_info(ring, cycle_state); + return ring; + +fail: + xhci_ring_free(xhci, ring); + return NULL; +} + +void xhci_free_or_cache_endpoint_ring(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + unsigned int ep_index) +{ + int rings_cached; + + rings_cached = virt_dev->num_rings_cached; + if (rings_cached < XHCI_MAX_RINGS_CACHED) { + virt_dev->ring_cache[rings_cached] = + virt_dev->eps[ep_index].ring; + virt_dev->num_rings_cached++; + xhci_dbg(xhci, "Cached old ring, " + "%d ring%s cached\n", + virt_dev->num_rings_cached, + (virt_dev->num_rings_cached > 1) ? "s" : ""); + } else { + xhci_ring_free(xhci, virt_dev->eps[ep_index].ring); + xhci_dbg(xhci, "Ring cache full (%d rings), " + "freeing ring\n", + virt_dev->num_rings_cached); + } + virt_dev->eps[ep_index].ring = NULL; +} + +/* Zero an endpoint ring (except for link TRBs) and move the enqueue and dequeue + * pointers to the beginning of the ring. + */ +static void xhci_reinit_cached_ring(struct xhci_hcd *xhci, + struct xhci_ring *ring, unsigned int cycle_state, + enum xhci_ring_type type) +{ + struct xhci_segment *seg = ring->first_seg; + int i; + + do { + memset(seg->trbs, 0, + sizeof(union xhci_trb)*TRBS_PER_SEGMENT); + if (cycle_state == 0) { + for (i = 0; i < TRBS_PER_SEGMENT; i++) + seg->trbs[i].link.control |= TRB_CYCLE; + } + /* All endpoint rings have link TRBs */ + xhci_link_segments(xhci, seg, seg->next, type); + seg = seg->next; + } while (seg != ring->first_seg); + ring->type = type; + xhci_initialize_ring_info(ring, cycle_state); + /* td list should be empty since all URBs have been cancelled, + * but just in case... + */ + INIT_LIST_HEAD(&ring->td_list); +} + +/* + * Expand an existing ring. + * Look for a cached ring or allocate a new ring which has same segment numbers + * and link the two rings. + */ +int xhci_ring_expansion(struct xhci_hcd *xhci, struct xhci_ring *ring, + unsigned int num_trbs, gfp_t flags) +{ + struct xhci_segment *first; + struct xhci_segment *last; + unsigned int num_segs; + unsigned int num_segs_needed; + int ret; + + num_segs_needed = (num_trbs + (TRBS_PER_SEGMENT - 1) - 1) / + (TRBS_PER_SEGMENT - 1); + + /* Allocate number of segments we needed, or double the ring size */ + num_segs = ring->num_segs > num_segs_needed ? + ring->num_segs : num_segs_needed; + + ret = xhci_alloc_segments_for_ring(xhci, &first, &last, + num_segs, ring->cycle_state, ring->type, flags); + if (ret) + return -ENOMEM; + + xhci_link_rings(xhci, ring, first, last, num_segs); + xhci_dbg(xhci, "ring expansion succeed, now has %d segments\n", + ring->num_segs); + + return 0; +} + +#define CTX_SIZE(_hcc) (HCC_64BYTE_CONTEXT(_hcc) ? 64 : 32) + +static struct xhci_container_ctx *xhci_alloc_container_ctx(struct xhci_hcd *xhci, + int type, gfp_t flags) +{ + struct xhci_container_ctx *ctx = kzalloc(sizeof(*ctx), flags); + if (!ctx) + return NULL; + + BUG_ON((type != XHCI_CTX_TYPE_DEVICE) && (type != XHCI_CTX_TYPE_INPUT)); + ctx->type = type; + ctx->size = HCC_64BYTE_CONTEXT(xhci->hcc_params) ? 2048 : 1024; + if (type == XHCI_CTX_TYPE_INPUT) + ctx->size += CTX_SIZE(xhci->hcc_params); + + ctx->bytes = dma_pool_alloc(xhci->device_pool, flags, &ctx->dma); + memset(ctx->bytes, 0, ctx->size); + return ctx; +} + +static void xhci_free_container_ctx(struct xhci_hcd *xhci, + struct xhci_container_ctx *ctx) +{ + if (!ctx) + return; + dma_pool_free(xhci->device_pool, ctx->bytes, ctx->dma); + kfree(ctx); +} + +struct xhci_input_control_ctx *xhci_get_input_control_ctx(struct xhci_hcd *xhci, + struct xhci_container_ctx *ctx) +{ + BUG_ON(ctx->type != XHCI_CTX_TYPE_INPUT); + return (struct xhci_input_control_ctx *)ctx->bytes; +} + +struct xhci_slot_ctx *xhci_get_slot_ctx(struct xhci_hcd *xhci, + struct xhci_container_ctx *ctx) +{ + if (ctx->type == XHCI_CTX_TYPE_DEVICE) + return (struct xhci_slot_ctx *)ctx->bytes; + + return (struct xhci_slot_ctx *) + (ctx->bytes + CTX_SIZE(xhci->hcc_params)); +} + +struct xhci_ep_ctx *xhci_get_ep_ctx(struct xhci_hcd *xhci, + struct xhci_container_ctx *ctx, + unsigned int ep_index) +{ + /* increment ep index by offset of start of ep ctx array */ + ep_index++; + if (ctx->type == XHCI_CTX_TYPE_INPUT) + ep_index++; + + return (struct xhci_ep_ctx *) + (ctx->bytes + (ep_index * CTX_SIZE(xhci->hcc_params))); +} + + +/***************** Streams structures manipulation *************************/ + +static void xhci_free_stream_ctx(struct xhci_hcd *xhci, + unsigned int num_stream_ctxs, + struct xhci_stream_ctx *stream_ctx, dma_addr_t dma) +{ + struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); + + if (num_stream_ctxs > MEDIUM_STREAM_ARRAY_SIZE) + dma_free_coherent(&pdev->dev, + sizeof(struct xhci_stream_ctx)*num_stream_ctxs, + stream_ctx, dma); + else if (num_stream_ctxs <= SMALL_STREAM_ARRAY_SIZE) + return dma_pool_free(xhci->small_streams_pool, + stream_ctx, dma); + else + return dma_pool_free(xhci->medium_streams_pool, + stream_ctx, dma); +} + +/* + * The stream context array for each endpoint with bulk streams enabled can + * vary in size, based on: + * - how many streams the endpoint supports, + * - the maximum primary stream array size the host controller supports, + * - and how many streams the device driver asks for. + * + * The stream context array must be a power of 2, and can be as small as + * 64 bytes or as large as 1MB. + */ +static struct xhci_stream_ctx *xhci_alloc_stream_ctx(struct xhci_hcd *xhci, + unsigned int num_stream_ctxs, dma_addr_t *dma, + gfp_t mem_flags) +{ + struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); + + if (num_stream_ctxs > MEDIUM_STREAM_ARRAY_SIZE) + return dma_alloc_coherent(&pdev->dev, + sizeof(struct xhci_stream_ctx)*num_stream_ctxs, + dma, mem_flags); + else if (num_stream_ctxs <= SMALL_STREAM_ARRAY_SIZE) + return dma_pool_alloc(xhci->small_streams_pool, + mem_flags, dma); + else + return dma_pool_alloc(xhci->medium_streams_pool, + mem_flags, dma); +} + +struct xhci_ring *xhci_dma_to_transfer_ring( + struct xhci_virt_ep *ep, + u64 address) +{ + if (ep->ep_state & EP_HAS_STREAMS) +#if defined(__VMKLNX__) + { + struct xhci_ring *ret_ring; + + spin_lock_irq(&ep->stream_info->lock); + ret_ring = radix_tree_lookup(&ep->stream_info->trb_address_map, + address >> SEGMENT_SHIFT); + spin_unlock_irq(&ep->stream_info->lock); + return ret_ring; + } +#else + return radix_tree_lookup(&ep->stream_info->trb_address_map, + address >> SEGMENT_SHIFT); +#endif /* __VMKLNX__ */ + return ep->ring; +} + +/* Only use this when you know stream_info is valid */ +#ifdef CONFIG_USB_XHCI_HCD_DEBUGGING +static struct xhci_ring *dma_to_stream_ring( + struct xhci_stream_info *stream_info, + u64 address) +{ +#if defined(__VMKLNX__) + struct xhci_ring *ret_ring; + + spin_lock_irq(&stream_info->lock); + ret_ring = radix_tree_lookup(&stream_info->trb_address_map, + address >> SEGMENT_SHIFT); + spin_unlock_irq(&stream_info->lock); + return ret_ring; +#else + return radix_tree_lookup(&stream_info->trb_address_map, + address >> SEGMENT_SHIFT); +#endif /* __VMKLNX__ */ +} +#endif /* CONFIG_USB_XHCI_HCD_DEBUGGING */ + +struct xhci_ring *xhci_stream_id_to_ring( + struct xhci_virt_device *dev, + unsigned int ep_index, + unsigned int stream_id) +{ + struct xhci_virt_ep *ep = &dev->eps[ep_index]; + + if (stream_id == 0) + return ep->ring; + if (!ep->stream_info) + return NULL; + + if (stream_id > ep->stream_info->num_streams) + return NULL; + return ep->stream_info->stream_rings[stream_id]; +} + +#ifdef CONFIG_USB_XHCI_HCD_DEBUGGING +static int xhci_test_radix_tree(struct xhci_hcd *xhci, + unsigned int num_streams, + struct xhci_stream_info *stream_info) +{ + u32 cur_stream; + struct xhci_ring *cur_ring; + u64 addr; + + // XXX Grab lock here and hold until we return or call xhci_warn() +#if defined(__VMKLNX__) + spin_lock_irq(&stream_info->lock); +#endif /* __VMKLNX__ */ + for (cur_stream = 1; cur_stream < num_streams; cur_stream++) { + struct xhci_ring *mapped_ring; + int trb_size = sizeof(union xhci_trb); + + cur_ring = stream_info->stream_rings[cur_stream]; + for (addr = cur_ring->first_seg->dma; + addr < cur_ring->first_seg->dma + SEGMENT_SIZE; + addr += trb_size) { + mapped_ring = dma_to_stream_ring(stream_info, addr); + if (cur_ring != mapped_ring) { +#if defined(__VMKLNX__) + spin_unlock_irq(&stream_info->lock); +#endif /* __VMKLNX__ */ + xhci_warn(xhci, "WARN: DMA address 0x%08llx " + "didn't map to stream ID %u; " + "mapped to ring %p\n", + (unsigned long long) addr, + cur_stream, + mapped_ring); + return -EINVAL; + } + } + /* One TRB after the end of the ring segment shouldn't return a + * pointer to the current ring (although it may be a part of a + * different ring). + */ + mapped_ring = dma_to_stream_ring(stream_info, addr); + if (mapped_ring != cur_ring) { + /* One TRB before should also fail */ + addr = cur_ring->first_seg->dma - trb_size; + mapped_ring = dma_to_stream_ring(stream_info, addr); + } + if (mapped_ring == cur_ring) { +#if defined(__VMKLNX__) + spin_unlock_irq(&stream_info->lock); +#endif /* __VMKLNX__ */ + xhci_warn(xhci, "WARN: Bad DMA address 0x%08llx " + "mapped to valid stream ID %u; " + "mapped ring = %p\n", + (unsigned long long) addr, + cur_stream, + mapped_ring); + return -EINVAL; + } + } +#if defined(__VMKLNX__) + spin_unlock_irq(&stream_info->lock); +#endif /* __VMKLNX__ */ + return 0; +} +#endif /* CONFIG_USB_XHCI_HCD_DEBUGGING */ + +/* + * Change an endpoint's internal structure so it supports stream IDs. The + * number of requested streams includes stream 0, which cannot be used by device + * drivers. + * + * The number of stream contexts in the stream context array may be bigger than + * the number of streams the driver wants to use. This is because the number of + * stream context array entries must be a power of two. + * + * We need a radix tree for mapping physical addresses of TRBs to which stream + * ID they belong to. We need to do this because the host controller won't tell + * us which stream ring the TRB came from. We could store the stream ID in an + * event data TRB, but that doesn't help us for the cancellation case, since the + * endpoint may stop before it reaches that event data TRB. + * + * The radix tree maps the upper portion of the TRB DMA address to a ring + * segment that has the same upper portion of DMA addresses. For example, say I + * have segments of size 1KB, that are always 64-byte aligned. A segment may + * start at 0x10c91000 and end at 0x10c913f0. If I use the upper 10 bits, the + * key to the stream ID is 0x43244. I can use the DMA address of the TRB to + * pass the radix tree a key to get the right stream ID: + * + * 0x10c90fff >> 10 = 0x43243 + * 0x10c912c0 >> 10 = 0x43244 + * 0x10c91400 >> 10 = 0x43245 + * + * Obviously, only those TRBs with DMA addresses that are within the segment + * will make the radix tree return the stream ID for that ring. + * + * Caveats for the radix tree: + * + * The radix tree uses an unsigned long as a key pair. On 32-bit systems, an + * unsigned long will be 32-bits; on a 64-bit system an unsigned long will be + * 64-bits. Since we only request 32-bit DMA addresses, we can use that as the + * key on 32-bit or 64-bit systems (it would also be fine if we asked for 64-bit + * PCI DMA addresses on a 64-bit system). There might be a problem on 32-bit + * extended systems (where the DMA address can be bigger than 32-bits), + * if we allow the PCI dma mask to be bigger than 32-bits. So don't do that. + */ +struct xhci_stream_info *xhci_alloc_stream_info(struct xhci_hcd *xhci, + unsigned int num_stream_ctxs, + unsigned int num_streams, gfp_t mem_flags) +{ + struct xhci_stream_info *stream_info; + u32 cur_stream; + struct xhci_ring *cur_ring; + unsigned long key; + u64 addr; + int ret; + + xhci_dbg(xhci, "Allocating %u streams and %u " + "stream context array entries.\n", + num_streams, num_stream_ctxs); + if (xhci->cmd_ring_reserved_trbs == MAX_RSVD_CMD_TRBS) { + xhci_dbg(xhci, "Command ring has no reserved TRBs available\n"); + return NULL; + } + xhci->cmd_ring_reserved_trbs++; + + stream_info = kzalloc(sizeof(struct xhci_stream_info), mem_flags); + if (!stream_info) + goto cleanup_trbs; + + stream_info->num_streams = num_streams; + stream_info->num_stream_ctxs = num_stream_ctxs; + + /* Initialize the array of virtual pointers to stream rings. */ + stream_info->stream_rings = kzalloc( + sizeof(struct xhci_ring *)*num_streams, + mem_flags); + if (!stream_info->stream_rings) + goto cleanup_info; + + /* Initialize the array of DMA addresses for stream rings for the HW. */ + stream_info->stream_ctx_array = xhci_alloc_stream_ctx(xhci, + num_stream_ctxs, &stream_info->ctx_array_dma, + mem_flags); + if (!stream_info->stream_ctx_array) + goto cleanup_ctx; + memset(stream_info->stream_ctx_array, 0, + sizeof(struct xhci_stream_ctx)*num_stream_ctxs); + + /* Allocate everything needed to free the stream rings later */ + stream_info->free_streams_command = + xhci_alloc_command(xhci, true, true, mem_flags); + if (!stream_info->free_streams_command) + goto cleanup_ctx; + +#if defined(__VMKLNX__) + spin_lock_init(&stream_info->lock); +#endif /* __VMKLNX__ */ + INIT_RADIX_TREE(&stream_info->trb_address_map, GFP_ATOMIC); + + /* Allocate rings for all the streams that the driver will use, + * and add their segment DMA addresses to the radix tree. + * Stream 0 is reserved. + */ + for (cur_stream = 1; cur_stream < num_streams; cur_stream++) { + stream_info->stream_rings[cur_stream] = + xhci_ring_alloc(xhci, 2, 1, TYPE_STREAM, mem_flags); + cur_ring = stream_info->stream_rings[cur_stream]; + if (!cur_ring) + goto cleanup_rings; + cur_ring->stream_id = cur_stream; + /* Set deq ptr, cycle bit, and stream context type */ + addr = cur_ring->first_seg->dma | + SCT_FOR_CTX(SCT_PRI_TR) | + cur_ring->cycle_state; + stream_info->stream_ctx_array[cur_stream].stream_ring = + cpu_to_le64(addr); + xhci_dbg(xhci, "Setting stream %d ring ptr to 0x%08llx\n", + cur_stream, (unsigned long long) addr); + + key = (unsigned long) + (cur_ring->first_seg->dma >> SEGMENT_SHIFT); +#if defined(__VMKLNX__) + spin_lock_irq(&stream_info->lock); +#endif /* __VMKLNX__ */ + ret = radix_tree_insert(&stream_info->trb_address_map, + key, cur_ring); +#if defined(__VMKLNX__) + spin_unlock_irq(&stream_info->lock); +#endif /* __VMKLNX__ */ + if (ret) { + xhci_ring_free(xhci, cur_ring); + stream_info->stream_rings[cur_stream] = NULL; + goto cleanup_rings; + } + } + /* Leave the other unused stream ring pointers in the stream context + * array initialized to zero. This will cause the xHC to give us an + * error if the device asks for a stream ID we don't have setup (if it + * was any other way, the host controller would assume the ring is + * "empty" and wait forever for data to be queued to that stream ID). + */ +#if XHCI_DEBUG + /* Do a little test on the radix tree to make sure it returns the + * correct values. + */ +#if defined(__VMKLNX__) + /* We don't have a radix tree and test might break due to lock nesting + */ + xhci_warn(xhci, "xhci_test_radix_tree() function not debugged for" + "vmklinux!\n"); + VMK_ASSERT(FALSE); +#endif /* __VMKLNX__ */ + if (xhci_test_radix_tree(xhci, num_streams, stream_info)) + goto cleanup_rings; +#endif + + return stream_info; + +cleanup_rings: + for (cur_stream = 1; cur_stream < num_streams; cur_stream++) { + cur_ring = stream_info->stream_rings[cur_stream]; + if (cur_ring) { + addr = cur_ring->first_seg->dma; +#if defined(__VMKLNX__) + spin_lock_irq(&stream_info->lock); +#endif /* __VMKLNX__ */ + radix_tree_delete(&stream_info->trb_address_map, + addr >> SEGMENT_SHIFT); +#if defined(__VMKLNX__) + spin_unlock_irq(&stream_info->lock); +#endif /* __VMKLNX__ */ + xhci_ring_free(xhci, cur_ring); + stream_info->stream_rings[cur_stream] = NULL; + } + } + xhci_free_command(xhci, stream_info->free_streams_command); +cleanup_ctx: + kfree(stream_info->stream_rings); +cleanup_info: + kfree(stream_info); +cleanup_trbs: + xhci->cmd_ring_reserved_trbs--; + return NULL; +} +/* + * Sets the MaxPStreams field and the Linear Stream Array field. + * Sets the dequeue pointer to the stream context array. + */ +void xhci_setup_streams_ep_input_ctx(struct xhci_hcd *xhci, + struct xhci_ep_ctx *ep_ctx, + struct xhci_stream_info *stream_info) +{ + u32 max_primary_streams; + /* MaxPStreams is the number of stream context array entries, not the + * number we're actually using. Must be in 2^(MaxPstreams + 1) format. + * fls(0) = 0, fls(0x1) = 1, fls(0x10) = 2, fls(0x100) = 3, etc. + */ + max_primary_streams = fls(stream_info->num_stream_ctxs) - 2; + xhci_dbg(xhci, "Setting number of stream ctx array entries to %u\n", + 1 << (max_primary_streams + 1)); + ep_ctx->ep_info &= cpu_to_le32(~EP_MAXPSTREAMS_MASK); + ep_ctx->ep_info |= cpu_to_le32(EP_MAXPSTREAMS(max_primary_streams) + | EP_HAS_LSA); + ep_ctx->deq = cpu_to_le64(stream_info->ctx_array_dma); +} + +/* + * Sets the MaxPStreams field and the Linear Stream Array field to 0. + * Reinstalls the "normal" endpoint ring (at its previous dequeue mark, + * not at the beginning of the ring). + */ +void xhci_setup_no_streams_ep_input_ctx(struct xhci_hcd *xhci, + struct xhci_ep_ctx *ep_ctx, + struct xhci_virt_ep *ep) +{ + dma_addr_t addr; + ep_ctx->ep_info &= cpu_to_le32(~(EP_MAXPSTREAMS_MASK | EP_HAS_LSA)); + addr = xhci_trb_virt_to_dma(ep->ring->deq_seg, ep->ring->dequeue); + ep_ctx->deq = cpu_to_le64(addr | ep->ring->cycle_state); +} + +/* Frees all stream contexts associated with the endpoint, + * + * Caller should fix the endpoint context streams fields. + */ +void xhci_free_stream_info(struct xhci_hcd *xhci, + struct xhci_stream_info *stream_info) +{ + int cur_stream; + struct xhci_ring *cur_ring; + dma_addr_t addr; + + if (!stream_info) + return; + + for (cur_stream = 1; cur_stream < stream_info->num_streams; + cur_stream++) { + cur_ring = stream_info->stream_rings[cur_stream]; + if (cur_ring) { + addr = cur_ring->first_seg->dma; +#if defined(__VMKLNX__) + spin_lock_irq(&stream_info->lock); +#endif /* __VMKLNX__ */ + radix_tree_delete(&stream_info->trb_address_map, + addr >> SEGMENT_SHIFT); +#if defined(__VMKLNX__) + spin_unlock_irq(&stream_info->lock); +#endif /* __VMKLNX__ */ + xhci_ring_free(xhci, cur_ring); + stream_info->stream_rings[cur_stream] = NULL; + } + } + xhci_free_command(xhci, stream_info->free_streams_command); + xhci->cmd_ring_reserved_trbs--; + if (stream_info->stream_ctx_array) + xhci_free_stream_ctx(xhci, + stream_info->num_stream_ctxs, + stream_info->stream_ctx_array, + stream_info->ctx_array_dma); + + if (stream_info) + kfree(stream_info->stream_rings); + kfree(stream_info); +} + + +/***************** Device context manipulation *************************/ + +static void xhci_init_endpoint_timer(struct xhci_hcd *xhci, + struct xhci_virt_ep *ep) +{ + init_timer(&ep->stop_cmd_timer); + ep->stop_cmd_timer.data = (unsigned long) ep; + ep->stop_cmd_timer.function = xhci_stop_endpoint_command_watchdog; + ep->xhci = xhci; +} + +static void xhci_free_tt_info(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + int slot_id) +{ + struct list_head *tt; + struct list_head *tt_list_head; + struct list_head *tt_next; +#if defined(__VMKLNX__) + struct xhci_tt_bw_info *tt_info = NULL; +#else + struct xhci_tt_bw_info *tt_info; +#endif + + /* If the device never made it past the Set Address stage, + * it may not have the real_port set correctly. + */ + if (virt_dev->real_port == 0 || + virt_dev->real_port > HCS_MAX_PORTS(xhci->hcs_params1)) { + xhci_dbg(xhci, "Bad real port.\n"); + return; + } + + tt_list_head = &(xhci->rh_bw[virt_dev->real_port - 1].tts); + if (list_empty(tt_list_head)) + return; + + list_for_each(tt, tt_list_head) { + tt_info = list_entry(tt, struct xhci_tt_bw_info, tt_list); + if (tt_info->slot_id == slot_id) + break; + } + /* Cautionary measure in case the hub was disconnected before we + * stored the TT information. + */ + if (tt_info->slot_id != slot_id) + return; + + tt_next = tt->next; + tt_info = list_entry(tt, struct xhci_tt_bw_info, + tt_list); + /* Multi-TT hubs will have more than one entry */ + do { + list_del(tt); + kfree(tt_info); + tt = tt_next; + if (list_empty(tt_list_head)) + break; + tt_next = tt->next; + tt_info = list_entry(tt, struct xhci_tt_bw_info, + tt_list); + } while (tt_info->slot_id == slot_id); +} + +int xhci_alloc_tt_info(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + struct usb_device *hdev, + struct usb_tt *tt, gfp_t mem_flags) +{ + struct xhci_tt_bw_info *tt_info; + unsigned int num_ports; + int i, j; + + if (!tt->multi) + num_ports = 1; + else + num_ports = hdev->maxchild; + + for (i = 0; i < num_ports; i++, tt_info++) { + struct xhci_interval_bw_table *bw_table; + + tt_info = kzalloc(sizeof(*tt_info), mem_flags); + if (!tt_info) + goto free_tts; + INIT_LIST_HEAD(&tt_info->tt_list); + list_add(&tt_info->tt_list, + &xhci->rh_bw[virt_dev->real_port - 1].tts); + tt_info->slot_id = virt_dev->udev->slot_id; + if (tt->multi) + tt_info->ttport = i+1; + bw_table = &tt_info->bw_table; + for (j = 0; j < XHCI_MAX_INTERVAL; j++) + INIT_LIST_HEAD(&bw_table->interval_bw[j].endpoints); + } + return 0; + +free_tts: + xhci_free_tt_info(xhci, virt_dev, virt_dev->udev->slot_id); + return -ENOMEM; +} + + +/* All the xhci_tds in the ring's TD list should be freed at this point. + * Should be called with xhci->lock held if there is any chance the TT lists + * will be manipulated by the configure endpoint, allocate device, or update + * hub functions while this function is removing the TT entries from the list. + */ +void xhci_free_virt_device(struct xhci_hcd *xhci, int slot_id) +{ + struct xhci_virt_device *dev; + int i; + int old_active_eps = 0; + + /* Slot ID 0 is reserved */ + if (slot_id == 0 || !xhci->devs[slot_id]) + return; + + dev = xhci->devs[slot_id]; + xhci->dcbaa->dev_context_ptrs[slot_id] = 0; + if (!dev) + return; + + if (dev->tt_info) + old_active_eps = dev->tt_info->active_eps; + + for (i = 0; i < 31; ++i) { + if (dev->eps[i].ring) + xhci_ring_free(xhci, dev->eps[i].ring); + if (dev->eps[i].stream_info) + xhci_free_stream_info(xhci, + dev->eps[i].stream_info); + /* Endpoints on the TT/root port lists should have been removed + * when usb_disable_device() was called for the device. + * We can't drop them anyway, because the udev might have gone + * away by this point, and we can't tell what speed it was. + */ + if (!list_empty(&dev->eps[i].bw_endpoint_list)) + xhci_warn(xhci, "Slot %u endpoint %u " + "not removed from BW list!\n", + slot_id, i); + } + /* If this is a hub, free the TT(s) from the TT list */ + xhci_free_tt_info(xhci, dev, slot_id); + /* If necessary, update the number of active TTs on this root port */ + xhci_update_tt_active_eps(xhci, dev, old_active_eps); + + if (dev->ring_cache) { + for (i = 0; i < dev->num_rings_cached; i++) + xhci_ring_free(xhci, dev->ring_cache[i]); + kfree(dev->ring_cache); + } + + if (dev->in_ctx) + xhci_free_container_ctx(xhci, dev->in_ctx); + if (dev->out_ctx) + xhci_free_container_ctx(xhci, dev->out_ctx); + + kfree(xhci->devs[slot_id]); + xhci->devs[slot_id] = NULL; +} + +int xhci_alloc_virt_device(struct xhci_hcd *xhci, int slot_id, + struct usb_device *udev, gfp_t flags) +{ + struct xhci_virt_device *dev; + int i; + + /* Slot ID 0 is reserved */ + if (slot_id == 0 || xhci->devs[slot_id]) { + xhci_warn(xhci, "Bad Slot ID %d\n", slot_id); + return 0; + } + + xhci->devs[slot_id] = kzalloc(sizeof(*xhci->devs[slot_id]), flags); + if (!xhci->devs[slot_id]) + return 0; + dev = xhci->devs[slot_id]; + + /* Allocate the (output) device context that will be used in the HC. */ + dev->out_ctx = xhci_alloc_container_ctx(xhci, XHCI_CTX_TYPE_DEVICE, flags); + if (!dev->out_ctx) + goto fail; + + xhci_dbg(xhci, "Slot %d output ctx = 0x%llx (dma)\n", slot_id, + (unsigned long long)dev->out_ctx->dma); + + /* Allocate the (input) device context for address device command */ + dev->in_ctx = xhci_alloc_container_ctx(xhci, XHCI_CTX_TYPE_INPUT, flags); + if (!dev->in_ctx) + goto fail; + + xhci_dbg(xhci, "Slot %d input ctx = 0x%llx (dma)\n", slot_id, + (unsigned long long)dev->in_ctx->dma); + + /* Initialize the cancellation list and watchdog timers for each ep */ + for (i = 0; i < 31; i++) { + xhci_init_endpoint_timer(xhci, &dev->eps[i]); + INIT_LIST_HEAD(&dev->eps[i].cancelled_td_list); + INIT_LIST_HEAD(&dev->eps[i].bw_endpoint_list); + } + + /* Allocate endpoint 0 ring */ + dev->eps[0].ring = xhci_ring_alloc(xhci, 2, 1, TYPE_CTRL, flags); + if (!dev->eps[0].ring) + goto fail; + + /* Allocate pointers to the ring cache */ + dev->ring_cache = kzalloc( + sizeof(struct xhci_ring *)*XHCI_MAX_RINGS_CACHED, + flags); + if (!dev->ring_cache) + goto fail; + dev->num_rings_cached = 0; + + init_completion(&dev->cmd_completion); + INIT_LIST_HEAD(&dev->cmd_list); + dev->udev = udev; + + /* Point to output device context in dcbaa. */ + xhci->dcbaa->dev_context_ptrs[slot_id] = cpu_to_le64(dev->out_ctx->dma); + xhci_dbg(xhci, "Set slot id %d dcbaa entry %p to 0x%llx\n", + slot_id, + &xhci->dcbaa->dev_context_ptrs[slot_id], + le64_to_cpu(xhci->dcbaa->dev_context_ptrs[slot_id])); + + return 1; +fail: + xhci_free_virt_device(xhci, slot_id); + return 0; +} + +void xhci_copy_ep0_dequeue_into_input_ctx(struct xhci_hcd *xhci, + struct usb_device *udev) +{ + struct xhci_virt_device *virt_dev; + struct xhci_ep_ctx *ep0_ctx; + struct xhci_ring *ep_ring; + + virt_dev = xhci->devs[udev->slot_id]; + ep0_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, 0); + ep_ring = virt_dev->eps[0].ring; + /* + * FIXME we don't keep track of the dequeue pointer very well after a + * Set TR dequeue pointer, so we're setting the dequeue pointer of the + * host to our enqueue pointer. This should only be called after a + * configured device has reset, so all control transfers should have + * been completed or cancelled before the reset. + */ + ep0_ctx->deq = cpu_to_le64(xhci_trb_virt_to_dma(ep_ring->enq_seg, + ep_ring->enqueue) + | ep_ring->cycle_state); +} + +/* + * The xHCI roothub may have ports of differing speeds in any order in the port + * status registers. xhci->port_array provides an array of the port speed for + * each offset into the port status registers. + * + * The xHCI hardware wants to know the roothub port number that the USB device + * is attached to (or the roothub port its ancestor hub is attached to). All we + * know is the index of that port under either the USB 2.0 or the USB 3.0 + * roothub, but that doesn't give us the real index into the HW port status + * registers. Scan through the xHCI roothub port array, looking for the Nth + * entry of the correct port speed. Return the port number of that entry. + */ +static u32 xhci_find_real_port_number(struct xhci_hcd *xhci, + struct usb_device *udev) +{ + struct usb_device *top_dev; + unsigned int num_similar_speed_ports; + unsigned int faked_port_num; + int i; + + for (top_dev = udev; top_dev->parent && top_dev->parent->parent; + top_dev = top_dev->parent) + /* Found device below root hub */; + faked_port_num = top_dev->portnum; + for (i = 0, num_similar_speed_ports = 0; + i < HCS_MAX_PORTS(xhci->hcs_params1); i++) { + u8 port_speed = xhci->port_array[i]; + + /* + * Skip ports that don't have known speeds, or have duplicate + * Extended Capabilities port speed entries. + */ + if (port_speed == 0 || port_speed == DUPLICATE_ENTRY) + continue; + + /* + * USB 3.0 ports are always under a USB 3.0 hub. USB 2.0 and + * 1.1 ports are under the USB 2.0 hub. If the port speed + * matches the device speed, it's a similar speed port. + */ + if ((port_speed == 0x03) == (udev->speed == USB_SPEED_SUPER)) + num_similar_speed_ports++; + if (num_similar_speed_ports == faked_port_num) + /* Roothub ports are numbered from 1 to N */ + return i+1; + } + return 0; +} + +/* Setup an xHCI virtual device for a Set Address command */ +int xhci_setup_addressable_virt_dev(struct xhci_hcd *xhci, struct usb_device *udev) +{ + struct xhci_virt_device *dev; + struct xhci_ep_ctx *ep0_ctx; + struct xhci_slot_ctx *slot_ctx; + u32 port_num; + struct usb_device *top_dev; + + dev = xhci->devs[udev->slot_id]; + /* Slot ID 0 is reserved */ + if (udev->slot_id == 0 || !dev) { + xhci_warn(xhci, "Slot ID %d is not assigned to this device\n", + udev->slot_id); + return -EINVAL; + } + ep0_ctx = xhci_get_ep_ctx(xhci, dev->in_ctx, 0); + slot_ctx = xhci_get_slot_ctx(xhci, dev->in_ctx); + + /* 3) Only the control endpoint is valid - one endpoint context */ + slot_ctx->dev_info |= cpu_to_le32(LAST_CTX(1) | udev->route); + switch (udev->speed) { + case USB_SPEED_SUPER: + slot_ctx->dev_info |= cpu_to_le32(SLOT_SPEED_SS); + break; + case USB_SPEED_HIGH: + slot_ctx->dev_info |= cpu_to_le32(SLOT_SPEED_HS); + break; + case USB_SPEED_FULL: + slot_ctx->dev_info |= cpu_to_le32(SLOT_SPEED_FS); + break; + case USB_SPEED_LOW: + slot_ctx->dev_info |= cpu_to_le32(SLOT_SPEED_LS); + break; + case USB_SPEED_WIRELESS: + xhci_dbg(xhci, "FIXME xHCI doesn't support wireless speeds\n"); + return -EINVAL; + break; + default: + /* Speed was set earlier, this shouldn't happen. */ + BUG(); + } + /* Find the root hub port this device is under */ + port_num = xhci_find_real_port_number(xhci, udev); + if (!port_num) + return -EINVAL; + slot_ctx->dev_info2 |= cpu_to_le32(ROOT_HUB_PORT(port_num)); + /* Set the port number in the virtual_device to the faked port number */ + for (top_dev = udev; top_dev->parent && top_dev->parent->parent; + top_dev = top_dev->parent) + /* Found device below root hub */; + dev->fake_port = top_dev->portnum; + dev->real_port = port_num; + xhci_dbg(xhci, "Set root hub portnum to %d\n", port_num); + xhci_dbg(xhci, "Set fake root hub portnum to %d\n", dev->fake_port); + + /* Find the right bandwidth table that this device will be a part of. + * If this is a full speed device attached directly to a root port (or a + * decendent of one), it counts as a primary bandwidth domain, not a + * secondary bandwidth domain under a TT. An xhci_tt_info structure + * will never be created for the HS root hub. + */ + if (!udev->tt || !udev->tt->hub->parent) { + dev->bw_table = &xhci->rh_bw[port_num - 1].bw_table; + } else { + struct xhci_root_port_bw_info *rh_bw; + struct xhci_tt_bw_info *tt_bw; + + rh_bw = &xhci->rh_bw[port_num - 1]; + /* Find the right TT. */ + list_for_each_entry(tt_bw, &rh_bw->tts, tt_list) { + if (tt_bw->slot_id != udev->tt->hub->slot_id) + continue; + + if (!dev->udev->tt->multi || + (udev->tt->multi && + tt_bw->ttport == dev->udev->ttport)) { + dev->bw_table = &tt_bw->bw_table; + dev->tt_info = tt_bw; + break; + } + } + if (!dev->tt_info) + xhci_warn(xhci, "WARN: Didn't find a matching TT\n"); + } + + /* Is this a LS/FS device under an external HS hub? */ + if (udev->tt && udev->tt->hub->parent) { + slot_ctx->tt_info = cpu_to_le32(udev->tt->hub->slot_id | + (udev->ttport << 8)); + if (udev->tt->multi) + slot_ctx->dev_info |= cpu_to_le32(DEV_MTT); + } + xhci_dbg(xhci, "udev->tt = %p\n", udev->tt); + xhci_dbg(xhci, "udev->ttport = 0x%x\n", udev->ttport); + + /* Step 4 - ring already allocated */ + /* Step 5 */ + ep0_ctx->ep_info2 = cpu_to_le32(EP_TYPE(CTRL_EP)); + /* + * XXX: Not sure about wireless USB devices. + */ + switch (udev->speed) { + case USB_SPEED_SUPER: + ep0_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(512)); + break; + case USB_SPEED_HIGH: + /* USB core guesses at a 64-byte max packet first for FS devices */ + case USB_SPEED_FULL: + ep0_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(64)); + break; + case USB_SPEED_LOW: + ep0_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(8)); + break; + case USB_SPEED_WIRELESS: + xhci_dbg(xhci, "FIXME xHCI doesn't support wireless speeds\n"); + return -EINVAL; + break; + default: + /* New speed? */ + BUG(); + } + /* EP 0 can handle "burst" sizes of 1, so Max Burst Size field is 0 */ + ep0_ctx->ep_info2 |= cpu_to_le32(MAX_BURST(0) | ERROR_COUNT(3)); + + ep0_ctx->deq = cpu_to_le64(dev->eps[0].ring->first_seg->dma | + dev->eps[0].ring->cycle_state); + + /* Steps 7 and 8 were done in xhci_alloc_virt_device() */ + + return 0; +} + +/* + * Convert interval expressed as 2^(bInterval - 1) == interval into + * straight exponent value 2^n == interval. + * + */ +static unsigned int xhci_parse_exponent_interval(struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + unsigned int interval; + + interval = clamp_val(ep->desc.bInterval, 1, 16) - 1; + if (interval != ep->desc.bInterval - 1) + dev_warn(&udev->dev, + "ep %#x - rounding interval to %d %sframes\n", + ep->desc.bEndpointAddress, + 1 << interval, + udev->speed == USB_SPEED_FULL ? "" : "micro"); + + if (udev->speed == USB_SPEED_FULL) { + /* + * Full speed isoc endpoints specify interval in frames, + * not microframes. We are using microframes everywhere, + * so adjust accordingly. + */ + interval += 3; /* 1 frame = 2^3 uframes */ + } + + return interval; +} + +/* + * Convert bInterval expressed in microframes (in 1-255 range) to exponent of + * microframes, rounded down to nearest power of 2. + */ +static unsigned int xhci_microframes_to_exponent(struct usb_device *udev, + struct usb_host_endpoint *ep, unsigned int desc_interval, + unsigned int min_exponent, unsigned int max_exponent) +{ + unsigned int interval; + + interval = fls(desc_interval) - 1; + interval = clamp_val(interval, min_exponent, max_exponent); + if ((1 << interval) != desc_interval) + dev_warn(&udev->dev, + "ep %#x - rounding interval to %d microframes, ep desc says %d microframes\n", + ep->desc.bEndpointAddress, + 1 << interval, + desc_interval); + + return interval; +} + +static unsigned int xhci_parse_microframe_interval(struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + return xhci_microframes_to_exponent(udev, ep, + ep->desc.bInterval, 0, 15); +} + + +static unsigned int xhci_parse_frame_interval(struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + return xhci_microframes_to_exponent(udev, ep, + ep->desc.bInterval * 8, 3, 10); +} + +/* Return the polling or NAK interval. + * + * The polling interval is expressed in "microframes". If xHCI's Interval field + * is set to N, it will service the endpoint every 2^(Interval)*125us. + * + * The NAK interval is one NAK per 1 to 255 microframes, or no NAKs if interval + * is set to 0. + */ +static unsigned int xhci_get_endpoint_interval(struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + unsigned int interval = 0; + + switch (udev->speed) { + case USB_SPEED_HIGH: + /* Max NAK rate */ + if (usb_endpoint_xfer_control(&ep->desc) || + usb_endpoint_xfer_bulk(&ep->desc)) { + interval = xhci_parse_microframe_interval(udev, ep); + break; + } + /* Fall through - SS and HS isoc/int have same decoding */ + + case USB_SPEED_SUPER: + if (usb_endpoint_xfer_int(&ep->desc) || + usb_endpoint_xfer_isoc(&ep->desc)) { + interval = xhci_parse_exponent_interval(udev, ep); + } + break; + + case USB_SPEED_FULL: + if (usb_endpoint_xfer_isoc(&ep->desc)) { + interval = xhci_parse_exponent_interval(udev, ep); + break; + } + /* + * Fall through for interrupt endpoint interval decoding + * since it uses the same rules as low speed interrupt + * endpoints. + */ + + case USB_SPEED_LOW: + if (usb_endpoint_xfer_int(&ep->desc) || + usb_endpoint_xfer_isoc(&ep->desc)) { + + interval = xhci_parse_frame_interval(udev, ep); + } + break; + + default: + BUG(); + } + return EP_INTERVAL(interval); +} + +/* The "Mult" field in the endpoint context is only set for SuperSpeed isoc eps. + * High speed endpoint descriptors can define "the number of additional + * transaction opportunities per microframe", but that goes in the Max Burst + * endpoint context field. + */ +static u32 xhci_get_endpoint_mult(struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + if (udev->speed != USB_SPEED_SUPER || + !usb_endpoint_xfer_isoc(&ep->desc)) + return 0; + return ep->ss_ep_comp.bmAttributes; +} + +static u32 xhci_get_endpoint_type(struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + int in; +#if defined(__VMKLNX__) + u32 type = 0; /* quiet down the compiler */ +#else + u32 type; +#endif + + in = usb_endpoint_dir_in(&ep->desc); + if (usb_endpoint_xfer_control(&ep->desc)) { + type = EP_TYPE(CTRL_EP); + } else if (usb_endpoint_xfer_bulk(&ep->desc)) { + if (in) + type = EP_TYPE(BULK_IN_EP); + else + type = EP_TYPE(BULK_OUT_EP); + } else if (usb_endpoint_xfer_isoc(&ep->desc)) { + if (in) + type = EP_TYPE(ISOC_IN_EP); + else + type = EP_TYPE(ISOC_OUT_EP); + } else if (usb_endpoint_xfer_int(&ep->desc)) { + if (in) + type = EP_TYPE(INT_IN_EP); + else + type = EP_TYPE(INT_OUT_EP); + } else { + BUG(); + } + return type; +} + +/* Return the maximum endpoint service interval time (ESIT) payload. + * Basically, this is the maxpacket size, multiplied by the burst size + * and mult size. + */ +static u32 xhci_get_max_esit_payload(struct xhci_hcd *xhci, + struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + int max_burst; + int max_packet; + + /* Only applies for interrupt or isochronous endpoints */ + if (usb_endpoint_xfer_control(&ep->desc) || + usb_endpoint_xfer_bulk(&ep->desc)) + return 0; + + if (udev->speed == USB_SPEED_SUPER) + return le16_to_cpu(ep->ss_ep_comp.wBytesPerInterval); + + max_packet = GET_MAX_PACKET(usb_endpoint_maxp(&ep->desc)); + max_burst = (usb_endpoint_maxp(&ep->desc) & 0x1800) >> 11; + /* A 0 in max burst means 1 transfer per ESIT */ + return max_packet * (max_burst + 1); +} + +/* Set up an endpoint with one ring segment. Do not allocate stream rings. + * Drivers will have to call usb_alloc_streams() to do that. + */ +int xhci_endpoint_init(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + struct usb_device *udev, + struct usb_host_endpoint *ep, + gfp_t mem_flags) +{ + unsigned int ep_index; + struct xhci_ep_ctx *ep_ctx; + struct xhci_ring *ep_ring; + unsigned int max_packet; + unsigned int max_burst; + enum xhci_ring_type type; + u32 max_esit_payload; + + ep_index = xhci_get_endpoint_index(&ep->desc); + ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index); + + type = usb_endpoint_type(&ep->desc); + /* Set up the endpoint ring */ + virt_dev->eps[ep_index].new_ring = + xhci_ring_alloc(xhci, 2, 1, type, mem_flags); + if (!virt_dev->eps[ep_index].new_ring) { + /* Attempt to use the ring cache */ + if (virt_dev->num_rings_cached == 0) + return -ENOMEM; + virt_dev->eps[ep_index].new_ring = + virt_dev->ring_cache[virt_dev->num_rings_cached]; + virt_dev->ring_cache[virt_dev->num_rings_cached] = NULL; + virt_dev->num_rings_cached--; + xhci_reinit_cached_ring(xhci, virt_dev->eps[ep_index].new_ring, + 1, type); + } + virt_dev->eps[ep_index].skip = false; + ep_ring = virt_dev->eps[ep_index].new_ring; + ep_ctx->deq = cpu_to_le64(ep_ring->first_seg->dma | ep_ring->cycle_state); + + ep_ctx->ep_info = cpu_to_le32(xhci_get_endpoint_interval(udev, ep) + | EP_MULT(xhci_get_endpoint_mult(udev, ep))); + + /* FIXME dig Mult and streams info out of ep companion desc */ + + /* Allow 3 retries for everything but isoc; + * CErr shall be set to 0 for Isoch endpoints. + */ + if (!usb_endpoint_xfer_isoc(&ep->desc)) + ep_ctx->ep_info2 = cpu_to_le32(ERROR_COUNT(3)); + else + ep_ctx->ep_info2 = cpu_to_le32(ERROR_COUNT(0)); + + ep_ctx->ep_info2 |= cpu_to_le32(xhci_get_endpoint_type(udev, ep)); + + /* Set the max packet size and max burst */ + switch (udev->speed) { + case USB_SPEED_SUPER: + max_packet = usb_endpoint_maxp(&ep->desc); + ep_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(max_packet)); + /* dig out max burst from ep companion desc */ + max_packet = ep->ss_ep_comp.bMaxBurst; + ep_ctx->ep_info2 |= cpu_to_le32(MAX_BURST(max_packet)); + break; + case USB_SPEED_HIGH: + /* bits 11:12 specify the number of additional transaction + * opportunities per microframe (USB 2.0, section 9.6.6) + */ + if (usb_endpoint_xfer_isoc(&ep->desc) || + usb_endpoint_xfer_int(&ep->desc)) { + max_burst = (usb_endpoint_maxp(&ep->desc) + & 0x1800) >> 11; + ep_ctx->ep_info2 |= cpu_to_le32(MAX_BURST(max_burst)); + } + /* Fall through */ + case USB_SPEED_FULL: + case USB_SPEED_LOW: + max_packet = GET_MAX_PACKET(usb_endpoint_maxp(&ep->desc)); + ep_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(max_packet)); + break; + default: + BUG(); + } + max_esit_payload = xhci_get_max_esit_payload(xhci, udev, ep); + ep_ctx->tx_info = cpu_to_le32(MAX_ESIT_PAYLOAD_FOR_EP(max_esit_payload)); + + /* + * XXX no idea how to calculate the average TRB buffer length for bulk + * endpoints, as the driver gives us no clue how big each scatter gather + * list entry (or buffer) is going to be. + * + * For isochronous and interrupt endpoints, we set it to the max + * available, until we have new API in the USB core to allow drivers to + * declare how much bandwidth they actually need. + * + * Normally, it would be calculated by taking the total of the buffer + * lengths in the TD and then dividing by the number of TRBs in a TD, + * including link TRBs, No-op TRBs, and Event data TRBs. Since we don't + * use Event Data TRBs, and we don't chain in a link TRB on short + * transfers, we're basically dividing by 1. + * + * xHCI 1.0 specification indicates that the Average TRB Length should + * be set to 8 for control endpoints. + */ + if (usb_endpoint_xfer_control(&ep->desc) && xhci->hci_version == 0x100) + ep_ctx->tx_info |= cpu_to_le32(AVG_TRB_LENGTH_FOR_EP(8)); + else + ep_ctx->tx_info |= + cpu_to_le32(AVG_TRB_LENGTH_FOR_EP(max_esit_payload)); + + /* FIXME Debug endpoint context */ + return 0; +} + +void xhci_endpoint_zero(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + struct usb_host_endpoint *ep) +{ + unsigned int ep_index; + struct xhci_ep_ctx *ep_ctx; + + ep_index = xhci_get_endpoint_index(&ep->desc); + ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index); + + ep_ctx->ep_info = 0; + ep_ctx->ep_info2 = 0; + ep_ctx->deq = 0; + ep_ctx->tx_info = 0; + /* Don't free the endpoint ring until the set interface or configuration + * request succeeds. + */ +} + +void xhci_clear_endpoint_bw_info(struct xhci_bw_info *bw_info) +{ + bw_info->ep_interval = 0; + bw_info->mult = 0; + bw_info->num_packets = 0; + bw_info->max_packet_size = 0; + bw_info->type = 0; + bw_info->max_esit_payload = 0; +} + +void xhci_update_bw_info(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx, + struct xhci_input_control_ctx *ctrl_ctx, + struct xhci_virt_device *virt_dev) +{ + struct xhci_bw_info *bw_info; + struct xhci_ep_ctx *ep_ctx; + unsigned int ep_type; + int i; + + for (i = 1; i < 31; ++i) { + bw_info = &virt_dev->eps[i].bw_info; + + /* We can't tell what endpoint type is being dropped, but + * unconditionally clearing the bandwidth info for non-periodic + * endpoints should be harmless because the info will never be + * set in the first place. + */ + if (!EP_IS_ADDED(ctrl_ctx, i) && EP_IS_DROPPED(ctrl_ctx, i)) { + /* Dropped endpoint */ + xhci_clear_endpoint_bw_info(bw_info); + continue; + } + + if (EP_IS_ADDED(ctrl_ctx, i)) { + ep_ctx = xhci_get_ep_ctx(xhci, in_ctx, i); + ep_type = CTX_TO_EP_TYPE(le32_to_cpu(ep_ctx->ep_info2)); + + /* Ignore non-periodic endpoints */ + if (ep_type != ISOC_OUT_EP && ep_type != INT_OUT_EP && + ep_type != ISOC_IN_EP && + ep_type != INT_IN_EP) + continue; + + /* Added or changed endpoint */ + bw_info->ep_interval = CTX_TO_EP_INTERVAL( + le32_to_cpu(ep_ctx->ep_info)); + /* Number of packets and mult are zero-based in the + * input context, but we want one-based for the + * interval table. + */ + bw_info->mult = CTX_TO_EP_MULT( + le32_to_cpu(ep_ctx->ep_info)) + 1; + bw_info->num_packets = CTX_TO_MAX_BURST( + le32_to_cpu(ep_ctx->ep_info2)) + 1; + bw_info->max_packet_size = MAX_PACKET_DECODED( + le32_to_cpu(ep_ctx->ep_info2)); + bw_info->type = ep_type; + bw_info->max_esit_payload = CTX_TO_MAX_ESIT_PAYLOAD( + le32_to_cpu(ep_ctx->tx_info)); + } + } +} + +/* Copy output xhci_ep_ctx to the input xhci_ep_ctx copy. + * Useful when you want to change one particular aspect of the endpoint and then + * issue a configure endpoint command. + */ +void xhci_endpoint_copy(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx, + struct xhci_container_ctx *out_ctx, + unsigned int ep_index) +{ + struct xhci_ep_ctx *out_ep_ctx; + struct xhci_ep_ctx *in_ep_ctx; + + out_ep_ctx = xhci_get_ep_ctx(xhci, out_ctx, ep_index); + in_ep_ctx = xhci_get_ep_ctx(xhci, in_ctx, ep_index); + + in_ep_ctx->ep_info = out_ep_ctx->ep_info; + in_ep_ctx->ep_info2 = out_ep_ctx->ep_info2; + in_ep_ctx->deq = out_ep_ctx->deq; + in_ep_ctx->tx_info = out_ep_ctx->tx_info; +} + +/* Copy output xhci_slot_ctx to the input xhci_slot_ctx. + * Useful when you want to change one particular aspect of the endpoint and then + * issue a configure endpoint command. Only the context entries field matters, + * but we'll copy the whole thing anyway. + */ +void xhci_slot_copy(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx, + struct xhci_container_ctx *out_ctx) +{ + struct xhci_slot_ctx *in_slot_ctx; + struct xhci_slot_ctx *out_slot_ctx; + + in_slot_ctx = xhci_get_slot_ctx(xhci, in_ctx); + out_slot_ctx = xhci_get_slot_ctx(xhci, out_ctx); + + in_slot_ctx->dev_info = out_slot_ctx->dev_info; + in_slot_ctx->dev_info2 = out_slot_ctx->dev_info2; + in_slot_ctx->tt_info = out_slot_ctx->tt_info; + in_slot_ctx->dev_state = out_slot_ctx->dev_state; +} + +/* Set up the scratchpad buffer array and scratchpad buffers, if needed. */ +static int scratchpad_alloc(struct xhci_hcd *xhci, gfp_t flags) +{ + int i; + struct device *dev = xhci_to_hcd(xhci)->self.controller; + int num_sp = HCS_MAX_SCRATCHPAD(xhci->hcs_params2); + + xhci_dbg(xhci, "Allocating %d scratchpad buffers\n", num_sp); + + if (!num_sp) + return 0; + + xhci->scratchpad = kzalloc(sizeof(*xhci->scratchpad), flags); + if (!xhci->scratchpad) + goto fail_sp; + + xhci->scratchpad->sp_array = dma_alloc_coherent(dev, + num_sp * sizeof(u64), + &xhci->scratchpad->sp_dma, flags); + if (!xhci->scratchpad->sp_array) + goto fail_sp2; + + xhci->scratchpad->sp_buffers = kzalloc(sizeof(void *) * num_sp, flags); + if (!xhci->scratchpad->sp_buffers) + goto fail_sp3; + + xhci->scratchpad->sp_dma_buffers = + kzalloc(sizeof(dma_addr_t) * num_sp, flags); + + if (!xhci->scratchpad->sp_dma_buffers) + goto fail_sp4; + + xhci->dcbaa->dev_context_ptrs[0] = cpu_to_le64(xhci->scratchpad->sp_dma); + for (i = 0; i < num_sp; i++) { + dma_addr_t dma; + void *buf = dma_alloc_coherent(dev, xhci->page_size, &dma, + flags); + if (!buf) + goto fail_sp5; + + xhci->scratchpad->sp_array[i] = dma; + xhci->scratchpad->sp_buffers[i] = buf; + xhci->scratchpad->sp_dma_buffers[i] = dma; + } + + return 0; + + fail_sp5: + for (i = i - 1; i >= 0; i--) { + dma_free_coherent(dev, xhci->page_size, + xhci->scratchpad->sp_buffers[i], + xhci->scratchpad->sp_dma_buffers[i]); + } + kfree(xhci->scratchpad->sp_dma_buffers); + + fail_sp4: + kfree(xhci->scratchpad->sp_buffers); + + fail_sp3: + dma_free_coherent(dev, num_sp * sizeof(u64), + xhci->scratchpad->sp_array, + xhci->scratchpad->sp_dma); + + fail_sp2: + kfree(xhci->scratchpad); + xhci->scratchpad = NULL; + + fail_sp: + return -ENOMEM; +} + +static void scratchpad_free(struct xhci_hcd *xhci) +{ + int num_sp; + int i; + struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); + + if (!xhci->scratchpad) + return; + + num_sp = HCS_MAX_SCRATCHPAD(xhci->hcs_params2); + + for (i = 0; i < num_sp; i++) { + dma_free_coherent(&pdev->dev, xhci->page_size, + xhci->scratchpad->sp_buffers[i], + xhci->scratchpad->sp_dma_buffers[i]); + } + kfree(xhci->scratchpad->sp_dma_buffers); + kfree(xhci->scratchpad->sp_buffers); + dma_free_coherent(&pdev->dev, num_sp * sizeof(u64), + xhci->scratchpad->sp_array, + xhci->scratchpad->sp_dma); + kfree(xhci->scratchpad); + xhci->scratchpad = NULL; +} + +struct xhci_command *xhci_alloc_command(struct xhci_hcd *xhci, + bool allocate_in_ctx, bool allocate_completion, + gfp_t mem_flags) +{ + struct xhci_command *command; + + command = kzalloc(sizeof(*command), mem_flags); + if (!command) + return NULL; + + if (allocate_in_ctx) { + command->in_ctx = + xhci_alloc_container_ctx(xhci, XHCI_CTX_TYPE_INPUT, + mem_flags); + if (!command->in_ctx) { + kfree(command); + return NULL; + } + } + + if (allocate_completion) { + command->completion = + kzalloc(sizeof(struct completion), mem_flags); + if (!command->completion) { + xhci_free_container_ctx(xhci, command->in_ctx); + kfree(command); + return NULL; + } + init_completion(command->completion); + } + + command->status = 0; + INIT_LIST_HEAD(&command->cmd_list); + return command; +} + +void xhci_urb_free_priv(struct xhci_hcd *xhci, struct urb_priv *urb_priv) +{ + if (urb_priv) { + kfree(urb_priv->td[0]); + kfree(urb_priv); + } +} + +void xhci_free_command(struct xhci_hcd *xhci, + struct xhci_command *command) +{ + xhci_free_container_ctx(xhci, + command->in_ctx); + kfree(command->completion); + kfree(command); +} + +void xhci_mem_cleanup(struct xhci_hcd *xhci) +{ + struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); + struct dev_info *dev_info, *next; + unsigned long flags; + int size; + int i; + + /* Free the Event Ring Segment Table and the actual Event Ring */ + size = sizeof(struct xhci_erst_entry)*(xhci->erst.num_entries); + if (xhci->erst.entries) + dma_free_coherent(&pdev->dev, size, + xhci->erst.entries, xhci->erst.erst_dma_addr); + xhci->erst.entries = NULL; + xhci_dbg(xhci, "Freed ERST\n"); + if (xhci->event_ring) + xhci_ring_free(xhci, xhci->event_ring); + xhci->event_ring = NULL; + xhci_dbg(xhci, "Freed event ring\n"); + + if (xhci->cmd_ring) + xhci_ring_free(xhci, xhci->cmd_ring); + xhci->cmd_ring = NULL; + xhci_dbg(xhci, "Freed command ring\n"); + + for (i = 1; i < MAX_HC_SLOTS; ++i) + xhci_free_virt_device(xhci, i); + + if (xhci->segment_pool) + dma_pool_destroy(xhci->segment_pool); + xhci->segment_pool = NULL; + xhci_dbg(xhci, "Freed segment pool\n"); + + if (xhci->device_pool) + dma_pool_destroy(xhci->device_pool); + xhci->device_pool = NULL; + xhci_dbg(xhci, "Freed device context pool\n"); + + if (xhci->small_streams_pool) + dma_pool_destroy(xhci->small_streams_pool); + xhci->small_streams_pool = NULL; + xhci_dbg(xhci, "Freed small stream array pool\n"); + + if (xhci->medium_streams_pool) + dma_pool_destroy(xhci->medium_streams_pool); + xhci->medium_streams_pool = NULL; + xhci_dbg(xhci, "Freed medium stream array pool\n"); + + if (xhci->dcbaa) + dma_free_coherent(&pdev->dev, sizeof(*xhci->dcbaa), + xhci->dcbaa, xhci->dcbaa->dma); + xhci->dcbaa = NULL; + + scratchpad_free(xhci); + + spin_lock_irqsave(&xhci->lock, flags); + list_for_each_entry_safe(dev_info, next, &xhci->lpm_failed_devs, list) { + list_del(&dev_info->list); + kfree(dev_info); + } + spin_unlock_irqrestore(&xhci->lock, flags); + + xhci->num_usb2_ports = 0; + xhci->num_usb3_ports = 0; + kfree(xhci->usb2_ports); + kfree(xhci->usb3_ports); + kfree(xhci->port_array); + kfree(xhci->rh_bw); + + xhci->page_size = 0; + xhci->page_shift = 0; + xhci->bus_state[0].bus_suspended = 0; + xhci->bus_state[1].bus_suspended = 0; +} + +static int xhci_test_trb_in_td(struct xhci_hcd *xhci, + struct xhci_segment *input_seg, + union xhci_trb *start_trb, + union xhci_trb *end_trb, + dma_addr_t input_dma, + struct xhci_segment *result_seg, + char *test_name, int test_number) +{ + unsigned long long start_dma; + unsigned long long end_dma; + struct xhci_segment *seg; + + start_dma = xhci_trb_virt_to_dma(input_seg, start_trb); + end_dma = xhci_trb_virt_to_dma(input_seg, end_trb); + + seg = trb_in_td(input_seg, start_trb, end_trb, input_dma); + if (seg != result_seg) { + xhci_warn(xhci, "WARN: %s TRB math test %d failed!\n", + test_name, test_number); + xhci_warn(xhci, "Tested TRB math w/ seg %p and " + "input DMA 0x%llx\n", + input_seg, + (unsigned long long) input_dma); + xhci_warn(xhci, "starting TRB %p (0x%llx DMA), " + "ending TRB %p (0x%llx DMA)\n", + start_trb, start_dma, + end_trb, end_dma); + xhci_warn(xhci, "Expected seg %p, got seg %p\n", + result_seg, seg); + return -1; + } + return 0; +} + +/* TRB math checks for xhci_trb_in_td(), using the command and event rings. */ +static int xhci_check_trb_in_td_math(struct xhci_hcd *xhci, gfp_t mem_flags) +{ + struct { + dma_addr_t input_dma; + struct xhci_segment *result_seg; + } simple_test_vector [] = { + /* A zeroed DMA field should fail */ + { 0, NULL }, + /* One TRB before the ring start should fail */ + { xhci->event_ring->first_seg->dma - 16, NULL }, + /* One byte before the ring start should fail */ + { xhci->event_ring->first_seg->dma - 1, NULL }, + /* Starting TRB should succeed */ + { xhci->event_ring->first_seg->dma, xhci->event_ring->first_seg }, + /* Ending TRB should succeed */ + { xhci->event_ring->first_seg->dma + (TRBS_PER_SEGMENT - 1)*16, + xhci->event_ring->first_seg }, + /* One byte after the ring end should fail */ + { xhci->event_ring->first_seg->dma + (TRBS_PER_SEGMENT - 1)*16 + 1, NULL }, + /* One TRB after the ring end should fail */ + { xhci->event_ring->first_seg->dma + (TRBS_PER_SEGMENT)*16, NULL }, + /* An address of all ones should fail */ + { (dma_addr_t) (~0), NULL }, + }; + struct { + struct xhci_segment *input_seg; + union xhci_trb *start_trb; + union xhci_trb *end_trb; + dma_addr_t input_dma; + struct xhci_segment *result_seg; + } complex_test_vector [] = { + /* Test feeding a valid DMA address from a different ring */ + { .input_seg = xhci->event_ring->first_seg, + .start_trb = xhci->event_ring->first_seg->trbs, + .end_trb = &xhci->event_ring->first_seg->trbs[TRBS_PER_SEGMENT - 1], + .input_dma = xhci->cmd_ring->first_seg->dma, + .result_seg = NULL, + }, + /* Test feeding a valid end TRB from a different ring */ + { .input_seg = xhci->event_ring->first_seg, + .start_trb = xhci->event_ring->first_seg->trbs, + .end_trb = &xhci->cmd_ring->first_seg->trbs[TRBS_PER_SEGMENT - 1], + .input_dma = xhci->cmd_ring->first_seg->dma, + .result_seg = NULL, + }, + /* Test feeding a valid start and end TRB from a different ring */ + { .input_seg = xhci->event_ring->first_seg, + .start_trb = xhci->cmd_ring->first_seg->trbs, + .end_trb = &xhci->cmd_ring->first_seg->trbs[TRBS_PER_SEGMENT - 1], + .input_dma = xhci->cmd_ring->first_seg->dma, + .result_seg = NULL, + }, + /* TRB in this ring, but after this TD */ + { .input_seg = xhci->event_ring->first_seg, + .start_trb = &xhci->event_ring->first_seg->trbs[0], + .end_trb = &xhci->event_ring->first_seg->trbs[3], + .input_dma = xhci->event_ring->first_seg->dma + 4*16, + .result_seg = NULL, + }, + /* TRB in this ring, but before this TD */ + { .input_seg = xhci->event_ring->first_seg, + .start_trb = &xhci->event_ring->first_seg->trbs[3], + .end_trb = &xhci->event_ring->first_seg->trbs[6], + .input_dma = xhci->event_ring->first_seg->dma + 2*16, + .result_seg = NULL, + }, + /* TRB in this ring, but after this wrapped TD */ + { .input_seg = xhci->event_ring->first_seg, + .start_trb = &xhci->event_ring->first_seg->trbs[TRBS_PER_SEGMENT - 3], + .end_trb = &xhci->event_ring->first_seg->trbs[1], + .input_dma = xhci->event_ring->first_seg->dma + 2*16, + .result_seg = NULL, + }, + /* TRB in this ring, but before this wrapped TD */ + { .input_seg = xhci->event_ring->first_seg, + .start_trb = &xhci->event_ring->first_seg->trbs[TRBS_PER_SEGMENT - 3], + .end_trb = &xhci->event_ring->first_seg->trbs[1], + .input_dma = xhci->event_ring->first_seg->dma + (TRBS_PER_SEGMENT - 4)*16, + .result_seg = NULL, + }, + /* TRB not in this ring, and we have a wrapped TD */ + { .input_seg = xhci->event_ring->first_seg, + .start_trb = &xhci->event_ring->first_seg->trbs[TRBS_PER_SEGMENT - 3], + .end_trb = &xhci->event_ring->first_seg->trbs[1], + .input_dma = xhci->cmd_ring->first_seg->dma + 2*16, + .result_seg = NULL, + }, + }; + + unsigned int num_tests; + int i, ret; + + num_tests = ARRAY_SIZE(simple_test_vector); + for (i = 0; i < num_tests; i++) { + ret = xhci_test_trb_in_td(xhci, + xhci->event_ring->first_seg, + xhci->event_ring->first_seg->trbs, + &xhci->event_ring->first_seg->trbs[TRBS_PER_SEGMENT - 1], + simple_test_vector[i].input_dma, + simple_test_vector[i].result_seg, + "Simple", i); + if (ret < 0) + return ret; + } + + num_tests = ARRAY_SIZE(complex_test_vector); + for (i = 0; i < num_tests; i++) { + ret = xhci_test_trb_in_td(xhci, + complex_test_vector[i].input_seg, + complex_test_vector[i].start_trb, + complex_test_vector[i].end_trb, + complex_test_vector[i].input_dma, + complex_test_vector[i].result_seg, + "Complex", i); + if (ret < 0) + return ret; + } + xhci_dbg(xhci, "TRB math tests passed.\n"); + return 0; +} + +static void xhci_set_hc_event_deq(struct xhci_hcd *xhci) +{ + u64 temp; + dma_addr_t deq; + + deq = xhci_trb_virt_to_dma(xhci->event_ring->deq_seg, + xhci->event_ring->dequeue); + if (deq == 0 && !in_interrupt()) + xhci_warn(xhci, "WARN something wrong with SW event ring " + "dequeue ptr.\n"); + /* Update HC event ring dequeue pointer */ + temp = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue); + temp &= ERST_PTR_MASK; + /* Don't clear the EHB bit (which is RW1C) because + * there might be more events to service. + */ + temp &= ~ERST_EHB; + xhci_dbg(xhci, "// Write event ring dequeue pointer, " + "preserving EHB bit\n"); + xhci_write_64(xhci, ((u64) deq & (u64) ~ERST_PTR_MASK) | temp, + &xhci->ir_set->erst_dequeue); +} + +static void xhci_add_in_port(struct xhci_hcd *xhci, unsigned int num_ports, + __le32 __iomem *addr, u8 major_revision) +{ + u32 temp, port_offset, port_count; + int i; + + if (major_revision > 0x03) { + xhci_warn(xhci, "Ignoring unknown port speed, " + "Ext Cap %p, revision = 0x%x\n", + addr, major_revision); + /* Ignoring port protocol we can't understand. FIXME */ + return; + } + + /* Port offset and count in the third dword, see section 7.2 */ + temp = xhci_readl(xhci, addr + 2); + port_offset = XHCI_EXT_PORT_OFF(temp); + port_count = XHCI_EXT_PORT_COUNT(temp); + xhci_dbg(xhci, "Ext Cap %p, port offset = %u, " + "count = %u, revision = 0x%x\n", + addr, port_offset, port_count, major_revision); + /* Port count includes the current port offset */ + if (port_offset == 0 || (port_offset + port_count - 1) > num_ports) + /* WTF? "Valid values are ‘1’ to MaxPorts" */ + return; + + /* Check the host's USB2 LPM capability */ + if ((xhci->hci_version == 0x96) && (major_revision != 0x03) && + (temp & XHCI_L1C)) { + xhci_dbg(xhci, "xHCI 0.96: support USB2 software lpm\n"); + xhci->sw_lpm_support = 1; + } + + if ((xhci->hci_version >= 0x100) && (major_revision != 0x03)) { + xhci_dbg(xhci, "xHCI 1.0: support USB2 software lpm\n"); + xhci->sw_lpm_support = 1; + if (temp & XHCI_HLC) { + xhci_dbg(xhci, "xHCI 1.0: support USB2 hardware lpm\n"); + xhci->hw_lpm_support = 1; + } + } + + port_offset--; + for (i = port_offset; i < (port_offset + port_count); i++) { + /* Duplicate entry. Ignore the port if the revisions differ. */ + if (xhci->port_array[i] != 0) { + xhci_warn(xhci, "Duplicate port entry, Ext Cap %p," + " port %u\n", addr, i); + xhci_warn(xhci, "Port was marked as USB %u, " + "duplicated as USB %u\n", + xhci->port_array[i], major_revision); + /* Only adjust the roothub port counts if we haven't + * found a similar duplicate. + */ + if (xhci->port_array[i] != major_revision && + xhci->port_array[i] != DUPLICATE_ENTRY) { + if (xhci->port_array[i] == 0x03) + xhci->num_usb3_ports--; + else + xhci->num_usb2_ports--; + xhci->port_array[i] = DUPLICATE_ENTRY; + } + /* FIXME: Should we disable the port? */ + continue; + } + xhci->port_array[i] = major_revision; + if (major_revision == 0x03) + xhci->num_usb3_ports++; + else + xhci->num_usb2_ports++; + } + /* FIXME: Should we disable ports not in the Extended Capabilities? */ +} + +/* + * Scan the Extended Capabilities for the "Supported Protocol Capabilities" that + * specify what speeds each port is supposed to be. We can't count on the port + * speed bits in the PORTSC register being correct until a device is connected, + * but we need to set up the two fake roothubs with the correct number of USB + * 3.0 and USB 2.0 ports at host controller initialization time. + */ +static int xhci_setup_port_arrays(struct xhci_hcd *xhci, gfp_t flags) +{ + __le32 __iomem *addr; + u32 offset; + unsigned int num_ports; + int i, j, port_index; + + addr = &xhci->cap_regs->hcc_params; + offset = XHCI_HCC_EXT_CAPS(xhci_readl(xhci, addr)); + if (offset == 0) { + xhci_err(xhci, "No Extended Capability registers, " + "unable to set up roothub.\n"); + return -ENODEV; + } + + num_ports = HCS_MAX_PORTS(xhci->hcs_params1); + xhci->port_array = kzalloc(sizeof(*xhci->port_array)*num_ports, flags); + if (!xhci->port_array) + return -ENOMEM; + + xhci->rh_bw = kzalloc(sizeof(*xhci->rh_bw)*num_ports, flags); + if (!xhci->rh_bw) + return -ENOMEM; + for (i = 0; i < num_ports; i++) { + struct xhci_interval_bw_table *bw_table; + + INIT_LIST_HEAD(&xhci->rh_bw[i].tts); + bw_table = &xhci->rh_bw[i].bw_table; + for (j = 0; j < XHCI_MAX_INTERVAL; j++) + INIT_LIST_HEAD(&bw_table->interval_bw[j].endpoints); + } + + /* + * For whatever reason, the first capability offset is from the + * capability register base, not from the HCCPARAMS register. + * See section 5.3.6 for offset calculation. + */ + addr = &xhci->cap_regs->hc_capbase + offset; + while (1) { + u32 cap_id; + + cap_id = xhci_readl(xhci, addr); + if (XHCI_EXT_CAPS_ID(cap_id) == XHCI_EXT_CAPS_PROTOCOL) + xhci_add_in_port(xhci, num_ports, addr, + (u8) XHCI_EXT_PORT_MAJOR(cap_id)); + offset = XHCI_EXT_CAPS_NEXT(cap_id); + if (!offset || (xhci->num_usb2_ports + xhci->num_usb3_ports) + == num_ports) + break; + /* + * Once you're into the Extended Capabilities, the offset is + * always relative to the register holding the offset. + */ + addr += offset; + } + + if (xhci->num_usb2_ports == 0 && xhci->num_usb3_ports == 0) { + xhci_warn(xhci, "No ports on the roothubs?\n"); + return -ENODEV; + } + xhci_dbg(xhci, "Found %u USB 2.0 ports and %u USB 3.0 ports.\n", + xhci->num_usb2_ports, xhci->num_usb3_ports); + + /* Place limits on the number of roothub ports so that the hub + * descriptors aren't longer than the USB core will allocate. + */ + if (xhci->num_usb3_ports > 15) { + xhci_dbg(xhci, "Limiting USB 3.0 roothub ports to 15.\n"); + xhci->num_usb3_ports = 15; + } + if (xhci->num_usb2_ports > USB_MAXCHILDREN) { + xhci_dbg(xhci, "Limiting USB 2.0 roothub ports to %u.\n", + USB_MAXCHILDREN); + xhci->num_usb2_ports = USB_MAXCHILDREN; + } + + /* + * Note we could have all USB 3.0 ports, or all USB 2.0 ports. + * Not sure how the USB core will handle a hub with no ports... + */ + if (xhci->num_usb2_ports) { + xhci->usb2_ports = kmalloc(sizeof(*xhci->usb2_ports)* + xhci->num_usb2_ports, flags); + if (!xhci->usb2_ports) + return -ENOMEM; + + port_index = 0; + for (i = 0; i < num_ports; i++) { + if (xhci->port_array[i] == 0x03 || + xhci->port_array[i] == 0 || + xhci->port_array[i] == DUPLICATE_ENTRY) + continue; + + xhci->usb2_ports[port_index] = + &xhci->op_regs->port_status_base + + NUM_PORT_REGS*i; + xhci_dbg(xhci, "USB 2.0 port at index %u, " + "addr = %p\n", i, + xhci->usb2_ports[port_index]); + port_index++; + if (port_index == xhci->num_usb2_ports) + break; + } + } + if (xhci->num_usb3_ports) { + xhci->usb3_ports = kmalloc(sizeof(*xhci->usb3_ports)* + xhci->num_usb3_ports, flags); + if (!xhci->usb3_ports) + return -ENOMEM; + + port_index = 0; + for (i = 0; i < num_ports; i++) + if (xhci->port_array[i] == 0x03) { + xhci->usb3_ports[port_index] = + &xhci->op_regs->port_status_base + + NUM_PORT_REGS*i; + xhci_dbg(xhci, "USB 3.0 port at index %u, " + "addr = %p\n", i, + xhci->usb3_ports[port_index]); + port_index++; + if (port_index == xhci->num_usb3_ports) + break; + } + } + return 0; +} + +int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) +{ + dma_addr_t dma; + struct device *dev = xhci_to_hcd(xhci)->self.controller; + unsigned int val, val2; + u64 val_64; + struct xhci_segment *seg; + u32 page_size, temp; + int i; + + page_size = xhci_readl(xhci, &xhci->op_regs->page_size); + xhci_dbg(xhci, "Supported page size register = 0x%x\n", page_size); + for (i = 0; i < 16; i++) { + if ((0x1 & page_size) != 0) + break; + page_size = page_size >> 1; + } + if (i < 16) + xhci_dbg(xhci, "Supported page size of %iK\n", (1 << (i+12)) / 1024); + else + xhci_warn(xhci, "WARN: no supported page size\n"); + /* Use 4K pages, since that's common and the minimum the HC supports */ + xhci->page_shift = 12; + xhci->page_size = 1 << xhci->page_shift; + xhci_dbg(xhci, "HCD page size set to %iK\n", xhci->page_size / 1024); + + /* + * Program the Number of Device Slots Enabled field in the CONFIG + * register with the max value of slots the HC can handle. + */ + val = HCS_MAX_SLOTS(xhci_readl(xhci, &xhci->cap_regs->hcs_params1)); + xhci_dbg(xhci, "// xHC can handle at most %d device slots.\n", + (unsigned int) val); + val2 = xhci_readl(xhci, &xhci->op_regs->config_reg); + val |= (val2 & ~HCS_SLOTS_MASK); + xhci_dbg(xhci, "// Setting Max device slots reg = 0x%x.\n", + (unsigned int) val); + xhci_writel(xhci, val, &xhci->op_regs->config_reg); + + /* + * Section 5.4.8 - doorbell array must be + * "physically contiguous and 64-byte (cache line) aligned". + */ + xhci->dcbaa = dma_alloc_coherent(dev, sizeof(*xhci->dcbaa), &dma, + GFP_KERNEL); + if (!xhci->dcbaa) + goto fail; + memset(xhci->dcbaa, 0, sizeof *(xhci->dcbaa)); + xhci->dcbaa->dma = dma; + xhci_dbg(xhci, "// Device context base array address = 0x%llx (DMA), %p (virt)\n", + (unsigned long long)xhci->dcbaa->dma, xhci->dcbaa); + xhci_write_64(xhci, dma, &xhci->op_regs->dcbaa_ptr); + + /* + * Initialize the ring segment pool. The ring must be a contiguous + * structure comprised of TRBs. The TRBs must be 16 byte aligned, + * however, the command ring segment needs 64-byte aligned segments, + * so we pick the greater alignment need. + */ + xhci->segment_pool = dma_pool_create("xHCI ring segments", dev, + SEGMENT_SIZE, 64, xhci->page_size); + + /* See Table 46 and Note on Figure 55 */ + xhci->device_pool = dma_pool_create("xHCI input/output contexts", dev, + 2112, 64, xhci->page_size); + if (!xhci->segment_pool || !xhci->device_pool) + goto fail; + + /* Linear stream context arrays don't have any boundary restrictions, + * and only need to be 16-byte aligned. + */ + xhci->small_streams_pool = + dma_pool_create("xHCI 256 byte stream ctx arrays", + dev, SMALL_STREAM_ARRAY_SIZE, 16, 0); + xhci->medium_streams_pool = + dma_pool_create("xHCI 1KB stream ctx arrays", + dev, MEDIUM_STREAM_ARRAY_SIZE, 16, 0); + /* Any stream context array bigger than MEDIUM_STREAM_ARRAY_SIZE + * will be allocated with dma_alloc_coherent() + */ + + if (!xhci->small_streams_pool || !xhci->medium_streams_pool) + goto fail; + + /* Set up the command ring to have one segments for now. */ + xhci->cmd_ring = xhci_ring_alloc(xhci, 1, 1, TYPE_COMMAND, flags); + if (!xhci->cmd_ring) + goto fail; + xhci_dbg(xhci, "Allocated command ring at %p\n", xhci->cmd_ring); + xhci_dbg(xhci, "First segment DMA is 0x%llx\n", + (unsigned long long)xhci->cmd_ring->first_seg->dma); + + /* Set the address in the Command Ring Control register */ + val_64 = xhci_read_64(xhci, &xhci->op_regs->cmd_ring); + val_64 = (val_64 & (u64) CMD_RING_RSVD_BITS) | + (xhci->cmd_ring->first_seg->dma & (u64) ~CMD_RING_RSVD_BITS) | + xhci->cmd_ring->cycle_state; + xhci_dbg(xhci, "// Setting command ring address to 0x%x\n", val); + xhci_write_64(xhci, val_64, &xhci->op_regs->cmd_ring); + xhci_dbg_cmd_ptrs(xhci); + + val = xhci_readl(xhci, &xhci->cap_regs->db_off); + val &= DBOFF_MASK; + xhci_dbg(xhci, "// Doorbell array is located at offset 0x%x" + " from cap regs base addr\n", val); + xhci->dba = (void __iomem *) xhci->cap_regs + val; + xhci_dbg_regs(xhci); + xhci_print_run_regs(xhci); + /* Set ir_set to interrupt register set 0 */ + xhci->ir_set = &xhci->run_regs->ir_set[0]; + + /* + * Event ring setup: Allocate a normal ring, but also setup + * the event ring segment table (ERST). Section 4.9.3. + */ + xhci_dbg(xhci, "// Allocating event ring\n"); + xhci->event_ring = xhci_ring_alloc(xhci, ERST_NUM_SEGS, 1, TYPE_EVENT, + flags); + if (!xhci->event_ring) + goto fail; + if (xhci_check_trb_in_td_math(xhci, flags) < 0) + goto fail; + + xhci->erst.entries = dma_alloc_coherent(dev, + sizeof(struct xhci_erst_entry) * ERST_NUM_SEGS, &dma, + GFP_KERNEL); + if (!xhci->erst.entries) + goto fail; + xhci_dbg(xhci, "// Allocated event ring segment table at 0x%llx\n", + (unsigned long long)dma); + + memset(xhci->erst.entries, 0, sizeof(struct xhci_erst_entry)*ERST_NUM_SEGS); + xhci->erst.num_entries = ERST_NUM_SEGS; + xhci->erst.erst_dma_addr = dma; + xhci_dbg(xhci, "Set ERST to 0; private num segs = %i, virt addr = %p, dma addr = 0x%llx\n", + xhci->erst.num_entries, + xhci->erst.entries, + (unsigned long long)xhci->erst.erst_dma_addr); + + /* set ring base address and size for each segment table entry */ + for (val = 0, seg = xhci->event_ring->first_seg; val < ERST_NUM_SEGS; val++) { + struct xhci_erst_entry *entry = &xhci->erst.entries[val]; + entry->seg_addr = cpu_to_le64(seg->dma); + entry->seg_size = cpu_to_le32(TRBS_PER_SEGMENT); + entry->rsvd = 0; + seg = seg->next; + } + + /* set ERST count with the number of entries in the segment table */ + val = xhci_readl(xhci, &xhci->ir_set->erst_size); + val &= ERST_SIZE_MASK; + val |= ERST_NUM_SEGS; + xhci_dbg(xhci, "// Write ERST size = %i to ir_set 0 (some bits preserved)\n", + val); + xhci_writel(xhci, val, &xhci->ir_set->erst_size); + + xhci_dbg(xhci, "// Set ERST entries to point to event ring.\n"); + /* set the segment table base address */ + xhci_dbg(xhci, "// Set ERST base address for ir_set 0 = 0x%llx\n", + (unsigned long long)xhci->erst.erst_dma_addr); + val_64 = xhci_read_64(xhci, &xhci->ir_set->erst_base); + val_64 &= ERST_PTR_MASK; + val_64 |= (xhci->erst.erst_dma_addr & (u64) ~ERST_PTR_MASK); + xhci_write_64(xhci, val_64, &xhci->ir_set->erst_base); + + /* Set the event ring dequeue address */ + xhci_set_hc_event_deq(xhci); + xhci_dbg(xhci, "Wrote ERST address to ir_set 0.\n"); + xhci_print_ir_set(xhci, 0); + + /* + * XXX: Might need to set the Interrupter Moderation Register to + * something other than the default (~1ms minimum between interrupts). + * See section 5.5.1.2. + */ + init_completion(&xhci->addr_dev); + for (i = 0; i < MAX_HC_SLOTS; ++i) + xhci->devs[i] = NULL; + for (i = 0; i < USB_MAXCHILDREN; ++i) { + xhci->bus_state[0].resume_done[i] = 0; + xhci->bus_state[1].resume_done[i] = 0; + } + + if (scratchpad_alloc(xhci, flags)) + goto fail; + if (xhci_setup_port_arrays(xhci, flags)) + goto fail; + + INIT_LIST_HEAD(&xhci->lpm_failed_devs); + + /* Enable USB 3.0 device notifications for function remote wake, which + * is necessary for allowing USB 3.0 devices to do remote wakeup from + * U3 (device suspend). + */ + temp = xhci_readl(xhci, &xhci->op_regs->dev_notification); + temp &= ~DEV_NOTE_MASK; + temp |= DEV_NOTE_FWAKE; + xhci_writel(xhci, temp, &xhci->op_regs->dev_notification); + + return 0; + +fail: + xhci_warn(xhci, "Couldn't initialize memory\n"); + xhci_halt(xhci); + xhci_reset(xhci); + xhci_mem_cleanup(xhci); + return -ENOMEM; +} diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-pci.c b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-pci.c new file mode 100644 index 0000000000000000000000000000000000000000..3b848eb2eca807935dcb656df8a11cfce0d70c68 --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-pci.c @@ -0,0 +1,348 @@ +/* + * xHCI host controller driver PCI Bus Glue. + * + * Copyright (C) 2008 Intel Corp. + * + * Author: Sarah Sharp + * Some code borrowed from the Linux EHCI driver. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include + +#include "xhci.h" + +/* Device for a quirk */ +#define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73 +#define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000 + +#define PCI_VENDOR_ID_ETRON 0x1b6f +#define PCI_DEVICE_ID_ASROCK_P67 0x7023 + +static const char hcd_name[] = "xhci_hcd"; + +/* called after powerup, by probe or system-pm "wakeup" */ +static int xhci_pci_reinit(struct xhci_hcd *xhci, struct pci_dev *pdev) +{ + /* + * TODO: Implement finding debug ports later. + * TODO: see if there are any quirks that need to be added to handle + * new extended capabilities. + */ + + /* PCI Memory-Write-Invalidate cycle support is optional (uncommon) */ + if (!pci_set_mwi(pdev)) + xhci_dbg(xhci, "MWI active\n"); + + xhci_dbg(xhci, "Finished xhci_pci_reinit\n"); + return 0; +} + +static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +{ + struct pci_dev *pdev = to_pci_dev(dev); + + /* Look for vendor-specific quirks */ + if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC && + pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK) { + if (pdev->revision == 0x0) { + xhci->quirks |= XHCI_RESET_EP_QUIRK; + xhci_dbg(xhci, "QUIRK: Fresco Logic xHC needs configure" + " endpoint cmd after reset endpoint\n"); + } + /* Fresco Logic confirms: all revisions of this chip do not + * support MSI, even though some of them claim to in their PCI + * capabilities. + */ + xhci->quirks |= XHCI_BROKEN_MSI; + xhci_dbg(xhci, "QUIRK: Fresco Logic revision %u " + "has broken MSI implementation\n", + pdev->revision); + xhci->quirks |= XHCI_TRUST_TX_LENGTH; + } + + if (pdev->vendor == PCI_VENDOR_ID_NEC) + xhci->quirks |= XHCI_NEC_HOST; + + if (pdev->vendor == PCI_VENDOR_ID_AMD && xhci->hci_version == 0x96) + xhci->quirks |= XHCI_AMD_0x96_HOST; + + /* AMD PLL quirk */ + if (pdev->vendor == PCI_VENDOR_ID_AMD && usb_amd_find_chipset_info()) + xhci->quirks |= XHCI_AMD_PLL_FIX; + if (pdev->vendor == PCI_VENDOR_ID_INTEL && + pdev->device == PCI_DEVICE_ID_INTEL_PANTHERPOINT_XHCI) { + xhci->quirks |= XHCI_SPURIOUS_SUCCESS; + xhci->quirks |= XHCI_EP_LIMIT_QUIRK; + xhci->limit_active_eps = 64; + xhci->quirks |= XHCI_SW_BW_CHECKING; + } + if (pdev->vendor == PCI_VENDOR_ID_ETRON && + pdev->device == PCI_DEVICE_ID_ASROCK_P67) { + xhci->quirks |= XHCI_RESET_ON_RESUME; + xhci_dbg(xhci, "QUIRK: Resetting on resume\n"); + xhci->quirks |= XHCI_TRUST_TX_LENGTH; + } + if (pdev->vendor == PCI_VENDOR_ID_VIA) + xhci->quirks |= XHCI_RESET_ON_RESUME; +} + +/* called during probe() after chip reset completes */ +static int xhci_pci_setup(struct usb_hcd *hcd) +{ + struct xhci_hcd *xhci; + struct pci_dev *pdev = to_pci_dev(hcd->self.controller); + int retval; + + retval = xhci_gen_setup(hcd, xhci_pci_quirks); + if (retval) + return retval; + + xhci = hcd_to_xhci(hcd); + if (!usb_hcd_is_primary_hcd(hcd)) + return 0; + + pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn); + xhci_dbg(xhci, "Got SBRN %u\n", (unsigned int) xhci->sbrn); + + /* Find any debug ports */ + retval = xhci_pci_reinit(xhci, pdev); + if (!retval) + return retval; + + kfree(xhci); + return retval; +} + +/* + * We need to register our own PCI probe function (instead of the USB core's + * function) in order to create a second roothub under xHCI. + */ +static int xhci_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) +{ + int retval; + struct xhci_hcd *xhci; + struct hc_driver *driver; + struct usb_hcd *hcd; + + driver = (struct hc_driver *)id->driver_data; + /* Register the USB 2.0 roothub. + * FIXME: USB core must know to register the USB 2.0 roothub first. + * This is sort of silly, because we could just set the HCD driver flags + * to say USB 2.0, but I'm not sure what the implications would be in + * the other parts of the HCD code. + */ + retval = usb_hcd_pci_probe(dev, id); + if (retval) + return retval; + + /* USB 2.0 roothub is stored in the PCI device now. */ + hcd = dev_get_drvdata(&dev->dev); + xhci = hcd_to_xhci(hcd); + xhci->shared_hcd = usb_create_shared_hcd(driver, &dev->dev, + pci_name(dev), hcd); + if (!xhci->shared_hcd) { + retval = -ENOMEM; + goto dealloc_usb2_hcd; + } + + /* Set the xHCI pointer before xhci_pci_setup() (aka hcd_driver.reset) + * is called by usb_add_hcd(). + */ + *((struct xhci_hcd **) xhci->shared_hcd->hcd_priv) = xhci; + + retval = usb_add_hcd(xhci->shared_hcd, dev->irq, + IRQF_SHARED); + if (retval) + goto put_usb3_hcd; + /* Roothub already marked as USB 3.0 speed */ + return 0; + +put_usb3_hcd: + usb_put_hcd(xhci->shared_hcd); +dealloc_usb2_hcd: + usb_hcd_pci_remove(dev); + return retval; +} + +static void xhci_pci_remove(struct pci_dev *dev) +{ + struct xhci_hcd *xhci; + + xhci = hcd_to_xhci(pci_get_drvdata(dev)); + if (xhci->shared_hcd) { + usb_remove_hcd(xhci->shared_hcd); + usb_put_hcd(xhci->shared_hcd); + } + usb_hcd_pci_remove(dev); + kfree(xhci); +} + +#ifdef CONFIG_PM +#if defined(__VMKLNX__) +static int xhci_pci_suspend(struct usb_hcd *hcd) +#else +static int xhci_pci_suspend(struct usb_hcd *hcd, bool do_wakeup) +#endif +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + int retval = 0; + + if (hcd->state != HC_STATE_SUSPENDED || + xhci->shared_hcd->state != HC_STATE_SUSPENDED) + return -EINVAL; + + retval = xhci_suspend(xhci); + + return retval; +} + +static int xhci_pci_resume(struct usb_hcd *hcd, bool hibernated) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); +#if !defined(__VMKLNX__) + struct pci_dev *pdev = to_pci_dev(hcd->self.controller); +#endif + int retval = 0; + +#if !defined(__VMKLNX__) + /* FXIME: revise PantherPoint policy */ + /* The BIOS on systems with the Intel Panther Point chipset may or may + * not support xHCI natively. That means that during system resume, it + * may switch the ports back to EHCI so that users can use their + * keyboard to select a kernel from GRUB after resume from hibernate. + * + * The BIOS is supposed to remember whether the OS had xHCI ports + * enabled before resume, and switch the ports back to xHCI when the + * BIOS/OS semaphore is written, but we all know we can't trust BIOS + * writers. + * + * Unconditionally switch the ports back to xHCI after a system resume. + * We can't tell whether the EHCI or xHCI controller will be resumed + * first, so we have to do the port switchover in both drivers. Writing + * a '1' to the port switchover registers should have no effect if the + * port was already switched over. + */ + if (usb_is_intel_switchable_xhci(pdev)) + usb_enable_xhci_ports(pdev); +#endif + + retval = xhci_resume(xhci, hibernated); + return retval; +} +#endif /* CONFIG_PM */ + +static const struct hc_driver xhci_pci_hc_driver = { + .description = hcd_name, + .product_desc = "xHCI Host Controller", + .hcd_priv_size = sizeof(struct xhci_hcd *), + + /* + * generic hardware linkage + */ + .irq = xhci_irq, + .flags = HCD_MEMORY | HCD_USB3 | HCD_SHARED, + + /* + * basic lifecycle operations + */ + .reset = xhci_pci_setup, + .start = xhci_run, +#ifdef CONFIG_PM + .pci_suspend = xhci_pci_suspend, + .pci_resume = xhci_pci_resume, +#endif + .stop = xhci_stop, + .shutdown = xhci_shutdown, + + /* + * managing i/o requests and associated device resources + */ + .urb_enqueue = xhci_urb_enqueue, + .urb_dequeue = xhci_urb_dequeue, + .alloc_dev = xhci_alloc_dev, + .free_dev = xhci_free_dev, + .alloc_streams = xhci_alloc_streams, + .free_streams = xhci_free_streams, + .add_endpoint = xhci_add_endpoint, + .drop_endpoint = xhci_drop_endpoint, + .endpoint_reset = xhci_endpoint_reset, + .check_bandwidth = xhci_check_bandwidth, + .reset_bandwidth = xhci_reset_bandwidth, + .address_device = xhci_address_device, + .update_hub_device = xhci_update_hub_device, + .reset_device = xhci_discover_or_reset_device, + + /* + * scheduling support + */ + .get_frame_number = xhci_get_frame, + + /* Root hub support */ + .hub_control = xhci_hub_control, + .hub_status_data = xhci_hub_status_data, + +#if defined(__VMKLNX__) + .module = THIS_MODULE, +#endif + .bus_suspend = xhci_bus_suspend, + .bus_resume = xhci_bus_resume, + /* + * call back when device connected and addressed + */ + .update_device = xhci_update_device, + .set_usb2_hw_lpm = xhci_set_usb2_hardware_lpm, +}; + +/*-------------------------------------------------------------------------*/ + +/* PCI driver selection metadata; PCI hotplugging uses this */ +static const struct pci_device_id pci_ids[] = { { + /* handle any USB 3.0 xHCI controller */ + PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_XHCI, ~0), + .driver_data = (unsigned long) &xhci_pci_hc_driver, + }, + { /* end: all zeroes */ } +}; +MODULE_DEVICE_TABLE(pci, pci_ids); + +/* pci driver glue; this is a "new style" PCI driver module */ +static struct pci_driver xhci_pci_driver = { + .name = (char *) hcd_name, + .id_table = pci_ids, + + .probe = xhci_pci_probe, + .remove = xhci_pci_remove, + /* suspend and resume implemented later */ + + .shutdown = usb_hcd_pci_shutdown, +#ifdef CONFIG_PM_SLEEP + .driver = { + .pm = &usb_hcd_pci_pm_ops + }, +#endif +}; + +int __init xhci_register_pci(void) +{ + return pci_register_driver(&xhci_pci_driver); +} + +void xhci_unregister_pci(void) +{ + pci_unregister_driver(&xhci_pci_driver); +} diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-ring.c b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-ring.c new file mode 100644 index 0000000000000000000000000000000000000000..6de9e16f4bf26cf587e1e8b6e7e999ee537b17ac --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci-ring.c @@ -0,0 +1,3726 @@ +/* + * xHCI host controller driver + * + * Copyright (C) 2008 Intel Corp. + * + * Author: Sarah Sharp + * Some code borrowed from the Linux EHCI driver. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* + * Ring initialization rules: + * 1. Each segment is initialized to zero, except for link TRBs. + * 2. Ring cycle state = 0. This represents Producer Cycle State (PCS) or + * Consumer Cycle State (CCS), depending on ring function. + * 3. Enqueue pointer = dequeue pointer = address of first TRB in the segment. + * + * Ring behavior rules: + * 1. A ring is empty if enqueue == dequeue. This means there will always be at + * least one free TRB in the ring. This is useful if you want to turn that + * into a link TRB and expand the ring. + * 2. When incrementing an enqueue or dequeue pointer, if the next TRB is a + * link TRB, then load the pointer with the address in the link TRB. If the + * link TRB had its toggle bit set, you may need to update the ring cycle + * state (see cycle bit rules). You may have to do this multiple times + * until you reach a non-link TRB. + * 3. A ring is full if enqueue++ (for the definition of increment above) + * equals the dequeue pointer. + * + * Cycle bit rules: + * 1. When a consumer increments a dequeue pointer and encounters a toggle bit + * in a link TRB, it must toggle the ring cycle state. + * 2. When a producer increments an enqueue pointer and encounters a toggle bit + * in a link TRB, it must toggle the ring cycle state. + * + * Producer rules: + * 1. Check if ring is full before you enqueue. + * 2. Write the ring cycle state to the cycle bit in the TRB you're enqueuing. + * Update enqueue pointer between each write (which may update the ring + * cycle state). + * 3. Notify consumer. If SW is producer, it rings the doorbell for command + * and endpoint rings. If HC is the producer for the event ring, + * and it generates an interrupt according to interrupt modulation rules. + * + * Consumer rules: + * 1. Check if TRB belongs to you. If the cycle bit == your ring cycle state, + * the TRB is owned by the consumer. + * 2. Update dequeue pointer (which may update the ring cycle state) and + * continue processing TRBs until you reach a TRB which is not owned by you. + * 3. Notify the producer. SW is the consumer for the event ring, and it + * updates event ring dequeue pointer. HC is the consumer for the command and + * endpoint rings; it generates events on the event ring for these. + */ + +#include +#include +#include "xhci.h" + +static int handle_cmd_in_cmd_wait_list(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + struct xhci_event_cmd *event); + +/* + * Returns zero if the TRB isn't in this segment, otherwise it returns the DMA + * address of the TRB. + */ +dma_addr_t xhci_trb_virt_to_dma(struct xhci_segment *seg, + union xhci_trb *trb) +{ + unsigned long segment_offset; + + if (!seg || !trb || trb < seg->trbs) + return 0; + /* offset in TRBs */ + segment_offset = trb - seg->trbs; + if (segment_offset > TRBS_PER_SEGMENT) + return 0; + return seg->dma + (segment_offset * sizeof(*trb)); +} + +/* Does this link TRB point to the first segment in a ring, + * or was the previous TRB the last TRB on the last segment in the ERST? + */ +static bool last_trb_on_last_seg(struct xhci_hcd *xhci, struct xhci_ring *ring, + struct xhci_segment *seg, union xhci_trb *trb) +{ + if (ring == xhci->event_ring) + return (trb == &seg->trbs[TRBS_PER_SEGMENT]) && + (seg->next == xhci->event_ring->first_seg); + else + return le32_to_cpu(trb->link.control) & LINK_TOGGLE; +} + +/* Is this TRB a link TRB or was the last TRB the last TRB in this event ring + * segment? I.e. would the updated event TRB pointer step off the end of the + * event seg? + */ +static int last_trb(struct xhci_hcd *xhci, struct xhci_ring *ring, + struct xhci_segment *seg, union xhci_trb *trb) +{ + if (ring == xhci->event_ring) + return trb == &seg->trbs[TRBS_PER_SEGMENT]; + else + return TRB_TYPE_LINK_LE32(trb->link.control); +} + +static int enqueue_is_link_trb(struct xhci_ring *ring) +{ + struct xhci_link_trb *link = &ring->enqueue->link; + return TRB_TYPE_LINK_LE32(link->control); +} + +/* Updates trb to point to the next TRB in the ring, and updates seg if the next + * TRB is in a new segment. This does not skip over link TRBs, and it does not + * effect the ring dequeue or enqueue pointers. + */ +static void next_trb(struct xhci_hcd *xhci, + struct xhci_ring *ring, + struct xhci_segment **seg, + union xhci_trb **trb) +{ + if (last_trb(xhci, ring, *seg, *trb)) { + *seg = (*seg)->next; + *trb = ((*seg)->trbs); + } else { + (*trb)++; + } +} + +/* + * See Cycle bit rules. SW is the consumer for the event ring only. + * Don't make a ring full of link TRBs. That would be dumb and this would loop. + */ +static void inc_deq(struct xhci_hcd *xhci, struct xhci_ring *ring) +{ + unsigned long long addr; + + ring->deq_updates++; + + /* + * If this is not event ring, and the dequeue pointer + * is not on a link TRB, there is one more usable TRB + */ + if (ring->type != TYPE_EVENT && + !last_trb(xhci, ring, ring->deq_seg, ring->dequeue)) + ring->num_trbs_free++; + + do { + /* + * Update the dequeue pointer further if that was a link TRB or + * we're at the end of an event ring segment (which doesn't have + * link TRBS) + */ + if (last_trb(xhci, ring, ring->deq_seg, ring->dequeue)) { + if (ring->type == TYPE_EVENT && + last_trb_on_last_seg(xhci, ring, + ring->deq_seg, ring->dequeue)) { + ring->cycle_state = (ring->cycle_state ? 0 : 1); + } + ring->deq_seg = ring->deq_seg->next; + ring->dequeue = ring->deq_seg->trbs; + } else { + ring->dequeue++; + } + } while (last_trb(xhci, ring, ring->deq_seg, ring->dequeue)); + + addr = (unsigned long long) xhci_trb_virt_to_dma(ring->deq_seg, ring->dequeue); +} + +/* + * See Cycle bit rules. SW is the consumer for the event ring only. + * Don't make a ring full of link TRBs. That would be dumb and this would loop. + * + * If we've just enqueued a TRB that is in the middle of a TD (meaning the + * chain bit is set), then set the chain bit in all the following link TRBs. + * If we've enqueued the last TRB in a TD, make sure the following link TRBs + * have their chain bit cleared (so that each Link TRB is a separate TD). + * + * Section 6.4.4.1 of the 0.95 spec says link TRBs cannot have the chain bit + * set, but other sections talk about dealing with the chain bit set. This was + * fixed in the 0.96 specification errata, but we have to assume that all 0.95 + * xHCI hardware can't handle the chain bit being cleared on a link TRB. + * + * @more_trbs_coming: Will you enqueue more TRBs before calling + * prepare_transfer()? + */ +static void inc_enq(struct xhci_hcd *xhci, struct xhci_ring *ring, + bool more_trbs_coming) +{ + u32 chain; + union xhci_trb *next; + unsigned long long addr; + + chain = le32_to_cpu(ring->enqueue->generic.field[3]) & TRB_CHAIN; + /* If this is not event ring, there is one less usable TRB */ + if (ring->type != TYPE_EVENT && + !last_trb(xhci, ring, ring->enq_seg, ring->enqueue)) + ring->num_trbs_free--; + next = ++(ring->enqueue); + + ring->enq_updates++; + /* Update the dequeue pointer further if that was a link TRB or we're at + * the end of an event ring segment (which doesn't have link TRBS) + */ + while (last_trb(xhci, ring, ring->enq_seg, next)) { + if (ring->type != TYPE_EVENT) { + /* + * If the caller doesn't plan on enqueueing more + * TDs before ringing the doorbell, then we + * don't want to give the link TRB to the + * hardware just yet. We'll give the link TRB + * back in prepare_ring() just before we enqueue + * the TD at the top of the ring. + */ + if (!chain && !more_trbs_coming) + break; + + /* If we're not dealing with 0.95 hardware or + * isoc rings on AMD 0.96 host, + * carry over the chain bit of the previous TRB + * (which may mean the chain bit is cleared). + */ + if (!(ring->type == TYPE_ISOC && + (xhci->quirks & XHCI_AMD_0x96_HOST)) + && !xhci_link_trb_quirk(xhci)) { + next->link.control &= + cpu_to_le32(~TRB_CHAIN); + next->link.control |= + cpu_to_le32(chain); + } + /* Give this link TRB to the hardware */ + wmb(); + next->link.control ^= cpu_to_le32(TRB_CYCLE); + + /* Toggle the cycle bit after the last ring segment. */ + if (last_trb_on_last_seg(xhci, ring, ring->enq_seg, next)) { + ring->cycle_state = (ring->cycle_state ? 0 : 1); + } + } + ring->enq_seg = ring->enq_seg->next; + ring->enqueue = ring->enq_seg->trbs; + next = ring->enqueue; + } + addr = (unsigned long long) xhci_trb_virt_to_dma(ring->enq_seg, ring->enqueue); +} + +/* + * Check to see if there's room to enqueue num_trbs on the ring and make sure + * enqueue pointer will not advance into dequeue segment. See rules above. + */ +static inline int room_on_ring(struct xhci_hcd *xhci, struct xhci_ring *ring, + unsigned int num_trbs) +{ + int num_trbs_in_deq_seg; + + if (ring->num_trbs_free < num_trbs) + return 0; + + if (ring->type != TYPE_COMMAND && ring->type != TYPE_EVENT) { + num_trbs_in_deq_seg = ring->dequeue - ring->deq_seg->trbs; + if (ring->num_trbs_free < num_trbs + num_trbs_in_deq_seg) + return 0; + } + + return 1; +} + +/* Ring the host controller doorbell after placing a command on the ring */ +void xhci_ring_cmd_db(struct xhci_hcd *xhci) +{ + xhci_dbg(xhci, "// Ding dong!\n"); + xhci_writel(xhci, DB_VALUE_HOST, &xhci->dba->doorbell[0]); + /* Flush PCI posted writes */ + xhci_readl(xhci, &xhci->dba->doorbell[0]); +} + +void xhci_ring_ep_doorbell(struct xhci_hcd *xhci, + unsigned int slot_id, + unsigned int ep_index, + unsigned int stream_id) +{ + __le32 __iomem *db_addr = &xhci->dba->doorbell[slot_id]; + struct xhci_virt_ep *ep = &xhci->devs[slot_id]->eps[ep_index]; + unsigned int ep_state = ep->ep_state; + + /* Don't ring the doorbell for this endpoint if there are pending + * cancellations because we don't want to interrupt processing. + * We don't want to restart any stream rings if there's a set dequeue + * pointer command pending because the device can choose to start any + * stream once the endpoint is on the HW schedule. + * FIXME - check all the stream rings for pending cancellations. + */ + if ((ep_state & EP_HALT_PENDING) || (ep_state & SET_DEQ_PENDING) || + (ep_state & EP_HALTED)) + return; + xhci_writel(xhci, DB_VALUE(ep_index, stream_id), db_addr); + /* The CPU has better things to do at this point than wait for a + * write-posting flush. It'll get there soon enough. + */ +} + +/* Ring the doorbell for any rings with pending URBs */ +static void ring_doorbell_for_active_rings(struct xhci_hcd *xhci, + unsigned int slot_id, + unsigned int ep_index) +{ + unsigned int stream_id; + struct xhci_virt_ep *ep; + + ep = &xhci->devs[slot_id]->eps[ep_index]; + + /* A ring has pending URBs if its TD list is not empty */ + if (!(ep->ep_state & EP_HAS_STREAMS)) { + if (!(list_empty(&ep->ring->td_list))) + xhci_ring_ep_doorbell(xhci, slot_id, ep_index, 0); + return; + } + + for (stream_id = 1; stream_id < ep->stream_info->num_streams; + stream_id++) { + struct xhci_stream_info *stream_info = ep->stream_info; + if (!list_empty(&stream_info->stream_rings[stream_id]->td_list)) + xhci_ring_ep_doorbell(xhci, slot_id, ep_index, + stream_id); + } +} + +/* + * Find the segment that trb is in. Start searching in start_seg. + * If we must move past a segment that has a link TRB with a toggle cycle state + * bit set, then we will toggle the value pointed at by cycle_state. + */ +static struct xhci_segment *find_trb_seg( + struct xhci_segment *start_seg, + union xhci_trb *trb, int *cycle_state) +{ + struct xhci_segment *cur_seg = start_seg; + struct xhci_generic_trb *generic_trb; + + while (cur_seg->trbs > trb || + &cur_seg->trbs[TRBS_PER_SEGMENT - 1] < trb) { + generic_trb = &cur_seg->trbs[TRBS_PER_SEGMENT - 1].generic; + if (generic_trb->field[3] & cpu_to_le32(LINK_TOGGLE)) + *cycle_state ^= 0x1; + cur_seg = cur_seg->next; + if (cur_seg == start_seg) + /* Looped over the entire list. Oops! */ + return NULL; + } + return cur_seg; +} + + +static struct xhci_ring *xhci_triad_to_transfer_ring(struct xhci_hcd *xhci, + unsigned int slot_id, unsigned int ep_index, + unsigned int stream_id) +{ + struct xhci_virt_ep *ep; + + ep = &xhci->devs[slot_id]->eps[ep_index]; + /* Common case: no streams */ + if (!(ep->ep_state & EP_HAS_STREAMS)) + return ep->ring; + + if (stream_id == 0) { + xhci_warn(xhci, + "WARN: Slot ID %u, ep index %u has streams, " + "but URB has no stream ID.\n", + slot_id, ep_index); + return NULL; + } + + if (stream_id < ep->stream_info->num_streams) + return ep->stream_info->stream_rings[stream_id]; + + xhci_warn(xhci, + "WARN: Slot ID %u, ep index %u has " + "stream IDs 1 to %u allocated, " + "but stream ID %u is requested.\n", + slot_id, ep_index, + ep->stream_info->num_streams - 1, + stream_id); + return NULL; +} + +/* Get the right ring for the given URB. + * If the endpoint supports streams, boundary check the URB's stream ID. + * If the endpoint doesn't support streams, return the singular endpoint ring. + */ +static struct xhci_ring *xhci_urb_to_transfer_ring(struct xhci_hcd *xhci, + struct urb *urb) +{ + return xhci_triad_to_transfer_ring(xhci, urb->dev->slot_id, + xhci_get_endpoint_index(&urb->ep->desc), urb->stream_id); +} + +/* + * Move the xHC's endpoint ring dequeue pointer past cur_td. + * Record the new state of the xHC's endpoint ring dequeue segment, + * dequeue pointer, and new consumer cycle state in state. + * Update our internal representation of the ring's dequeue pointer. + * + * We do this in three jumps: + * - First we update our new ring state to be the same as when the xHC stopped. + * - Then we traverse the ring to find the segment that contains + * the last TRB in the TD. We toggle the xHC's new cycle state when we pass + * any link TRBs with the toggle cycle bit set. + * - Finally we move the dequeue state one TRB further, toggling the cycle bit + * if we've moved it past a link TRB with the toggle cycle bit set. + * + * Some of the uses of xhci_generic_trb are grotty, but if they're done + * with correct __le32 accesses they should work fine. Only users of this are + * in here. + */ +void xhci_find_new_dequeue_state(struct xhci_hcd *xhci, + unsigned int slot_id, unsigned int ep_index, + unsigned int stream_id, struct xhci_td *cur_td, + struct xhci_dequeue_state *state) +{ + struct xhci_virt_device *dev = xhci->devs[slot_id]; + struct xhci_ring *ep_ring; + struct xhci_generic_trb *trb; + struct xhci_ep_ctx *ep_ctx; + dma_addr_t addr; + + ep_ring = xhci_triad_to_transfer_ring(xhci, slot_id, + ep_index, stream_id); + if (!ep_ring) { + xhci_warn(xhci, "WARN can't find new dequeue state " + "for invalid stream ID %u.\n", + stream_id); + return; + } + state->new_cycle_state = 0; + xhci_dbg(xhci, "Finding segment containing stopped TRB.\n"); + state->new_deq_seg = find_trb_seg(cur_td->start_seg, + dev->eps[ep_index].stopped_trb, + &state->new_cycle_state); + if (!state->new_deq_seg) { + WARN_ON(1); + return; + } + + /* Dig out the cycle state saved by the xHC during the stop ep cmd */ + xhci_dbg(xhci, "Finding endpoint context\n"); + ep_ctx = xhci_get_ep_ctx(xhci, dev->out_ctx, ep_index); + state->new_cycle_state = 0x1 & le64_to_cpu(ep_ctx->deq); + + state->new_deq_ptr = cur_td->last_trb; + xhci_dbg(xhci, "Finding segment containing last TRB in TD.\n"); + state->new_deq_seg = find_trb_seg(state->new_deq_seg, + state->new_deq_ptr, + &state->new_cycle_state); + if (!state->new_deq_seg) { + WARN_ON(1); + return; + } + + trb = &state->new_deq_ptr->generic; + if (TRB_TYPE_LINK_LE32(trb->field[3]) && + (trb->field[3] & cpu_to_le32(LINK_TOGGLE))) + state->new_cycle_state ^= 0x1; + next_trb(xhci, ep_ring, &state->new_deq_seg, &state->new_deq_ptr); + + /* + * If there is only one segment in a ring, find_trb_seg()'s while loop + * will not run, and it will return before it has a chance to see if it + * needs to toggle the cycle bit. It can't tell if the stalled transfer + * ended just before the link TRB on a one-segment ring, or if the TD + * wrapped around the top of the ring, because it doesn't have the TD in + * question. Look for the one-segment case where stalled TRB's address + * is greater than the new dequeue pointer address. + */ + if (ep_ring->first_seg == ep_ring->first_seg->next && + state->new_deq_ptr < dev->eps[ep_index].stopped_trb) + state->new_cycle_state ^= 0x1; + xhci_dbg(xhci, "Cycle state = 0x%x\n", state->new_cycle_state); + + /* Don't update the ring cycle state for the producer (us). */ + xhci_dbg(xhci, "New dequeue segment = %p (virtual)\n", + state->new_deq_seg); + addr = xhci_trb_virt_to_dma(state->new_deq_seg, state->new_deq_ptr); + xhci_dbg(xhci, "New dequeue pointer = 0x%llx (DMA)\n", + (unsigned long long) addr); +} + +/* flip_cycle means flip the cycle bit of all but the first and last TRB. + * (The last TRB actually points to the ring enqueue pointer, which is not part + * of this TD.) This is used to remove partially enqueued isoc TDs from a ring. + */ +static void td_to_noop(struct xhci_hcd *xhci, struct xhci_ring *ep_ring, + struct xhci_td *cur_td, bool flip_cycle) +{ + struct xhci_segment *cur_seg; + union xhci_trb *cur_trb; + + for (cur_seg = cur_td->start_seg, cur_trb = cur_td->first_trb; + true; + next_trb(xhci, ep_ring, &cur_seg, &cur_trb)) { + if (TRB_TYPE_LINK_LE32(cur_trb->generic.field[3])) { + /* Unchain any chained Link TRBs, but + * leave the pointers intact. + */ + cur_trb->generic.field[3] &= cpu_to_le32(~TRB_CHAIN); + /* Flip the cycle bit (link TRBs can't be the first + * or last TRB). + */ + if (flip_cycle) + cur_trb->generic.field[3] ^= + cpu_to_le32(TRB_CYCLE); + xhci_dbg(xhci, "Cancel (unchain) link TRB\n"); + xhci_dbg(xhci, "Address = %p (0x%llx dma); " + "in seg %p (0x%llx dma)\n", + cur_trb, + (unsigned long long)xhci_trb_virt_to_dma(cur_seg, cur_trb), + cur_seg, + (unsigned long long)cur_seg->dma); + } else { + cur_trb->generic.field[0] = 0; + cur_trb->generic.field[1] = 0; + cur_trb->generic.field[2] = 0; + /* Preserve only the cycle bit of this TRB */ + cur_trb->generic.field[3] &= cpu_to_le32(TRB_CYCLE); + /* Flip the cycle bit except on the first or last TRB */ + if (flip_cycle && cur_trb != cur_td->first_trb && + cur_trb != cur_td->last_trb) + cur_trb->generic.field[3] ^= + cpu_to_le32(TRB_CYCLE); + cur_trb->generic.field[3] |= cpu_to_le32( + TRB_TYPE(TRB_TR_NOOP)); + xhci_dbg(xhci, "TRB to noop at offset 0x%llx\n", + (unsigned long long) + xhci_trb_virt_to_dma(cur_seg, cur_trb)); + } + if (cur_trb == cur_td->last_trb) + break; + } +} + +static int queue_set_tr_deq(struct xhci_hcd *xhci, int slot_id, + unsigned int ep_index, unsigned int stream_id, + struct xhci_segment *deq_seg, + union xhci_trb *deq_ptr, u32 cycle_state); + +void xhci_queue_new_dequeue_state(struct xhci_hcd *xhci, + unsigned int slot_id, unsigned int ep_index, + unsigned int stream_id, + struct xhci_dequeue_state *deq_state) +{ + struct xhci_virt_ep *ep = &xhci->devs[slot_id]->eps[ep_index]; + + xhci_dbg(xhci, "Set TR Deq Ptr cmd, new deq seg = %p (0x%llx dma), " + "new deq ptr = %p (0x%llx dma), new cycle = %u\n", + deq_state->new_deq_seg, + (unsigned long long)deq_state->new_deq_seg->dma, + deq_state->new_deq_ptr, + (unsigned long long)xhci_trb_virt_to_dma(deq_state->new_deq_seg, deq_state->new_deq_ptr), + deq_state->new_cycle_state); + queue_set_tr_deq(xhci, slot_id, ep_index, stream_id, + deq_state->new_deq_seg, + deq_state->new_deq_ptr, + (u32) deq_state->new_cycle_state); + /* Stop the TD queueing code from ringing the doorbell until + * this command completes. The HC won't set the dequeue pointer + * if the ring is running, and ringing the doorbell starts the + * ring running. + */ + ep->ep_state |= SET_DEQ_PENDING; +} + +static void xhci_stop_watchdog_timer_in_irq(struct xhci_hcd *xhci, + struct xhci_virt_ep *ep) +{ + ep->ep_state &= ~EP_HALT_PENDING; + /* Can't del_timer_sync in interrupt, so we attempt to cancel. If the + * timer is running on another CPU, we don't decrement stop_cmds_pending + * (since we didn't successfully stop the watchdog timer). + */ + if (del_timer(&ep->stop_cmd_timer)) + ep->stop_cmds_pending--; +} + +/* Must be called with xhci->lock held in interrupt context */ +static void xhci_giveback_urb_in_irq(struct xhci_hcd *xhci, + struct xhci_td *cur_td, int status, char *adjective) +{ + struct usb_hcd *hcd; + struct urb *urb; + struct urb_priv *urb_priv; + + urb = cur_td->urb; + urb_priv = urb->hcpriv; + urb_priv->td_cnt++; + hcd = bus_to_hcd(urb->dev->bus); + + /* Only giveback urb when this is the last td in urb */ + if (urb_priv->td_cnt == urb_priv->length) { + if (usb_pipetype(urb->pipe) == PIPE_ISOCHRONOUS) { + xhci_to_hcd(xhci)->self.bandwidth_isoc_reqs--; + if (xhci_to_hcd(xhci)->self.bandwidth_isoc_reqs == 0) { + if (xhci->quirks & XHCI_AMD_PLL_FIX) + usb_amd_quirk_pll_enable(); + } + } + usb_hcd_unlink_urb_from_ep(hcd, urb); + + spin_unlock(&xhci->lock); + usb_hcd_giveback_urb(hcd, urb, status); + xhci_urb_free_priv(xhci, urb_priv); + spin_lock(&xhci->lock); + } +} + +/* + * When we get a command completion for a Stop Endpoint Command, we need to + * unlink any cancelled TDs from the ring. There are two ways to do that: + * + * 1. If the HW was in the middle of processing the TD that needs to be + * cancelled, then we must move the ring's dequeue pointer past the last TRB + * in the TD with a Set Dequeue Pointer Command. + * 2. Otherwise, we turn all the TRBs in the TD into No-op TRBs (with the chain + * bit cleared) so that the HW will skip over them. + */ +static void handle_stopped_endpoint(struct xhci_hcd *xhci, + union xhci_trb *trb, struct xhci_event_cmd *event) +{ + unsigned int slot_id; + unsigned int ep_index; + struct xhci_virt_device *virt_dev; + struct xhci_ring *ep_ring; + struct xhci_virt_ep *ep; + struct list_head *entry; + struct xhci_td *cur_td = NULL; + struct xhci_td *last_unlinked_td; + + struct xhci_dequeue_state deq_state; + + if (unlikely(TRB_TO_SUSPEND_PORT( + le32_to_cpu(xhci->cmd_ring->dequeue->generic.field[3])))) { + slot_id = TRB_TO_SLOT_ID( + le32_to_cpu(xhci->cmd_ring->dequeue->generic.field[3])); + virt_dev = xhci->devs[slot_id]; + if (virt_dev) + handle_cmd_in_cmd_wait_list(xhci, virt_dev, + event); + else + xhci_warn(xhci, "Stop endpoint command " + "completion for disabled slot %u\n", + slot_id); + return; + } + + memset(&deq_state, 0, sizeof(deq_state)); + slot_id = TRB_TO_SLOT_ID(le32_to_cpu(trb->generic.field[3])); + ep_index = TRB_TO_EP_INDEX(le32_to_cpu(trb->generic.field[3])); + ep = &xhci->devs[slot_id]->eps[ep_index]; + + if (list_empty(&ep->cancelled_td_list)) { + xhci_stop_watchdog_timer_in_irq(xhci, ep); + ep->stopped_td = NULL; + ep->stopped_trb = NULL; + ring_doorbell_for_active_rings(xhci, slot_id, ep_index); + return; + } + + /* Fix up the ep ring first, so HW stops executing cancelled TDs. + * We have the xHCI lock, so nothing can modify this list until we drop + * it. We're also in the event handler, so we can't get re-interrupted + * if another Stop Endpoint command completes + */ + list_for_each(entry, &ep->cancelled_td_list) { + cur_td = list_entry(entry, struct xhci_td, cancelled_td_list); + xhci_dbg(xhci, "Removing canceled TD starting at 0x%llx (dma).\n", + (unsigned long long)xhci_trb_virt_to_dma( + cur_td->start_seg, cur_td->first_trb)); + ep_ring = xhci_urb_to_transfer_ring(xhci, cur_td->urb); + if (!ep_ring) { + /* This shouldn't happen unless a driver is mucking + * with the stream ID after submission. This will + * leave the TD on the hardware ring, and the hardware + * will try to execute it, and may access a buffer + * that has already been freed. In the best case, the + * hardware will execute it, and the event handler will + * ignore the completion event for that TD, since it was + * removed from the td_list for that endpoint. In + * short, don't muck with the stream ID after + * submission. + */ + xhci_warn(xhci, "WARN Cancelled URB %p " + "has invalid stream ID %u.\n", + cur_td->urb, + cur_td->urb->stream_id); + goto remove_finished_td; + } + /* + * If we stopped on the TD we need to cancel, then we have to + * move the xHC endpoint ring dequeue pointer past this TD. + */ + if (cur_td == ep->stopped_td) + xhci_find_new_dequeue_state(xhci, slot_id, ep_index, + cur_td->urb->stream_id, + cur_td, &deq_state); + else + td_to_noop(xhci, ep_ring, cur_td, false); +remove_finished_td: + /* + * The event handler won't see a completion for this TD anymore, + * so remove it from the endpoint ring's TD list. Keep it in + * the cancelled TD list for URB completion later. + */ + list_del_init(&cur_td->td_list); + } + last_unlinked_td = cur_td; + xhci_stop_watchdog_timer_in_irq(xhci, ep); + + /* If necessary, queue a Set Transfer Ring Dequeue Pointer command */ + if (deq_state.new_deq_ptr && deq_state.new_deq_seg) { + xhci_queue_new_dequeue_state(xhci, + slot_id, ep_index, + ep->stopped_td->urb->stream_id, + &deq_state); + xhci_ring_cmd_db(xhci); + } else { + /* Otherwise ring the doorbell(s) to restart queued transfers */ + ring_doorbell_for_active_rings(xhci, slot_id, ep_index); + } + ep->stopped_td = NULL; + ep->stopped_trb = NULL; + + /* + * Drop the lock and complete the URBs in the cancelled TD list. + * New TDs to be cancelled might be added to the end of the list before + * we can complete all the URBs for the TDs we already unlinked. + * So stop when we've completed the URB for the last TD we unlinked. + */ + do { + cur_td = list_entry(ep->cancelled_td_list.next, + struct xhci_td, cancelled_td_list); + list_del_init(&cur_td->cancelled_td_list); + + /* Clean up the cancelled URB */ + /* Doesn't matter what we pass for status, since the core will + * just overwrite it (because the URB has been unlinked). + */ + xhci_giveback_urb_in_irq(xhci, cur_td, 0, "cancelled"); + + /* Stop processing the cancelled list if the watchdog timer is + * running. + */ + if (xhci->xhc_state & XHCI_STATE_DYING) + return; + } while (cur_td != last_unlinked_td); + + /* Return to the event handler with xhci->lock re-acquired */ +} + +/* Watchdog timer function for when a stop endpoint command fails to complete. + * In this case, we assume the host controller is broken or dying or dead. The + * host may still be completing some other events, so we have to be careful to + * let the event ring handler and the URB dequeueing/enqueueing functions know + * through xhci->state. + * + * The timer may also fire if the host takes a very long time to respond to the + * command, and the stop endpoint command completion handler cannot delete the + * timer before the timer function is called. Another endpoint cancellation may + * sneak in before the timer function can grab the lock, and that may queue + * another stop endpoint command and add the timer back. So we cannot use a + * simple flag to say whether there is a pending stop endpoint command for a + * particular endpoint. + * + * Instead we use a combination of that flag and a counter for the number of + * pending stop endpoint commands. If the timer is the tail end of the last + * stop endpoint command, and the endpoint's command is still pending, we assume + * the host is dying. + */ +void xhci_stop_endpoint_command_watchdog(unsigned long arg) +{ + struct xhci_hcd *xhci; + struct xhci_virt_ep *ep; + struct xhci_virt_ep *temp_ep; + struct xhci_ring *ring; + struct xhci_td *cur_td; + int ret, i, j; + unsigned long flags; + + ep = (struct xhci_virt_ep *) arg; + xhci = ep->xhci; + + spin_lock_irqsave(&xhci->lock, flags); + + ep->stop_cmds_pending--; + if (xhci->xhc_state & XHCI_STATE_DYING) { + xhci_dbg(xhci, "Stop EP timer ran, but another timer marked " + "xHCI as DYING, exiting.\n"); + spin_unlock_irqrestore(&xhci->lock, flags); + return; + } + if (!(ep->stop_cmds_pending == 0 && (ep->ep_state & EP_HALT_PENDING))) { + xhci_dbg(xhci, "Stop EP timer ran, but no command pending, " + "exiting.\n"); + spin_unlock_irqrestore(&xhci->lock, flags); + return; + } + + xhci_warn(xhci, "xHCI host not responding to stop endpoint command.\n"); + xhci_warn(xhci, "Assuming host is dying, halting host.\n"); + /* Oops, HC is dead or dying or at least not responding to the stop + * endpoint command. + */ + xhci->xhc_state |= XHCI_STATE_DYING; + /* Disable interrupts from the host controller and start halting it */ + xhci_quiesce(xhci); + spin_unlock_irqrestore(&xhci->lock, flags); + + ret = xhci_halt(xhci); + + spin_lock_irqsave(&xhci->lock, flags); + if (ret < 0) { + /* This is bad; the host is not responding to commands and it's + * not allowing itself to be halted. At least interrupts are + * disabled. If we call usb_hc_died(), it will attempt to + * disconnect all device drivers under this host. Those + * disconnect() methods will wait for all URBs to be unlinked, + * so we must complete them. + */ + xhci_warn(xhci, "Non-responsive xHCI host is not halting.\n"); + xhci_warn(xhci, "Completing active URBs anyway.\n"); + /* We could turn all TDs on the rings to no-ops. This won't + * help if the host has cached part of the ring, and is slow if + * we want to preserve the cycle bit. Skip it and hope the host + * doesn't touch the memory. + */ + } + for (i = 0; i < MAX_HC_SLOTS; i++) { + if (!xhci->devs[i]) + continue; + for (j = 0; j < 31; j++) { + temp_ep = &xhci->devs[i]->eps[j]; + ring = temp_ep->ring; + if (!ring) + continue; + xhci_dbg(xhci, "Killing URBs for slot ID %u, " + "ep index %u\n", i, j); + while (!list_empty(&ring->td_list)) { + cur_td = list_first_entry(&ring->td_list, + struct xhci_td, + td_list); + list_del_init(&cur_td->td_list); + if (!list_empty(&cur_td->cancelled_td_list)) + list_del_init(&cur_td->cancelled_td_list); + xhci_giveback_urb_in_irq(xhci, cur_td, + -ESHUTDOWN, "killed"); + } + while (!list_empty(&temp_ep->cancelled_td_list)) { + cur_td = list_first_entry( + &temp_ep->cancelled_td_list, + struct xhci_td, + cancelled_td_list); + list_del_init(&cur_td->cancelled_td_list); + xhci_giveback_urb_in_irq(xhci, cur_td, + -ESHUTDOWN, "killed"); + } + } + } + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_dbg(xhci, "Calling usb_hc_died()\n"); + usb_hc_died(xhci_to_hcd(xhci)->primary_hcd); + xhci_dbg(xhci, "xHCI host controller is dead.\n"); +} + + +static void update_ring_for_set_deq_completion(struct xhci_hcd *xhci, + struct xhci_virt_device *dev, + struct xhci_ring *ep_ring, + unsigned int ep_index) +{ + union xhci_trb *dequeue_temp; + int num_trbs_free_temp; + bool revert = false; + + num_trbs_free_temp = ep_ring->num_trbs_free; + dequeue_temp = ep_ring->dequeue; + + /* If we get two back-to-back stalls, and the first stalled transfer + * ends just before a link TRB, the dequeue pointer will be left on + * the link TRB by the code in the while loop. So we have to update + * the dequeue pointer one segment further, or we'll jump off + * the segment into la-la-land. + */ + if (last_trb(xhci, ep_ring, ep_ring->deq_seg, ep_ring->dequeue)) { + ep_ring->deq_seg = ep_ring->deq_seg->next; + ep_ring->dequeue = ep_ring->deq_seg->trbs; + } + + while (ep_ring->dequeue != dev->eps[ep_index].queued_deq_ptr) { + /* We have more usable TRBs */ + ep_ring->num_trbs_free++; + ep_ring->dequeue++; + if (last_trb(xhci, ep_ring, ep_ring->deq_seg, + ep_ring->dequeue)) { + if (ep_ring->dequeue == + dev->eps[ep_index].queued_deq_ptr) + break; + ep_ring->deq_seg = ep_ring->deq_seg->next; + ep_ring->dequeue = ep_ring->deq_seg->trbs; + } + if (ep_ring->dequeue == dequeue_temp) { + revert = true; + break; + } + } + + if (revert) { + xhci_dbg(xhci, "Unable to find new dequeue pointer\n"); + ep_ring->num_trbs_free = num_trbs_free_temp; + } +} + +/* + * When we get a completion for a Set Transfer Ring Dequeue Pointer command, + * we need to clear the set deq pending flag in the endpoint ring state, so that + * the TD queueing code can ring the doorbell again. We also need to ring the + * endpoint doorbell to restart the ring, but only if there aren't more + * cancellations pending. + */ +static void handle_set_deq_completion(struct xhci_hcd *xhci, + struct xhci_event_cmd *event, + union xhci_trb *trb) +{ + unsigned int slot_id; + unsigned int ep_index; + unsigned int stream_id; + struct xhci_ring *ep_ring; + struct xhci_virt_device *dev; + struct xhci_ep_ctx *ep_ctx; + struct xhci_slot_ctx *slot_ctx; + + slot_id = TRB_TO_SLOT_ID(le32_to_cpu(trb->generic.field[3])); + ep_index = TRB_TO_EP_INDEX(le32_to_cpu(trb->generic.field[3])); + stream_id = TRB_TO_STREAM_ID(le32_to_cpu(trb->generic.field[2])); + dev = xhci->devs[slot_id]; + + ep_ring = xhci_stream_id_to_ring(dev, ep_index, stream_id); + if (!ep_ring) { + xhci_warn(xhci, "WARN Set TR deq ptr command for " + "freed stream ID %u\n", + stream_id); + /* XXX: Harmless??? */ + dev->eps[ep_index].ep_state &= ~SET_DEQ_PENDING; + return; + } + + ep_ctx = xhci_get_ep_ctx(xhci, dev->out_ctx, ep_index); + slot_ctx = xhci_get_slot_ctx(xhci, dev->out_ctx); + + if (GET_COMP_CODE(le32_to_cpu(event->status)) != COMP_SUCCESS) { + unsigned int ep_state; + unsigned int slot_state; + + switch (GET_COMP_CODE(le32_to_cpu(event->status))) { + case COMP_TRB_ERR: + xhci_warn(xhci, "WARN Set TR Deq Ptr cmd invalid because " + "of stream ID configuration\n"); + break; + case COMP_CTX_STATE: + xhci_warn(xhci, "WARN Set TR Deq Ptr cmd failed due " + "to incorrect slot or ep state.\n"); + ep_state = le32_to_cpu(ep_ctx->ep_info); + ep_state &= EP_STATE_MASK; + slot_state = le32_to_cpu(slot_ctx->dev_state); + slot_state = GET_SLOT_STATE(slot_state); + xhci_dbg(xhci, "Slot state = %u, EP state = %u\n", + slot_state, ep_state); + break; + case COMP_EBADSLT: + xhci_warn(xhci, "WARN Set TR Deq Ptr cmd failed because " + "slot %u was not enabled.\n", slot_id); + break; + default: + xhci_warn(xhci, "WARN Set TR Deq Ptr cmd with unknown " + "completion code of %u.\n", + GET_COMP_CODE(le32_to_cpu(event->status))); + break; + } + /* OK what do we do now? The endpoint state is hosed, and we + * should never get to this point if the synchronization between + * queueing, and endpoint state are correct. This might happen + * if the device gets disconnected after we've finished + * cancelling URBs, which might not be an error... + */ + } else { + xhci_dbg(xhci, "Successful Set TR Deq Ptr cmd, deq = @%08llx\n", + le64_to_cpu(ep_ctx->deq)); + if (xhci_trb_virt_to_dma(dev->eps[ep_index].queued_deq_seg, + dev->eps[ep_index].queued_deq_ptr) == + (le64_to_cpu(ep_ctx->deq) & ~(EP_CTX_CYCLE_MASK))) { + /* Update the ring's dequeue segment and dequeue pointer + * to reflect the new position. + */ + update_ring_for_set_deq_completion(xhci, dev, + ep_ring, ep_index); + } else { + xhci_warn(xhci, "Mismatch between completed Set TR Deq " + "Ptr command & xHCI internal state.\n"); + xhci_warn(xhci, "ep deq seg = %p, deq ptr = %p\n", + dev->eps[ep_index].queued_deq_seg, + dev->eps[ep_index].queued_deq_ptr); + } + } + + dev->eps[ep_index].ep_state &= ~SET_DEQ_PENDING; + dev->eps[ep_index].queued_deq_seg = NULL; + dev->eps[ep_index].queued_deq_ptr = NULL; + /* Restart any rings with pending URBs */ + ring_doorbell_for_active_rings(xhci, slot_id, ep_index); +} + +static void handle_reset_ep_completion(struct xhci_hcd *xhci, + struct xhci_event_cmd *event, + union xhci_trb *trb) +{ + int slot_id; + unsigned int ep_index; + + slot_id = TRB_TO_SLOT_ID(le32_to_cpu(trb->generic.field[3])); + ep_index = TRB_TO_EP_INDEX(le32_to_cpu(trb->generic.field[3])); + /* This command will only fail if the endpoint wasn't halted, + * but we don't care. + */ + xhci_dbg(xhci, "Ignoring reset ep completion code of %u\n", + GET_COMP_CODE(le32_to_cpu(event->status))); + + /* HW with the reset endpoint quirk needs to have a configure endpoint + * command complete before the endpoint can be used. Queue that here + * because the HW can't handle two commands being queued in a row. + */ + if (xhci->quirks & XHCI_RESET_EP_QUIRK) { + xhci_dbg(xhci, "Queueing configure endpoint command\n"); + xhci_queue_configure_endpoint(xhci, + xhci->devs[slot_id]->in_ctx->dma, slot_id, + false); + xhci_ring_cmd_db(xhci); + } else { + /* Clear our internal halted state and restart the ring(s) */ + xhci->devs[slot_id]->eps[ep_index].ep_state &= ~EP_HALTED; + ring_doorbell_for_active_rings(xhci, slot_id, ep_index); + } +} + +/* Check to see if a command in the device's command queue matches this one. + * Signal the completion or free the command, and return 1. Return 0 if the + * completed command isn't at the head of the command list. + */ +static int handle_cmd_in_cmd_wait_list(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + struct xhci_event_cmd *event) +{ + struct xhci_command *command; + + if (list_empty(&virt_dev->cmd_list)) + return 0; + + command = list_entry(virt_dev->cmd_list.next, + struct xhci_command, cmd_list); + if (xhci->cmd_ring->dequeue != command->command_trb) + return 0; + + command->status = GET_COMP_CODE(le32_to_cpu(event->status)); + list_del(&command->cmd_list); + if (command->completion) + complete(command->completion); + else + xhci_free_command(xhci, command); + return 1; +} + +static void handle_cmd_completion(struct xhci_hcd *xhci, + struct xhci_event_cmd *event) +{ + int slot_id = TRB_TO_SLOT_ID(le32_to_cpu(event->flags)); + u64 cmd_dma; + dma_addr_t cmd_dequeue_dma; + struct xhci_input_control_ctx *ctrl_ctx; + struct xhci_virt_device *virt_dev; + unsigned int ep_index; + struct xhci_ring *ep_ring; + unsigned int ep_state; + + cmd_dma = le64_to_cpu(event->cmd_trb); + cmd_dequeue_dma = xhci_trb_virt_to_dma(xhci->cmd_ring->deq_seg, + xhci->cmd_ring->dequeue); + /* Is the command ring deq ptr out of sync with the deq seg ptr? */ + if (cmd_dequeue_dma == 0) { + xhci->error_bitmask |= 1 << 4; + return; + } + /* Does the DMA address match our internal dequeue pointer address? */ + if (cmd_dma != (u64) cmd_dequeue_dma) { + xhci->error_bitmask |= 1 << 5; + return; + } + switch (le32_to_cpu(xhci->cmd_ring->dequeue->generic.field[3]) + & TRB_TYPE_BITMASK) { + case TRB_TYPE(TRB_ENABLE_SLOT): + if (GET_COMP_CODE(le32_to_cpu(event->status)) == COMP_SUCCESS) + xhci->slot_id = slot_id; + else + xhci->slot_id = 0; + complete(&xhci->addr_dev); + break; + case TRB_TYPE(TRB_DISABLE_SLOT): + if (xhci->devs[slot_id]) { + if (xhci->quirks & XHCI_EP_LIMIT_QUIRK) + /* Delete default control endpoint resources */ + xhci_free_device_endpoint_resources(xhci, + xhci->devs[slot_id], true); + xhci_free_virt_device(xhci, slot_id); + } + break; + case TRB_TYPE(TRB_CONFIG_EP): + virt_dev = xhci->devs[slot_id]; + if (handle_cmd_in_cmd_wait_list(xhci, virt_dev, event)) + break; + /* + * Configure endpoint commands can come from the USB core + * configuration or alt setting changes, or because the HW + * needed an extra configure endpoint command after a reset + * endpoint command or streams were being configured. + * If the command was for a halted endpoint, the xHCI driver + * is not waiting on the configure endpoint command. + */ + ctrl_ctx = xhci_get_input_control_ctx(xhci, + virt_dev->in_ctx); + /* Input ctx add_flags are the endpoint index plus one */ + ep_index = xhci_last_valid_endpoint(le32_to_cpu(ctrl_ctx->add_flags)) - 1; + /* A usb_set_interface() call directly after clearing a halted + * condition may race on this quirky hardware. Not worth + * worrying about, since this is prototype hardware. Not sure + * if this will work for streams, but streams support was + * untested on this prototype. + */ + if (xhci->quirks & XHCI_RESET_EP_QUIRK && + ep_index != (unsigned int) -1 && + le32_to_cpu(ctrl_ctx->add_flags) - SLOT_FLAG == + le32_to_cpu(ctrl_ctx->drop_flags)) { + ep_ring = xhci->devs[slot_id]->eps[ep_index].ring; + ep_state = xhci->devs[slot_id]->eps[ep_index].ep_state; + if (!(ep_state & EP_HALTED)) + goto bandwidth_change; + xhci_dbg(xhci, "Completed config ep cmd - " + "last ep index = %d, state = %d\n", + ep_index, ep_state); + /* Clear internal halted state and restart ring(s) */ + xhci->devs[slot_id]->eps[ep_index].ep_state &= + ~EP_HALTED; + ring_doorbell_for_active_rings(xhci, slot_id, ep_index); + break; + } +bandwidth_change: + xhci_dbg(xhci, "Completed config ep cmd\n"); + xhci->devs[slot_id]->cmd_status = + GET_COMP_CODE(le32_to_cpu(event->status)); + complete(&xhci->devs[slot_id]->cmd_completion); + break; + case TRB_TYPE(TRB_EVAL_CONTEXT): + virt_dev = xhci->devs[slot_id]; + if (handle_cmd_in_cmd_wait_list(xhci, virt_dev, event)) + break; + xhci->devs[slot_id]->cmd_status = GET_COMP_CODE(le32_to_cpu(event->status)); + complete(&xhci->devs[slot_id]->cmd_completion); + break; + case TRB_TYPE(TRB_ADDR_DEV): + xhci->devs[slot_id]->cmd_status = GET_COMP_CODE(le32_to_cpu(event->status)); + complete(&xhci->addr_dev); + break; + case TRB_TYPE(TRB_STOP_RING): + handle_stopped_endpoint(xhci, xhci->cmd_ring->dequeue, event); + break; + case TRB_TYPE(TRB_SET_DEQ): + handle_set_deq_completion(xhci, event, xhci->cmd_ring->dequeue); + break; + case TRB_TYPE(TRB_CMD_NOOP): + break; + case TRB_TYPE(TRB_RESET_EP): + handle_reset_ep_completion(xhci, event, xhci->cmd_ring->dequeue); + break; + case TRB_TYPE(TRB_RESET_DEV): + xhci_dbg(xhci, "Completed reset device command.\n"); + slot_id = TRB_TO_SLOT_ID( + le32_to_cpu(xhci->cmd_ring->dequeue->generic.field[3])); + virt_dev = xhci->devs[slot_id]; + if (virt_dev) + handle_cmd_in_cmd_wait_list(xhci, virt_dev, event); + else + xhci_warn(xhci, "Reset device command completion " + "for disabled slot %u\n", slot_id); + break; + case TRB_TYPE(TRB_NEC_GET_FW): + if (!(xhci->quirks & XHCI_NEC_HOST)) { + xhci->error_bitmask |= 1 << 6; + break; + } +#if defined(__VMKLNX__) + xhci_info(xhci, "NEC firmware version %2x.%02x\n", + NEC_FW_MAJOR(le32_to_cpu(event->status)), + NEC_FW_MINOR(le32_to_cpu(event->status))); +#else + xhci_dbg(xhci, "NEC firmware version %2x.%02x\n", + NEC_FW_MAJOR(le32_to_cpu(event->status)), + NEC_FW_MINOR(le32_to_cpu(event->status))); +#endif + break; + default: + /* Skip over unknown commands on the event ring */ + xhci->error_bitmask |= 1 << 6; + break; + } + inc_deq(xhci, xhci->cmd_ring); +} + +static void handle_vendor_event(struct xhci_hcd *xhci, + union xhci_trb *event) +{ + u32 trb_type; + + trb_type = TRB_FIELD_TO_TYPE(le32_to_cpu(event->generic.field[3])); + xhci_dbg(xhci, "Vendor specific event TRB type = %u\n", trb_type); + if (trb_type == TRB_NEC_CMD_COMP && (xhci->quirks & XHCI_NEC_HOST)) + handle_cmd_completion(xhci, &event->event_cmd); +} + +/* @port_id: the one-based port ID from the hardware (indexed from array of all + * port registers -- USB 3.0 and USB 2.0). + * + * Returns a zero-based port number, which is suitable for indexing into each of + * the split roothubs' port arrays and bus state arrays. + * Add one to it in order to call xhci_find_slot_id_by_port. + */ +static unsigned int find_faked_portnum_from_hw_portnum(struct usb_hcd *hcd, + struct xhci_hcd *xhci, u32 port_id) +{ + unsigned int i; + unsigned int num_similar_speed_ports = 0; + + /* port_id from the hardware is 1-based, but port_array[], usb3_ports[], + * and usb2_ports are 0-based indexes. Count the number of similar + * speed ports, up to 1 port before this port. + */ + for (i = 0; i < (port_id - 1); i++) { + u8 port_speed = xhci->port_array[i]; + + /* + * Skip ports that don't have known speeds, or have duplicate + * Extended Capabilities port speed entries. + */ + if (port_speed == 0 || port_speed == DUPLICATE_ENTRY) + continue; + + /* + * USB 3.0 ports are always under a USB 3.0 hub. USB 2.0 and + * 1.1 ports are under the USB 2.0 hub. If the port speed + * matches the device speed, it's a similar speed port. + */ + if ((port_speed == 0x03) == (hcd->speed == HCD_USB3)) + num_similar_speed_ports++; + } + return num_similar_speed_ports; +} + +static void handle_device_notification(struct xhci_hcd *xhci, + union xhci_trb *event) +{ + u32 slot_id; + struct usb_device *udev; + + slot_id = TRB_TO_SLOT_ID(event->generic.field[3]); + if (!xhci->devs[slot_id]) { + xhci_warn(xhci, "Device Notification event for " + "unused slot %u\n", slot_id); + return; + } + + xhci_dbg(xhci, "Device Wake Notification event for slot ID %u\n", + slot_id); + udev = xhci->devs[slot_id]->udev; + if (udev && udev->parent) + usb_wakeup_notification(udev->parent, udev->portnum); +} + +static void handle_port_status(struct xhci_hcd *xhci, + union xhci_trb *event) +{ + struct usb_hcd *hcd; + u32 port_id; + u32 temp, temp1; + int max_ports; + int slot_id; + unsigned int faked_port_index; + u8 major_revision; + struct xhci_bus_state *bus_state; + __le32 __iomem **port_array; + bool bogus_port_status = false; + + /* Port status change events always have a successful completion code */ + if (GET_COMP_CODE(le32_to_cpu(event->generic.field[2])) != COMP_SUCCESS) { + xhci_warn(xhci, "WARN: xHC returned failed port status event\n"); + xhci->error_bitmask |= 1 << 8; + } + port_id = GET_PORT_ID(le32_to_cpu(event->generic.field[0])); + xhci_dbg(xhci, "Port Status Change Event for port %d\n", port_id); + + max_ports = HCS_MAX_PORTS(xhci->hcs_params1); + if ((port_id <= 0) || (port_id > max_ports)) { + xhci_warn(xhci, "Invalid port id %d\n", port_id); + bogus_port_status = true; + goto cleanup; + } + + /* Figure out which usb_hcd this port is attached to: + * is it a USB 3.0 port or a USB 2.0/1.1 port? + */ + major_revision = xhci->port_array[port_id - 1]; + if (major_revision == 0) { + xhci_warn(xhci, "Event for port %u not in " + "Extended Capabilities, ignoring.\n", + port_id); + bogus_port_status = true; + goto cleanup; + } + if (major_revision == DUPLICATE_ENTRY) { + xhci_warn(xhci, "Event for port %u duplicated in" + "Extended Capabilities, ignoring.\n", + port_id); + bogus_port_status = true; + goto cleanup; + } + + /* + * Hardware port IDs reported by a Port Status Change Event include USB + * 3.0 and USB 2.0 ports. We want to check if the port has reported a + * resume event, but we first need to translate the hardware port ID + * into the index into the ports on the correct split roothub, and the + * correct bus_state structure. + */ + /* Find the right roothub. */ + hcd = xhci_to_hcd(xhci); + if ((major_revision == 0x03) != (hcd->speed == HCD_USB3)) + hcd = xhci->shared_hcd; + bus_state = &xhci->bus_state[hcd_index(hcd)]; + if (hcd->speed == HCD_USB3) + port_array = xhci->usb3_ports; + else + port_array = xhci->usb2_ports; + /* Find the faked port hub number */ + faked_port_index = find_faked_portnum_from_hw_portnum(hcd, xhci, + port_id); + + temp = xhci_readl(xhci, port_array[faked_port_index]); + if (hcd->state == HC_STATE_SUSPENDED) { + xhci_dbg(xhci, "resume root hub\n"); + usb_hcd_resume_root_hub(hcd); + } + + if ((temp & PORT_PLC) && (temp & PORT_PLS_MASK) == XDEV_RESUME) { + xhci_dbg(xhci, "port resume event for port %d\n", port_id); + + temp1 = xhci_readl(xhci, &xhci->op_regs->command); + if (!(temp1 & CMD_RUN)) { + xhci_warn(xhci, "xHC is not running.\n"); + goto cleanup; + } + + if (DEV_SUPERSPEED(temp)) { + xhci_dbg(xhci, "remote wake SS port %d\n", port_id); + /* Set a flag to say the port signaled remote wakeup, + * so we can tell the difference between the end of + * device and host initiated resume. + */ + bus_state->port_remote_wakeup |= 1 << faked_port_index; + xhci_test_and_clear_bit(xhci, port_array, + faked_port_index, PORT_PLC); + xhci_set_link_state(xhci, port_array, faked_port_index, + XDEV_U0); + /* Need to wait until the next link state change + * indicates the device is actually in U0. + */ + bogus_port_status = true; + goto cleanup; + } else { + xhci_dbg(xhci, "resume HS port %d\n", port_id); + bus_state->resume_done[faked_port_index] = jiffies + + msecs_to_jiffies(20); + set_bit(faked_port_index, &bus_state->resuming_ports); + mod_timer(&hcd->rh_timer, + bus_state->resume_done[faked_port_index]); + /* Do the rest in GetPortStatus */ + } + } + + if ((temp & PORT_PLC) && (temp & PORT_PLS_MASK) == XDEV_U0 && + DEV_SUPERSPEED(temp)) { + xhci_dbg(xhci, "resume SS port %d finished\n", port_id); + /* We've just brought the device into U0 through either the + * Resume state after a device remote wakeup, or through the + * U3Exit state after a host-initiated resume. If it's a device + * initiated remote wake, don't pass up the link state change, + * so the roothub behavior is consistent with external + * USB 3.0 hub behavior. + */ + slot_id = xhci_find_slot_id_by_port(hcd, xhci, + faked_port_index + 1); + if (slot_id && xhci->devs[slot_id]) + xhci_ring_device(xhci, slot_id); + if (bus_state->port_remote_wakeup && (1 << faked_port_index)) { + bus_state->port_remote_wakeup &= + ~(1 << faked_port_index); + xhci_test_and_clear_bit(xhci, port_array, + faked_port_index, PORT_PLC); + usb_wakeup_notification(hcd->self.root_hub, + faked_port_index + 1); + bogus_port_status = true; + goto cleanup; + } + } + + if (hcd->speed != HCD_USB3) + xhci_test_and_clear_bit(xhci, port_array, faked_port_index, + PORT_PLC); + +cleanup: + /* Update event ring dequeue pointer before dropping the lock */ + inc_deq(xhci, xhci->event_ring); + + /* Don't make the USB core poll the roothub if we got a bad port status + * change event. Besides, at that point we can't tell which roothub + * (USB 2.0 or USB 3.0) to kick. + */ + if (bogus_port_status) + return; + + spin_unlock(&xhci->lock); + /* Pass this up to the core */ + usb_hcd_poll_rh_status(hcd); + spin_lock(&xhci->lock); +} + +/* + * This TD is defined by the TRBs starting at start_trb in start_seg and ending + * at end_trb, which may be in another segment. If the suspect DMA address is a + * TRB in this TD, this function returns that TRB's segment. Otherwise it + * returns 0. + */ +struct xhci_segment *trb_in_td(struct xhci_segment *start_seg, + union xhci_trb *start_trb, + union xhci_trb *end_trb, + dma_addr_t suspect_dma) +{ + dma_addr_t start_dma; + dma_addr_t end_seg_dma; + dma_addr_t end_trb_dma; + struct xhci_segment *cur_seg; + + start_dma = xhci_trb_virt_to_dma(start_seg, start_trb); + cur_seg = start_seg; + + do { + if (start_dma == 0) + return NULL; + /* We may get an event for a Link TRB in the middle of a TD */ + end_seg_dma = xhci_trb_virt_to_dma(cur_seg, + &cur_seg->trbs[TRBS_PER_SEGMENT - 1]); + /* If the end TRB isn't in this segment, this is set to 0 */ + end_trb_dma = xhci_trb_virt_to_dma(cur_seg, end_trb); + + if (end_trb_dma > 0) { + /* The end TRB is in this segment, so suspect should be here */ + if (start_dma <= end_trb_dma) { + if (suspect_dma >= start_dma && suspect_dma <= end_trb_dma) + return cur_seg; + } else { + /* Case for one segment with + * a TD wrapped around to the top + */ + if ((suspect_dma >= start_dma && + suspect_dma <= end_seg_dma) || + (suspect_dma >= cur_seg->dma && + suspect_dma <= end_trb_dma)) + return cur_seg; + } + return NULL; + } else { + /* Might still be somewhere in this segment */ + if (suspect_dma >= start_dma && suspect_dma <= end_seg_dma) + return cur_seg; + } + cur_seg = cur_seg->next; + start_dma = xhci_trb_virt_to_dma(cur_seg, &cur_seg->trbs[0]); + } while (cur_seg != start_seg); + + return NULL; +} + +static void xhci_cleanup_halted_endpoint(struct xhci_hcd *xhci, + unsigned int slot_id, unsigned int ep_index, + unsigned int stream_id, + struct xhci_td *td, union xhci_trb *event_trb) +{ + struct xhci_virt_ep *ep = &xhci->devs[slot_id]->eps[ep_index]; + ep->ep_state |= EP_HALTED; + ep->stopped_td = td; + ep->stopped_trb = event_trb; + ep->stopped_stream = stream_id; + + xhci_queue_reset_ep(xhci, slot_id, ep_index); + xhci_cleanup_stalled_ring(xhci, td->urb->dev, ep_index); + + ep->stopped_td = NULL; + ep->stopped_trb = NULL; + ep->stopped_stream = 0; + + xhci_ring_cmd_db(xhci); +} + +/* Check if an error has halted the endpoint ring. The class driver will + * cleanup the halt for a non-default control endpoint if we indicate a stall. + * However, a babble and other errors also halt the endpoint ring, and the class + * driver won't clear the halt in that case, so we need to issue a Set Transfer + * Ring Dequeue Pointer command manually. + */ +static int xhci_requires_manual_halt_cleanup(struct xhci_hcd *xhci, + struct xhci_ep_ctx *ep_ctx, + unsigned int trb_comp_code) +{ + /* TRB completion codes that may require a manual halt cleanup */ + if (trb_comp_code == COMP_TX_ERR || + trb_comp_code == COMP_BABBLE || + trb_comp_code == COMP_SPLIT_ERR) + /* The 0.96 spec says a babbling control endpoint + * is not halted. The 0.96 spec says it is. Some HW + * claims to be 0.95 compliant, but it halts the control + * endpoint anyway. Check if a babble halted the + * endpoint. + */ + if ((ep_ctx->ep_info & cpu_to_le32(EP_STATE_MASK)) == + cpu_to_le32(EP_STATE_HALTED)) + return 1; + + return 0; +} + +int xhci_is_vendor_info_code(struct xhci_hcd *xhci, unsigned int trb_comp_code) +{ + if (trb_comp_code >= 224 && trb_comp_code <= 255) { + /* Vendor defined "informational" completion code, + * treat as not-an-error. + */ + xhci_dbg(xhci, "Vendor defined info completion code %u\n", + trb_comp_code); + xhci_dbg(xhci, "Treating code as success.\n"); + return 1; + } + return 0; +} + +/* + * Finish the td processing, remove the td from td list; + * Return 1 if the urb can be given back. + */ +static int finish_td(struct xhci_hcd *xhci, struct xhci_td *td, + union xhci_trb *event_trb, struct xhci_transfer_event *event, + struct xhci_virt_ep *ep, int *status, bool skip) +{ + struct xhci_virt_device *xdev; + struct xhci_ring *ep_ring; + unsigned int slot_id; + int ep_index; + struct urb *urb = NULL; + struct xhci_ep_ctx *ep_ctx; + int ret = 0; + struct urb_priv *urb_priv; + u32 trb_comp_code; + + slot_id = TRB_TO_SLOT_ID(le32_to_cpu(event->flags)); + xdev = xhci->devs[slot_id]; + ep_index = TRB_TO_EP_ID(le32_to_cpu(event->flags)) - 1; + ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer)); + ep_ctx = xhci_get_ep_ctx(xhci, xdev->out_ctx, ep_index); + trb_comp_code = GET_COMP_CODE(le32_to_cpu(event->transfer_len)); + + if (skip) + goto td_cleanup; + + if (trb_comp_code == COMP_STOP_INVAL || + trb_comp_code == COMP_STOP) { + /* The Endpoint Stop Command completion will take care of any + * stopped TDs. A stopped TD may be restarted, so don't update + * the ring dequeue pointer or take this TD off any lists yet. + */ + ep->stopped_td = td; + ep->stopped_trb = event_trb; + return 0; + } else { + if (trb_comp_code == COMP_STALL) { + /* The transfer is completed from the driver's + * perspective, but we need to issue a set dequeue + * command for this stalled endpoint to move the dequeue + * pointer past the TD. We can't do that here because + * the halt condition must be cleared first. Let the + * USB class driver clear the stall later. + */ + ep->stopped_td = td; + ep->stopped_trb = event_trb; + ep->stopped_stream = ep_ring->stream_id; + } else if (xhci_requires_manual_halt_cleanup(xhci, + ep_ctx, trb_comp_code)) { + /* Other types of errors halt the endpoint, but the + * class driver doesn't call usb_reset_endpoint() unless + * the error is -EPIPE. Clear the halted status in the + * xHCI hardware manually. + */ + xhci_cleanup_halted_endpoint(xhci, + slot_id, ep_index, ep_ring->stream_id, + td, event_trb); + } else { + /* Update ring dequeue pointer */ + while (ep_ring->dequeue != td->last_trb) + inc_deq(xhci, ep_ring); + inc_deq(xhci, ep_ring); + } + +td_cleanup: + /* Clean up the endpoint's TD list */ + urb = td->urb; + urb_priv = urb->hcpriv; + + /* Do one last check of the actual transfer length. + * If the host controller said we transferred more data than + * the buffer length, urb->actual_length will be a very big + * number (since it's unsigned). Play it safe and say we didn't + * transfer anything. + */ + if (urb->actual_length > urb->transfer_buffer_length) { + xhci_warn(xhci, "URB transfer length is wrong, " + "xHC issue? req. len = %u, " + "act. len = %u\n", + urb->transfer_buffer_length, + urb->actual_length); + urb->actual_length = 0; + if (td->urb->transfer_flags & URB_SHORT_NOT_OK) + *status = -EREMOTEIO; + else + *status = 0; + } + list_del_init(&td->td_list); + /* Was this TD slated to be cancelled but completed anyway? */ + if (!list_empty(&td->cancelled_td_list)) + list_del_init(&td->cancelled_td_list); + + urb_priv->td_cnt++; + /* Giveback the urb when all the tds are completed */ + if (urb_priv->td_cnt == urb_priv->length) { + ret = 1; + if (usb_pipetype(urb->pipe) == PIPE_ISOCHRONOUS) { + xhci_to_hcd(xhci)->self.bandwidth_isoc_reqs--; + if (xhci_to_hcd(xhci)->self.bandwidth_isoc_reqs + == 0) { + if (xhci->quirks & XHCI_AMD_PLL_FIX) + usb_amd_quirk_pll_enable(); + } + } + } + } + + return ret; +} + +/* + * Process control tds, update urb status and actual_length. + */ +static int process_ctrl_td(struct xhci_hcd *xhci, struct xhci_td *td, + union xhci_trb *event_trb, struct xhci_transfer_event *event, + struct xhci_virt_ep *ep, int *status) +{ + struct xhci_virt_device *xdev; + struct xhci_ring *ep_ring; + unsigned int slot_id; + int ep_index; + struct xhci_ep_ctx *ep_ctx; + u32 trb_comp_code; + + slot_id = TRB_TO_SLOT_ID(le32_to_cpu(event->flags)); + xdev = xhci->devs[slot_id]; + ep_index = TRB_TO_EP_ID(le32_to_cpu(event->flags)) - 1; + ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer)); + ep_ctx = xhci_get_ep_ctx(xhci, xdev->out_ctx, ep_index); + trb_comp_code = GET_COMP_CODE(le32_to_cpu(event->transfer_len)); + + switch (trb_comp_code) { + case COMP_SUCCESS: + if (event_trb == ep_ring->dequeue) { + xhci_warn(xhci, "WARN: Success on ctrl setup TRB " + "without IOC set??\n"); + *status = -ESHUTDOWN; + } else if (event_trb != td->last_trb) { + xhci_warn(xhci, "WARN: Success on ctrl data TRB " + "without IOC set??\n"); + *status = -ESHUTDOWN; + } else { + *status = 0; + } + break; + case COMP_SHORT_TX: + if (td->urb->transfer_flags & URB_SHORT_NOT_OK) + *status = -EREMOTEIO; + else + *status = 0; + break; + case COMP_STOP_INVAL: + case COMP_STOP: + return finish_td(xhci, td, event_trb, event, ep, status, false); + default: + if (!xhci_requires_manual_halt_cleanup(xhci, + ep_ctx, trb_comp_code)) + break; + xhci_dbg(xhci, "TRB error code %u, " + "halted endpoint index = %u\n", + trb_comp_code, ep_index); + /* else fall through */ + case COMP_STALL: + /* Did we transfer part of the data (middle) phase? */ + if (event_trb != ep_ring->dequeue && + event_trb != td->last_trb) + td->urb->actual_length = + td->urb->transfer_buffer_length + - TRB_LEN(le32_to_cpu(event->transfer_len)); + else + td->urb->actual_length = 0; + + xhci_cleanup_halted_endpoint(xhci, + slot_id, ep_index, 0, td, event_trb); + return finish_td(xhci, td, event_trb, event, ep, status, true); + } + /* + * Did we transfer any data, despite the errors that might have + * happened? I.e. did we get past the setup stage? + */ + if (event_trb != ep_ring->dequeue) { + /* The event was for the status stage */ + if (event_trb == td->last_trb) { + if (td->urb->actual_length != 0) { + /* Don't overwrite a previously set error code + */ + if ((*status == -EINPROGRESS || *status == 0) && + (td->urb->transfer_flags + & URB_SHORT_NOT_OK)) + /* Did we already see a short data + * stage? */ + *status = -EREMOTEIO; + } else { + td->urb->actual_length = + td->urb->transfer_buffer_length; + } + } else { + /* Maybe the event was for the data stage? */ + td->urb->actual_length = + td->urb->transfer_buffer_length - + TRB_LEN(le32_to_cpu(event->transfer_len)); + xhci_dbg(xhci, "Waiting for status " + "stage event\n"); + return 0; + } + } + + return finish_td(xhci, td, event_trb, event, ep, status, false); +} + +/* + * Process isochronous tds, update urb packet status and actual_length. + */ +static int process_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td, + union xhci_trb *event_trb, struct xhci_transfer_event *event, + struct xhci_virt_ep *ep, int *status) +{ + struct xhci_ring *ep_ring; + struct urb_priv *urb_priv; + int idx; + int len = 0; + union xhci_trb *cur_trb; + struct xhci_segment *cur_seg; + struct usb_iso_packet_descriptor *frame; + u32 trb_comp_code; + bool skip_td = false; + + ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer)); + trb_comp_code = GET_COMP_CODE(le32_to_cpu(event->transfer_len)); + urb_priv = td->urb->hcpriv; + idx = urb_priv->td_cnt; + frame = &td->urb->iso_frame_desc[idx]; + + /* handle completion code */ + switch (trb_comp_code) { + case COMP_SUCCESS: + if (TRB_LEN(le32_to_cpu(event->transfer_len)) == 0) { + frame->status = 0; + break; + } + if ((xhci->quirks & XHCI_TRUST_TX_LENGTH)) + trb_comp_code = COMP_SHORT_TX; + case COMP_SHORT_TX: + frame->status = td->urb->transfer_flags & URB_SHORT_NOT_OK ? + -EREMOTEIO : 0; + break; + case COMP_BW_OVER: + frame->status = -ECOMM; + skip_td = true; + break; + case COMP_BUFF_OVER: + case COMP_BABBLE: + frame->status = -EOVERFLOW; + skip_td = true; + break; + case COMP_DEV_ERR: + case COMP_STALL: + case COMP_TX_ERR: + frame->status = -EPROTO; + skip_td = true; + break; + case COMP_STOP: + case COMP_STOP_INVAL: + break; + default: + frame->status = -1; + break; + } + + if (trb_comp_code == COMP_SUCCESS || skip_td) { + frame->actual_length = frame->length; + td->urb->actual_length += frame->length; + } else { + for (cur_trb = ep_ring->dequeue, + cur_seg = ep_ring->deq_seg; cur_trb != event_trb; + next_trb(xhci, ep_ring, &cur_seg, &cur_trb)) { + if (!TRB_TYPE_NOOP_LE32(cur_trb->generic.field[3]) && + !TRB_TYPE_LINK_LE32(cur_trb->generic.field[3])) + len += TRB_LEN(le32_to_cpu(cur_trb->generic.field[2])); + } + len += TRB_LEN(le32_to_cpu(cur_trb->generic.field[2])) - + TRB_LEN(le32_to_cpu(event->transfer_len)); + + if (trb_comp_code != COMP_STOP_INVAL) { + frame->actual_length = len; + td->urb->actual_length += len; + } + } + + return finish_td(xhci, td, event_trb, event, ep, status, false); +} + +static int skip_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td, + struct xhci_transfer_event *event, + struct xhci_virt_ep *ep, int *status) +{ + struct xhci_ring *ep_ring; + struct urb_priv *urb_priv; + struct usb_iso_packet_descriptor *frame; + int idx; + + ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer)); + urb_priv = td->urb->hcpriv; + idx = urb_priv->td_cnt; + frame = &td->urb->iso_frame_desc[idx]; + + /* The transfer is partly done. */ + frame->status = -EXDEV; + + /* calc actual length */ + frame->actual_length = 0; + + /* Update ring dequeue pointer */ + while (ep_ring->dequeue != td->last_trb) + inc_deq(xhci, ep_ring); + inc_deq(xhci, ep_ring); + + return finish_td(xhci, td, NULL, event, ep, status, true); +} + +/* + * Process bulk and interrupt tds, update urb status and actual_length. + */ +static int process_bulk_intr_td(struct xhci_hcd *xhci, struct xhci_td *td, + union xhci_trb *event_trb, struct xhci_transfer_event *event, + struct xhci_virt_ep *ep, int *status) +{ + struct xhci_ring *ep_ring; + union xhci_trb *cur_trb; + struct xhci_segment *cur_seg; + u32 trb_comp_code; + + ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer)); + trb_comp_code = GET_COMP_CODE(le32_to_cpu(event->transfer_len)); + + switch (trb_comp_code) { + case COMP_SUCCESS: + /* Double check that the HW transferred everything. */ + if (event_trb != td->last_trb || + TRB_LEN(le32_to_cpu(event->transfer_len)) != 0) { + xhci_warn(xhci, "WARN Successful completion " + "on short TX\n"); + if (td->urb->transfer_flags & URB_SHORT_NOT_OK) + *status = -EREMOTEIO; + else + *status = 0; + if ((xhci->quirks & XHCI_TRUST_TX_LENGTH)) + trb_comp_code = COMP_SHORT_TX; + } else { + *status = 0; + } + break; + case COMP_SHORT_TX: + if (td->urb->transfer_flags & URB_SHORT_NOT_OK) + *status = -EREMOTEIO; + else + *status = 0; + break; + default: + /* Others already handled above */ + break; + } + if (trb_comp_code == COMP_SHORT_TX) + xhci_dbg(xhci, "ep %#x - asked for %d bytes, " + "%d bytes untransferred\n", + td->urb->ep->desc.bEndpointAddress, + td->urb->transfer_buffer_length, + TRB_LEN(le32_to_cpu(event->transfer_len))); + /* Fast path - was this the last TRB in the TD for this URB? */ + if (event_trb == td->last_trb) { + if (TRB_LEN(le32_to_cpu(event->transfer_len)) != 0) { + td->urb->actual_length = + td->urb->transfer_buffer_length - + TRB_LEN(le32_to_cpu(event->transfer_len)); + if (td->urb->transfer_buffer_length < + td->urb->actual_length) { + xhci_warn(xhci, "HC gave bad length " + "of %d bytes left\n", + TRB_LEN(le32_to_cpu(event->transfer_len))); + td->urb->actual_length = 0; + if (td->urb->transfer_flags & URB_SHORT_NOT_OK) + *status = -EREMOTEIO; + else + *status = 0; + } + /* Don't overwrite a previously set error code */ + if (*status == -EINPROGRESS) { + if (td->urb->transfer_flags & URB_SHORT_NOT_OK) + *status = -EREMOTEIO; + else + *status = 0; + } + } else { + td->urb->actual_length = + td->urb->transfer_buffer_length; + /* Ignore a short packet completion if the + * untransferred length was zero. + */ + if (*status == -EREMOTEIO) + *status = 0; + } + } else { + /* Slow path - walk the list, starting from the dequeue + * pointer, to get the actual length transferred. + */ + td->urb->actual_length = 0; + for (cur_trb = ep_ring->dequeue, cur_seg = ep_ring->deq_seg; + cur_trb != event_trb; + next_trb(xhci, ep_ring, &cur_seg, &cur_trb)) { + if (!TRB_TYPE_NOOP_LE32(cur_trb->generic.field[3]) && + !TRB_TYPE_LINK_LE32(cur_trb->generic.field[3])) + td->urb->actual_length += + TRB_LEN(le32_to_cpu(cur_trb->generic.field[2])); + } + /* If the ring didn't stop on a Link or No-op TRB, add + * in the actual bytes transferred from the Normal TRB + */ + if (trb_comp_code != COMP_STOP_INVAL) + td->urb->actual_length += + TRB_LEN(le32_to_cpu(cur_trb->generic.field[2])) - + TRB_LEN(le32_to_cpu(event->transfer_len)); + } + + return finish_td(xhci, td, event_trb, event, ep, status, false); +} + +/* + * If this function returns an error condition, it means it got a Transfer + * event with a corrupted Slot ID, Endpoint ID, or TRB DMA address. + * At this point, the host controller is probably hosed and should be reset. + */ +static int handle_tx_event(struct xhci_hcd *xhci, + struct xhci_transfer_event *event) +{ + struct xhci_virt_device *xdev; + struct xhci_virt_ep *ep; + struct xhci_ring *ep_ring; + unsigned int slot_id; + int ep_index; + struct xhci_td *td = NULL; + dma_addr_t event_dma; + struct xhci_segment *event_seg; + union xhci_trb *event_trb; + struct urb *urb = NULL; + int status = -EINPROGRESS; + struct urb_priv *urb_priv; + struct xhci_ep_ctx *ep_ctx; + struct list_head *tmp; + u32 trb_comp_code; + int ret = 0; + int td_num = 0; + + slot_id = TRB_TO_SLOT_ID(le32_to_cpu(event->flags)); + xdev = xhci->devs[slot_id]; + if (!xdev) { + xhci_err(xhci, "ERROR Transfer event pointed to bad slot\n"); + xhci_err(xhci, "@%016llx %08x %08x %08x %08x\n", + (unsigned long long) xhci_trb_virt_to_dma( + xhci->event_ring->deq_seg, + xhci->event_ring->dequeue), + lower_32_bits(le64_to_cpu(event->buffer)), + upper_32_bits(le64_to_cpu(event->buffer)), + le32_to_cpu(event->transfer_len), + le32_to_cpu(event->flags)); + xhci_dbg(xhci, "Event ring:\n"); + xhci_debug_segment(xhci, xhci->event_ring->deq_seg); + return -ENODEV; + } + + /* Endpoint ID is 1 based, our index is zero based */ + ep_index = TRB_TO_EP_ID(le32_to_cpu(event->flags)) - 1; + ep = &xdev->eps[ep_index]; + ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer)); + ep_ctx = xhci_get_ep_ctx(xhci, xdev->out_ctx, ep_index); + if (!ep_ring || + (le32_to_cpu(ep_ctx->ep_info) & EP_STATE_MASK) == + EP_STATE_DISABLED) { + xhci_err(xhci, "ERROR Transfer event for disabled endpoint " + "or incorrect stream ring\n"); + xhci_err(xhci, "@%016llx %08x %08x %08x %08x\n", + (unsigned long long) xhci_trb_virt_to_dma( + xhci->event_ring->deq_seg, + xhci->event_ring->dequeue), + lower_32_bits(le64_to_cpu(event->buffer)), + upper_32_bits(le64_to_cpu(event->buffer)), + le32_to_cpu(event->transfer_len), + le32_to_cpu(event->flags)); + xhci_dbg(xhci, "Event ring:\n"); + xhci_debug_segment(xhci, xhci->event_ring->deq_seg); + return -ENODEV; + } + + /* Count current td numbers if ep->skip is set */ + if (ep->skip) { + list_for_each(tmp, &ep_ring->td_list) + td_num++; + } + + event_dma = le64_to_cpu(event->buffer); + trb_comp_code = GET_COMP_CODE(le32_to_cpu(event->transfer_len)); + /* Look for common error cases */ + switch (trb_comp_code) { + /* Skip codes that require special handling depending on + * transfer type + */ + case COMP_SUCCESS: + if (TRB_LEN(le32_to_cpu(event->transfer_len)) == 0) + break; + if (xhci->quirks & XHCI_TRUST_TX_LENGTH) + trb_comp_code = COMP_SHORT_TX; + else + xhci_warn_ratelimited(xhci, + "WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?\n"); + case COMP_SHORT_TX: + break; + case COMP_STOP: + xhci_dbg(xhci, "Stopped on Transfer TRB\n"); + break; + case COMP_STOP_INVAL: + xhci_dbg(xhci, "Stopped on No-op or Link TRB\n"); + break; + case COMP_STALL: + xhci_dbg(xhci, "Stalled endpoint\n"); + ep->ep_state |= EP_HALTED; + status = -EPIPE; + break; + case COMP_TRB_ERR: + xhci_warn(xhci, "WARN: TRB error on endpoint\n"); + status = -EILSEQ; + break; + case COMP_SPLIT_ERR: + case COMP_TX_ERR: + xhci_dbg(xhci, "Transfer error on endpoint\n"); + status = -EPROTO; + break; + case COMP_BABBLE: + xhci_dbg(xhci, "Babble error on endpoint\n"); + status = -EOVERFLOW; + break; + case COMP_DB_ERR: + xhci_warn(xhci, "WARN: HC couldn't access mem fast enough\n"); + status = -ENOSR; + break; + case COMP_BW_OVER: + xhci_warn(xhci, "WARN: bandwidth overrun event on endpoint\n"); + break; + case COMP_BUFF_OVER: + xhci_warn(xhci, "WARN: buffer overrun event on endpoint\n"); + break; + case COMP_UNDERRUN: + /* + * When the Isoch ring is empty, the xHC will generate + * a Ring Overrun Event for IN Isoch endpoint or Ring + * Underrun Event for OUT Isoch endpoint. + */ + xhci_dbg(xhci, "underrun event on endpoint\n"); + if (!list_empty(&ep_ring->td_list)) + xhci_dbg(xhci, "Underrun Event for slot %d ep %d " + "still with TDs queued?\n", + TRB_TO_SLOT_ID(le32_to_cpu(event->flags)), + ep_index); + goto cleanup; + case COMP_OVERRUN: + xhci_dbg(xhci, "overrun event on endpoint\n"); + if (!list_empty(&ep_ring->td_list)) + xhci_dbg(xhci, "Overrun Event for slot %d ep %d " + "still with TDs queued?\n", + TRB_TO_SLOT_ID(le32_to_cpu(event->flags)), + ep_index); + goto cleanup; + case COMP_DEV_ERR: + xhci_warn(xhci, "WARN: detect an incompatible device"); + status = -EPROTO; + break; + case COMP_MISSED_INT: + /* + * When encounter missed service error, one or more isoc tds + * may be missed by xHC. + * Set skip flag of the ep_ring; Complete the missed tds as + * short transfer when process the ep_ring next time. + */ + ep->skip = true; + xhci_dbg(xhci, "Miss service interval error, set skip flag\n"); + goto cleanup; + default: + if (xhci_is_vendor_info_code(xhci, trb_comp_code)) { + status = 0; + break; + } + xhci_warn(xhci, "ERROR Unknown event condition, HC probably " + "busted\n"); + goto cleanup; + } + + do { + /* This TRB should be in the TD at the head of this ring's + * TD list. + */ + if (list_empty(&ep_ring->td_list)) { + xhci_warn(xhci, "WARN Event TRB for slot %d ep %d " + "with no TDs queued?\n", + TRB_TO_SLOT_ID(le32_to_cpu(event->flags)), + ep_index); + xhci_dbg(xhci, "Event TRB with TRB type ID %u\n", + (le32_to_cpu(event->flags) & + TRB_TYPE_BITMASK)>>10); + xhci_print_trb_offsets(xhci, (union xhci_trb *) event); + if (ep->skip) { + ep->skip = false; + xhci_dbg(xhci, "td_list is empty while skip " + "flag set. Clear skip flag.\n"); + } + ret = 0; + goto cleanup; + } + + /* We've skipped all the TDs on the ep ring when ep->skip set */ + if (ep->skip && td_num == 0) { + ep->skip = false; + xhci_dbg(xhci, "All tds on the ep_ring skipped. " + "Clear skip flag.\n"); + ret = 0; + goto cleanup; + } + + td = list_entry(ep_ring->td_list.next, struct xhci_td, td_list); + if (ep->skip) + td_num--; + + /* Is this a TRB in the currently executing TD? */ + event_seg = trb_in_td(ep_ring->deq_seg, ep_ring->dequeue, + td->last_trb, event_dma); + + /* + * Skip the Force Stopped Event. The event_trb(event_dma) of FSE + * is not in the current TD pointed by ep_ring->dequeue because + * that the hardware dequeue pointer still at the previous TRB + * of the current TD. The previous TRB maybe a Link TD or the + * last TRB of the previous TD. The command completion handle + * will take care the rest. + */ + if (!event_seg && trb_comp_code == COMP_STOP_INVAL) { + ret = 0; + goto cleanup; + } + + if (!event_seg) { + if (!ep->skip || + !usb_endpoint_xfer_isoc(&td->urb->ep->desc)) { + /* Some host controllers give a spurious + * successful event after a short transfer. + * Ignore it. + */ + if ((xhci->quirks & XHCI_SPURIOUS_SUCCESS) && + ep_ring->last_td_was_short) { + ep_ring->last_td_was_short = false; + ret = 0; + goto cleanup; + } + /* HC is busted, give up! */ + xhci_err(xhci, + "ERROR Transfer event TRB DMA ptr not " + "part of current TD\n"); + return -ESHUTDOWN; + } + + ret = skip_isoc_td(xhci, td, event, ep, &status); + goto cleanup; + } + if (trb_comp_code == COMP_SHORT_TX) + ep_ring->last_td_was_short = true; + else + ep_ring->last_td_was_short = false; + + if (ep->skip) { + xhci_dbg(xhci, "Found td. Clear skip flag.\n"); + ep->skip = false; + } + + event_trb = &event_seg->trbs[(event_dma - event_seg->dma) / + sizeof(*event_trb)]; + /* + * No-op TRB should not trigger interrupts. + * If event_trb is a no-op TRB, it means the + * corresponding TD has been cancelled. Just ignore + * the TD. + */ + if (TRB_TYPE_NOOP_LE32(event_trb->generic.field[3])) { + xhci_dbg(xhci, + "event_trb is a no-op TRB. Skip it\n"); + goto cleanup; + } + + /* Now update the urb's actual_length and give back to + * the core + */ + if (usb_endpoint_xfer_control(&td->urb->ep->desc)) + ret = process_ctrl_td(xhci, td, event_trb, event, ep, + &status); + else if (usb_endpoint_xfer_isoc(&td->urb->ep->desc)) + ret = process_isoc_td(xhci, td, event_trb, event, ep, + &status); + else + ret = process_bulk_intr_td(xhci, td, event_trb, event, + ep, &status); + +cleanup: + /* + * Do not update event ring dequeue pointer if ep->skip is set. + * Will roll back to continue process missed tds. + */ + if (trb_comp_code == COMP_MISSED_INT || !ep->skip) { + inc_deq(xhci, xhci->event_ring); + } + + if (ret) { + urb = td->urb; + urb_priv = urb->hcpriv; + /* Leave the TD around for the reset endpoint function + * to use(but only if it's not a control endpoint, + * since we already queued the Set TR dequeue pointer + * command for stalled control endpoints). + */ + if (usb_endpoint_xfer_control(&urb->ep->desc) || + (trb_comp_code != COMP_STALL && + trb_comp_code != COMP_BABBLE)) + xhci_urb_free_priv(xhci, urb_priv); + + usb_hcd_unlink_urb_from_ep(bus_to_hcd(urb->dev->bus), urb); + if ((urb->actual_length != urb->transfer_buffer_length && + (urb->transfer_flags & + URB_SHORT_NOT_OK)) || + (status != 0 && + !usb_endpoint_xfer_isoc(&urb->ep->desc))) + xhci_dbg(xhci, "Giveback URB %p, len = %d, " + "expected = %d, status = %d\n", + urb, urb->actual_length, + urb->transfer_buffer_length, + status); + spin_unlock(&xhci->lock); + /* EHCI, UHCI, and OHCI always unconditionally set the + * urb->status of an isochronous endpoint to 0. + */ + if (usb_pipetype(urb->pipe) == PIPE_ISOCHRONOUS) + status = 0; + usb_hcd_giveback_urb(bus_to_hcd(urb->dev->bus), urb, status); + spin_lock(&xhci->lock); + } + + /* + * If ep->skip is set, it means there are missed tds on the + * endpoint ring need to take care of. + * Process them as short transfer until reach the td pointed by + * the event. + */ + } while (ep->skip && trb_comp_code != COMP_MISSED_INT); + + return 0; +} + +/* + * This function handles all OS-owned events on the event ring. It may drop + * xhci->lock between event processing (e.g. to pass up port status changes). + * Returns >0 for "possibly more events to process" (caller should call again), + * otherwise 0 if done. In future, <0 returns should indicate error code. + */ +static int xhci_handle_event(struct xhci_hcd *xhci) +{ + union xhci_trb *event; + int update_ptrs = 1; + int ret; + + if (!xhci->event_ring || !xhci->event_ring->dequeue) { + xhci->error_bitmask |= 1 << 1; + return 0; + } + + event = xhci->event_ring->dequeue; + /* Does the HC or OS own the TRB? */ + if ((le32_to_cpu(event->event_cmd.flags) & TRB_CYCLE) != + xhci->event_ring->cycle_state) { + xhci->error_bitmask |= 1 << 2; + return 0; + } + + /* + * Barrier between reading the TRB_CYCLE (valid) flag above and any + * speculative reads of the event's flags/data below. + */ + rmb(); + /* FIXME: Handle more event types. */ + switch ((le32_to_cpu(event->event_cmd.flags) & TRB_TYPE_BITMASK)) { + case TRB_TYPE(TRB_COMPLETION): + handle_cmd_completion(xhci, &event->event_cmd); + break; + case TRB_TYPE(TRB_PORT_STATUS): + handle_port_status(xhci, event); + update_ptrs = 0; + break; + case TRB_TYPE(TRB_TRANSFER): + ret = handle_tx_event(xhci, &event->trans_event); + if (ret < 0) + xhci->error_bitmask |= 1 << 9; + else + update_ptrs = 0; + break; + case TRB_TYPE(TRB_DEV_NOTE): + handle_device_notification(xhci, event); + break; + default: + if ((le32_to_cpu(event->event_cmd.flags) & TRB_TYPE_BITMASK) >= + TRB_TYPE(48)) + handle_vendor_event(xhci, event); + else + xhci->error_bitmask |= 1 << 3; + } + /* Any of the above functions may drop and re-acquire the lock, so check + * to make sure a watchdog timer didn't mark the host as non-responsive. + */ + if (xhci->xhc_state & XHCI_STATE_DYING) { + xhci_dbg(xhci, "xHCI host dying, returning from " + "event handler.\n"); + return 0; + } + + if (update_ptrs) + /* Update SW event ring dequeue pointer */ + inc_deq(xhci, xhci->event_ring); + + /* Are there more items on the event ring? Caller will call us again to + * check. + */ + return 1; +} + +/* + * xHCI spec says we can get an interrupt, and if the HC has an error condition, + * we might get bad data out of the event ring. Section 4.10.2.7 has a list of + * indicators of an event TRB error, but we check the status *first* to be safe. + */ +irqreturn_t xhci_irq(struct usb_hcd *hcd) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + u32 status; + union xhci_trb *trb; + u64 temp_64; + union xhci_trb *event_ring_deq; + dma_addr_t deq; + + spin_lock(&xhci->lock); + trb = xhci->event_ring->dequeue; + /* Check if the xHC generated the interrupt, or the irq is shared */ + status = xhci_readl(xhci, &xhci->op_regs->status); + if (status == 0xffffffff) + goto hw_died; + + if (!(status & STS_EINT)) { + spin_unlock(&xhci->lock); + return IRQ_NONE; + } + if (status & STS_FATAL) { + xhci_warn(xhci, "WARNING: Host System Error\n"); + xhci_halt(xhci); +hw_died: + spin_unlock(&xhci->lock); + return -ESHUTDOWN; + } + + /* + * Clear the op reg interrupt status first, + * so we can receive interrupts from other MSI-X interrupters. + * Write 1 to clear the interrupt status. + */ + status |= STS_EINT; + xhci_writel(xhci, status, &xhci->op_regs->status); + /* FIXME when MSI-X is supported and there are multiple vectors */ + /* Clear the MSI-X event interrupt status */ + +#if defined (__VMKLNX__) + { + u32 irq_pending; + irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending); + /* + * Acknowledge the interrupt. Because we might be in polling + * mode we can't rely on MSI/MSI-X clearing it for us + * automatically. + */ + if (ER_IRQ_PENDING(irq_pending)) { + irq_pending |= IMAN_IP; + xhci_writel(xhci, + irq_pending, &xhci->ir_set->irq_pending); + } + } +#else + if (hcd->irq) { + u32 irq_pending; + /* Acknowledge the PCI interrupt */ + irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending); + irq_pending |= IMAN_IP; + xhci_writel(xhci, irq_pending, &xhci->ir_set->irq_pending); + } +#endif + if (xhci->xhc_state & XHCI_STATE_DYING) { + xhci_dbg(xhci, "xHCI dying, ignoring interrupt. " + "Shouldn't IRQs be disabled?\n"); + /* Clear the event handler busy flag (RW1C); + * the event ring should be empty. + */ + temp_64 = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue); + xhci_write_64(xhci, temp_64 | ERST_EHB, + &xhci->ir_set->erst_dequeue); + spin_unlock(&xhci->lock); + + return IRQ_HANDLED; + } + + event_ring_deq = xhci->event_ring->dequeue; + /* FIXME this should be a delayed service routine + * that clears the EHB. + */ + while (xhci_handle_event(xhci) > 0) {} + + temp_64 = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue); + /* If necessary, update the HW's version of the event ring deq ptr. */ + if (event_ring_deq != xhci->event_ring->dequeue) { + deq = xhci_trb_virt_to_dma(xhci->event_ring->deq_seg, + xhci->event_ring->dequeue); + if (deq == 0) + xhci_warn(xhci, "WARN something wrong with SW event " + "ring dequeue ptr.\n"); + /* Update HC event ring dequeue pointer */ + temp_64 &= ERST_PTR_MASK; + temp_64 |= ((u64) deq & (u64) ~ERST_PTR_MASK); + } + + /* Clear the event handler busy flag (RW1C); event ring is empty. */ + temp_64 |= ERST_EHB; + xhci_write_64(xhci, temp_64, &xhci->ir_set->erst_dequeue); + + spin_unlock(&xhci->lock); + + return IRQ_HANDLED; +} + +irqreturn_t xhci_msi_irq(int irq, struct usb_hcd *hcd) +{ + return xhci_irq(hcd); +} + +/**** Endpoint Ring Operations ****/ + +/* + * Generic function for queueing a TRB on a ring. + * The caller must have checked to make sure there's room on the ring. + * + * @more_trbs_coming: Will you enqueue more TRBs before calling + * prepare_transfer()? + */ +static void queue_trb(struct xhci_hcd *xhci, struct xhci_ring *ring, + bool more_trbs_coming, + u32 field1, u32 field2, u32 field3, u32 field4) +{ + struct xhci_generic_trb *trb; + + trb = &ring->enqueue->generic; + trb->field[0] = cpu_to_le32(field1); + trb->field[1] = cpu_to_le32(field2); + trb->field[2] = cpu_to_le32(field3); + trb->field[3] = cpu_to_le32(field4); + inc_enq(xhci, ring, more_trbs_coming); +} + +/* + * Does various checks on the endpoint ring, and makes it ready to queue num_trbs. + * FIXME allocate segments if the ring is full. + */ +static int prepare_ring(struct xhci_hcd *xhci, struct xhci_ring *ep_ring, + u32 ep_state, unsigned int num_trbs, gfp_t mem_flags) +{ + unsigned int num_trbs_needed; + + /* Make sure the endpoint has been added to xHC schedule */ + switch (ep_state) { + case EP_STATE_DISABLED: + /* + * USB core changed config/interfaces without notifying us, + * or hardware is reporting the wrong state. + */ + xhci_warn(xhci, "WARN urb submitted to disabled ep\n"); + return -ENOENT; + case EP_STATE_ERROR: + xhci_warn(xhci, "WARN waiting for error on ep to be cleared\n"); + /* FIXME event handling code for error needs to clear it */ + /* XXX not sure if this should be -ENOENT or not */ + return -EINVAL; + case EP_STATE_HALTED: + xhci_dbg(xhci, "WARN halted endpoint, queueing URB anyway.\n"); + case EP_STATE_STOPPED: + case EP_STATE_RUNNING: + break; + default: + xhci_err(xhci, "ERROR unknown endpoint state for ep\n"); + /* + * FIXME issue Configure Endpoint command to try to get the HC + * back into a known state. + */ + return -EINVAL; + } + + while (1) { + if (room_on_ring(xhci, ep_ring, num_trbs)) + break; + + if (ep_ring == xhci->cmd_ring) { + xhci_err(xhci, "Do not support expand command ring\n"); + return -ENOMEM; + } + + xhci_dbg(xhci, "ERROR no room on ep ring, " + "try ring expansion\n"); + num_trbs_needed = num_trbs - ep_ring->num_trbs_free; + if (xhci_ring_expansion(xhci, ep_ring, num_trbs_needed, + mem_flags)) { + xhci_err(xhci, "Ring expansion failed\n"); + return -ENOMEM; + } + }; + + if (enqueue_is_link_trb(ep_ring)) { + struct xhci_ring *ring = ep_ring; + union xhci_trb *next; + + next = ring->enqueue; + + while (last_trb(xhci, ring, ring->enq_seg, next)) { + /* If we're not dealing with 0.95 hardware or isoc rings + * on AMD 0.96 host, clear the chain bit. + */ + if (!xhci_link_trb_quirk(xhci) && + !(ring->type == TYPE_ISOC && + (xhci->quirks & XHCI_AMD_0x96_HOST))) + next->link.control &= cpu_to_le32(~TRB_CHAIN); + else + next->link.control |= cpu_to_le32(TRB_CHAIN); + + wmb(); + next->link.control ^= cpu_to_le32(TRB_CYCLE); + + /* Toggle the cycle bit after the last ring segment. */ + if (last_trb_on_last_seg(xhci, ring, ring->enq_seg, next)) { + ring->cycle_state = (ring->cycle_state ? 0 : 1); + } + ring->enq_seg = ring->enq_seg->next; + ring->enqueue = ring->enq_seg->trbs; + next = ring->enqueue; + } + } + + return 0; +} + +static int prepare_transfer(struct xhci_hcd *xhci, + struct xhci_virt_device *xdev, + unsigned int ep_index, + unsigned int stream_id, + unsigned int num_trbs, + struct urb *urb, + unsigned int td_index, + gfp_t mem_flags) +{ + int ret; + struct urb_priv *urb_priv; + struct xhci_td *td; + struct xhci_ring *ep_ring; + struct xhci_ep_ctx *ep_ctx = xhci_get_ep_ctx(xhci, xdev->out_ctx, ep_index); + + ep_ring = xhci_stream_id_to_ring(xdev, ep_index, stream_id); + if (!ep_ring) { + xhci_dbg(xhci, "Can't prepare ring for bad stream ID %u\n", + stream_id); + return -EINVAL; + } + + ret = prepare_ring(xhci, ep_ring, + le32_to_cpu(ep_ctx->ep_info) & EP_STATE_MASK, + num_trbs, mem_flags); + if (ret) + return ret; + + urb_priv = urb->hcpriv; + td = urb_priv->td[td_index]; + + INIT_LIST_HEAD(&td->td_list); + INIT_LIST_HEAD(&td->cancelled_td_list); + + if (td_index == 0) { + ret = usb_hcd_link_urb_to_ep(bus_to_hcd(urb->dev->bus), urb); + if (unlikely(ret)) + return ret; + } + + td->urb = urb; + /* Add this TD to the tail of the endpoint ring's TD list */ + list_add_tail(&td->td_list, &ep_ring->td_list); + td->start_seg = ep_ring->enq_seg; + td->first_trb = ep_ring->enqueue; + + urb_priv->td[td_index] = td; + + return 0; +} + +static unsigned int count_sg_trbs_needed(struct xhci_hcd *xhci, struct urb *urb) +{ + int num_sgs, num_trbs, running_total, temp, i; + struct scatterlist *sg; + + sg = NULL; + num_sgs = urb->num_mapped_sgs; + temp = urb->transfer_buffer_length; + + num_trbs = 0; + for_each_sg(urb->sg, sg, num_sgs, i) { + unsigned int len = sg_dma_len(sg); + + /* Scatter gather list entries may cross 64KB boundaries */ + running_total = TRB_MAX_BUFF_SIZE - + (sg_dma_address(sg) & (TRB_MAX_BUFF_SIZE - 1)); + running_total &= TRB_MAX_BUFF_SIZE - 1; + if (running_total != 0) + num_trbs++; + + /* How many more 64KB chunks to transfer, how many more TRBs? */ + while (running_total < sg_dma_len(sg) && running_total < temp) { + num_trbs++; + running_total += TRB_MAX_BUFF_SIZE; + } + len = min_t(int, len, temp); + temp -= len; + if (temp == 0) + break; + } +#if defined(__VMKLNX__) + sg_reset(sg); +#endif + return num_trbs; +} + +static void check_trb_math(struct urb *urb, int num_trbs, int running_total) +{ + if (num_trbs != 0) + dev_err(&urb->dev->dev, "%s - ep %#x - Miscalculated number of " + "TRBs, %d left\n", __func__, + urb->ep->desc.bEndpointAddress, num_trbs); + if (running_total != urb->transfer_buffer_length) + dev_err(&urb->dev->dev, "%s - ep %#x - Miscalculated tx length, " + "queued %#x (%d), asked for %#x (%d)\n", + __func__, + urb->ep->desc.bEndpointAddress, + running_total, running_total, + urb->transfer_buffer_length, + urb->transfer_buffer_length); +} + +static void giveback_first_trb(struct xhci_hcd *xhci, int slot_id, + unsigned int ep_index, unsigned int stream_id, int start_cycle, + struct xhci_generic_trb *start_trb) +{ + /* + * Pass all the TRBs to the hardware at once and make sure this write + * isn't reordered. + */ + wmb(); + if (start_cycle) + start_trb->field[3] |= cpu_to_le32(start_cycle); + else + start_trb->field[3] &= cpu_to_le32(~TRB_CYCLE); + xhci_ring_ep_doorbell(xhci, slot_id, ep_index, stream_id); +} + +/* + * xHCI uses normal TRBs for both bulk and interrupt. When the interrupt + * endpoint is to be serviced, the xHC will consume (at most) one TD. A TD + * (comprised of sg list entries) can take several service intervals to + * transmit. + */ +int xhci_queue_intr_tx(struct xhci_hcd *xhci, gfp_t mem_flags, + struct urb *urb, int slot_id, unsigned int ep_index) +{ + struct xhci_ep_ctx *ep_ctx = xhci_get_ep_ctx(xhci, + xhci->devs[slot_id]->out_ctx, ep_index); + int xhci_interval; + int ep_interval; + + xhci_interval = EP_INTERVAL_TO_UFRAMES(le32_to_cpu(ep_ctx->ep_info)); + ep_interval = urb->interval; + /* Convert to microframes */ + if (urb->dev->speed == USB_SPEED_LOW || + urb->dev->speed == USB_SPEED_FULL) + ep_interval *= 8; + /* FIXME change this to a warning and a suggestion to use the new API + * to set the polling interval (once the API is added). + */ + if (xhci_interval != ep_interval) { + if (printk_ratelimit()) + dev_dbg(&urb->dev->dev, "Driver uses different interval" + " (%d microframe%s) than xHCI " + "(%d microframe%s)\n", + ep_interval, + ep_interval == 1 ? "" : "s", + xhci_interval, + xhci_interval == 1 ? "" : "s"); + urb->interval = xhci_interval; + /* Convert back to frames for LS/FS devices */ + if (urb->dev->speed == USB_SPEED_LOW || + urb->dev->speed == USB_SPEED_FULL) + urb->interval /= 8; + } + return xhci_queue_bulk_tx(xhci, mem_flags, urb, slot_id, ep_index); +} + +/* + * The TD size is the number of bytes remaining in the TD (including this TRB), + * right shifted by 10. + * It must fit in bits 21:17, so it can't be bigger than 31. + */ +static u32 xhci_td_remainder(unsigned int remainder) +{ + u32 max = (1 << (21 - 17 + 1)) - 1; + + if ((remainder >> 10) >= max) + return max << 17; + else + return (remainder >> 10) << 17; +} + +/* + * For xHCI 1.0 host controllers, TD size is the number of packets remaining in + * the TD (*not* including this TRB). + * + * Total TD packet count = total_packet_count = + * roundup(TD size in bytes / wMaxPacketSize) + * + * Packets transferred up to and including this TRB = packets_transferred = + * rounddown(total bytes transferred including this TRB / wMaxPacketSize) + * + * TD size = total_packet_count - packets_transferred + * + * It must fit in bits 21:17, so it can't be bigger than 31. + */ + +static u32 xhci_v1_0_td_remainder(int running_total, int trb_buff_len, + unsigned int total_packet_count, struct urb *urb) +{ + int packets_transferred; + + /* One TRB with a zero-length data packet. */ + if (running_total == 0 && trb_buff_len == 0) + return 0; + + /* All the TRB queueing functions don't count the current TRB in + * running_total. + */ + packets_transferred = (running_total + trb_buff_len) / + usb_endpoint_maxp(&urb->ep->desc); + + return xhci_td_remainder(total_packet_count - packets_transferred); +} + +static int queue_bulk_sg_tx(struct xhci_hcd *xhci, gfp_t mem_flags, + struct urb *urb, int slot_id, unsigned int ep_index) +{ + struct xhci_ring *ep_ring; + unsigned int num_trbs; + struct urb_priv *urb_priv; + struct xhci_td *td; + struct scatterlist *sg; + int num_sgs; + int trb_buff_len, this_sg_len, running_total; + unsigned int total_packet_count; + bool first_trb; + u64 addr; + bool more_trbs_coming; + + struct xhci_generic_trb *start_trb; + int start_cycle; + + ep_ring = xhci_urb_to_transfer_ring(xhci, urb); + if (!ep_ring) + return -EINVAL; + + num_trbs = count_sg_trbs_needed(xhci, urb); + num_sgs = urb->num_mapped_sgs; + total_packet_count = roundup(urb->transfer_buffer_length, + usb_endpoint_maxp(&urb->ep->desc)); + + trb_buff_len = prepare_transfer(xhci, xhci->devs[slot_id], + ep_index, urb->stream_id, + num_trbs, urb, 0, mem_flags); + if (trb_buff_len < 0) + return trb_buff_len; + + urb_priv = urb->hcpriv; + td = urb_priv->td[0]; + + /* + * Don't give the first TRB to the hardware (by toggling the cycle bit) + * until we've finished creating all the other TRBs. The ring's cycle + * state may change as we enqueue the other TRBs, so save it too. + */ + start_trb = &ep_ring->enqueue->generic; + start_cycle = ep_ring->cycle_state; + + running_total = 0; + /* + * How much data is in the first TRB? + * + * There are three forces at work for TRB buffer pointers and lengths: + * 1. We don't want to walk off the end of this sg-list entry buffer. + * 2. The transfer length that the driver requested may be smaller than + * the amount of memory allocated for this scatter-gather list. + * 3. TRBs buffers can't cross 64KB boundaries. + */ + sg = urb->sg; + addr = (u64) sg_dma_address(sg); + this_sg_len = sg_dma_len(sg); + trb_buff_len = TRB_MAX_BUFF_SIZE - (addr & (TRB_MAX_BUFF_SIZE - 1)); + trb_buff_len = min_t(int, trb_buff_len, this_sg_len); + if (trb_buff_len > urb->transfer_buffer_length) + trb_buff_len = urb->transfer_buffer_length; + + first_trb = true; + /* Queue the first TRB, even if it's zero-length */ + do { + u32 field = 0; + u32 length_field = 0; + u32 remainder = 0; + + /* Don't change the cycle bit of the first TRB until later */ + if (first_trb) { + first_trb = false; + if (start_cycle == 0) + field |= 0x1; + } else + field |= ep_ring->cycle_state; + + /* Chain all the TRBs together; clear the chain bit in the last + * TRB to indicate it's the last TRB in the chain. + */ + if (num_trbs > 1) { + field |= TRB_CHAIN; + } else { + /* FIXME - add check for ZERO_PACKET flag before this */ + td->last_trb = ep_ring->enqueue; + field |= TRB_IOC; + } + + /* Only set interrupt on short packet for IN endpoints */ + if (usb_urb_dir_in(urb)) + field |= TRB_ISP; + + if (TRB_MAX_BUFF_SIZE - + (addr & (TRB_MAX_BUFF_SIZE - 1)) < trb_buff_len) { + xhci_warn(xhci, "WARN: sg dma xfer crosses 64KB boundaries!\n"); + xhci_dbg(xhci, "Next boundary at %#x, end dma = %#x\n", + (unsigned int) (addr + TRB_MAX_BUFF_SIZE) & ~(TRB_MAX_BUFF_SIZE - 1), + (unsigned int) addr + trb_buff_len); + } + + /* Set the TRB length, TD size, and interrupter fields. */ + if (xhci->hci_version < 0x100) { + remainder = xhci_td_remainder( + urb->transfer_buffer_length - + running_total); + } else { + remainder = xhci_v1_0_td_remainder(running_total, + trb_buff_len, total_packet_count, urb); + } + length_field = TRB_LEN(trb_buff_len) | + remainder | + TRB_INTR_TARGET(0); + + if (num_trbs > 1) + more_trbs_coming = true; + else + more_trbs_coming = false; + queue_trb(xhci, ep_ring, more_trbs_coming, + lower_32_bits(addr), + upper_32_bits(addr), + length_field, + field | TRB_TYPE(TRB_NORMAL)); + --num_trbs; + running_total += trb_buff_len; + + /* Calculate length for next transfer -- + * Are we done queueing all the TRBs for this sg entry? + */ + this_sg_len -= trb_buff_len; + if (this_sg_len == 0) { + --num_sgs; + if (num_sgs == 0) + break; + sg = sg_next(sg); + addr = (u64) sg_dma_address(sg); + this_sg_len = sg_dma_len(sg); + } else { + addr += trb_buff_len; + } + + trb_buff_len = TRB_MAX_BUFF_SIZE - + (addr & (TRB_MAX_BUFF_SIZE - 1)); + trb_buff_len = min_t(int, trb_buff_len, this_sg_len); + if (running_total + trb_buff_len > urb->transfer_buffer_length) + trb_buff_len = + urb->transfer_buffer_length - running_total; + } while (running_total < urb->transfer_buffer_length); +#if defined(__VMKLNX__) + sg_reset(sg); +#endif + check_trb_math(urb, num_trbs, running_total); + giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id, + start_cycle, start_trb); + return 0; +} + +/* This is very similar to what ehci-q.c qtd_fill() does */ +int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, + struct urb *urb, int slot_id, unsigned int ep_index) +{ + struct xhci_ring *ep_ring; + struct urb_priv *urb_priv; + struct xhci_td *td; + int num_trbs; + struct xhci_generic_trb *start_trb; + bool first_trb; + bool more_trbs_coming; + int start_cycle; + u32 field, length_field; + + int running_total, trb_buff_len, ret; + unsigned int total_packet_count; + u64 addr; + + if (urb->num_sgs) + return queue_bulk_sg_tx(xhci, mem_flags, urb, slot_id, ep_index); + + ep_ring = xhci_urb_to_transfer_ring(xhci, urb); + if (!ep_ring) + return -EINVAL; + + num_trbs = 0; + /* How much data is (potentially) left before the 64KB boundary? */ + running_total = TRB_MAX_BUFF_SIZE - + (urb->transfer_dma & (TRB_MAX_BUFF_SIZE - 1)); + running_total &= TRB_MAX_BUFF_SIZE - 1; + + /* If there's some data on this 64KB chunk, or we have to send a + * zero-length transfer, we need at least one TRB + */ + if (running_total != 0 || urb->transfer_buffer_length == 0) + num_trbs++; + /* How many more 64KB chunks to transfer, how many more TRBs? */ + while (running_total < urb->transfer_buffer_length) { + num_trbs++; + running_total += TRB_MAX_BUFF_SIZE; + } + /* FIXME: this doesn't deal with URB_ZERO_PACKET - need one more */ + + ret = prepare_transfer(xhci, xhci->devs[slot_id], + ep_index, urb->stream_id, + num_trbs, urb, 0, mem_flags); + if (ret < 0) + return ret; + + urb_priv = urb->hcpriv; + td = urb_priv->td[0]; + + /* + * Don't give the first TRB to the hardware (by toggling the cycle bit) + * until we've finished creating all the other TRBs. The ring's cycle + * state may change as we enqueue the other TRBs, so save it too. + */ + start_trb = &ep_ring->enqueue->generic; + start_cycle = ep_ring->cycle_state; + + running_total = 0; + total_packet_count = roundup(urb->transfer_buffer_length, + usb_endpoint_maxp(&urb->ep->desc)); + /* How much data is in the first TRB? */ + addr = (u64) urb->transfer_dma; + trb_buff_len = TRB_MAX_BUFF_SIZE - + (urb->transfer_dma & (TRB_MAX_BUFF_SIZE - 1)); + if (trb_buff_len > urb->transfer_buffer_length) + trb_buff_len = urb->transfer_buffer_length; + + first_trb = true; + + /* Queue the first TRB, even if it's zero-length */ + do { + u32 remainder = 0; + field = 0; + + /* Don't change the cycle bit of the first TRB until later */ + if (first_trb) { + first_trb = false; + if (start_cycle == 0) + field |= 0x1; + } else + field |= ep_ring->cycle_state; + + /* Chain all the TRBs together; clear the chain bit in the last + * TRB to indicate it's the last TRB in the chain. + */ + if (num_trbs > 1) { + field |= TRB_CHAIN; + } else { + /* FIXME - add check for ZERO_PACKET flag before this */ + td->last_trb = ep_ring->enqueue; + field |= TRB_IOC; + } + + /* Only set interrupt on short packet for IN endpoints */ + if (usb_urb_dir_in(urb)) + field |= TRB_ISP; + + /* Set the TRB length, TD size, and interrupter fields. */ + if (xhci->hci_version < 0x100) { + remainder = xhci_td_remainder( + urb->transfer_buffer_length - + running_total); + } else { + remainder = xhci_v1_0_td_remainder(running_total, + trb_buff_len, total_packet_count, urb); + } + length_field = TRB_LEN(trb_buff_len) | + remainder | + TRB_INTR_TARGET(0); + + if (num_trbs > 1) + more_trbs_coming = true; + else + more_trbs_coming = false; + queue_trb(xhci, ep_ring, more_trbs_coming, + lower_32_bits(addr), + upper_32_bits(addr), + length_field, + field | TRB_TYPE(TRB_NORMAL)); + --num_trbs; + running_total += trb_buff_len; + + /* Calculate length for next transfer */ + addr += trb_buff_len; + trb_buff_len = urb->transfer_buffer_length - running_total; + if (trb_buff_len > TRB_MAX_BUFF_SIZE) + trb_buff_len = TRB_MAX_BUFF_SIZE; + } while (running_total < urb->transfer_buffer_length); + + check_trb_math(urb, num_trbs, running_total); + giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id, + start_cycle, start_trb); + return 0; +} + +/* Caller must have locked xhci->lock */ +int xhci_queue_ctrl_tx(struct xhci_hcd *xhci, gfp_t mem_flags, + struct urb *urb, int slot_id, unsigned int ep_index) +{ + struct xhci_ring *ep_ring; + int num_trbs; + int ret; + struct usb_ctrlrequest *setup; + struct xhci_generic_trb *start_trb; + int start_cycle; + u32 field, length_field; + struct urb_priv *urb_priv; + struct xhci_td *td; + + ep_ring = xhci_urb_to_transfer_ring(xhci, urb); + if (!ep_ring) + return -EINVAL; + + /* + * Need to copy setup packet into setup TRB, so we can't use the setup + * DMA address. + */ + if (!urb->setup_packet) + return -EINVAL; + + /* 1 TRB for setup, 1 for status */ + num_trbs = 2; + /* + * Don't need to check if we need additional event data and normal TRBs, + * since data in control transfers will never get bigger than 16MB + * XXX: can we get a buffer that crosses 64KB boundaries? + */ + if (urb->transfer_buffer_length > 0) + num_trbs++; + ret = prepare_transfer(xhci, xhci->devs[slot_id], + ep_index, urb->stream_id, + num_trbs, urb, 0, mem_flags); + if (ret < 0) + return ret; + + urb_priv = urb->hcpriv; + td = urb_priv->td[0]; + + /* + * Don't give the first TRB to the hardware (by toggling the cycle bit) + * until we've finished creating all the other TRBs. The ring's cycle + * state may change as we enqueue the other TRBs, so save it too. + */ + start_trb = &ep_ring->enqueue->generic; + start_cycle = ep_ring->cycle_state; + + /* Queue setup TRB - see section 6.4.1.2.1 */ + /* FIXME better way to translate setup_packet into two u32 fields? */ + setup = (struct usb_ctrlrequest *) urb->setup_packet; + field = 0; + field |= TRB_IDT | TRB_TYPE(TRB_SETUP); + if (start_cycle == 0) + field |= 0x1; + + /* xHCI 1.0 6.4.1.2.1: Transfer Type field */ + if (xhci->hci_version == 0x100) { + if (urb->transfer_buffer_length > 0) { + if (setup->bRequestType & USB_DIR_IN) + field |= TRB_TX_TYPE(TRB_DATA_IN); + else + field |= TRB_TX_TYPE(TRB_DATA_OUT); + } + } + + queue_trb(xhci, ep_ring, true, + setup->bRequestType | setup->bRequest << 8 | le16_to_cpu(setup->wValue) << 16, + le16_to_cpu(setup->wIndex) | le16_to_cpu(setup->wLength) << 16, + TRB_LEN(8) | TRB_INTR_TARGET(0), + /* Immediate data in pointer */ + field); + + /* If there's data, queue data TRBs */ + /* Only set interrupt on short packet for IN endpoints */ + if (usb_urb_dir_in(urb)) + field = TRB_ISP | TRB_TYPE(TRB_DATA); + else + field = TRB_TYPE(TRB_DATA); + + length_field = TRB_LEN(urb->transfer_buffer_length) | + xhci_td_remainder(urb->transfer_buffer_length) | + TRB_INTR_TARGET(0); + if (urb->transfer_buffer_length > 0) { + if (setup->bRequestType & USB_DIR_IN) + field |= TRB_DIR_IN; + queue_trb(xhci, ep_ring, true, + lower_32_bits(urb->transfer_dma), + upper_32_bits(urb->transfer_dma), + length_field, + field | ep_ring->cycle_state); + } + + /* Save the DMA address of the last TRB in the TD */ + td->last_trb = ep_ring->enqueue; + + /* Queue status TRB - see Table 7 and sections 4.11.2.2 and 6.4.1.2.3 */ + /* If the device sent data, the status stage is an OUT transfer */ + if (urb->transfer_buffer_length > 0 && setup->bRequestType & USB_DIR_IN) + field = 0; + else + field = TRB_DIR_IN; + queue_trb(xhci, ep_ring, false, + 0, + 0, + TRB_INTR_TARGET(0), + /* Event on completion */ + field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state); + + giveback_first_trb(xhci, slot_id, ep_index, 0, + start_cycle, start_trb); + return 0; +} + +static int count_isoc_trbs_needed(struct xhci_hcd *xhci, + struct urb *urb, int i) +{ + int num_trbs = 0; + u64 addr, td_len; + + addr = (u64) (urb->transfer_dma + urb->iso_frame_desc[i].offset); + td_len = urb->iso_frame_desc[i].length; + + num_trbs = DIV_ROUND_UP(td_len + (addr & (TRB_MAX_BUFF_SIZE - 1)), + TRB_MAX_BUFF_SIZE); + if (num_trbs == 0) + num_trbs++; + + return num_trbs; +} + +/* + * The transfer burst count field of the isochronous TRB defines the number of + * bursts that are required to move all packets in this TD. Only SuperSpeed + * devices can burst up to bMaxBurst number of packets per service interval. + * This field is zero based, meaning a value of zero in the field means one + * burst. Basically, for everything but SuperSpeed devices, this field will be + * zero. Only xHCI 1.0 host controllers support this field. + */ +static unsigned int xhci_get_burst_count(struct xhci_hcd *xhci, + struct usb_device *udev, + struct urb *urb, unsigned int total_packet_count) +{ + unsigned int max_burst; + + if (xhci->hci_version < 0x100 || udev->speed != USB_SPEED_SUPER) + return 0; + + max_burst = urb->ep->ss_ep_comp.bMaxBurst; + return roundup(total_packet_count, max_burst + 1) - 1; +} + +/* + * Returns the number of packets in the last "burst" of packets. This field is + * valid for all speeds of devices. USB 2.0 devices can only do one "burst", so + * the last burst packet count is equal to the total number of packets in the + * TD. SuperSpeed endpoints can have up to 3 bursts. All but the last burst + * must contain (bMaxBurst + 1) number of packets, but the last burst can + * contain 1 to (bMaxBurst + 1) packets. + */ +static unsigned int xhci_get_last_burst_packet_count(struct xhci_hcd *xhci, + struct usb_device *udev, + struct urb *urb, unsigned int total_packet_count) +{ + unsigned int max_burst; + unsigned int residue; + + if (xhci->hci_version < 0x100) + return 0; + + switch (udev->speed) { + case USB_SPEED_SUPER: + /* bMaxBurst is zero based: 0 means 1 packet per burst */ + max_burst = urb->ep->ss_ep_comp.bMaxBurst; + residue = total_packet_count % (max_burst + 1); + /* If residue is zero, the last burst contains (max_burst + 1) + * number of packets, but the TLBPC field is zero-based. + */ + if (residue == 0) + return max_burst; + return residue - 1; + default: + if (total_packet_count == 0) + return 0; + return total_packet_count - 1; + } +} + +/* This is for isoc transfer */ +static int xhci_queue_isoc_tx(struct xhci_hcd *xhci, gfp_t mem_flags, + struct urb *urb, int slot_id, unsigned int ep_index) +{ + struct xhci_ring *ep_ring; + struct urb_priv *urb_priv; + struct xhci_td *td; + int num_tds, trbs_per_td; + struct xhci_generic_trb *start_trb; + bool first_trb; + int start_cycle; + u32 field, length_field; + int running_total, trb_buff_len, td_len, td_remain_len, ret; + u64 start_addr, addr; + int i, j; + bool more_trbs_coming; + + ep_ring = xhci->devs[slot_id]->eps[ep_index].ring; + + num_tds = urb->number_of_packets; + if (num_tds < 1) { + xhci_dbg(xhci, "Isoc URB with zero packets?\n"); + return -EINVAL; + } + + start_addr = (u64) urb->transfer_dma; + start_trb = &ep_ring->enqueue->generic; + start_cycle = ep_ring->cycle_state; + + urb_priv = urb->hcpriv; + /* Queue the first TRB, even if it's zero-length */ + for (i = 0; i < num_tds; i++) { + unsigned int total_packet_count; + unsigned int burst_count; + unsigned int residue; + + first_trb = true; + running_total = 0; + addr = start_addr + urb->iso_frame_desc[i].offset; + td_len = urb->iso_frame_desc[i].length; + td_remain_len = td_len; + total_packet_count = roundup(td_len, + usb_endpoint_maxp(&urb->ep->desc)); + /* A zero-length transfer still involves at least one packet. */ + if (total_packet_count == 0) + total_packet_count++; + burst_count = xhci_get_burst_count(xhci, urb->dev, urb, + total_packet_count); + residue = xhci_get_last_burst_packet_count(xhci, + urb->dev, urb, total_packet_count); + + trbs_per_td = count_isoc_trbs_needed(xhci, urb, i); + + ret = prepare_transfer(xhci, xhci->devs[slot_id], ep_index, + urb->stream_id, trbs_per_td, urb, i, mem_flags); + if (ret < 0) { + if (i == 0) + return ret; + goto cleanup; + } + + td = urb_priv->td[i]; + for (j = 0; j < trbs_per_td; j++) { + u32 remainder = 0; + field = TRB_TBC(burst_count) | TRB_TLBPC(residue); + + if (first_trb) { + /* Queue the isoc TRB */ + field |= TRB_TYPE(TRB_ISOC); + /* Assume URB_ISO_ASAP is set */ + field |= TRB_SIA; + if (i == 0) { + if (start_cycle == 0) + field |= 0x1; + } else + field |= ep_ring->cycle_state; + first_trb = false; + } else { + /* Queue other normal TRBs */ + field |= TRB_TYPE(TRB_NORMAL); + field |= ep_ring->cycle_state; + } + + /* Only set interrupt on short packet for IN EPs */ + if (usb_urb_dir_in(urb)) + field |= TRB_ISP; + + /* Chain all the TRBs together; clear the chain bit in + * the last TRB to indicate it's the last TRB in the + * chain. + */ + if (j < trbs_per_td - 1) { + field |= TRB_CHAIN; + more_trbs_coming = true; + } else { + td->last_trb = ep_ring->enqueue; + field |= TRB_IOC; + if (xhci->hci_version == 0x100) { + /* Set BEI bit except for the last td */ + if (i < num_tds - 1) + field |= TRB_BEI; + } + more_trbs_coming = false; + } + + /* Calculate TRB length */ + trb_buff_len = TRB_MAX_BUFF_SIZE - + (addr & ((1 << TRB_MAX_BUFF_SHIFT) - 1)); + if (trb_buff_len > td_remain_len) + trb_buff_len = td_remain_len; + + /* Set the TRB length, TD size, & interrupter fields. */ + if (xhci->hci_version < 0x100) { + remainder = xhci_td_remainder( + td_len - running_total); + } else { + remainder = xhci_v1_0_td_remainder( + running_total, trb_buff_len, + total_packet_count, urb); + } + length_field = TRB_LEN(trb_buff_len) | + remainder | + TRB_INTR_TARGET(0); + + queue_trb(xhci, ep_ring, more_trbs_coming, + lower_32_bits(addr), + upper_32_bits(addr), + length_field, + field); + running_total += trb_buff_len; + + addr += trb_buff_len; + td_remain_len -= trb_buff_len; + } + + /* Check TD length */ + if (running_total != td_len) { + xhci_err(xhci, "ISOC TD length unmatch\n"); + ret = -EINVAL; + goto cleanup; + } + } + + if (xhci_to_hcd(xhci)->self.bandwidth_isoc_reqs == 0) { + if (xhci->quirks & XHCI_AMD_PLL_FIX) + usb_amd_quirk_pll_disable(); + } + xhci_to_hcd(xhci)->self.bandwidth_isoc_reqs++; + + giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id, + start_cycle, start_trb); + return 0; +cleanup: + /* Clean up a partially enqueued isoc transfer. */ + + for (i--; i >= 0; i--) + list_del_init(&urb_priv->td[i]->td_list); + + /* Use the first TD as a temporary variable to turn the TDs we've queued + * into No-ops with a software-owned cycle bit. That way the hardware + * won't accidentally start executing bogus TDs when we partially + * overwrite them. td->first_trb and td->start_seg are already set. + */ + urb_priv->td[0]->last_trb = ep_ring->enqueue; + /* Every TRB except the first & last will have its cycle bit flipped. */ + td_to_noop(xhci, ep_ring, urb_priv->td[0], true); + + /* Reset the ring enqueue back to the first TRB and its cycle bit. */ + ep_ring->enqueue = urb_priv->td[0]->first_trb; + ep_ring->enq_seg = urb_priv->td[0]->start_seg; + ep_ring->cycle_state = start_cycle; + ep_ring->num_trbs_free = ep_ring->num_trbs_free_temp; + usb_hcd_unlink_urb_from_ep(bus_to_hcd(urb->dev->bus), urb); + return ret; +} + +/* + * Check transfer ring to guarantee there is enough room for the urb. + * Update ISO URB start_frame and interval. + * Update interval as xhci_queue_intr_tx does. Just use xhci frame_index to + * update the urb->start_frame by now. + * Always assume URB_ISO_ASAP set, and NEVER use urb->start_frame as input. + */ +int xhci_queue_isoc_tx_prepare(struct xhci_hcd *xhci, gfp_t mem_flags, + struct urb *urb, int slot_id, unsigned int ep_index) +{ + struct xhci_virt_device *xdev; + struct xhci_ring *ep_ring; + struct xhci_ep_ctx *ep_ctx; + int start_frame; + int xhci_interval; + int ep_interval; + int num_tds, num_trbs, i; + int ret; + + xdev = xhci->devs[slot_id]; + ep_ring = xdev->eps[ep_index].ring; + ep_ctx = xhci_get_ep_ctx(xhci, xdev->out_ctx, ep_index); + + num_trbs = 0; + num_tds = urb->number_of_packets; + for (i = 0; i < num_tds; i++) + num_trbs += count_isoc_trbs_needed(xhci, urb, i); + + /* Check the ring to guarantee there is enough room for the whole urb. + * Do not insert any td of the urb to the ring if the check failed. + */ + ret = prepare_ring(xhci, ep_ring, le32_to_cpu(ep_ctx->ep_info) & EP_STATE_MASK, + num_trbs, mem_flags); + if (ret) + return ret; + + start_frame = xhci_readl(xhci, &xhci->run_regs->microframe_index); + start_frame &= 0x3fff; + + urb->start_frame = start_frame; + if (urb->dev->speed == USB_SPEED_LOW || + urb->dev->speed == USB_SPEED_FULL) + urb->start_frame >>= 3; + + xhci_interval = EP_INTERVAL_TO_UFRAMES(le32_to_cpu(ep_ctx->ep_info)); + ep_interval = urb->interval; + /* Convert to microframes */ + if (urb->dev->speed == USB_SPEED_LOW || + urb->dev->speed == USB_SPEED_FULL) + ep_interval *= 8; + /* FIXME change this to a warning and a suggestion to use the new API + * to set the polling interval (once the API is added). + */ + if (xhci_interval != ep_interval) { + if (printk_ratelimit()) + dev_dbg(&urb->dev->dev, "Driver uses different interval" + " (%d microframe%s) than xHCI " + "(%d microframe%s)\n", + ep_interval, + ep_interval == 1 ? "" : "s", + xhci_interval, + xhci_interval == 1 ? "" : "s"); + urb->interval = xhci_interval; + /* Convert back to frames for LS/FS devices */ + if (urb->dev->speed == USB_SPEED_LOW || + urb->dev->speed == USB_SPEED_FULL) + urb->interval /= 8; + } + ep_ring->num_trbs_free_temp = ep_ring->num_trbs_free; + + return xhci_queue_isoc_tx(xhci, mem_flags, urb, slot_id, ep_index); +} + +/**** Command Ring Operations ****/ + +/* Generic function for queueing a command TRB on the command ring. + * Check to make sure there's room on the command ring for one command TRB. + * Also check that there's room reserved for commands that must not fail. + * If this is a command that must not fail, meaning command_must_succeed = TRUE, + * then only check for the number of reserved spots. + * Don't decrement xhci->cmd_ring_reserved_trbs after we've queued the TRB + * because the command event handler may want to resubmit a failed command. + */ +static int queue_command(struct xhci_hcd *xhci, u32 field1, u32 field2, + u32 field3, u32 field4, bool command_must_succeed) +{ + int reserved_trbs = xhci->cmd_ring_reserved_trbs; + int ret; + + if (!command_must_succeed) + reserved_trbs++; + + ret = prepare_ring(xhci, xhci->cmd_ring, EP_STATE_RUNNING, + reserved_trbs, GFP_ATOMIC); + if (ret < 0) { + xhci_err(xhci, "ERR: No room for command on command ring\n"); + if (command_must_succeed) + xhci_err(xhci, "ERR: Reserved TRB counting for " + "unfailable commands failed.\n"); + return ret; + } + queue_trb(xhci, xhci->cmd_ring, false, field1, field2, field3, + field4 | xhci->cmd_ring->cycle_state); + return 0; +} + +/* Queue a slot enable or disable request on the command ring */ +int xhci_queue_slot_control(struct xhci_hcd *xhci, u32 trb_type, u32 slot_id) +{ + return queue_command(xhci, 0, 0, 0, + TRB_TYPE(trb_type) | SLOT_ID_FOR_TRB(slot_id), false); +} + +/* Queue an address device command TRB */ +int xhci_queue_address_device(struct xhci_hcd *xhci, dma_addr_t in_ctx_ptr, + u32 slot_id) +{ + return queue_command(xhci, lower_32_bits(in_ctx_ptr), + upper_32_bits(in_ctx_ptr), 0, + TRB_TYPE(TRB_ADDR_DEV) | SLOT_ID_FOR_TRB(slot_id), + false); +} + +int xhci_queue_vendor_command(struct xhci_hcd *xhci, + u32 field1, u32 field2, u32 field3, u32 field4) +{ + return queue_command(xhci, field1, field2, field3, field4, false); +} + +/* Queue a reset device command TRB */ +int xhci_queue_reset_device(struct xhci_hcd *xhci, u32 slot_id) +{ + return queue_command(xhci, 0, 0, 0, + TRB_TYPE(TRB_RESET_DEV) | SLOT_ID_FOR_TRB(slot_id), + false); +} + +/* Queue a configure endpoint command TRB */ +int xhci_queue_configure_endpoint(struct xhci_hcd *xhci, dma_addr_t in_ctx_ptr, + u32 slot_id, bool command_must_succeed) +{ + return queue_command(xhci, lower_32_bits(in_ctx_ptr), + upper_32_bits(in_ctx_ptr), 0, + TRB_TYPE(TRB_CONFIG_EP) | SLOT_ID_FOR_TRB(slot_id), + command_must_succeed); +} + +/* Queue an evaluate context command TRB */ +int xhci_queue_evaluate_context(struct xhci_hcd *xhci, dma_addr_t in_ctx_ptr, + u32 slot_id) +{ + return queue_command(xhci, lower_32_bits(in_ctx_ptr), + upper_32_bits(in_ctx_ptr), 0, + TRB_TYPE(TRB_EVAL_CONTEXT) | SLOT_ID_FOR_TRB(slot_id), + false); +} + +/* + * Suspend is set to indicate "Stop Endpoint Command" is being issued to stop + * activity on an endpoint that is about to be suspended. + */ +int xhci_queue_stop_endpoint(struct xhci_hcd *xhci, int slot_id, + unsigned int ep_index, int suspend) +{ + u32 trb_slot_id = SLOT_ID_FOR_TRB(slot_id); + u32 trb_ep_index = EP_ID_FOR_TRB(ep_index); + u32 type = TRB_TYPE(TRB_STOP_RING); + u32 trb_suspend = SUSPEND_PORT_FOR_TRB(suspend); + + return queue_command(xhci, 0, 0, 0, + trb_slot_id | trb_ep_index | type | trb_suspend, false); +} + +/* Set Transfer Ring Dequeue Pointer command. + * This should not be used for endpoints that have streams enabled. + */ +static int queue_set_tr_deq(struct xhci_hcd *xhci, int slot_id, + unsigned int ep_index, unsigned int stream_id, + struct xhci_segment *deq_seg, + union xhci_trb *deq_ptr, u32 cycle_state) +{ + dma_addr_t addr; + u32 trb_slot_id = SLOT_ID_FOR_TRB(slot_id); + u32 trb_ep_index = EP_ID_FOR_TRB(ep_index); + u32 trb_stream_id = STREAM_ID_FOR_TRB(stream_id); + u32 type = TRB_TYPE(TRB_SET_DEQ); + struct xhci_virt_ep *ep; + + addr = xhci_trb_virt_to_dma(deq_seg, deq_ptr); + if (addr == 0) { + xhci_warn(xhci, "WARN Cannot submit Set TR Deq Ptr\n"); + xhci_warn(xhci, "WARN deq seg = %p, deq pt = %p\n", + deq_seg, deq_ptr); + return 0; + } + ep = &xhci->devs[slot_id]->eps[ep_index]; + if ((ep->ep_state & SET_DEQ_PENDING)) { + xhci_warn(xhci, "WARN Cannot submit Set TR Deq Ptr\n"); + xhci_warn(xhci, "A Set TR Deq Ptr command is pending.\n"); + return 0; + } + ep->queued_deq_seg = deq_seg; + ep->queued_deq_ptr = deq_ptr; + return queue_command(xhci, lower_32_bits(addr) | cycle_state, + upper_32_bits(addr), trb_stream_id, + trb_slot_id | trb_ep_index | type, false); +} + +int xhci_queue_reset_ep(struct xhci_hcd *xhci, int slot_id, + unsigned int ep_index) +{ + u32 trb_slot_id = SLOT_ID_FOR_TRB(slot_id); + u32 trb_ep_index = EP_ID_FOR_TRB(ep_index); + u32 type = TRB_TYPE(TRB_RESET_EP); + + return queue_command(xhci, 0, 0, 0, trb_slot_id | trb_ep_index | type, + false); +} diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/xhci.c b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci.c new file mode 100644 index 0000000000000000000000000000000000000000..79c650e5bda2cf3b9cd1a0eaecdbdb416efde971 --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci.c @@ -0,0 +1,4118 @@ +/* + * xHCI host controller driver + * + * Copyright (C) 2008 Intel Corp. + * + * Author: Sarah Sharp + * Some code borrowed from the Linux EHCI driver. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include + +#include "xhci.h" + +#define DRIVER_AUTHOR "Sarah Sharp" +#define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver" + +/* Some 0.95 hardware can't handle the chain bit on a Link TRB being cleared */ +static int link_quirk; +module_param(link_quirk, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(link_quirk, "Don't clear the chain bit on a link TRB"); + +/* TODO: copied from ehci-hcd.c - can this be refactored? */ +/* + * handshake - spin reading hc until handshake completes or fails + * @ptr: address of hc register to be read + * @mask: bits to look at in result of read + * @done: value of those bits when handshake succeeds + * @usec: timeout in microseconds + * + * Returns negative errno, or zero on success + * + * Success happens when the "mask" bits have the specified value (hardware + * handshake done). There are two failure modes: "usec" have passed (major + * hardware flakeout), or the register reads as all-ones (hardware removed). + */ +static int handshake(struct xhci_hcd *xhci, void __iomem *ptr, + u32 mask, u32 done, int usec) +{ + u32 result; + + do { + result = xhci_readl(xhci, ptr); + if (result == ~(u32)0) /* card removed */ + return -ENODEV; + result &= mask; + if (result == done) + return 0; + udelay(1); + usec--; + } while (usec > 0); + return -ETIMEDOUT; +} + +/* + * Disable interrupts and begin the xHCI halting process. + */ +void xhci_quiesce(struct xhci_hcd *xhci) +{ + u32 halted; + u32 cmd; + u32 mask; + + mask = ~(XHCI_IRQS); + halted = xhci_readl(xhci, &xhci->op_regs->status) & STS_HALT; + if (!halted) + mask &= ~CMD_RUN; + + cmd = xhci_readl(xhci, &xhci->op_regs->command); + cmd &= mask; + xhci_writel(xhci, cmd, &xhci->op_regs->command); +} + +/* + * Force HC into halt state. + * + * Disable any IRQs and clear the run/stop bit. + * HC will complete any current and actively pipelined transactions, and + * should halt within 16 ms of the run/stop bit being cleared. + * Read HC Halted bit in the status register to see when the HC is finished. + */ +int xhci_halt(struct xhci_hcd *xhci) +{ + int ret; + xhci_dbg(xhci, "// Halt the HC\n"); + xhci_quiesce(xhci); + + ret = handshake(xhci, &xhci->op_regs->status, + STS_HALT, STS_HALT, XHCI_MAX_HALT_USEC); + if (!ret) + xhci->xhc_state |= XHCI_STATE_HALTED; + else + xhci_warn(xhci, "Host not halted after %u microseconds.\n", + XHCI_MAX_HALT_USEC); + return ret; +} + +/* + * Set the run bit and wait for the host to be running. + */ +static int xhci_start(struct xhci_hcd *xhci) +{ + u32 temp; + int ret; + + temp = xhci_readl(xhci, &xhci->op_regs->command); + temp |= (CMD_RUN); + xhci_dbg(xhci, "// Turn on HC, cmd = 0x%x.\n", + temp); + xhci_writel(xhci, temp, &xhci->op_regs->command); + + /* + * Wait for the HCHalted Status bit to be 0 to indicate the host is + * running. + */ + ret = handshake(xhci, &xhci->op_regs->status, + STS_HALT, 0, XHCI_MAX_HALT_USEC); + if (ret == -ETIMEDOUT) + xhci_err(xhci, "Host took too long to start, " + "waited %u microseconds.\n", + XHCI_MAX_HALT_USEC); + if (!ret) + xhci->xhc_state &= ~XHCI_STATE_HALTED; + return ret; +} + +/* + * Reset a halted HC. + * + * This resets pipelines, timers, counters, state machines, etc. + * Transactions will be terminated immediately, and operational registers + * will be set to their defaults. + */ +int xhci_reset(struct xhci_hcd *xhci) +{ + u32 command; + u32 state; + int ret, i; + + state = xhci_readl(xhci, &xhci->op_regs->status); + if ((state & STS_HALT) == 0) { + xhci_warn(xhci, "Host controller not halted, aborting reset.\n"); + return 0; + } + + xhci_dbg(xhci, "// Reset the HC\n"); + command = xhci_readl(xhci, &xhci->op_regs->command); + command |= CMD_RESET; + xhci_writel(xhci, command, &xhci->op_regs->command); + + ret = handshake(xhci, &xhci->op_regs->command, + /* For some reason we need more time */ + CMD_RESET, 0, 10 * 1000 * 1000); + if (ret) + return ret; + + xhci_dbg(xhci, "Wait for controller to be ready for doorbell rings\n"); + /* + * xHCI cannot write to any doorbells or operational registers other + * than status until the "Controller Not Ready" flag is cleared. + */ + ret = handshake(xhci, &xhci->op_regs->status, + STS_CNR, 0, 10 * 1000 * 1000); + + for (i = 0; i < 2; ++i) { + xhci->bus_state[i].port_c_suspend = 0; + xhci->bus_state[i].suspended_ports = 0; + xhci->bus_state[i].resuming_ports = 0; + } + + return ret; +} + +#ifdef CONFIG_PCI +static int xhci_free_msi(struct xhci_hcd *xhci) +{ + int i; + + if (!xhci->msix_entries) + return -EINVAL; + + for (i = 0; i < xhci->msix_count; i++) + if (xhci->msix_entries[i].vector) + free_irq(xhci->msix_entries[i].vector, + xhci_to_hcd(xhci)); + return 0; +} + +/* + * Set up MSI + */ +static int xhci_setup_msi(struct xhci_hcd *xhci) +{ + int ret; + struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); + + ret = pci_enable_msi(pdev); + if (ret) { + xhci_dbg(xhci, "failed to allocate MSI entry\n"); + return ret; + } + + ret = request_irq(pdev->irq, (irq_handler_t)xhci_msi_irq, + 0, "xhci_hcd", xhci_to_hcd(xhci)); + if (ret) { + xhci_dbg(xhci, "disable MSI interrupt\n"); + pci_disable_msi(pdev); + } + + return ret; +} + +/* + * Free IRQs + * free all IRQs request + */ +static void xhci_free_irq(struct xhci_hcd *xhci) +{ + struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); + int ret; + + /* return if using legacy interrupt */ + if (xhci_to_hcd(xhci)->irq > 0) + return; + + ret = xhci_free_msi(xhci); + if (!ret) + return; + if (pdev->irq > 0) + free_irq(pdev->irq, xhci_to_hcd(xhci)); + + return; +} + +/* + * Set up MSI-X + */ +static int xhci_setup_msix(struct xhci_hcd *xhci) +{ + int i, ret = 0; + struct usb_hcd *hcd = xhci_to_hcd(xhci); + struct pci_dev *pdev = to_pci_dev(hcd->self.controller); + + /* + * calculate number of msi-x vectors supported. + * - HCS_MAX_INTRS: the max number of interrupts the host can handle, + * with max number of interrupters based on the xhci HCSPARAMS1. + * - num_online_cpus: maximum msi-x vectors per CPUs core. + * Add additional 1 vector to ensure always available interrupt. + */ + xhci->msix_count = min(num_online_cpus() + 1, + HCS_MAX_INTRS(xhci->hcs_params1)); + + xhci->msix_entries = + kmalloc((sizeof(struct msix_entry))*xhci->msix_count, + GFP_KERNEL); + if (!xhci->msix_entries) { + xhci_err(xhci, "Failed to allocate MSI-X entries\n"); + return -ENOMEM; + } + + for (i = 0; i < xhci->msix_count; i++) { + xhci->msix_entries[i].entry = i; + xhci->msix_entries[i].vector = 0; + } + + ret = pci_enable_msix(pdev, xhci->msix_entries, xhci->msix_count); + if (ret) { + xhci_dbg(xhci, "Failed to enable MSI-X\n"); + goto free_entries; + } + + for (i = 0; i < xhci->msix_count; i++) { + ret = request_irq(xhci->msix_entries[i].vector, + (irq_handler_t)xhci_msi_irq, + 0, "xhci_hcd", xhci_to_hcd(xhci)); + if (ret) + goto disable_msix; + } + + hcd->msix_enabled = 1; + return ret; + +disable_msix: + xhci_dbg(xhci, "disable MSI-X interrupt\n"); + xhci_free_irq(xhci); + pci_disable_msix(pdev); +free_entries: + kfree(xhci->msix_entries); + xhci->msix_entries = NULL; + return ret; +} + +/* Free any IRQs and disable MSI-X */ +static void xhci_cleanup_msix(struct xhci_hcd *xhci) +{ + struct usb_hcd *hcd = xhci_to_hcd(xhci); + struct pci_dev *pdev = to_pci_dev(hcd->self.controller); + + xhci_free_irq(xhci); + + if (xhci->msix_entries) { + pci_disable_msix(pdev); + kfree(xhci->msix_entries); + xhci->msix_entries = NULL; + } else { + pci_disable_msi(pdev); + } + + hcd->msix_enabled = 0; + return; +} + +static void xhci_msix_sync_irqs(struct xhci_hcd *xhci) +{ + int i; + + if (xhci->msix_entries) { + for (i = 0; i < xhci->msix_count; i++) + synchronize_irq(xhci->msix_entries[i].vector); + } +} + +static int xhci_try_enable_msi(struct usb_hcd *hcd) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); + int ret; + + /* + * Some Fresco Logic host controllers advertise MSI, but fail to + * generate interrupts. Don't even try to enable MSI. + */ + if (xhci->quirks & XHCI_BROKEN_MSI) + return 0; + + /* unregister the legacy interrupt */ + if (hcd->irq) + free_irq(hcd->irq, hcd); + hcd->irq = 0; + + ret = xhci_setup_msix(xhci); + if (ret) + /* fall back to msi*/ + ret = xhci_setup_msi(xhci); + + if (!ret) + /* hcd->irq is 0, we have MSI */ + return 0; + + if (!pdev->irq) { + xhci_err(xhci, "No msi-x/msi found and no IRQ in BIOS\n"); + return -EINVAL; + } + + /* fall back to legacy interrupt*/ + ret = request_irq(pdev->irq, &usb_hcd_irq, IRQF_SHARED, + hcd->irq_descr, hcd); + if (ret) { + xhci_err(xhci, "request interrupt %d failed\n", + pdev->irq); + return ret; + } + hcd->irq = pdev->irq; + return 0; +} + +#else + +static int xhci_try_enable_msi(struct usb_hcd *hcd) +{ + return 0; +} + +static void xhci_cleanup_msix(struct xhci_hcd *xhci) +{ +} + +static void xhci_msix_sync_irqs(struct xhci_hcd *xhci) +{ +} + +#endif + +/* + * Initialize memory for HCD and xHC (one-time init). + * + * Program the PAGESIZE register, initialize the device context array, create + * device contexts (?), set up a command ring segment (or two?), create event + * ring (one for now). + */ +int xhci_init(struct usb_hcd *hcd) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + int retval = 0; + + xhci_dbg(xhci, "xhci_init\n"); + spin_lock_init(&xhci->lock); + if (xhci->hci_version == 0x95 && link_quirk) { + xhci_dbg(xhci, "QUIRK: Not clearing Link TRB chain bits.\n"); + xhci->quirks |= XHCI_LINK_TRB_QUIRK; + } else { + xhci_dbg(xhci, "xHCI doesn't need link TRB QUIRK\n"); + } + retval = xhci_mem_init(xhci, GFP_KERNEL); + xhci_dbg(xhci, "Finished xhci_init\n"); + + return retval; +} + +/*-------------------------------------------------------------------------*/ + + +#ifdef CONFIG_USB_XHCI_HCD_DEBUGGING +static void xhci_event_ring_work(unsigned long arg) +{ + unsigned long flags; + int temp; + u64 temp_64; + struct xhci_hcd *xhci = (struct xhci_hcd *) arg; + int i, j; + + xhci_dbg(xhci, "Poll event ring: %lu\n", jiffies); + + spin_lock_irqsave(&xhci->lock, flags); + temp = xhci_readl(xhci, &xhci->op_regs->status); + xhci_dbg(xhci, "op reg status = 0x%x\n", temp); + if (temp == 0xffffffff || (xhci->xhc_state & XHCI_STATE_DYING) || + (xhci->xhc_state & XHCI_STATE_HALTED)) { + xhci_dbg(xhci, "HW died, polling stopped.\n"); + spin_unlock_irqrestore(&xhci->lock, flags); + return; + } + + temp = xhci_readl(xhci, &xhci->ir_set->irq_pending); + xhci_dbg(xhci, "ir_set 0 pending = 0x%x\n", temp); + xhci_dbg(xhci, "HC error bitmask = 0x%x\n", xhci->error_bitmask); + xhci->error_bitmask = 0; + xhci_dbg(xhci, "Event ring:\n"); + xhci_debug_segment(xhci, xhci->event_ring->deq_seg); + xhci_dbg_ring_ptrs(xhci, xhci->event_ring); + temp_64 = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue); + temp_64 &= ~ERST_PTR_MASK; + xhci_dbg(xhci, "ERST deq = 64'h%0lx\n", (long unsigned int) temp_64); + xhci_dbg(xhci, "Command ring:\n"); + xhci_debug_segment(xhci, xhci->cmd_ring->deq_seg); + xhci_dbg_ring_ptrs(xhci, xhci->cmd_ring); + xhci_dbg_cmd_ptrs(xhci); + for (i = 0; i < MAX_HC_SLOTS; ++i) { + if (!xhci->devs[i]) + continue; + for (j = 0; j < 31; ++j) { + xhci_dbg_ep_rings(xhci, i, j, &xhci->devs[i]->eps[j]); + } + } + spin_unlock_irqrestore(&xhci->lock, flags); + + if (!xhci->zombie) + mod_timer(&xhci->event_ring_timer, jiffies + POLL_TIMEOUT * HZ); + else + xhci_dbg(xhci, "Quit polling the event ring.\n"); +} +#endif + +static int xhci_run_finished(struct xhci_hcd *xhci) +{ + if (xhci_start(xhci)) { + xhci_halt(xhci); + return -ENODEV; + } + xhci->shared_hcd->state = HC_STATE_RUNNING; + + if (xhci->quirks & XHCI_NEC_HOST) + xhci_ring_cmd_db(xhci); + + xhci_dbg(xhci, "Finished xhci_run for USB3 roothub\n"); + return 0; +} + +/* + * Start the HC after it was halted. + * + * This function is called by the USB core when the HC driver is added. + * Its opposite is xhci_stop(). + * + * xhci_init() must be called once before this function can be called. + * Reset the HC, enable device slot contexts, program DCBAAP, and + * set command ring pointer and event ring pointer. + * + * Setup MSI-X vectors and enable interrupts. + */ +int xhci_run(struct usb_hcd *hcd) +{ + u32 temp; + u64 temp_64; + int ret; + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + + /* Start the xHCI host controller running only after the USB 2.0 roothub + * is setup. + */ + + hcd->uses_new_polling = 1; + if (!usb_hcd_is_primary_hcd(hcd)) + return xhci_run_finished(xhci); + + xhci_dbg(xhci, "xhci_run\n"); + + ret = xhci_try_enable_msi(hcd); + if (ret) + return ret; + +#ifdef CONFIG_USB_XHCI_HCD_DEBUGGING + init_timer(&xhci->event_ring_timer); + xhci->event_ring_timer.data = (unsigned long) xhci; + xhci->event_ring_timer.function = xhci_event_ring_work; + /* Poll the event ring */ + xhci->event_ring_timer.expires = jiffies + POLL_TIMEOUT * HZ; + xhci->zombie = 0; + xhci_dbg(xhci, "Setting event ring polling timer\n"); + add_timer(&xhci->event_ring_timer); +#endif + + xhci_dbg(xhci, "Command ring memory map follows:\n"); + xhci_debug_ring(xhci, xhci->cmd_ring); + xhci_dbg_ring_ptrs(xhci, xhci->cmd_ring); + xhci_dbg_cmd_ptrs(xhci); + + xhci_dbg(xhci, "ERST memory map follows:\n"); + xhci_dbg_erst(xhci, &xhci->erst); + xhci_dbg(xhci, "Event ring:\n"); + xhci_debug_ring(xhci, xhci->event_ring); + xhci_dbg_ring_ptrs(xhci, xhci->event_ring); + temp_64 = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue); + temp_64 &= ~ERST_PTR_MASK; + xhci_dbg(xhci, "ERST deq = 64'h%0lx\n", (long unsigned int) temp_64); + + xhci_dbg(xhci, "// Set the interrupt modulation register\n"); + temp = xhci_readl(xhci, &xhci->ir_set->irq_control); + temp &= ~ER_IRQ_INTERVAL_MASK; + temp |= (u32) 160; + xhci_writel(xhci, temp, &xhci->ir_set->irq_control); + + /* Set the HCD state before we enable the irqs */ + temp = xhci_readl(xhci, &xhci->op_regs->command); + temp |= (CMD_EIE); + xhci_dbg(xhci, "// Enable interrupts, cmd = 0x%x.\n", + temp); + xhci_writel(xhci, temp, &xhci->op_regs->command); + + temp = xhci_readl(xhci, &xhci->ir_set->irq_pending); + xhci_dbg(xhci, "// Enabling event ring interrupter %p by writing 0x%x to irq_pending\n", + xhci->ir_set, (unsigned int) ER_IRQ_ENABLE(temp)); + xhci_writel(xhci, ER_IRQ_ENABLE(temp), + &xhci->ir_set->irq_pending); + xhci_print_ir_set(xhci, 0); + + if (xhci->quirks & XHCI_NEC_HOST) + xhci_queue_vendor_command(xhci, 0, 0, 0, + TRB_TYPE(TRB_NEC_GET_FW)); + + xhci_dbg(xhci, "Finished xhci_run for USB2 roothub\n"); + return 0; +} + +static void xhci_only_stop_hcd(struct usb_hcd *hcd) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + + spin_lock_irq(&xhci->lock); + xhci_halt(xhci); + + /* The shared_hcd is going to be deallocated shortly (the USB core only + * calls this function when allocation fails in usb_add_hcd(), or + * usb_remove_hcd() is called). So we need to unset xHCI's pointer. + */ + xhci->shared_hcd = NULL; + spin_unlock_irq(&xhci->lock); +} + +/* + * Stop xHCI driver. + * + * This function is called by the USB core when the HC driver is removed. + * Its opposite is xhci_run(). + * + * Disable device contexts, disable IRQs, and quiesce the HC. + * Reset the HC, finish any completed transactions, and cleanup memory. + */ +void xhci_stop(struct usb_hcd *hcd) +{ + u32 temp; + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + + if (!usb_hcd_is_primary_hcd(hcd)) { + xhci_only_stop_hcd(xhci->shared_hcd); + return; + } + + spin_lock_irq(&xhci->lock); + /* Make sure the xHC is halted for a USB3 roothub + * (xhci_stop() could be called as part of failed init). + */ + xhci_halt(xhci); + xhci_reset(xhci); + spin_unlock_irq(&xhci->lock); + + xhci_cleanup_msix(xhci); + +#ifdef CONFIG_USB_XHCI_HCD_DEBUGGING + /* Tell the event ring poll function not to reschedule */ + xhci->zombie = 1; + del_timer_sync(&xhci->event_ring_timer); +#endif + + if (xhci->quirks & XHCI_AMD_PLL_FIX) + usb_amd_dev_put(); + + xhci_dbg(xhci, "// Disabling event ring interrupts\n"); + temp = xhci_readl(xhci, &xhci->op_regs->status); + xhci_writel(xhci, temp & ~STS_EINT, &xhci->op_regs->status); + temp = xhci_readl(xhci, &xhci->ir_set->irq_pending); + xhci_writel(xhci, ER_IRQ_DISABLE(temp), + &xhci->ir_set->irq_pending); + xhci_print_ir_set(xhci, 0); + + xhci_dbg(xhci, "cleaning up memory\n"); + xhci_mem_cleanup(xhci); + xhci_dbg(xhci, "xhci_stop completed - status = %x\n", + xhci_readl(xhci, &xhci->op_regs->status)); +} + +/* + * Shutdown HC (not bus-specific) + * + * This is called when the machine is rebooting or halting. We assume that the + * machine will be powered off, and the HC's internal state will be reset. + * Don't bother to free memory. + * + * This will only ever be called with the main usb_hcd (the USB3 roothub). + */ +void xhci_shutdown(struct usb_hcd *hcd) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + + spin_lock_irq(&xhci->lock); + xhci_halt(xhci); + spin_unlock_irq(&xhci->lock); + + xhci_cleanup_msix(xhci); + + xhci_dbg(xhci, "xhci_shutdown completed - status = %x\n", + xhci_readl(xhci, &xhci->op_regs->status)); +} + +#ifdef CONFIG_PM +static void xhci_save_registers(struct xhci_hcd *xhci) +{ + xhci->s3.command = xhci_readl(xhci, &xhci->op_regs->command); + xhci->s3.dev_nt = xhci_readl(xhci, &xhci->op_regs->dev_notification); + xhci->s3.dcbaa_ptr = xhci_read_64(xhci, &xhci->op_regs->dcbaa_ptr); + xhci->s3.config_reg = xhci_readl(xhci, &xhci->op_regs->config_reg); + xhci->s3.erst_size = xhci_readl(xhci, &xhci->ir_set->erst_size); + xhci->s3.erst_base = xhci_read_64(xhci, &xhci->ir_set->erst_base); + xhci->s3.erst_dequeue = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue); + xhci->s3.irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending); + xhci->s3.irq_control = xhci_readl(xhci, &xhci->ir_set->irq_control); +} + +static void xhci_restore_registers(struct xhci_hcd *xhci) +{ + xhci_writel(xhci, xhci->s3.command, &xhci->op_regs->command); + xhci_writel(xhci, xhci->s3.dev_nt, &xhci->op_regs->dev_notification); + xhci_write_64(xhci, xhci->s3.dcbaa_ptr, &xhci->op_regs->dcbaa_ptr); + xhci_writel(xhci, xhci->s3.config_reg, &xhci->op_regs->config_reg); + xhci_writel(xhci, xhci->s3.erst_size, &xhci->ir_set->erst_size); + xhci_write_64(xhci, xhci->s3.erst_base, &xhci->ir_set->erst_base); + xhci_write_64(xhci, xhci->s3.erst_dequeue, &xhci->ir_set->erst_dequeue); + xhci_writel(xhci, xhci->s3.irq_pending, &xhci->ir_set->irq_pending); + xhci_writel(xhci, xhci->s3.irq_control, &xhci->ir_set->irq_control); +} + +static void xhci_set_cmd_ring_deq(struct xhci_hcd *xhci) +{ + u64 val_64; + + /* step 2: initialize command ring buffer */ + val_64 = xhci_read_64(xhci, &xhci->op_regs->cmd_ring); + val_64 = (val_64 & (u64) CMD_RING_RSVD_BITS) | + (xhci_trb_virt_to_dma(xhci->cmd_ring->deq_seg, + xhci->cmd_ring->dequeue) & + (u64) ~CMD_RING_RSVD_BITS) | + xhci->cmd_ring->cycle_state; + xhci_dbg(xhci, "// Setting command ring address to 0x%llx\n", + (long unsigned long) val_64); + xhci_write_64(xhci, val_64, &xhci->op_regs->cmd_ring); +} + +/* + * The whole command ring must be cleared to zero when we suspend the host. + * + * The host doesn't save the command ring pointer in the suspend well, so we + * need to re-program it on resume. Unfortunately, the pointer must be 64-byte + * aligned, because of the reserved bits in the command ring dequeue pointer + * register. Therefore, we can't just set the dequeue pointer back in the + * middle of the ring (TRBs are 16-byte aligned). + */ +static void xhci_clear_command_ring(struct xhci_hcd *xhci) +{ + struct xhci_ring *ring; + struct xhci_segment *seg; + + ring = xhci->cmd_ring; + seg = ring->deq_seg; + do { + memset(seg->trbs, 0, + sizeof(union xhci_trb) * (TRBS_PER_SEGMENT - 1)); + seg->trbs[TRBS_PER_SEGMENT - 1].link.control &= + cpu_to_le32(~TRB_CYCLE); + seg = seg->next; + } while (seg != ring->deq_seg); + + /* Reset the software enqueue and dequeue pointers */ + ring->deq_seg = ring->first_seg; + ring->dequeue = ring->first_seg->trbs; + ring->enq_seg = ring->deq_seg; + ring->enqueue = ring->dequeue; + + ring->num_trbs_free = ring->num_segs * (TRBS_PER_SEGMENT - 1) - 1; + /* + * Ring is now zeroed, so the HW should look for change of ownership + * when the cycle bit is set to 1. + */ + ring->cycle_state = 1; + + /* + * Reset the hardware dequeue pointer. + * Yes, this will need to be re-written after resume, but we're paranoid + * and want to make sure the hardware doesn't access bogus memory + * because, say, the BIOS or an SMI started the host without changing + * the command ring pointers. + */ + xhci_set_cmd_ring_deq(xhci); +} + +/* + * Stop HC (not bus-specific) + * + * This is called when the machine transition into S3/S4 mode. + * + */ +int xhci_suspend(struct xhci_hcd *xhci) +{ + int rc = 0; + struct usb_hcd *hcd = xhci_to_hcd(xhci); + u32 command; + + spin_lock_irq(&xhci->lock); + clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); + clear_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags); + /* step 1: stop endpoint */ + /* skipped assuming that port suspend has done */ + + /* step 2: clear Run/Stop bit */ + command = xhci_readl(xhci, &xhci->op_regs->command); + command &= ~CMD_RUN; + xhci_writel(xhci, command, &xhci->op_regs->command); + if (handshake(xhci, &xhci->op_regs->status, + STS_HALT, STS_HALT, 100*100)) { + xhci_warn(xhci, "WARN: xHC CMD_RUN timeout\n"); + spin_unlock_irq(&xhci->lock); + return -ETIMEDOUT; + } + xhci_clear_command_ring(xhci); + + /* step 3: save registers */ + xhci_save_registers(xhci); + + /* step 4: set CSS flag */ + command = xhci_readl(xhci, &xhci->op_regs->command); + command |= CMD_CSS; + xhci_writel(xhci, command, &xhci->op_regs->command); + if (handshake(xhci, &xhci->op_regs->status, STS_SAVE, 0, 10*100)) { + xhci_warn(xhci, "WARN: xHC CMD_CSS timeout\n"); + spin_unlock_irq(&xhci->lock); + return -ETIMEDOUT; + } + spin_unlock_irq(&xhci->lock); + + /* step 5: remove core well power */ + /* synchronize irq when using MSI-X */ + xhci_msix_sync_irqs(xhci); + + return rc; +} + +/* + * start xHC (not bus-specific) + * + * This is called when the machine transition from S3/S4 mode. + * + */ +int xhci_resume(struct xhci_hcd *xhci, bool hibernated) +{ + u32 command, temp = 0; + struct usb_hcd *hcd = xhci_to_hcd(xhci); + struct usb_hcd *secondary_hcd; + int retval = 0; + + /* Wait a bit if either of the roothubs need to settle from the + * transition into bus suspend. + */ + if (time_before(jiffies, xhci->bus_state[0].next_statechange) || + time_before(jiffies, + xhci->bus_state[1].next_statechange)) + msleep(100); + + set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); + set_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags); + + spin_lock_irq(&xhci->lock); + if (xhci->quirks & XHCI_RESET_ON_RESUME) + hibernated = true; + + if (!hibernated) { + /* step 1: restore register */ + xhci_restore_registers(xhci); + /* step 2: initialize command ring buffer */ + xhci_set_cmd_ring_deq(xhci); + /* step 3: restore state and start state*/ + /* step 3: set CRS flag */ + command = xhci_readl(xhci, &xhci->op_regs->command); + command |= CMD_CRS; + xhci_writel(xhci, command, &xhci->op_regs->command); + if (handshake(xhci, &xhci->op_regs->status, + STS_RESTORE, 0, 10*100)) { + xhci_dbg(xhci, "WARN: xHC CMD_CSS timeout\n"); + spin_unlock_irq(&xhci->lock); + return -ETIMEDOUT; + } + temp = xhci_readl(xhci, &xhci->op_regs->status); + } + + /* If restore operation fails, re-initialize the HC during resume */ + if ((temp & STS_SRE) || hibernated) { + /* Let the USB core know _both_ roothubs lost power. */ + usb_root_hub_lost_power(xhci->main_hcd->self.root_hub); + usb_root_hub_lost_power(xhci->shared_hcd->self.root_hub); + + xhci_dbg(xhci, "Stop HCD\n"); + xhci_halt(xhci); + xhci_reset(xhci); + spin_unlock_irq(&xhci->lock); + xhci_cleanup_msix(xhci); + +#ifdef CONFIG_USB_XHCI_HCD_DEBUGGING + /* Tell the event ring poll function not to reschedule */ + xhci->zombie = 1; + del_timer_sync(&xhci->event_ring_timer); +#endif + + xhci_dbg(xhci, "// Disabling event ring interrupts\n"); + temp = xhci_readl(xhci, &xhci->op_regs->status); + xhci_writel(xhci, temp & ~STS_EINT, &xhci->op_regs->status); + temp = xhci_readl(xhci, &xhci->ir_set->irq_pending); + xhci_writel(xhci, ER_IRQ_DISABLE(temp), + &xhci->ir_set->irq_pending); + xhci_print_ir_set(xhci, 0); + + xhci_dbg(xhci, "cleaning up memory\n"); + xhci_mem_cleanup(xhci); + xhci_dbg(xhci, "xhci_stop completed - status = %x\n", + xhci_readl(xhci, &xhci->op_regs->status)); + + /* USB core calls the PCI reinit and start functions twice: + * first with the primary HCD, and then with the secondary HCD. + * If we don't do the same, the host will never be started. + */ + if (!usb_hcd_is_primary_hcd(hcd)) + secondary_hcd = hcd; + else + secondary_hcd = xhci->shared_hcd; + + xhci_dbg(xhci, "Initialize the xhci_hcd\n"); + retval = xhci_init(hcd->primary_hcd); + if (retval) + return retval; + xhci_dbg(xhci, "Start the primary HCD\n"); + retval = xhci_run(hcd->primary_hcd); + if (!retval) { + xhci_dbg(xhci, "Start the secondary HCD\n"); + retval = xhci_run(secondary_hcd); + } + hcd->state = HC_STATE_SUSPENDED; + xhci->shared_hcd->state = HC_STATE_SUSPENDED; + goto done; + } + + /* step 4: set Run/Stop bit */ + command = xhci_readl(xhci, &xhci->op_regs->command); + command |= CMD_RUN; + xhci_writel(xhci, command, &xhci->op_regs->command); + handshake(xhci, &xhci->op_regs->status, STS_HALT, + 0, 250 * 1000); + + /* step 5: walk topology and initialize portsc, + * portpmsc and portli + */ + /* this is done in bus_resume */ + + /* step 6: restart each of the previously + * Running endpoints by ringing their doorbells + */ + + spin_unlock_irq(&xhci->lock); + + done: + if (retval == 0) { + usb_hcd_resume_root_hub(hcd); + usb_hcd_resume_root_hub(xhci->shared_hcd); + } + return retval; +} +#endif /* CONFIG_PM */ + +/*-------------------------------------------------------------------------*/ + +/** + * xhci_get_endpoint_index - Used for passing endpoint bitmasks between the core and + * HCDs. Find the index for an endpoint given its descriptor. Use the return + * value to right shift 1 for the bitmask. + * + * Index = (epnum * 2) + direction - 1, + * where direction = 0 for OUT, 1 for IN. + * For control endpoints, the IN index is used (OUT index is unused), so + * index = (epnum * 2) + direction - 1 = (epnum * 2) + 1 - 1 = (epnum * 2) + */ +unsigned int xhci_get_endpoint_index(struct usb_endpoint_descriptor *desc) +{ + unsigned int index; + if (usb_endpoint_xfer_control(desc)) + index = (unsigned int) (usb_endpoint_num(desc)*2); + else + index = (unsigned int) (usb_endpoint_num(desc)*2) + + (usb_endpoint_dir_in(desc) ? 1 : 0) - 1; + return index; +} + +/* Find the flag for this endpoint (for use in the control context). Use the + * endpoint index to create a bitmask. The slot context is bit 0, endpoint 0 is + * bit 1, etc. + */ +unsigned int xhci_get_endpoint_flag(struct usb_endpoint_descriptor *desc) +{ + return 1 << (xhci_get_endpoint_index(desc) + 1); +} + +/* Find the flag for this endpoint (for use in the control context). Use the + * endpoint index to create a bitmask. The slot context is bit 0, endpoint 0 is + * bit 1, etc. + */ +unsigned int xhci_get_endpoint_flag_from_index(unsigned int ep_index) +{ + return 1 << (ep_index + 1); +} + +/* Compute the last valid endpoint context index. Basically, this is the + * endpoint index plus one. For slot contexts with more than valid endpoint, + * we find the most significant bit set in the added contexts flags. + * e.g. ep 1 IN (with epnum 0x81) => added_ctxs = 0b1000 + * fls(0b1000) = 4, but the endpoint context index is 3, so subtract one. + */ +unsigned int xhci_last_valid_endpoint(u32 added_ctxs) +{ + return fls(added_ctxs) - 1; +} + +/* Returns 1 if the arguments are OK; + * returns 0 this is a root hub; returns -EINVAL for NULL pointers. + */ +static int xhci_check_args(struct usb_hcd *hcd, struct usb_device *udev, + struct usb_host_endpoint *ep, int check_ep, bool check_virt_dev, + const char *func) { + struct xhci_hcd *xhci; + struct xhci_virt_device *virt_dev; + + if (!hcd || (check_ep && !ep) || !udev) { + printk(KERN_DEBUG "xHCI %s called with invalid args\n", + func); + return -EINVAL; + } + if (!udev->parent) { + printk(KERN_DEBUG "xHCI %s called for root hub\n", + func); + return 0; + } + + xhci = hcd_to_xhci(hcd); + if (xhci->xhc_state & XHCI_STATE_HALTED) + return -ENODEV; + + if (check_virt_dev) { + if (!udev->slot_id || !xhci->devs[udev->slot_id]) { + printk(KERN_DEBUG "xHCI %s called with unaddressed " + "device\n", func); + return -EINVAL; + } + + virt_dev = xhci->devs[udev->slot_id]; + if (virt_dev->udev != udev) { + printk(KERN_DEBUG "xHCI %s called with udev and " + "virt_dev does not match\n", func); + return -EINVAL; + } + } + + return 1; +} + +static int xhci_configure_endpoint(struct xhci_hcd *xhci, + struct usb_device *udev, struct xhci_command *command, + bool ctx_change, bool must_succeed); + +/* + * Full speed devices may have a max packet size greater than 8 bytes, but the + * USB core doesn't know that until it reads the first 8 bytes of the + * descriptor. If the usb_device's max packet size changes after that point, + * we need to issue an evaluate context command and wait on it. + */ +static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, + unsigned int ep_index, struct urb *urb) +{ + struct xhci_container_ctx *in_ctx; + struct xhci_container_ctx *out_ctx; + struct xhci_input_control_ctx *ctrl_ctx; + struct xhci_ep_ctx *ep_ctx; + int max_packet_size; + int hw_max_packet_size; + int ret = 0; + + out_ctx = xhci->devs[slot_id]->out_ctx; + ep_ctx = xhci_get_ep_ctx(xhci, out_ctx, ep_index); + hw_max_packet_size = MAX_PACKET_DECODED(le32_to_cpu(ep_ctx->ep_info2)); + max_packet_size = usb_endpoint_maxp(&urb->dev->ep0.desc); + if (hw_max_packet_size != max_packet_size) { + xhci_dbg(xhci, "Max Packet Size for ep 0 changed.\n"); + xhci_dbg(xhci, "Max packet size in usb_device = %d\n", + max_packet_size); + xhci_dbg(xhci, "Max packet size in xHCI HW = %d\n", + hw_max_packet_size); + xhci_dbg(xhci, "Issuing evaluate context command.\n"); + + /* Set up the modified control endpoint 0 */ + xhci_endpoint_copy(xhci, xhci->devs[slot_id]->in_ctx, + xhci->devs[slot_id]->out_ctx, ep_index); + in_ctx = xhci->devs[slot_id]->in_ctx; + ep_ctx = xhci_get_ep_ctx(xhci, in_ctx, ep_index); + ep_ctx->ep_info2 &= cpu_to_le32(~MAX_PACKET_MASK); + ep_ctx->ep_info2 |= cpu_to_le32(MAX_PACKET(max_packet_size)); + + /* Set up the input context flags for the command */ + /* FIXME: This won't work if a non-default control endpoint + * changes max packet sizes. + */ + ctrl_ctx = xhci_get_input_control_ctx(xhci, in_ctx); + ctrl_ctx->add_flags = cpu_to_le32(EP0_FLAG); + ctrl_ctx->drop_flags = 0; + + xhci_dbg(xhci, "Slot %d input context\n", slot_id); + xhci_dbg_ctx(xhci, in_ctx, ep_index); + xhci_dbg(xhci, "Slot %d output context\n", slot_id); + xhci_dbg_ctx(xhci, out_ctx, ep_index); + + ret = xhci_configure_endpoint(xhci, urb->dev, NULL, + true, false); + + /* Clean up the input context for later use by bandwidth + * functions. + */ + ctrl_ctx->add_flags = cpu_to_le32(SLOT_FLAG); + } + return ret; +} + +/* + * non-error returns are a promise to giveback() the urb later + * we drop ownership so next owner (or urb unlink) can get it + */ +int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + struct xhci_td *buffer; + unsigned long flags; + int ret = 0; + unsigned int slot_id, ep_index; + struct urb_priv *urb_priv; + int size, i; + + if (!urb || xhci_check_args(hcd, urb->dev, urb->ep, + true, true, __func__) <= 0) + return -EINVAL; + + slot_id = urb->dev->slot_id; + ep_index = xhci_get_endpoint_index(&urb->ep->desc); + + if (!HCD_HW_ACCESSIBLE(hcd)) { + if (!in_interrupt()) + xhci_dbg(xhci, "urb submitted during PCI suspend\n"); + ret = -ESHUTDOWN; + goto exit; + } + + if (usb_endpoint_xfer_isoc(&urb->ep->desc)) + size = urb->number_of_packets; + else + size = 1; + + urb_priv = kzalloc(sizeof(struct urb_priv) + + size * sizeof(struct xhci_td *), mem_flags); + if (!urb_priv) + return -ENOMEM; + + buffer = kzalloc(size * sizeof(struct xhci_td), mem_flags); + if (!buffer) { + kfree(urb_priv); + return -ENOMEM; + } + + for (i = 0; i < size; i++) { + urb_priv->td[i] = buffer; + buffer++; + } + + urb_priv->length = size; + urb_priv->td_cnt = 0; + urb->hcpriv = urb_priv; + + if (usb_endpoint_xfer_control(&urb->ep->desc)) { + /* Check to see if the max packet size for the default control + * endpoint changed during FS device enumeration + */ + if (urb->dev->speed == USB_SPEED_FULL) { + ret = xhci_check_maxpacket(xhci, slot_id, + ep_index, urb); + if (ret < 0) { + xhci_urb_free_priv(xhci, urb_priv); + urb->hcpriv = NULL; + return ret; + } + } + + /* We have a spinlock and interrupts disabled, so we must pass + * atomic context to this function, which may allocate memory. + */ + spin_lock_irqsave(&xhci->lock, flags); + if (xhci->xhc_state & XHCI_STATE_DYING) + goto dying; + ret = xhci_queue_ctrl_tx(xhci, GFP_ATOMIC, urb, + slot_id, ep_index); + if (ret) + goto free_priv; + spin_unlock_irqrestore(&xhci->lock, flags); + } else if (usb_endpoint_xfer_bulk(&urb->ep->desc)) { + spin_lock_irqsave(&xhci->lock, flags); + if (xhci->xhc_state & XHCI_STATE_DYING) + goto dying; + if (xhci->devs[slot_id]->eps[ep_index].ep_state & + EP_GETTING_STREAMS) { + xhci_warn(xhci, "WARN: Can't enqueue URB while bulk ep " + "is transitioning to using streams.\n"); + ret = -EINVAL; + } else if (xhci->devs[slot_id]->eps[ep_index].ep_state & + EP_GETTING_NO_STREAMS) { + xhci_warn(xhci, "WARN: Can't enqueue URB while bulk ep " + "is transitioning to " + "not having streams.\n"); + ret = -EINVAL; + } else { + ret = xhci_queue_bulk_tx(xhci, GFP_ATOMIC, urb, + slot_id, ep_index); + } + if (ret) + goto free_priv; + spin_unlock_irqrestore(&xhci->lock, flags); + } else if (usb_endpoint_xfer_int(&urb->ep->desc)) { + spin_lock_irqsave(&xhci->lock, flags); + if (xhci->xhc_state & XHCI_STATE_DYING) + goto dying; + ret = xhci_queue_intr_tx(xhci, GFP_ATOMIC, urb, + slot_id, ep_index); + if (ret) + goto free_priv; + spin_unlock_irqrestore(&xhci->lock, flags); + } else { + spin_lock_irqsave(&xhci->lock, flags); + if (xhci->xhc_state & XHCI_STATE_DYING) + goto dying; + ret = xhci_queue_isoc_tx_prepare(xhci, GFP_ATOMIC, urb, + slot_id, ep_index); + if (ret) + goto free_priv; + spin_unlock_irqrestore(&xhci->lock, flags); + } +exit: + return ret; +dying: + xhci_dbg(xhci, "Ep 0x%x: URB %p submitted for " + "non-responsive xHCI host.\n", + urb->ep->desc.bEndpointAddress, urb); + ret = -ESHUTDOWN; +free_priv: + xhci_urb_free_priv(xhci, urb_priv); + urb->hcpriv = NULL; + spin_unlock_irqrestore(&xhci->lock, flags); + return ret; +} + +/* Get the right ring for the given URB. + * If the endpoint supports streams, boundary check the URB's stream ID. + * If the endpoint doesn't support streams, return the singular endpoint ring. + */ +static struct xhci_ring *xhci_urb_to_transfer_ring(struct xhci_hcd *xhci, + struct urb *urb) +{ + unsigned int slot_id; + unsigned int ep_index; + unsigned int stream_id; + struct xhci_virt_ep *ep; + + slot_id = urb->dev->slot_id; + ep_index = xhci_get_endpoint_index(&urb->ep->desc); + stream_id = urb->stream_id; + ep = &xhci->devs[slot_id]->eps[ep_index]; + /* Common case: no streams */ + if (!(ep->ep_state & EP_HAS_STREAMS)) + return ep->ring; + + if (stream_id == 0) { + xhci_warn(xhci, + "WARN: Slot ID %u, ep index %u has streams, " + "but URB has no stream ID.\n", + slot_id, ep_index); + return NULL; + } + + if (stream_id < ep->stream_info->num_streams) + return ep->stream_info->stream_rings[stream_id]; + + xhci_warn(xhci, + "WARN: Slot ID %u, ep index %u has " + "stream IDs 1 to %u allocated, " + "but stream ID %u is requested.\n", + slot_id, ep_index, + ep->stream_info->num_streams - 1, + stream_id); + return NULL; +} + +/* + * Remove the URB's TD from the endpoint ring. This may cause the HC to stop + * USB transfers, potentially stopping in the middle of a TRB buffer. The HC + * should pick up where it left off in the TD, unless a Set Transfer Ring + * Dequeue Pointer is issued. + * + * The TRBs that make up the buffers for the canceled URB will be "removed" from + * the ring. Since the ring is a contiguous structure, they can't be physically + * removed. Instead, there are two options: + * + * 1) If the HC is in the middle of processing the URB to be canceled, we + * simply move the ring's dequeue pointer past those TRBs using the Set + * Transfer Ring Dequeue Pointer command. This will be the common case, + * when drivers timeout on the last submitted URB and attempt to cancel. + * + * 2) If the HC is in the middle of a different TD, we turn the TRBs into a + * series of 1-TRB transfer no-op TDs. (No-ops shouldn't be chained.) The + * HC will need to invalidate the any TRBs it has cached after the stop + * endpoint command, as noted in the xHCI 0.95 errata. + * + * 3) The TD may have completed by the time the Stop Endpoint Command + * completes, so software needs to handle that case too. + * + * This function should protect against the TD enqueueing code ringing the + * doorbell while this code is waiting for a Stop Endpoint command to complete. + * It also needs to account for multiple cancellations on happening at the same + * time for the same endpoint. + * + * Note that this function can be called in any context, or so says + * usb_hcd_unlink_urb() + */ +int xhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status) +{ + unsigned long flags; + int ret, i; + u32 temp; + struct xhci_hcd *xhci; + struct urb_priv *urb_priv; + struct xhci_td *td; + unsigned int ep_index; + struct xhci_ring *ep_ring; + struct xhci_virt_ep *ep; + + xhci = hcd_to_xhci(hcd); + spin_lock_irqsave(&xhci->lock, flags); + /* Make sure the URB hasn't completed or been unlinked already */ + ret = usb_hcd_check_unlink_urb(hcd, urb, status); + if (ret || !urb->hcpriv) + goto done; + temp = xhci_readl(xhci, &xhci->op_regs->status); + if (temp == 0xffffffff || (xhci->xhc_state & XHCI_STATE_HALTED)) { + xhci_dbg(xhci, "HW died, freeing TD.\n"); + urb_priv = urb->hcpriv; + for (i = urb_priv->td_cnt; i < urb_priv->length; i++) { + td = urb_priv->td[i]; + if (!list_empty(&td->td_list)) + list_del_init(&td->td_list); + if (!list_empty(&td->cancelled_td_list)) + list_del_init(&td->cancelled_td_list); + } + + usb_hcd_unlink_urb_from_ep(hcd, urb); + spin_unlock_irqrestore(&xhci->lock, flags); + usb_hcd_giveback_urb(hcd, urb, -ESHUTDOWN); + xhci_urb_free_priv(xhci, urb_priv); + return ret; + } + if ((xhci->xhc_state & XHCI_STATE_DYING) || + (xhci->xhc_state & XHCI_STATE_HALTED)) { + xhci_dbg(xhci, "Ep 0x%x: URB %p to be canceled on " + "non-responsive xHCI host.\n", + urb->ep->desc.bEndpointAddress, urb); + /* Let the stop endpoint command watchdog timer (which set this + * state) finish cleaning up the endpoint TD lists. We must + * have caught it in the middle of dropping a lock and giving + * back an URB. + */ + goto done; + } + + ep_index = xhci_get_endpoint_index(&urb->ep->desc); + ep = &xhci->devs[urb->dev->slot_id]->eps[ep_index]; + ep_ring = xhci_urb_to_transfer_ring(xhci, urb); + if (!ep_ring) { + ret = -EINVAL; + goto done; + } + + urb_priv = urb->hcpriv; + i = urb_priv->td_cnt; + if (i < urb_priv->length) + xhci_dbg(xhci, "Cancel URB %p, dev %s, ep 0x%x, " + "starting at offset 0x%llx\n", + urb, urb->dev->devpath, + urb->ep->desc.bEndpointAddress, + (unsigned long long) xhci_trb_virt_to_dma( + urb_priv->td[i]->start_seg, + urb_priv->td[i]->first_trb)); + + for (; i < urb_priv->length; i++) { + td = urb_priv->td[i]; + list_add_tail(&td->cancelled_td_list, &ep->cancelled_td_list); + } + + /* Queue a stop endpoint command, but only if this is + * the first cancellation to be handled. + */ + if (!(ep->ep_state & EP_HALT_PENDING)) { + ep->ep_state |= EP_HALT_PENDING; + ep->stop_cmds_pending++; + ep->stop_cmd_timer.expires = jiffies + + XHCI_STOP_EP_CMD_TIMEOUT * HZ; + add_timer(&ep->stop_cmd_timer); + xhci_queue_stop_endpoint(xhci, urb->dev->slot_id, ep_index, 0); + xhci_ring_cmd_db(xhci); + } +done: + spin_unlock_irqrestore(&xhci->lock, flags); + return ret; +} + +/* Drop an endpoint from a new bandwidth configuration for this device. + * Only one call to this function is allowed per endpoint before + * check_bandwidth() or reset_bandwidth() must be called. + * A call to xhci_drop_endpoint() followed by a call to xhci_add_endpoint() will + * add the endpoint to the schedule with possibly new parameters denoted by a + * different endpoint descriptor in usb_host_endpoint. + * A call to xhci_add_endpoint() followed by a call to xhci_drop_endpoint() is + * not allowed. + * + * The USB core will not allow URBs to be queued to an endpoint that is being + * disabled, so there's no need for mutual exclusion to protect + * the xhci->devs[slot_id] structure. + */ +int xhci_drop_endpoint(struct usb_hcd *hcd, struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + struct xhci_hcd *xhci; + struct xhci_container_ctx *in_ctx, *out_ctx; + struct xhci_input_control_ctx *ctrl_ctx; + struct xhci_slot_ctx *slot_ctx; + unsigned int last_ctx; + unsigned int ep_index; + struct xhci_ep_ctx *ep_ctx; + u32 drop_flag; + u32 new_add_flags, new_drop_flags, new_slot_info; + int ret; + + ret = xhci_check_args(hcd, udev, ep, 1, true, __func__); + if (ret <= 0) + return ret; + xhci = hcd_to_xhci(hcd); + if (xhci->xhc_state & XHCI_STATE_DYING) + return -ENODEV; + + xhci_dbg(xhci, "%s called for udev %p\n", __func__, udev); + drop_flag = xhci_get_endpoint_flag(&ep->desc); + if (drop_flag == SLOT_FLAG || drop_flag == EP0_FLAG) { + xhci_dbg(xhci, "xHCI %s - can't drop slot or ep 0 %#x\n", + __func__, drop_flag); + return 0; + } + + in_ctx = xhci->devs[udev->slot_id]->in_ctx; + out_ctx = xhci->devs[udev->slot_id]->out_ctx; + ctrl_ctx = xhci_get_input_control_ctx(xhci, in_ctx); + ep_index = xhci_get_endpoint_index(&ep->desc); + ep_ctx = xhci_get_ep_ctx(xhci, out_ctx, ep_index); + /* If the HC already knows the endpoint is disabled, + * or the HCD has noted it is disabled, ignore this request + */ + if (((ep_ctx->ep_info & cpu_to_le32(EP_STATE_MASK)) == + cpu_to_le32(EP_STATE_DISABLED)) || + le32_to_cpu(ctrl_ctx->drop_flags) & + xhci_get_endpoint_flag(&ep->desc)) { + xhci_warn(xhci, "xHCI %s called with disabled ep %p\n", + __func__, ep); + return 0; + } + + ctrl_ctx->drop_flags |= cpu_to_le32(drop_flag); + new_drop_flags = le32_to_cpu(ctrl_ctx->drop_flags); + + ctrl_ctx->add_flags &= cpu_to_le32(~drop_flag); + new_add_flags = le32_to_cpu(ctrl_ctx->add_flags); + + last_ctx = xhci_last_valid_endpoint(le32_to_cpu(ctrl_ctx->add_flags)); + slot_ctx = xhci_get_slot_ctx(xhci, in_ctx); + /* Update the last valid endpoint context, if we deleted the last one */ + if ((le32_to_cpu(slot_ctx->dev_info) & LAST_CTX_MASK) > + LAST_CTX(last_ctx)) { + slot_ctx->dev_info &= cpu_to_le32(~LAST_CTX_MASK); + slot_ctx->dev_info |= cpu_to_le32(LAST_CTX(last_ctx)); + } + new_slot_info = le32_to_cpu(slot_ctx->dev_info); + + xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep); + + xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x, new slot info = %#x\n", + (unsigned int) ep->desc.bEndpointAddress, + udev->slot_id, + (unsigned int) new_drop_flags, + (unsigned int) new_add_flags, + (unsigned int) new_slot_info); + return 0; +} + +/* Add an endpoint to a new possible bandwidth configuration for this device. + * Only one call to this function is allowed per endpoint before + * check_bandwidth() or reset_bandwidth() must be called. + * A call to xhci_drop_endpoint() followed by a call to xhci_add_endpoint() will + * add the endpoint to the schedule with possibly new parameters denoted by a + * different endpoint descriptor in usb_host_endpoint. + * A call to xhci_add_endpoint() followed by a call to xhci_drop_endpoint() is + * not allowed. + * + * The USB core will not allow URBs to be queued to an endpoint until the + * configuration or alt setting is installed in the device, so there's no need + * for mutual exclusion to protect the xhci->devs[slot_id] structure. + */ +int xhci_add_endpoint(struct usb_hcd *hcd, struct usb_device *udev, + struct usb_host_endpoint *ep) +{ + struct xhci_hcd *xhci; + struct xhci_container_ctx *in_ctx, *out_ctx; + unsigned int ep_index; + struct xhci_ep_ctx *ep_ctx; + struct xhci_slot_ctx *slot_ctx; + struct xhci_input_control_ctx *ctrl_ctx; + u32 added_ctxs; + unsigned int last_ctx; + u32 new_add_flags, new_drop_flags, new_slot_info; + struct xhci_virt_device *virt_dev; + int ret = 0; + + ret = xhci_check_args(hcd, udev, ep, 1, true, __func__); + if (ret <= 0) { + /* So we won't queue a reset ep command for a root hub */ + ep->hcpriv = NULL; + return ret; + } + xhci = hcd_to_xhci(hcd); + if (xhci->xhc_state & XHCI_STATE_DYING) + return -ENODEV; + + added_ctxs = xhci_get_endpoint_flag(&ep->desc); + last_ctx = xhci_last_valid_endpoint(added_ctxs); + if (added_ctxs == SLOT_FLAG || added_ctxs == EP0_FLAG) { + /* FIXME when we have to issue an evaluate endpoint command to + * deal with ep0 max packet size changing once we get the + * descriptors + */ + xhci_dbg(xhci, "xHCI %s - can't add slot or ep 0 %#x\n", + __func__, added_ctxs); + return 0; + } + + virt_dev = xhci->devs[udev->slot_id]; + in_ctx = virt_dev->in_ctx; + out_ctx = virt_dev->out_ctx; + ctrl_ctx = xhci_get_input_control_ctx(xhci, in_ctx); + ep_index = xhci_get_endpoint_index(&ep->desc); + ep_ctx = xhci_get_ep_ctx(xhci, out_ctx, ep_index); + + /* If this endpoint is already in use, and the upper layers are trying + * to add it again without dropping it, reject the addition. + */ + if (virt_dev->eps[ep_index].ring && + !(le32_to_cpu(ctrl_ctx->drop_flags) & + xhci_get_endpoint_flag(&ep->desc))) { + xhci_warn(xhci, "Trying to add endpoint 0x%x " + "without dropping it.\n", + (unsigned int) ep->desc.bEndpointAddress); + return -EINVAL; + } + + /* If the HCD has already noted the endpoint is enabled, + * ignore this request. + */ + if (le32_to_cpu(ctrl_ctx->add_flags) & + xhci_get_endpoint_flag(&ep->desc)) { + xhci_warn(xhci, "xHCI %s called with enabled ep %p\n", + __func__, ep); + return 0; + } + + /* + * Configuration and alternate setting changes must be done in + * process context, not interrupt context (or so documenation + * for usb_set_interface() and usb_set_configuration() claim). + */ + if (xhci_endpoint_init(xhci, virt_dev, udev, ep, GFP_NOIO) < 0) { + dev_dbg(&udev->dev, "%s - could not initialize ep %#x\n", + __func__, ep->desc.bEndpointAddress); + return -ENOMEM; + } + + ctrl_ctx->add_flags |= cpu_to_le32(added_ctxs); + new_add_flags = le32_to_cpu(ctrl_ctx->add_flags); + + /* If xhci_endpoint_disable() was called for this endpoint, but the + * xHC hasn't been notified yet through the check_bandwidth() call, + * this re-adds a new state for the endpoint from the new endpoint + * descriptors. We must drop and re-add this endpoint, so we leave the + * drop flags alone. + */ + new_drop_flags = le32_to_cpu(ctrl_ctx->drop_flags); + + slot_ctx = xhci_get_slot_ctx(xhci, in_ctx); + /* Update the last valid endpoint context, if we just added one past */ + if ((le32_to_cpu(slot_ctx->dev_info) & LAST_CTX_MASK) < + LAST_CTX(last_ctx)) { + slot_ctx->dev_info &= cpu_to_le32(~LAST_CTX_MASK); + slot_ctx->dev_info |= cpu_to_le32(LAST_CTX(last_ctx)); + } + new_slot_info = le32_to_cpu(slot_ctx->dev_info); + + /* Store the usb_device pointer for later use */ + ep->hcpriv = udev; + + xhci_dbg(xhci, "add ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x, new slot info = %#x\n", + (unsigned int) ep->desc.bEndpointAddress, + udev->slot_id, + (unsigned int) new_drop_flags, + (unsigned int) new_add_flags, + (unsigned int) new_slot_info); + return 0; +} + +static void xhci_zero_in_ctx(struct xhci_hcd *xhci, struct xhci_virt_device *virt_dev) +{ + struct xhci_input_control_ctx *ctrl_ctx; + struct xhci_ep_ctx *ep_ctx; + struct xhci_slot_ctx *slot_ctx; + int i; + + /* When a device's add flag and drop flag are zero, any subsequent + * configure endpoint command will leave that endpoint's state + * untouched. Make sure we don't leave any old state in the input + * endpoint contexts. + */ + ctrl_ctx = xhci_get_input_control_ctx(xhci, virt_dev->in_ctx); + ctrl_ctx->drop_flags = 0; + ctrl_ctx->add_flags = 0; + slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx); + slot_ctx->dev_info &= cpu_to_le32(~LAST_CTX_MASK); + /* Endpoint 0 is always valid */ + slot_ctx->dev_info |= cpu_to_le32(LAST_CTX(1)); + for (i = 1; i < 31; ++i) { + ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, i); + ep_ctx->ep_info = 0; + ep_ctx->ep_info2 = 0; + ep_ctx->deq = 0; + ep_ctx->tx_info = 0; + } +} + +static int xhci_configure_endpoint_result(struct xhci_hcd *xhci, + struct usb_device *udev, u32 *cmd_status) +{ + int ret; + + switch (*cmd_status) { + case COMP_ENOMEM: + dev_warn(&udev->dev, "Not enough host controller resources " + "for new device state.\n"); + ret = -ENOMEM; + /* FIXME: can we allocate more resources for the HC? */ + break; + case COMP_BW_ERR: + case COMP_2ND_BW_ERR: + dev_warn(&udev->dev, "Not enough bandwidth " + "for new device state.\n"); + ret = -ENOSPC; + /* FIXME: can we go back to the old state? */ + break; + case COMP_TRB_ERR: + /* the HCD set up something wrong */ + dev_warn(&udev->dev, "ERROR: Endpoint drop flag = 0, " + "add flag = 1, " + "and endpoint is not disabled.\n"); + ret = -EINVAL; + break; + case COMP_DEV_ERR: + dev_warn(&udev->dev, "ERROR: Incompatible device for endpoint " + "configure command.\n"); + ret = -ENODEV; + break; + case COMP_SUCCESS: + dev_dbg(&udev->dev, "Successful Endpoint Configure command\n"); + ret = 0; + break; + default: + xhci_err(xhci, "ERROR: unexpected command completion " + "code 0x%x.\n", *cmd_status); + ret = -EINVAL; + break; + } + return ret; +} + +static int xhci_evaluate_context_result(struct xhci_hcd *xhci, + struct usb_device *udev, u32 *cmd_status) +{ + int ret; + struct xhci_virt_device *virt_dev = xhci->devs[udev->slot_id]; + + switch (*cmd_status) { + case COMP_EINVAL: + dev_warn(&udev->dev, "WARN: xHCI driver setup invalid evaluate " + "context command.\n"); + ret = -EINVAL; + break; + case COMP_EBADSLT: + dev_warn(&udev->dev, "WARN: slot not enabled for" + "evaluate context command.\n"); + case COMP_CTX_STATE: + dev_warn(&udev->dev, "WARN: invalid context state for " + "evaluate context command.\n"); + xhci_dbg_ctx(xhci, virt_dev->out_ctx, 1); + ret = -EINVAL; + break; + case COMP_DEV_ERR: + dev_warn(&udev->dev, "ERROR: Incompatible device for evaluate " + "context command.\n"); + ret = -ENODEV; + break; + case COMP_MEL_ERR: + /* Max Exit Latency too large error */ + dev_warn(&udev->dev, "WARN: Max Exit Latency too large\n"); + ret = -EINVAL; + break; + case COMP_SUCCESS: + dev_dbg(&udev->dev, "Successful evaluate context command\n"); + ret = 0; + break; + default: + xhci_err(xhci, "ERROR: unexpected command completion " + "code 0x%x.\n", *cmd_status); + ret = -EINVAL; + break; + } + return ret; +} + +static u32 xhci_count_num_new_endpoints(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx) +{ + struct xhci_input_control_ctx *ctrl_ctx; + u32 valid_add_flags; + u32 valid_drop_flags; + + ctrl_ctx = xhci_get_input_control_ctx(xhci, in_ctx); + /* Ignore the slot flag (bit 0), and the default control endpoint flag + * (bit 1). The default control endpoint is added during the Address + * Device command and is never removed until the slot is disabled. + */ + valid_add_flags = ctrl_ctx->add_flags >> 2; + valid_drop_flags = ctrl_ctx->drop_flags >> 2; + + /* Use hweight32 to count the number of ones in the add flags, or + * number of endpoints added. Don't count endpoints that are changed + * (both added and dropped). + */ + return hweight32(valid_add_flags) - + hweight32(valid_add_flags & valid_drop_flags); +} + +static unsigned int xhci_count_num_dropped_endpoints(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx) +{ + struct xhci_input_control_ctx *ctrl_ctx; + u32 valid_add_flags; + u32 valid_drop_flags; + + ctrl_ctx = xhci_get_input_control_ctx(xhci, in_ctx); + valid_add_flags = ctrl_ctx->add_flags >> 2; + valid_drop_flags = ctrl_ctx->drop_flags >> 2; + + return hweight32(valid_drop_flags) - + hweight32(valid_add_flags & valid_drop_flags); +} + +/* + * We need to reserve the new number of endpoints before the configure endpoint + * command completes. We can't subtract the dropped endpoints from the number + * of active endpoints until the command completes because we can oversubscribe + * the host in this case: + * + * - the first configure endpoint command drops more endpoints than it adds + * - a second configure endpoint command that adds more endpoints is queued + * - the first configure endpoint command fails, so the config is unchanged + * - the second command may succeed, even though there isn't enough resources + * + * Must be called with xhci->lock held. + */ +static int xhci_reserve_host_resources(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx) +{ + u32 added_eps; + + added_eps = xhci_count_num_new_endpoints(xhci, in_ctx); + if (xhci->num_active_eps + added_eps > xhci->limit_active_eps) { + xhci_dbg(xhci, "Not enough ep ctxs: " + "%u active, need to add %u, limit is %u.\n", + xhci->num_active_eps, added_eps, + xhci->limit_active_eps); + return -ENOMEM; + } + xhci->num_active_eps += added_eps; + xhci_dbg(xhci, "Adding %u ep ctxs, %u now active.\n", added_eps, + xhci->num_active_eps); + return 0; +} + +/* + * The configure endpoint was failed by the xHC for some other reason, so we + * need to revert the resources that failed configuration would have used. + * + * Must be called with xhci->lock held. + */ +static void xhci_free_host_resources(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx) +{ + u32 num_failed_eps; + + num_failed_eps = xhci_count_num_new_endpoints(xhci, in_ctx); + xhci->num_active_eps -= num_failed_eps; + xhci_dbg(xhci, "Removing %u failed ep ctxs, %u now active.\n", + num_failed_eps, + xhci->num_active_eps); +} + +/* + * Now that the command has completed, clean up the active endpoint count by + * subtracting out the endpoints that were dropped (but not changed). + * + * Must be called with xhci->lock held. + */ +static void xhci_finish_resource_reservation(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx) +{ + u32 num_dropped_eps; + + num_dropped_eps = xhci_count_num_dropped_endpoints(xhci, in_ctx); + xhci->num_active_eps -= num_dropped_eps; + if (num_dropped_eps) + xhci_dbg(xhci, "Removing %u dropped ep ctxs, %u now active.\n", + num_dropped_eps, + xhci->num_active_eps); +} + +unsigned int xhci_get_block_size(struct usb_device *udev) +{ + switch (udev->speed) { + case USB_SPEED_LOW: + case USB_SPEED_FULL: + return FS_BLOCK; + case USB_SPEED_HIGH: + return HS_BLOCK; + case USB_SPEED_SUPER: + return SS_BLOCK; + case USB_SPEED_UNKNOWN: + case USB_SPEED_WIRELESS: + default: + /* Should never happen */ + return 1; + } +} + +unsigned int xhci_get_largest_overhead(struct xhci_interval_bw *interval_bw) +{ + if (interval_bw->overhead[LS_OVERHEAD_TYPE]) + return LS_OVERHEAD; + if (interval_bw->overhead[FS_OVERHEAD_TYPE]) + return FS_OVERHEAD; + return HS_OVERHEAD; +} + +/* If we are changing a LS/FS device under a HS hub, + * make sure (if we are activating a new TT) that the HS bus has enough + * bandwidth for this new TT. + */ +static int xhci_check_tt_bw_table(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + int old_active_eps) +{ + struct xhci_interval_bw_table *bw_table; + struct xhci_tt_bw_info *tt_info; + + /* Find the bandwidth table for the root port this TT is attached to. */ + bw_table = &xhci->rh_bw[virt_dev->real_port - 1].bw_table; + tt_info = virt_dev->tt_info; + /* If this TT already had active endpoints, the bandwidth for this TT + * has already been added. Removing all periodic endpoints (and thus + * making the TT enactive) will only decrease the bandwidth used. + */ + if (old_active_eps) + return 0; + if (old_active_eps == 0 && tt_info->active_eps != 0) { + if (bw_table->bw_used + TT_HS_OVERHEAD > HS_BW_LIMIT) + return -ENOMEM; + return 0; + } + /* Not sure why we would have no new active endpoints... + * + * Maybe because of an Evaluate Context change for a hub update or a + * control endpoint 0 max packet size change? + * FIXME: skip the bandwidth calculation in that case. + */ + return 0; +} + +static int xhci_check_ss_bw(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev) +{ + unsigned int bw_reserved; + + bw_reserved = DIV_ROUND_UP(SS_BW_RESERVED*SS_BW_LIMIT_IN, 100); + if (virt_dev->bw_table->ss_bw_in > (SS_BW_LIMIT_IN - bw_reserved)) + return -ENOMEM; + + bw_reserved = DIV_ROUND_UP(SS_BW_RESERVED*SS_BW_LIMIT_OUT, 100); + if (virt_dev->bw_table->ss_bw_out > (SS_BW_LIMIT_OUT - bw_reserved)) + return -ENOMEM; + + return 0; +} + +/* + * This algorithm is a very conservative estimate of the worst-case scheduling + * scenario for any one interval. The hardware dynamically schedules the + * packets, so we can't tell which microframe could be the limiting factor in + * the bandwidth scheduling. This only takes into account periodic endpoints. + * + * Obviously, we can't solve an NP complete problem to find the minimum worst + * case scenario. Instead, we come up with an estimate that is no less than + * the worst case bandwidth used for any one microframe, but may be an + * over-estimate. + * + * We walk the requirements for each endpoint by interval, starting with the + * smallest interval, and place packets in the schedule where there is only one + * possible way to schedule packets for that interval. In order to simplify + * this algorithm, we record the largest max packet size for each interval, and + * assume all packets will be that size. + * + * For interval 0, we obviously must schedule all packets for each interval. + * The bandwidth for interval 0 is just the amount of data to be transmitted + * (the sum of all max ESIT payload sizes, plus any overhead per packet times + * the number of packets). + * + * For interval 1, we have two possible microframes to schedule those packets + * in. For this algorithm, if we can schedule the same number of packets for + * each possible scheduling opportunity (each microframe), we will do so. The + * remaining number of packets will be saved to be transmitted in the gaps in + * the next interval's scheduling sequence. + * + * As we move those remaining packets to be scheduled with interval 2 packets, + * we have to double the number of remaining packets to transmit. This is + * because the intervals are actually powers of 2, and we would be transmitting + * the previous interval's packets twice in this interval. We also have to be + * sure that when we look at the largest max packet size for this interval, we + * also look at the largest max packet size for the remaining packets and take + * the greater of the two. + * + * The algorithm continues to evenly distribute packets in each scheduling + * opportunity, and push the remaining packets out, until we get to the last + * interval. Then those packets and their associated overhead are just added + * to the bandwidth used. + */ +static int xhci_check_bw_table(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + int old_active_eps) +{ + unsigned int bw_reserved; + unsigned int max_bandwidth; + unsigned int bw_used; + unsigned int block_size; + struct xhci_interval_bw_table *bw_table; + unsigned int packet_size = 0; + unsigned int overhead = 0; + unsigned int packets_transmitted = 0; + unsigned int packets_remaining = 0; + unsigned int i; + + if (virt_dev->udev->speed == USB_SPEED_SUPER) + return xhci_check_ss_bw(xhci, virt_dev); + + if (virt_dev->udev->speed == USB_SPEED_HIGH) { + max_bandwidth = HS_BW_LIMIT; + /* Convert percent of bus BW reserved to blocks reserved */ + bw_reserved = DIV_ROUND_UP(HS_BW_RESERVED * max_bandwidth, 100); + } else { + max_bandwidth = FS_BW_LIMIT; + bw_reserved = DIV_ROUND_UP(FS_BW_RESERVED * max_bandwidth, 100); + } + + bw_table = virt_dev->bw_table; + /* We need to translate the max packet size and max ESIT payloads into + * the units the hardware uses. + */ + block_size = xhci_get_block_size(virt_dev->udev); + + /* If we are manipulating a LS/FS device under a HS hub, double check + * that the HS bus has enough bandwidth if we are activing a new TT. + */ + if (virt_dev->tt_info) { + xhci_dbg(xhci, "Recalculating BW for rootport %u\n", + virt_dev->real_port); + if (xhci_check_tt_bw_table(xhci, virt_dev, old_active_eps)) { + xhci_warn(xhci, "Not enough bandwidth on HS bus for " + "newly activated TT.\n"); + return -ENOMEM; + } + xhci_dbg(xhci, "Recalculating BW for TT slot %u port %u\n", + virt_dev->tt_info->slot_id, + virt_dev->tt_info->ttport); + } else { + xhci_dbg(xhci, "Recalculating BW for rootport %u\n", + virt_dev->real_port); + } + + /* Add in how much bandwidth will be used for interval zero, or the + * rounded max ESIT payload + number of packets * largest overhead. + */ + bw_used = DIV_ROUND_UP(bw_table->interval0_esit_payload, block_size) + + bw_table->interval_bw[0].num_packets * + xhci_get_largest_overhead(&bw_table->interval_bw[0]); + + for (i = 1; i < XHCI_MAX_INTERVAL; i++) { + unsigned int bw_added; + unsigned int largest_mps; + unsigned int interval_overhead; + + /* + * How many packets could we transmit in this interval? + * If packets didn't fit in the previous interval, we will need + * to transmit that many packets twice within this interval. + */ + packets_remaining = 2 * packets_remaining + + bw_table->interval_bw[i].num_packets; + + /* Find the largest max packet size of this or the previous + * interval. + */ + if (list_empty(&bw_table->interval_bw[i].endpoints)) + largest_mps = 0; + else { + struct xhci_virt_ep *virt_ep; + struct list_head *ep_entry; + + ep_entry = bw_table->interval_bw[i].endpoints.next; + virt_ep = list_entry(ep_entry, + struct xhci_virt_ep, bw_endpoint_list); + /* Convert to blocks, rounding up */ + largest_mps = DIV_ROUND_UP( + virt_ep->bw_info.max_packet_size, + block_size); + } + if (largest_mps > packet_size) + packet_size = largest_mps; + + /* Use the larger overhead of this or the previous interval. */ + interval_overhead = xhci_get_largest_overhead( + &bw_table->interval_bw[i]); + if (interval_overhead > overhead) + overhead = interval_overhead; + + /* How many packets can we evenly distribute across + * (1 << (i + 1)) possible scheduling opportunities? + */ + packets_transmitted = packets_remaining >> (i + 1); + + /* Add in the bandwidth used for those scheduled packets */ + bw_added = packets_transmitted * (overhead + packet_size); + + /* How many packets do we have remaining to transmit? */ + packets_remaining = packets_remaining % (1 << (i + 1)); + + /* What largest max packet size should those packets have? */ + /* If we've transmitted all packets, don't carry over the + * largest packet size. + */ + if (packets_remaining == 0) { + packet_size = 0; + overhead = 0; + } else if (packets_transmitted > 0) { + /* Otherwise if we do have remaining packets, and we've + * scheduled some packets in this interval, take the + * largest max packet size from endpoints with this + * interval. + */ + packet_size = largest_mps; + overhead = interval_overhead; + } + /* Otherwise carry over packet_size and overhead from the last + * time we had a remainder. + */ + bw_used += bw_added; + if (bw_used > max_bandwidth) { + xhci_warn(xhci, "Not enough bandwidth. " + "Proposed: %u, Max: %u\n", + bw_used, max_bandwidth); + return -ENOMEM; + } + } + /* + * Ok, we know we have some packets left over after even-handedly + * scheduling interval 15. We don't know which microframes they will + * fit into, so we over-schedule and say they will be scheduled every + * microframe. + */ + if (packets_remaining > 0) + bw_used += overhead + packet_size; + + if (!virt_dev->tt_info && virt_dev->udev->speed == USB_SPEED_HIGH) { + unsigned int port_index = virt_dev->real_port - 1; + + /* OK, we're manipulating a HS device attached to a + * root port bandwidth domain. Include the number of active TTs + * in the bandwidth used. + */ + bw_used += TT_HS_OVERHEAD * + xhci->rh_bw[port_index].num_active_tts; + } + + xhci_dbg(xhci, "Final bandwidth: %u, Limit: %u, Reserved: %u, " + "Available: %u " "percent\n", + bw_used, max_bandwidth, bw_reserved, + (max_bandwidth - bw_used - bw_reserved) * 100 / + max_bandwidth); + + bw_used += bw_reserved; + if (bw_used > max_bandwidth) { + xhci_warn(xhci, "Not enough bandwidth. Proposed: %u, Max: %u\n", + bw_used, max_bandwidth); + return -ENOMEM; + } + + bw_table->bw_used = bw_used; + return 0; +} + +static bool xhci_is_async_ep(unsigned int ep_type) +{ + return (ep_type != ISOC_OUT_EP && ep_type != INT_OUT_EP && + ep_type != ISOC_IN_EP && + ep_type != INT_IN_EP); +} + +static bool xhci_is_sync_in_ep(unsigned int ep_type) +{ + return (ep_type == ISOC_IN_EP || ep_type != INT_IN_EP); +} + +static unsigned int xhci_get_ss_bw_consumed(struct xhci_bw_info *ep_bw) +{ + unsigned int mps = DIV_ROUND_UP(ep_bw->max_packet_size, SS_BLOCK); + + if (ep_bw->ep_interval == 0) + return SS_OVERHEAD_BURST + + (ep_bw->mult * ep_bw->num_packets * + (SS_OVERHEAD + mps)); + return DIV_ROUND_UP(ep_bw->mult * ep_bw->num_packets * + (SS_OVERHEAD + mps + SS_OVERHEAD_BURST), + 1 << ep_bw->ep_interval); + +} + +void xhci_drop_ep_from_interval_table(struct xhci_hcd *xhci, + struct xhci_bw_info *ep_bw, + struct xhci_interval_bw_table *bw_table, + struct usb_device *udev, + struct xhci_virt_ep *virt_ep, + struct xhci_tt_bw_info *tt_info) +{ + struct xhci_interval_bw *interval_bw; + int normalized_interval; + + if (xhci_is_async_ep(ep_bw->type)) + return; + + if (udev->speed == USB_SPEED_SUPER) { + if (xhci_is_sync_in_ep(ep_bw->type)) + xhci->devs[udev->slot_id]->bw_table->ss_bw_in -= + xhci_get_ss_bw_consumed(ep_bw); + else + xhci->devs[udev->slot_id]->bw_table->ss_bw_out -= + xhci_get_ss_bw_consumed(ep_bw); + return; + } + + /* SuperSpeed endpoints never get added to intervals in the table, so + * this check is only valid for HS/FS/LS devices. + */ + if (list_empty(&virt_ep->bw_endpoint_list)) + return; + /* For LS/FS devices, we need to translate the interval expressed in + * microframes to frames. + */ + if (udev->speed == USB_SPEED_HIGH) + normalized_interval = ep_bw->ep_interval; + else + normalized_interval = ep_bw->ep_interval - 3; + + if (normalized_interval == 0) + bw_table->interval0_esit_payload -= ep_bw->max_esit_payload; + interval_bw = &bw_table->interval_bw[normalized_interval]; + interval_bw->num_packets -= ep_bw->num_packets; + switch (udev->speed) { + case USB_SPEED_LOW: + interval_bw->overhead[LS_OVERHEAD_TYPE] -= 1; + break; + case USB_SPEED_FULL: + interval_bw->overhead[FS_OVERHEAD_TYPE] -= 1; + break; + case USB_SPEED_HIGH: + interval_bw->overhead[HS_OVERHEAD_TYPE] -= 1; + break; + case USB_SPEED_SUPER: + case USB_SPEED_UNKNOWN: + case USB_SPEED_WIRELESS: + /* Should never happen because only LS/FS/HS endpoints will get + * added to the endpoint list. + */ + return; + } + if (tt_info) + tt_info->active_eps -= 1; + list_del_init(&virt_ep->bw_endpoint_list); +} + +static void xhci_add_ep_to_interval_table(struct xhci_hcd *xhci, + struct xhci_bw_info *ep_bw, + struct xhci_interval_bw_table *bw_table, + struct usb_device *udev, + struct xhci_virt_ep *virt_ep, + struct xhci_tt_bw_info *tt_info) +{ + struct xhci_interval_bw *interval_bw; + struct xhci_virt_ep *smaller_ep; + int normalized_interval; + + if (xhci_is_async_ep(ep_bw->type)) + return; + + if (udev->speed == USB_SPEED_SUPER) { + if (xhci_is_sync_in_ep(ep_bw->type)) + xhci->devs[udev->slot_id]->bw_table->ss_bw_in += + xhci_get_ss_bw_consumed(ep_bw); + else + xhci->devs[udev->slot_id]->bw_table->ss_bw_out += + xhci_get_ss_bw_consumed(ep_bw); + return; + } + + /* For LS/FS devices, we need to translate the interval expressed in + * microframes to frames. + */ + if (udev->speed == USB_SPEED_HIGH) + normalized_interval = ep_bw->ep_interval; + else + normalized_interval = ep_bw->ep_interval - 3; + + if (normalized_interval == 0) + bw_table->interval0_esit_payload += ep_bw->max_esit_payload; + interval_bw = &bw_table->interval_bw[normalized_interval]; + interval_bw->num_packets += ep_bw->num_packets; + switch (udev->speed) { + case USB_SPEED_LOW: + interval_bw->overhead[LS_OVERHEAD_TYPE] += 1; + break; + case USB_SPEED_FULL: + interval_bw->overhead[FS_OVERHEAD_TYPE] += 1; + break; + case USB_SPEED_HIGH: + interval_bw->overhead[HS_OVERHEAD_TYPE] += 1; + break; + case USB_SPEED_SUPER: + case USB_SPEED_UNKNOWN: + case USB_SPEED_WIRELESS: + /* Should never happen because only LS/FS/HS endpoints will get + * added to the endpoint list. + */ + return; + } + + if (tt_info) + tt_info->active_eps += 1; + /* Insert the endpoint into the list, largest max packet size first. */ + list_for_each_entry(smaller_ep, &interval_bw->endpoints, + bw_endpoint_list) { + if (ep_bw->max_packet_size >= + smaller_ep->bw_info.max_packet_size) { + /* Add the new ep before the smaller endpoint */ + list_add_tail(&virt_ep->bw_endpoint_list, + &smaller_ep->bw_endpoint_list); + return; + } + } + /* Add the new endpoint at the end of the list. */ + list_add_tail(&virt_ep->bw_endpoint_list, + &interval_bw->endpoints); +} + +void xhci_update_tt_active_eps(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + int old_active_eps) +{ + struct xhci_root_port_bw_info *rh_bw_info; + if (!virt_dev->tt_info) + return; + + rh_bw_info = &xhci->rh_bw[virt_dev->real_port - 1]; + if (old_active_eps == 0 && + virt_dev->tt_info->active_eps != 0) { + rh_bw_info->num_active_tts += 1; + rh_bw_info->bw_table.bw_used += TT_HS_OVERHEAD; + } else if (old_active_eps != 0 && + virt_dev->tt_info->active_eps == 0) { + rh_bw_info->num_active_tts -= 1; + rh_bw_info->bw_table.bw_used -= TT_HS_OVERHEAD; + } +} + +static int xhci_reserve_bandwidth(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + struct xhci_container_ctx *in_ctx) +{ + struct xhci_bw_info ep_bw_info[31]; + int i; + struct xhci_input_control_ctx *ctrl_ctx; + int old_active_eps = 0; + + if (virt_dev->tt_info) + old_active_eps = virt_dev->tt_info->active_eps; + + ctrl_ctx = xhci_get_input_control_ctx(xhci, in_ctx); + + for (i = 0; i < 31; i++) { + if (!EP_IS_ADDED(ctrl_ctx, i) && !EP_IS_DROPPED(ctrl_ctx, i)) + continue; + + /* Make a copy of the BW info in case we need to revert this */ + memcpy(&ep_bw_info[i], &virt_dev->eps[i].bw_info, + sizeof(ep_bw_info[i])); + /* Drop the endpoint from the interval table if the endpoint is + * being dropped or changed. + */ + if (EP_IS_DROPPED(ctrl_ctx, i)) + xhci_drop_ep_from_interval_table(xhci, + &virt_dev->eps[i].bw_info, + virt_dev->bw_table, + virt_dev->udev, + &virt_dev->eps[i], + virt_dev->tt_info); + } + /* Overwrite the information stored in the endpoints' bw_info */ + xhci_update_bw_info(xhci, virt_dev->in_ctx, ctrl_ctx, virt_dev); + for (i = 0; i < 31; i++) { + /* Add any changed or added endpoints to the interval table */ + if (EP_IS_ADDED(ctrl_ctx, i)) + xhci_add_ep_to_interval_table(xhci, + &virt_dev->eps[i].bw_info, + virt_dev->bw_table, + virt_dev->udev, + &virt_dev->eps[i], + virt_dev->tt_info); + } + + if (!xhci_check_bw_table(xhci, virt_dev, old_active_eps)) { + /* Ok, this fits in the bandwidth we have. + * Update the number of active TTs. + */ + xhci_update_tt_active_eps(xhci, virt_dev, old_active_eps); + return 0; + } + + /* We don't have enough bandwidth for this, revert the stored info. */ + for (i = 0; i < 31; i++) { + if (!EP_IS_ADDED(ctrl_ctx, i) && !EP_IS_DROPPED(ctrl_ctx, i)) + continue; + + /* Drop the new copies of any added or changed endpoints from + * the interval table. + */ + if (EP_IS_ADDED(ctrl_ctx, i)) { + xhci_drop_ep_from_interval_table(xhci, + &virt_dev->eps[i].bw_info, + virt_dev->bw_table, + virt_dev->udev, + &virt_dev->eps[i], + virt_dev->tt_info); + } + /* Revert the endpoint back to its old information */ + memcpy(&virt_dev->eps[i].bw_info, &ep_bw_info[i], + sizeof(ep_bw_info[i])); + /* Add any changed or dropped endpoints back into the table */ + if (EP_IS_DROPPED(ctrl_ctx, i)) + xhci_add_ep_to_interval_table(xhci, + &virt_dev->eps[i].bw_info, + virt_dev->bw_table, + virt_dev->udev, + &virt_dev->eps[i], + virt_dev->tt_info); + } + return -ENOMEM; +} + + +/* Issue a configure endpoint command or evaluate context command + * and wait for it to finish. + */ +static int xhci_configure_endpoint(struct xhci_hcd *xhci, + struct usb_device *udev, + struct xhci_command *command, + bool ctx_change, bool must_succeed) +{ + int ret; + int timeleft; + unsigned long flags; + struct xhci_container_ctx *in_ctx; + struct completion *cmd_completion; + u32 *cmd_status; + struct xhci_virt_device *virt_dev; + + spin_lock_irqsave(&xhci->lock, flags); + virt_dev = xhci->devs[udev->slot_id]; + + if (command) + in_ctx = command->in_ctx; + else + in_ctx = virt_dev->in_ctx; + + if ((xhci->quirks & XHCI_EP_LIMIT_QUIRK) && + xhci_reserve_host_resources(xhci, in_ctx)) { + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_warn(xhci, "Not enough host resources, " + "active endpoint contexts = %u\n", + xhci->num_active_eps); + return -ENOMEM; + } + if ((xhci->quirks & XHCI_SW_BW_CHECKING) && + xhci_reserve_bandwidth(xhci, virt_dev, in_ctx)) { + if ((xhci->quirks & XHCI_EP_LIMIT_QUIRK)) + xhci_free_host_resources(xhci, in_ctx); + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_warn(xhci, "Not enough bandwidth\n"); + return -ENOMEM; + } + + if (command) { + cmd_completion = command->completion; + cmd_status = &command->status; + command->command_trb = xhci->cmd_ring->enqueue; + + /* Enqueue pointer can be left pointing to the link TRB, + * we must handle that + */ + if (TRB_TYPE_LINK_LE32(command->command_trb->link.control)) + command->command_trb = + xhci->cmd_ring->enq_seg->next->trbs; + + list_add_tail(&command->cmd_list, &virt_dev->cmd_list); + } else { + cmd_completion = &virt_dev->cmd_completion; + cmd_status = &virt_dev->cmd_status; + } + init_completion(cmd_completion); + + if (!ctx_change) + ret = xhci_queue_configure_endpoint(xhci, in_ctx->dma, + udev->slot_id, must_succeed); + else + ret = xhci_queue_evaluate_context(xhci, in_ctx->dma, + udev->slot_id); + if (ret < 0) { + if (command) + list_del(&command->cmd_list); + if ((xhci->quirks & XHCI_EP_LIMIT_QUIRK)) + xhci_free_host_resources(xhci, in_ctx); + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_dbg(xhci, "FIXME allocate a new ring segment\n"); + return -ENOMEM; + } + xhci_ring_cmd_db(xhci); + spin_unlock_irqrestore(&xhci->lock, flags); + + /* Wait for the configure endpoint command to complete */ + timeleft = wait_for_completion_interruptible_timeout( + cmd_completion, + USB_CTRL_SET_TIMEOUT); + if (timeleft <= 0) { + xhci_warn(xhci, "%s while waiting for %s command\n", + timeleft == 0 ? "Timeout" : "Signal", + ctx_change == 0 ? + "configure endpoint" : + "evaluate context"); + /* FIXME cancel the configure endpoint command */ + return -ETIME; + } + + if (!ctx_change) + ret = xhci_configure_endpoint_result(xhci, udev, cmd_status); + else + ret = xhci_evaluate_context_result(xhci, udev, cmd_status); + + if ((xhci->quirks & XHCI_EP_LIMIT_QUIRK)) { + spin_lock_irqsave(&xhci->lock, flags); + /* If the command failed, remove the reserved resources. + * Otherwise, clean up the estimate to include dropped eps. + */ + if (ret) + xhci_free_host_resources(xhci, in_ctx); + else + xhci_finish_resource_reservation(xhci, in_ctx); + spin_unlock_irqrestore(&xhci->lock, flags); + } + return ret; +} + +/* Called after one or more calls to xhci_add_endpoint() or + * xhci_drop_endpoint(). If this call fails, the USB core is expected + * to call xhci_reset_bandwidth(). + * + * Since we are in the middle of changing either configuration or + * installing a new alt setting, the USB core won't allow URBs to be + * enqueued for any endpoint on the old config or interface. Nothing + * else should be touching the xhci->devs[slot_id] structure, so we + * don't need to take the xhci->lock for manipulating that. + */ +int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev) +{ + int i; + int ret = 0; + struct xhci_hcd *xhci; + struct xhci_virt_device *virt_dev; + struct xhci_input_control_ctx *ctrl_ctx; + struct xhci_slot_ctx *slot_ctx; + + ret = xhci_check_args(hcd, udev, NULL, 0, true, __func__); + if (ret <= 0) + return ret; + xhci = hcd_to_xhci(hcd); + if (xhci->xhc_state & XHCI_STATE_DYING) + return -ENODEV; + + xhci_dbg(xhci, "%s called for udev %p\n", __func__, udev); + virt_dev = xhci->devs[udev->slot_id]; + + /* See section 4.6.6 - A0 = 1; A1 = D0 = D1 = 0 */ + ctrl_ctx = xhci_get_input_control_ctx(xhci, virt_dev->in_ctx); + ctrl_ctx->add_flags |= cpu_to_le32(SLOT_FLAG); + ctrl_ctx->add_flags &= cpu_to_le32(~EP0_FLAG); + ctrl_ctx->drop_flags &= cpu_to_le32(~(SLOT_FLAG | EP0_FLAG)); + + /* Don't issue the command if there's no endpoints to update. */ + if (ctrl_ctx->add_flags == cpu_to_le32(SLOT_FLAG) && + ctrl_ctx->drop_flags == 0) + return 0; + + xhci_dbg(xhci, "New Input Control Context:\n"); + slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx); + xhci_dbg_ctx(xhci, virt_dev->in_ctx, + LAST_CTX_TO_EP_NUM(le32_to_cpu(slot_ctx->dev_info))); + + ret = xhci_configure_endpoint(xhci, udev, NULL, + false, false); + if (ret) { + /* Callee should call reset_bandwidth() */ + return ret; + } + + xhci_dbg(xhci, "Output context after successful config ep cmd:\n"); + xhci_dbg_ctx(xhci, virt_dev->out_ctx, + LAST_CTX_TO_EP_NUM(le32_to_cpu(slot_ctx->dev_info))); + + /* Free any rings that were dropped, but not changed. */ + for (i = 1; i < 31; ++i) { + if ((le32_to_cpu(ctrl_ctx->drop_flags) & (1 << (i + 1))) && + !(le32_to_cpu(ctrl_ctx->add_flags) & (1 << (i + 1)))) + xhci_free_or_cache_endpoint_ring(xhci, virt_dev, i); + } + xhci_zero_in_ctx(xhci, virt_dev); + /* + * Install any rings for completely new endpoints or changed endpoints, + * and free or cache any old rings from changed endpoints. + */ + for (i = 1; i < 31; ++i) { + if (!virt_dev->eps[i].new_ring) + continue; + /* Only cache or free the old ring if it exists. + * It may not if this is the first add of an endpoint. + */ + if (virt_dev->eps[i].ring) { + xhci_free_or_cache_endpoint_ring(xhci, virt_dev, i); + } + virt_dev->eps[i].ring = virt_dev->eps[i].new_ring; + virt_dev->eps[i].new_ring = NULL; + } + + return ret; +} + +void xhci_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev) +{ + struct xhci_hcd *xhci; + struct xhci_virt_device *virt_dev; + int i, ret; + + ret = xhci_check_args(hcd, udev, NULL, 0, true, __func__); + if (ret <= 0) + return; + xhci = hcd_to_xhci(hcd); + + xhci_dbg(xhci, "%s called for udev %p\n", __func__, udev); + virt_dev = xhci->devs[udev->slot_id]; + /* Free any rings allocated for added endpoints */ + for (i = 0; i < 31; ++i) { + if (virt_dev->eps[i].new_ring) { + xhci_ring_free(xhci, virt_dev->eps[i].new_ring); + virt_dev->eps[i].new_ring = NULL; + } + } + xhci_zero_in_ctx(xhci, virt_dev); +} + +static void xhci_setup_input_ctx_for_config_ep(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx, + struct xhci_container_ctx *out_ctx, + u32 add_flags, u32 drop_flags) +{ + struct xhci_input_control_ctx *ctrl_ctx; + ctrl_ctx = xhci_get_input_control_ctx(xhci, in_ctx); + ctrl_ctx->add_flags = cpu_to_le32(add_flags); + ctrl_ctx->drop_flags = cpu_to_le32(drop_flags); + xhci_slot_copy(xhci, in_ctx, out_ctx); + ctrl_ctx->add_flags |= cpu_to_le32(SLOT_FLAG); + + xhci_dbg(xhci, "Input Context:\n"); + xhci_dbg_ctx(xhci, in_ctx, xhci_last_valid_endpoint(add_flags)); +} + +static void xhci_setup_input_ctx_for_quirk(struct xhci_hcd *xhci, + unsigned int slot_id, unsigned int ep_index, + struct xhci_dequeue_state *deq_state) +{ + struct xhci_container_ctx *in_ctx; + struct xhci_ep_ctx *ep_ctx; + u32 added_ctxs; + dma_addr_t addr; + + xhci_endpoint_copy(xhci, xhci->devs[slot_id]->in_ctx, + xhci->devs[slot_id]->out_ctx, ep_index); + in_ctx = xhci->devs[slot_id]->in_ctx; + ep_ctx = xhci_get_ep_ctx(xhci, in_ctx, ep_index); + addr = xhci_trb_virt_to_dma(deq_state->new_deq_seg, + deq_state->new_deq_ptr); + if (addr == 0) { + xhci_warn(xhci, "WARN Cannot submit config ep after " + "reset ep command\n"); + xhci_warn(xhci, "WARN deq seg = %p, deq ptr = %p\n", + deq_state->new_deq_seg, + deq_state->new_deq_ptr); + return; + } + ep_ctx->deq = cpu_to_le64(addr | deq_state->new_cycle_state); + + added_ctxs = xhci_get_endpoint_flag_from_index(ep_index); + xhci_setup_input_ctx_for_config_ep(xhci, xhci->devs[slot_id]->in_ctx, + xhci->devs[slot_id]->out_ctx, added_ctxs, added_ctxs); +} + +void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci, + struct usb_device *udev, unsigned int ep_index) +{ + struct xhci_dequeue_state deq_state; + struct xhci_virt_ep *ep; + + xhci_dbg(xhci, "Cleaning up stalled endpoint ring\n"); + ep = &xhci->devs[udev->slot_id]->eps[ep_index]; + /* We need to move the HW's dequeue pointer past this TD, + * or it will attempt to resend it on the next doorbell ring. + */ + xhci_find_new_dequeue_state(xhci, udev->slot_id, + ep_index, ep->stopped_stream, ep->stopped_td, + &deq_state); + + /* HW with the reset endpoint quirk will use the saved dequeue state to + * issue a configure endpoint command later. + */ + if (!(xhci->quirks & XHCI_RESET_EP_QUIRK)) { + xhci_dbg(xhci, "Queueing new dequeue state\n"); + xhci_queue_new_dequeue_state(xhci, udev->slot_id, + ep_index, ep->stopped_stream, &deq_state); + } else { + /* Better hope no one uses the input context between now and the + * reset endpoint completion! + * XXX: No idea how this hardware will react when stream rings + * are enabled. + */ + xhci_dbg(xhci, "Setting up input context for " + "configure endpoint command\n"); + xhci_setup_input_ctx_for_quirk(xhci, udev->slot_id, + ep_index, &deq_state); + } +} + +/* Deal with stalled endpoints. The core should have sent the control message + * to clear the halt condition. However, we need to make the xHCI hardware + * reset its sequence number, since a device will expect a sequence number of + * zero after the halt condition is cleared. + * Context: in_interrupt + */ +void xhci_endpoint_reset(struct usb_hcd *hcd, + struct usb_host_endpoint *ep) +{ + struct xhci_hcd *xhci; + struct usb_device *udev; + unsigned int ep_index; + unsigned long flags; + int ret; + struct xhci_virt_ep *virt_ep; + + xhci = hcd_to_xhci(hcd); + udev = (struct usb_device *) ep->hcpriv; + /* Called with a root hub endpoint (or an endpoint that wasn't added + * with xhci_add_endpoint() + */ + if (!ep->hcpriv) + return; + ep_index = xhci_get_endpoint_index(&ep->desc); + virt_ep = &xhci->devs[udev->slot_id]->eps[ep_index]; + if (!virt_ep->stopped_td) { + xhci_dbg(xhci, "Endpoint 0x%x not halted, refusing to reset.\n", + ep->desc.bEndpointAddress); + return; + } + if (usb_endpoint_xfer_control(&ep->desc)) { + xhci_dbg(xhci, "Control endpoint stall already handled.\n"); + return; + } + + xhci_dbg(xhci, "Queueing reset endpoint command\n"); + spin_lock_irqsave(&xhci->lock, flags); + ret = xhci_queue_reset_ep(xhci, udev->slot_id, ep_index); + /* + * Can't change the ring dequeue pointer until it's transitioned to the + * stopped state, which is only upon a successful reset endpoint + * command. Better hope that last command worked! + */ + if (!ret) { + xhci_cleanup_stalled_ring(xhci, udev, ep_index); + kfree(virt_ep->stopped_td); + xhci_ring_cmd_db(xhci); + } + virt_ep->stopped_td = NULL; + virt_ep->stopped_trb = NULL; + virt_ep->stopped_stream = 0; + spin_unlock_irqrestore(&xhci->lock, flags); + + if (ret) + xhci_warn(xhci, "FIXME allocate a new ring segment\n"); +} + +static int xhci_check_streams_endpoint(struct xhci_hcd *xhci, + struct usb_device *udev, struct usb_host_endpoint *ep, + unsigned int slot_id) +{ + int ret; + unsigned int ep_index; + unsigned int ep_state; + + if (!ep) + return -EINVAL; + ret = xhci_check_args(xhci_to_hcd(xhci), udev, ep, 1, true, __func__); + if (ret <= 0) + return -EINVAL; + if (ep->ss_ep_comp.bmAttributes == 0) { + xhci_warn(xhci, "WARN: SuperSpeed Endpoint Companion" + " descriptor for ep 0x%x does not support streams\n", + ep->desc.bEndpointAddress); + return -EINVAL; + } + + ep_index = xhci_get_endpoint_index(&ep->desc); + ep_state = xhci->devs[slot_id]->eps[ep_index].ep_state; + if (ep_state & EP_HAS_STREAMS || + ep_state & EP_GETTING_STREAMS) { + xhci_warn(xhci, "WARN: SuperSpeed bulk endpoint 0x%x " + "already has streams set up.\n", + ep->desc.bEndpointAddress); + xhci_warn(xhci, "Send email to xHCI maintainer and ask for " + "dynamic stream context array reallocation.\n"); + return -EINVAL; + } + if (!list_empty(&xhci->devs[slot_id]->eps[ep_index].ring->td_list)) { + xhci_warn(xhci, "Cannot setup streams for SuperSpeed bulk " + "endpoint 0x%x; URBs are pending.\n", + ep->desc.bEndpointAddress); + return -EINVAL; + } + return 0; +} + +static void xhci_calculate_streams_entries(struct xhci_hcd *xhci, + unsigned int *num_streams, unsigned int *num_stream_ctxs) +{ + unsigned int max_streams; + + /* The stream context array size must be a power of two */ + *num_stream_ctxs = roundup_pow_of_two(*num_streams); + /* + * Find out how many primary stream array entries the host controller + * supports. Later we may use secondary stream arrays (similar to 2nd + * level page entries), but that's an optional feature for xHCI host + * controllers. xHCs must support at least 4 stream IDs. + */ + max_streams = HCC_MAX_PSA(xhci->hcc_params); + if (*num_stream_ctxs > max_streams) { + xhci_dbg(xhci, "xHCI HW only supports %u stream ctx entries.\n", + max_streams); + *num_stream_ctxs = max_streams; + *num_streams = max_streams; + } +} + +/* Returns an error code if one of the endpoint already has streams. + * This does not change any data structures, it only checks and gathers + * information. + */ +static int xhci_calculate_streams_and_bitmask(struct xhci_hcd *xhci, + struct usb_device *udev, + struct usb_host_endpoint **eps, unsigned int num_eps, + unsigned int *num_streams, u32 *changed_ep_bitmask) +{ + unsigned int max_streams; + unsigned int endpoint_flag; + int i; + int ret; + + for (i = 0; i < num_eps; i++) { + ret = xhci_check_streams_endpoint(xhci, udev, + eps[i], udev->slot_id); + if (ret < 0) + return ret; + + max_streams = usb_ss_max_streams(&eps[i]->ss_ep_comp); + if (max_streams < (*num_streams - 1)) { + xhci_dbg(xhci, "Ep 0x%x only supports %u stream IDs.\n", + eps[i]->desc.bEndpointAddress, + max_streams); + *num_streams = max_streams+1; + } + + endpoint_flag = xhci_get_endpoint_flag(&eps[i]->desc); + if (*changed_ep_bitmask & endpoint_flag) + return -EINVAL; + *changed_ep_bitmask |= endpoint_flag; + } + return 0; +} + +static u32 xhci_calculate_no_streams_bitmask(struct xhci_hcd *xhci, + struct usb_device *udev, + struct usb_host_endpoint **eps, unsigned int num_eps) +{ + u32 changed_ep_bitmask = 0; + unsigned int slot_id; + unsigned int ep_index; + unsigned int ep_state; + int i; + + slot_id = udev->slot_id; + if (!xhci->devs[slot_id]) + return 0; + + for (i = 0; i < num_eps; i++) { + ep_index = xhci_get_endpoint_index(&eps[i]->desc); + ep_state = xhci->devs[slot_id]->eps[ep_index].ep_state; + /* Are streams already being freed for the endpoint? */ + if (ep_state & EP_GETTING_NO_STREAMS) { + xhci_warn(xhci, "WARN Can't disable streams for " + "endpoint 0x%x\n, " + "streams are being disabled already.", + eps[i]->desc.bEndpointAddress); + return 0; + } + /* Are there actually any streams to free? */ + if (!(ep_state & EP_HAS_STREAMS) && + !(ep_state & EP_GETTING_STREAMS)) { + xhci_warn(xhci, "WARN Can't disable streams for " + "endpoint 0x%x\n, " + "streams are already disabled!", + eps[i]->desc.bEndpointAddress); + xhci_warn(xhci, "WARN xhci_free_streams() called " + "with non-streams endpoint\n"); + return 0; + } + changed_ep_bitmask |= xhci_get_endpoint_flag(&eps[i]->desc); + } + return changed_ep_bitmask; +} + +/* + * The USB device drivers use this function (though the HCD interface in USB + * core) to prepare a set of bulk endpoints to use streams. Streams are used to + * coordinate mass storage command queueing across multiple endpoints (basically + * a stream ID == a task ID). + * + * Setting up streams involves allocating the same size stream context array + * for each endpoint and issuing a configure endpoint command for all endpoints. + * + * Don't allow the call to succeed if one endpoint only supports one stream + * (which means it doesn't support streams at all). + * + * Drivers may get less stream IDs than they asked for, if the host controller + * hardware or endpoints claim they can't support the number of requested + * stream IDs. + */ +int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev, + struct usb_host_endpoint **eps, unsigned int num_eps, + unsigned int num_streams, gfp_t mem_flags) +{ + int i, ret; + struct xhci_hcd *xhci; + struct xhci_virt_device *vdev; + struct xhci_command *config_cmd; + unsigned int ep_index; + unsigned int num_stream_ctxs; + unsigned long flags; + u32 changed_ep_bitmask = 0; + + if (!eps) + return -EINVAL; + + /* Add one to the number of streams requested to account for + * stream 0 that is reserved for xHCI usage. + */ + num_streams += 1; + xhci = hcd_to_xhci(hcd); + xhci_dbg(xhci, "Driver wants %u stream IDs (including stream 0).\n", + num_streams); + + config_cmd = xhci_alloc_command(xhci, true, true, mem_flags); + if (!config_cmd) { + xhci_dbg(xhci, "Could not allocate xHCI command structure.\n"); + return -ENOMEM; + } + + /* Check to make sure all endpoints are not already configured for + * streams. While we're at it, find the maximum number of streams that + * all the endpoints will support and check for duplicate endpoints. + */ + spin_lock_irqsave(&xhci->lock, flags); + ret = xhci_calculate_streams_and_bitmask(xhci, udev, eps, + num_eps, &num_streams, &changed_ep_bitmask); + if (ret < 0) { + xhci_free_command(xhci, config_cmd); + spin_unlock_irqrestore(&xhci->lock, flags); + return ret; + } + if (num_streams <= 1) { + xhci_warn(xhci, "WARN: endpoints can't handle " + "more than one stream.\n"); + xhci_free_command(xhci, config_cmd); + spin_unlock_irqrestore(&xhci->lock, flags); + return -EINVAL; + } + vdev = xhci->devs[udev->slot_id]; + /* Mark each endpoint as being in transition, so + * xhci_urb_enqueue() will reject all URBs. + */ + for (i = 0; i < num_eps; i++) { + ep_index = xhci_get_endpoint_index(&eps[i]->desc); + vdev->eps[ep_index].ep_state |= EP_GETTING_STREAMS; + } + spin_unlock_irqrestore(&xhci->lock, flags); + + /* Setup internal data structures and allocate HW data structures for + * streams (but don't install the HW structures in the input context + * until we're sure all memory allocation succeeded). + */ + xhci_calculate_streams_entries(xhci, &num_streams, &num_stream_ctxs); + xhci_dbg(xhci, "Need %u stream ctx entries for %u stream IDs.\n", + num_stream_ctxs, num_streams); + + for (i = 0; i < num_eps; i++) { + ep_index = xhci_get_endpoint_index(&eps[i]->desc); + vdev->eps[ep_index].stream_info = xhci_alloc_stream_info(xhci, + num_stream_ctxs, + num_streams, mem_flags); + if (!vdev->eps[ep_index].stream_info) + goto cleanup; + /* Set maxPstreams in endpoint context and update deq ptr to + * point to stream context array. FIXME + */ + } + + /* Set up the input context for a configure endpoint command. */ + for (i = 0; i < num_eps; i++) { + struct xhci_ep_ctx *ep_ctx; + + ep_index = xhci_get_endpoint_index(&eps[i]->desc); + ep_ctx = xhci_get_ep_ctx(xhci, config_cmd->in_ctx, ep_index); + + xhci_endpoint_copy(xhci, config_cmd->in_ctx, + vdev->out_ctx, ep_index); + xhci_setup_streams_ep_input_ctx(xhci, ep_ctx, + vdev->eps[ep_index].stream_info); + } + /* Tell the HW to drop its old copy of the endpoint context info + * and add the updated copy from the input context. + */ + xhci_setup_input_ctx_for_config_ep(xhci, config_cmd->in_ctx, + vdev->out_ctx, changed_ep_bitmask, changed_ep_bitmask); + + /* Issue and wait for the configure endpoint command */ + ret = xhci_configure_endpoint(xhci, udev, config_cmd, + false, false); + + /* xHC rejected the configure endpoint command for some reason, so we + * leave the old ring intact and free our internal streams data + * structure. + */ + if (ret < 0) + goto cleanup; + + spin_lock_irqsave(&xhci->lock, flags); + for (i = 0; i < num_eps; i++) { + ep_index = xhci_get_endpoint_index(&eps[i]->desc); + vdev->eps[ep_index].ep_state &= ~EP_GETTING_STREAMS; + xhci_dbg(xhci, "Slot %u ep ctx %u now has streams.\n", + udev->slot_id, ep_index); + vdev->eps[ep_index].ep_state |= EP_HAS_STREAMS; + } + xhci_free_command(xhci, config_cmd); + spin_unlock_irqrestore(&xhci->lock, flags); + + /* Subtract 1 for stream 0, which drivers can't use */ + return num_streams - 1; + +cleanup: + /* If it didn't work, free the streams! */ + for (i = 0; i < num_eps; i++) { + ep_index = xhci_get_endpoint_index(&eps[i]->desc); + xhci_free_stream_info(xhci, vdev->eps[ep_index].stream_info); + vdev->eps[ep_index].stream_info = NULL; + /* FIXME Unset maxPstreams in endpoint context and + * update deq ptr to point to normal string ring. + */ + vdev->eps[ep_index].ep_state &= ~EP_GETTING_STREAMS; + vdev->eps[ep_index].ep_state &= ~EP_HAS_STREAMS; + xhci_endpoint_zero(xhci, vdev, eps[i]); + } + xhci_free_command(xhci, config_cmd); + return -ENOMEM; +} + +/* Transition the endpoint from using streams to being a "normal" endpoint + * without streams. + * + * Modify the endpoint context state, submit a configure endpoint command, + * and free all endpoint rings for streams if that completes successfully. + */ +int xhci_free_streams(struct usb_hcd *hcd, struct usb_device *udev, + struct usb_host_endpoint **eps, unsigned int num_eps, + gfp_t mem_flags) +{ + int i, ret; + struct xhci_hcd *xhci; + struct xhci_virt_device *vdev; + struct xhci_command *command; + unsigned int ep_index; + unsigned long flags; + u32 changed_ep_bitmask; + + xhci = hcd_to_xhci(hcd); + vdev = xhci->devs[udev->slot_id]; + + /* Set up a configure endpoint command to remove the streams rings */ + spin_lock_irqsave(&xhci->lock, flags); + changed_ep_bitmask = xhci_calculate_no_streams_bitmask(xhci, + udev, eps, num_eps); + if (changed_ep_bitmask == 0) { + spin_unlock_irqrestore(&xhci->lock, flags); + return -EINVAL; + } + + /* Use the xhci_command structure from the first endpoint. We may have + * allocated too many, but the driver may call xhci_free_streams() for + * each endpoint it grouped into one call to xhci_alloc_streams(). + */ + ep_index = xhci_get_endpoint_index(&eps[0]->desc); + command = vdev->eps[ep_index].stream_info->free_streams_command; + for (i = 0; i < num_eps; i++) { + struct xhci_ep_ctx *ep_ctx; + + ep_index = xhci_get_endpoint_index(&eps[i]->desc); + ep_ctx = xhci_get_ep_ctx(xhci, command->in_ctx, ep_index); + xhci->devs[udev->slot_id]->eps[ep_index].ep_state |= + EP_GETTING_NO_STREAMS; + + xhci_endpoint_copy(xhci, command->in_ctx, + vdev->out_ctx, ep_index); + xhci_setup_no_streams_ep_input_ctx(xhci, ep_ctx, + &vdev->eps[ep_index]); + } + xhci_setup_input_ctx_for_config_ep(xhci, command->in_ctx, + vdev->out_ctx, changed_ep_bitmask, changed_ep_bitmask); + spin_unlock_irqrestore(&xhci->lock, flags); + + /* Issue and wait for the configure endpoint command, + * which must succeed. + */ + ret = xhci_configure_endpoint(xhci, udev, command, + false, true); + + /* xHC rejected the configure endpoint command for some reason, so we + * leave the streams rings intact. + */ + if (ret < 0) + return ret; + + spin_lock_irqsave(&xhci->lock, flags); + for (i = 0; i < num_eps; i++) { + ep_index = xhci_get_endpoint_index(&eps[i]->desc); + xhci_free_stream_info(xhci, vdev->eps[ep_index].stream_info); + vdev->eps[ep_index].stream_info = NULL; + /* FIXME Unset maxPstreams in endpoint context and + * update deq ptr to point to normal string ring. + */ + vdev->eps[ep_index].ep_state &= ~EP_GETTING_NO_STREAMS; + vdev->eps[ep_index].ep_state &= ~EP_HAS_STREAMS; + } + spin_unlock_irqrestore(&xhci->lock, flags); + + return 0; +} + +/* + * Deletes endpoint resources for endpoints that were active before a Reset + * Device command, or a Disable Slot command. The Reset Device command leaves + * the control endpoint intact, whereas the Disable Slot command deletes it. + * + * Must be called with xhci->lock held. + */ +void xhci_free_device_endpoint_resources(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, bool drop_control_ep) +{ + int i; + unsigned int num_dropped_eps = 0; + unsigned int drop_flags = 0; + + for (i = (drop_control_ep ? 0 : 1); i < 31; i++) { + if (virt_dev->eps[i].ring) { + drop_flags |= 1 << i; + num_dropped_eps++; + } + } + xhci->num_active_eps -= num_dropped_eps; + if (num_dropped_eps) + xhci_dbg(xhci, "Dropped %u ep ctxs, flags = 0x%x, " + "%u now active.\n", + num_dropped_eps, drop_flags, + xhci->num_active_eps); +} + +/* + * This submits a Reset Device Command, which will set the device state to 0, + * set the device address to 0, and disable all the endpoints except the default + * control endpoint. The USB core should come back and call + * xhci_address_device(), and then re-set up the configuration. If this is + * called because of a usb_reset_and_verify_device(), then the old alternate + * settings will be re-installed through the normal bandwidth allocation + * functions. + * + * Wait for the Reset Device command to finish. Remove all structures + * associated with the endpoints that were disabled. Clear the input device + * structure? Cache the rings? Reset the control endpoint 0 max packet size? + * + * If the virt_dev to be reset does not exist or does not match the udev, + * it means the device is lost, possibly due to the xHC restore error and + * re-initialization during S3/S4. In this case, call xhci_alloc_dev() to + * re-allocate the device. + */ +int xhci_discover_or_reset_device(struct usb_hcd *hcd, struct usb_device *udev) +{ + int ret, i; + unsigned long flags; + struct xhci_hcd *xhci; + unsigned int slot_id; + struct xhci_virt_device *virt_dev; + struct xhci_command *reset_device_cmd; + int timeleft; + int last_freed_endpoint; + struct xhci_slot_ctx *slot_ctx; + int old_active_eps = 0; + + ret = xhci_check_args(hcd, udev, NULL, 0, false, __func__); + if (ret <= 0) + return ret; + xhci = hcd_to_xhci(hcd); + slot_id = udev->slot_id; + virt_dev = xhci->devs[slot_id]; + if (!virt_dev) { + xhci_dbg(xhci, "The device to be reset with slot ID %u does " + "not exist. Re-allocate the device\n", slot_id); + ret = xhci_alloc_dev(hcd, udev); + if (ret == 1) + return 0; + else + return -EINVAL; + } + + if (virt_dev->udev != udev) { + /* If the virt_dev and the udev does not match, this virt_dev + * may belong to another udev. + * Re-allocate the device. + */ + xhci_dbg(xhci, "The device to be reset with slot ID %u does " + "not match the udev. Re-allocate the device\n", + slot_id); + ret = xhci_alloc_dev(hcd, udev); + if (ret == 1) + return 0; + else + return -EINVAL; + } + + /* If device is not setup, there is no point in resetting it */ + slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); + if (GET_SLOT_STATE(le32_to_cpu(slot_ctx->dev_state)) == + SLOT_STATE_DISABLED) + return 0; + + xhci_dbg(xhci, "Resetting device with slot ID %u\n", slot_id); + /* Allocate the command structure that holds the struct completion. + * Assume we're in process context, since the normal device reset + * process has to wait for the device anyway. Storage devices are + * reset as part of error handling, so use GFP_NOIO instead of + * GFP_KERNEL. + */ + reset_device_cmd = xhci_alloc_command(xhci, false, true, GFP_NOIO); + if (!reset_device_cmd) { + xhci_dbg(xhci, "Couldn't allocate command structure.\n"); + return -ENOMEM; + } + + /* Attempt to submit the Reset Device command to the command ring */ + spin_lock_irqsave(&xhci->lock, flags); + reset_device_cmd->command_trb = xhci->cmd_ring->enqueue; + + /* Enqueue pointer can be left pointing to the link TRB, + * we must handle that + */ + if (TRB_TYPE_LINK_LE32(reset_device_cmd->command_trb->link.control)) + reset_device_cmd->command_trb = + xhci->cmd_ring->enq_seg->next->trbs; + + list_add_tail(&reset_device_cmd->cmd_list, &virt_dev->cmd_list); + ret = xhci_queue_reset_device(xhci, slot_id); + if (ret) { + xhci_dbg(xhci, "FIXME: allocate a command ring segment\n"); + list_del(&reset_device_cmd->cmd_list); + spin_unlock_irqrestore(&xhci->lock, flags); + goto command_cleanup; + } + xhci_ring_cmd_db(xhci); + spin_unlock_irqrestore(&xhci->lock, flags); + + /* Wait for the Reset Device command to finish */ + timeleft = wait_for_completion_interruptible_timeout( + reset_device_cmd->completion, + USB_CTRL_SET_TIMEOUT); + if (timeleft <= 0) { + xhci_warn(xhci, "%s while waiting for reset device command\n", + timeleft == 0 ? "Timeout" : "Signal"); + spin_lock_irqsave(&xhci->lock, flags); + /* The timeout might have raced with the event ring handler, so + * only delete from the list if the item isn't poisoned. + */ + if (reset_device_cmd->cmd_list.next != LIST_POISON1) + list_del(&reset_device_cmd->cmd_list); + spin_unlock_irqrestore(&xhci->lock, flags); + ret = -ETIME; + goto command_cleanup; + } + + /* The Reset Device command can't fail, according to the 0.95/0.96 spec, + * unless we tried to reset a slot ID that wasn't enabled, + * or the device wasn't in the addressed or configured state. + */ + ret = reset_device_cmd->status; + switch (ret) { + case COMP_EBADSLT: /* 0.95 completion code for bad slot ID */ + case COMP_CTX_STATE: /* 0.96 completion code for same thing */ + xhci_info(xhci, "Can't reset device (slot ID %u) in %s state\n", + slot_id, + xhci_get_slot_state(xhci, virt_dev->out_ctx)); + xhci_info(xhci, "Not freeing device rings.\n"); + /* Don't treat this as an error. May change my mind later. */ + ret = 0; + goto command_cleanup; + case COMP_SUCCESS: + xhci_dbg(xhci, "Successful reset device command.\n"); + break; + default: + if (xhci_is_vendor_info_code(xhci, ret)) + break; + xhci_warn(xhci, "Unknown completion code %u for " + "reset device command.\n", ret); + ret = -EINVAL; + goto command_cleanup; + } + + /* Free up host controller endpoint resources */ + if ((xhci->quirks & XHCI_EP_LIMIT_QUIRK)) { + spin_lock_irqsave(&xhci->lock, flags); + /* Don't delete the default control endpoint resources */ + xhci_free_device_endpoint_resources(xhci, virt_dev, false); + spin_unlock_irqrestore(&xhci->lock, flags); + } + + /* Everything but endpoint 0 is disabled, so free or cache the rings. */ + last_freed_endpoint = 1; + for (i = 1; i < 31; ++i) { + struct xhci_virt_ep *ep = &virt_dev->eps[i]; + + if (ep->ep_state & EP_HAS_STREAMS) { + xhci_free_stream_info(xhci, ep->stream_info); + ep->stream_info = NULL; + ep->ep_state &= ~EP_HAS_STREAMS; + } + + if (ep->ring) { + xhci_free_or_cache_endpoint_ring(xhci, virt_dev, i); + last_freed_endpoint = i; + } + if (!list_empty(&virt_dev->eps[i].bw_endpoint_list)) + xhci_drop_ep_from_interval_table(xhci, + &virt_dev->eps[i].bw_info, + virt_dev->bw_table, + udev, + &virt_dev->eps[i], + virt_dev->tt_info); + xhci_clear_endpoint_bw_info(&virt_dev->eps[i].bw_info); + } + /* If necessary, update the number of active TTs on this root port */ + xhci_update_tt_active_eps(xhci, virt_dev, old_active_eps); + + xhci_dbg(xhci, "Output context after successful reset device cmd:\n"); + xhci_dbg_ctx(xhci, virt_dev->out_ctx, last_freed_endpoint); + ret = 0; + +command_cleanup: + xhci_free_command(xhci, reset_device_cmd); + return ret; +} + +/* + * At this point, the struct usb_device is about to go away, the device has + * disconnected, and all traffic has been stopped and the endpoints have been + * disabled. Free any HC data structures associated with that device. + */ +void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + struct xhci_virt_device *virt_dev; + unsigned long flags; + u32 state; + int i, ret; + + ret = xhci_check_args(hcd, udev, NULL, 0, true, __func__); + /* If the host is halted due to driver unload, we still need to free the + * device. + */ + if (ret <= 0 && ret != -ENODEV) + return; + + virt_dev = xhci->devs[udev->slot_id]; + + /* Stop any wayward timer functions (which may grab the lock) */ + for (i = 0; i < 31; ++i) { + virt_dev->eps[i].ep_state &= ~EP_HALT_PENDING; + del_timer_sync(&virt_dev->eps[i].stop_cmd_timer); + } + + if (udev->usb2_hw_lpm_enabled) { + xhci_set_usb2_hardware_lpm(hcd, udev, 0); + udev->usb2_hw_lpm_enabled = 0; + } + + spin_lock_irqsave(&xhci->lock, flags); + /* Don't disable the slot if the host controller is dead. */ + state = xhci_readl(xhci, &xhci->op_regs->status); + if (state == 0xffffffff || (xhci->xhc_state & XHCI_STATE_DYING) || + (xhci->xhc_state & XHCI_STATE_HALTED)) { + xhci_free_virt_device(xhci, udev->slot_id); + spin_unlock_irqrestore(&xhci->lock, flags); + return; + } + + if (xhci_queue_slot_control(xhci, TRB_DISABLE_SLOT, udev->slot_id)) { + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_dbg(xhci, "FIXME: allocate a command ring segment\n"); + return; + } + xhci_ring_cmd_db(xhci); + spin_unlock_irqrestore(&xhci->lock, flags); + /* + * Event command completion handler will free any data structures + * associated with the slot. XXX Can free sleep? + */ +} + +/* + * Checks if we have enough host controller resources for the default control + * endpoint. + * + * Must be called with xhci->lock held. + */ +static int xhci_reserve_host_control_ep_resources(struct xhci_hcd *xhci) +{ + if (xhci->num_active_eps + 1 > xhci->limit_active_eps) { + xhci_dbg(xhci, "Not enough ep ctxs: " + "%u active, need to add 1, limit is %u.\n", + xhci->num_active_eps, xhci->limit_active_eps); + return -ENOMEM; + } + xhci->num_active_eps += 1; + xhci_dbg(xhci, "Adding 1 ep ctx, %u now active.\n", + xhci->num_active_eps); + return 0; +} + + +/* + * Returns 0 if the xHC ran out of device slots, the Enable Slot command + * timed out, or allocating memory failed. Returns 1 on success. + */ +int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + unsigned long flags; + int timeleft; + int ret; + + spin_lock_irqsave(&xhci->lock, flags); + ret = xhci_queue_slot_control(xhci, TRB_ENABLE_SLOT, 0); + if (ret) { + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_dbg(xhci, "FIXME: allocate a command ring segment\n"); + return 0; + } + xhci_ring_cmd_db(xhci); + spin_unlock_irqrestore(&xhci->lock, flags); + + /* XXX: how much time for xHC slot assignment? */ + timeleft = wait_for_completion_interruptible_timeout(&xhci->addr_dev, + USB_CTRL_SET_TIMEOUT); + if (timeleft <= 0) { + xhci_warn(xhci, "%s while waiting for a slot\n", + timeleft == 0 ? "Timeout" : "Signal"); + /* FIXME cancel the enable slot request */ + return 0; + } + + if (!xhci->slot_id) { + xhci_err(xhci, "Error while assigning device slot ID\n"); + return 0; + } + + if ((xhci->quirks & XHCI_EP_LIMIT_QUIRK)) { + spin_lock_irqsave(&xhci->lock, flags); + ret = xhci_reserve_host_control_ep_resources(xhci); + if (ret) { + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_warn(xhci, "Not enough host resources, " + "active endpoint contexts = %u\n", + xhci->num_active_eps); + goto disable_slot; + } + spin_unlock_irqrestore(&xhci->lock, flags); + } + /* Use GFP_NOIO, since this function can be called from + * xhci_discover_or_reset_device(), which may be called as part of + * mass storage driver error handling. + */ + if (!xhci_alloc_virt_device(xhci, xhci->slot_id, udev, GFP_NOIO)) { + xhci_warn(xhci, "Could not allocate xHCI USB device data structures\n"); + goto disable_slot; + } + udev->slot_id = xhci->slot_id; + /* Is this a LS or FS device under a HS hub? */ + /* Hub or peripherial? */ + return 1; + +disable_slot: + /* Disable slot, if we can do it without mem alloc */ + spin_lock_irqsave(&xhci->lock, flags); + if (!xhci_queue_slot_control(xhci, TRB_DISABLE_SLOT, udev->slot_id)) + xhci_ring_cmd_db(xhci); + spin_unlock_irqrestore(&xhci->lock, flags); + return 0; +} + +/* + * Issue an Address Device command (which will issue a SetAddress request to + * the device). + * We should be protected by the usb_address0_mutex in khubd's hub_port_init, so + * we should only issue and wait on one address command at the same time. + * + * We add one to the device address issued by the hardware because the USB core + * uses address 1 for the root hubs (even though they're not really devices). + */ +int xhci_address_device(struct usb_hcd *hcd, struct usb_device *udev) +{ + unsigned long flags; + int timeleft; + struct xhci_virt_device *virt_dev; + int ret = 0; + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + struct xhci_slot_ctx *slot_ctx; + struct xhci_input_control_ctx *ctrl_ctx; + u64 temp_64; + + if (!udev->slot_id) { + xhci_dbg(xhci, "Bad Slot ID %d\n", udev->slot_id); + return -EINVAL; + } + + virt_dev = xhci->devs[udev->slot_id]; + + if (WARN_ON(!virt_dev)) { + /* + * In plug/unplug torture test with an NEC controller, + * a zero-dereference was observed once due to virt_dev = 0. + * Print useful debug rather than crash if it is observed again! + */ + xhci_warn(xhci, "Virt dev invalid for slot_id 0x%x!\n", + udev->slot_id); + return -EINVAL; + } + + slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx); + /* + * If this is the first Set Address since device plug-in or + * virt_device realloaction after a resume with an xHCI power loss, + * then set up the slot context. + */ + if (!slot_ctx->dev_info) + xhci_setup_addressable_virt_dev(xhci, udev); + /* Otherwise, update the control endpoint ring enqueue pointer. */ + else + xhci_copy_ep0_dequeue_into_input_ctx(xhci, udev); + ctrl_ctx = xhci_get_input_control_ctx(xhci, virt_dev->in_ctx); + ctrl_ctx->add_flags = cpu_to_le32(SLOT_FLAG | EP0_FLAG); + ctrl_ctx->drop_flags = 0; + + xhci_dbg(xhci, "Slot ID %d Input Context:\n", udev->slot_id); + xhci_dbg_ctx(xhci, virt_dev->in_ctx, 2); + + spin_lock_irqsave(&xhci->lock, flags); + ret = xhci_queue_address_device(xhci, virt_dev->in_ctx->dma, + udev->slot_id); + if (ret) { + spin_unlock_irqrestore(&xhci->lock, flags); + xhci_dbg(xhci, "FIXME: allocate a command ring segment\n"); + return ret; + } + xhci_ring_cmd_db(xhci); + spin_unlock_irqrestore(&xhci->lock, flags); + + /* ctrl tx can take up to 5 sec; XXX: need more time for xHC? */ + timeleft = wait_for_completion_interruptible_timeout(&xhci->addr_dev, + USB_CTRL_SET_TIMEOUT); + /* FIXME: From section 4.3.4: "Software shall be responsible for timing + * the SetAddress() "recovery interval" required by USB and aborting the + * command on a timeout. + */ + if (timeleft <= 0) { + xhci_warn(xhci, "%s while waiting for address device command\n", + timeleft == 0 ? "Timeout" : "Signal"); + /* FIXME cancel the address device command */ + return -ETIME; + } + + switch (virt_dev->cmd_status) { + case COMP_CTX_STATE: + case COMP_EBADSLT: + xhci_err(xhci, "Setup ERROR: address device command for slot %d.\n", + udev->slot_id); + ret = -EINVAL; + break; + case COMP_TX_ERR: + dev_warn(&udev->dev, "Device not responding to set address.\n"); + ret = -EPROTO; + break; + case COMP_DEV_ERR: + dev_warn(&udev->dev, "ERROR: Incompatible device for address " + "device command.\n"); + ret = -ENODEV; + break; + case COMP_SUCCESS: + xhci_dbg(xhci, "Successful Address Device command\n"); + break; + default: + xhci_err(xhci, "ERROR: unexpected command completion " + "code 0x%x.\n", virt_dev->cmd_status); + xhci_dbg(xhci, "Slot ID %d Output Context:\n", udev->slot_id); + xhci_dbg_ctx(xhci, virt_dev->out_ctx, 2); + ret = -EINVAL; + break; + } + if (ret) { + return ret; + } + temp_64 = xhci_read_64(xhci, &xhci->op_regs->dcbaa_ptr); + xhci_dbg(xhci, "Op regs DCBAA ptr = %#016llx\n", temp_64); + xhci_dbg(xhci, "Slot ID %d dcbaa entry @%p = %#016llx\n", + udev->slot_id, + &xhci->dcbaa->dev_context_ptrs[udev->slot_id], + (unsigned long long) + le64_to_cpu(xhci->dcbaa->dev_context_ptrs[udev->slot_id])); + xhci_dbg(xhci, "Output Context DMA address = %#08llx\n", + (unsigned long long)virt_dev->out_ctx->dma); + xhci_dbg(xhci, "Slot ID %d Input Context:\n", udev->slot_id); + xhci_dbg_ctx(xhci, virt_dev->in_ctx, 2); + xhci_dbg(xhci, "Slot ID %d Output Context:\n", udev->slot_id); + xhci_dbg_ctx(xhci, virt_dev->out_ctx, 2); + /* + * USB core uses address 1 for the roothubs, so we add one to the + * address given back to us by the HC. + */ + slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); + /* Use kernel assigned address for devices; store xHC assigned + * address locally. */ + virt_dev->address = (le32_to_cpu(slot_ctx->dev_state) & DEV_ADDR_MASK) + + 1; + /* Zero the input context control for later use */ + ctrl_ctx->add_flags = 0; + ctrl_ctx->drop_flags = 0; + + xhci_dbg(xhci, "Internal device address = %d\n", virt_dev->address); + + return 0; +} + +#ifdef CONFIG_USB_SUSPEND + +/* BESL to HIRD Encoding array for USB2 LPM */ +static int xhci_besl_encoding[16] = {125, 150, 200, 300, 400, 500, 1000, 2000, + 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000}; + +/* Calculate HIRD/BESL for USB2 PORTPMSC*/ +static int xhci_calculate_hird_besl(struct xhci_hcd *xhci, + struct usb_device *udev) +{ + int u2del, besl, besl_host; + int besl_device = 0; + u32 field; + + u2del = HCS_U2_LATENCY(xhci->hcs_params3); + field = le32_to_cpu(udev->bos->ext_cap->bmAttributes); + + if (field & USB_BESL_SUPPORT) { + for (besl_host = 0; besl_host < 16; besl_host++) { + if (xhci_besl_encoding[besl_host] >= u2del) + break; + } + /* Use baseline BESL value as default */ + if (field & USB_BESL_BASELINE_VALID) + besl_device = USB_GET_BESL_BASELINE(field); + else if (field & USB_BESL_DEEP_VALID) + besl_device = USB_GET_BESL_DEEP(field); + } else { + if (u2del <= 50) + besl_host = 0; + else + besl_host = (u2del - 51) / 75 + 1; + } + + besl = besl_host + besl_device; + if (besl > 15) + besl = 15; + + return besl; +} + +static int xhci_usb2_software_lpm_test(struct usb_hcd *hcd, + struct usb_device *udev) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + struct dev_info *dev_info; + __le32 __iomem **port_array; + __le32 __iomem *addr, *pm_addr; + u32 temp, dev_id; + unsigned int port_num; + unsigned long flags; + int hird; + int ret; + + if (hcd->speed == HCD_USB3 || !xhci->sw_lpm_support || + !udev->lpm_capable) + return -EINVAL; + + /* we only support lpm for non-hub device connected to root hub yet */ + if (!udev->parent || udev->parent->parent || + udev->descriptor.bDeviceClass == USB_CLASS_HUB) + return -EINVAL; + + spin_lock_irqsave(&xhci->lock, flags); + + /* Look for devices in lpm_failed_devs list */ + dev_id = le16_to_cpu(udev->descriptor.idVendor) << 16 | + le16_to_cpu(udev->descriptor.idProduct); + list_for_each_entry(dev_info, &xhci->lpm_failed_devs, list) { + if (dev_info->dev_id == dev_id) { + ret = -EINVAL; + goto finish; + } + } + + port_array = xhci->usb2_ports; + port_num = udev->portnum - 1; + + if (port_num > HCS_MAX_PORTS(xhci->hcs_params1)) { + xhci_dbg(xhci, "invalid port number %d\n", udev->portnum); + ret = -EINVAL; + goto finish; + } + + /* + * Test USB 2.0 software LPM. + * FIXME: some xHCI 1.0 hosts may implement a new register to set up + * hardware-controlled USB 2.0 LPM. See section 5.4.11 and 4.23.5.1.1.1 + * in the June 2011 errata release. + */ + xhci_dbg(xhci, "test port %d software LPM\n", port_num); + /* + * Set L1 Device Slot and HIRD/BESL. + * Check device's USB 2.0 extension descriptor to determine whether + * HIRD or BESL shoule be used. See USB2.0 LPM errata. + */ + pm_addr = port_array[port_num] + 1; + hird = xhci_calculate_hird_besl(xhci, udev); + temp = PORT_L1DS(udev->slot_id) | PORT_HIRD(hird); + xhci_writel(xhci, temp, pm_addr); + + /* Set port link state to U2(L1) */ + addr = port_array[port_num]; + xhci_set_link_state(xhci, port_array, port_num, XDEV_U2); + + /* wait for ACK */ + spin_unlock_irqrestore(&xhci->lock, flags); + msleep(10); + spin_lock_irqsave(&xhci->lock, flags); + + /* Check L1 Status */ + ret = handshake(xhci, pm_addr, PORT_L1S_MASK, PORT_L1S_SUCCESS, 125); + if (ret != -ETIMEDOUT) { + /* enter L1 successfully */ + temp = xhci_readl(xhci, addr); + xhci_dbg(xhci, "port %d entered L1 state, port status 0x%x\n", + port_num, temp); + ret = 0; + } else { + temp = xhci_readl(xhci, pm_addr); + xhci_dbg(xhci, "port %d software lpm failed, L1 status %d\n", + port_num, temp & PORT_L1S_MASK); + ret = -EINVAL; + } + + /* Resume the port */ + xhci_set_link_state(xhci, port_array, port_num, XDEV_U0); + + spin_unlock_irqrestore(&xhci->lock, flags); + msleep(10); + spin_lock_irqsave(&xhci->lock, flags); + + /* Clear PLC */ + xhci_test_and_clear_bit(xhci, port_array, port_num, PORT_PLC); + + /* Check PORTSC to make sure the device is in the right state */ + if (!ret) { + temp = xhci_readl(xhci, addr); + xhci_dbg(xhci, "resumed port %d status 0x%x\n", port_num, temp); + if (!(temp & PORT_CONNECT) || !(temp & PORT_PE) || + (temp & PORT_PLS_MASK) != XDEV_U0) { + xhci_dbg(xhci, "port L1 resume fail\n"); + ret = -EINVAL; + } + } + + if (ret) { + /* Insert dev to lpm_failed_devs list */ + xhci_warn(xhci, "device LPM test failed, may disconnect and " + "re-enumerate\n"); + dev_info = kzalloc(sizeof(struct dev_info), GFP_ATOMIC); + if (!dev_info) { + ret = -ENOMEM; + goto finish; + } + dev_info->dev_id = dev_id; + INIT_LIST_HEAD(&dev_info->list); + list_add(&dev_info->list, &xhci->lpm_failed_devs); + } else { + xhci_ring_device(xhci, udev->slot_id); + } + +finish: + spin_unlock_irqrestore(&xhci->lock, flags); + return ret; +} + +int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd, + struct usb_device *udev, int enable) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + __le32 __iomem **port_array; + __le32 __iomem *pm_addr; + u32 temp; + unsigned int port_num; + unsigned long flags; + int hird; + + if (hcd->speed == HCD_USB3 || !xhci->hw_lpm_support || + !udev->lpm_capable) + return -EPERM; + + if (!udev->parent || udev->parent->parent || + udev->descriptor.bDeviceClass == USB_CLASS_HUB) + return -EPERM; + + if (udev->usb2_hw_lpm_capable != 1) + return -EPERM; + + spin_lock_irqsave(&xhci->lock, flags); + + port_array = xhci->usb2_ports; + port_num = udev->portnum - 1; + pm_addr = port_array[port_num] + 1; + temp = xhci_readl(xhci, pm_addr); + + xhci_dbg(xhci, "%s port %d USB2 hardware LPM\n", + enable ? "enable" : "disable", port_num); + + hird = xhci_calculate_hird_besl(xhci, udev); + + if (enable) { + temp &= ~PORT_HIRD_MASK; + temp |= PORT_HIRD(hird) | PORT_RWE; + xhci_writel(xhci, temp, pm_addr); + temp = xhci_readl(xhci, pm_addr); + temp |= PORT_HLE; + xhci_writel(xhci, temp, pm_addr); + } else { + temp &= ~(PORT_HLE | PORT_RWE | PORT_HIRD_MASK); + xhci_writel(xhci, temp, pm_addr); + } + + spin_unlock_irqrestore(&xhci->lock, flags); + return 0; +} + +int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + int ret; + + ret = xhci_usb2_software_lpm_test(hcd, udev); + if (!ret) { + xhci_dbg(xhci, "software LPM test succeed\n"); + if (xhci->hw_lpm_support == 1) { + udev->usb2_hw_lpm_capable = 1; + ret = xhci_set_usb2_hardware_lpm(hcd, udev, 1); + if (!ret) + udev->usb2_hw_lpm_enabled = 1; + } + } + + return 0; +} + +#else + +int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd, + struct usb_device *udev, int enable) +{ + return 0; +} + +int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev) +{ + return 0; +} + +#endif /* CONFIG_USB_SUSPEND */ + +/* Once a hub descriptor is fetched for a device, we need to update the xHC's + * internal data structures for the device. + */ +int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev, + struct usb_tt *tt, gfp_t mem_flags) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + struct xhci_virt_device *vdev; + struct xhci_command *config_cmd; + struct xhci_input_control_ctx *ctrl_ctx; + struct xhci_slot_ctx *slot_ctx; + unsigned long flags; + unsigned think_time; + int ret; + + /* Ignore root hubs */ + if (!hdev->parent) + return 0; + + vdev = xhci->devs[hdev->slot_id]; + if (!vdev) { + xhci_warn(xhci, "Cannot update hub desc for unknown device.\n"); + return -EINVAL; + } + config_cmd = xhci_alloc_command(xhci, true, true, mem_flags); + if (!config_cmd) { + xhci_dbg(xhci, "Could not allocate xHCI command structure.\n"); + return -ENOMEM; + } + + spin_lock_irqsave(&xhci->lock, flags); + if (hdev->speed == USB_SPEED_HIGH && + xhci_alloc_tt_info(xhci, vdev, hdev, tt, GFP_ATOMIC)) { + xhci_dbg(xhci, "Could not allocate xHCI TT structure.\n"); + xhci_free_command(xhci, config_cmd); + spin_unlock_irqrestore(&xhci->lock, flags); + return -ENOMEM; + } + + xhci_slot_copy(xhci, config_cmd->in_ctx, vdev->out_ctx); + ctrl_ctx = xhci_get_input_control_ctx(xhci, config_cmd->in_ctx); + ctrl_ctx->add_flags |= cpu_to_le32(SLOT_FLAG); + slot_ctx = xhci_get_slot_ctx(xhci, config_cmd->in_ctx); + slot_ctx->dev_info |= cpu_to_le32(DEV_HUB); + if (tt->multi) + slot_ctx->dev_info |= cpu_to_le32(DEV_MTT); + if (xhci->hci_version > 0x95) { + xhci_dbg(xhci, "xHCI version %x needs hub " + "TT think time and number of ports\n", + (unsigned int) xhci->hci_version); + slot_ctx->dev_info2 |= cpu_to_le32(XHCI_MAX_PORTS(hdev->maxchild)); + /* Set TT think time - convert from ns to FS bit times. + * 0 = 8 FS bit times, 1 = 16 FS bit times, + * 2 = 24 FS bit times, 3 = 32 FS bit times. + * + * xHCI 1.0: this field shall be 0 if the device is not a + * High-spped hub. + */ + think_time = tt->think_time; + if (think_time != 0) + think_time = (think_time / 666) - 1; + if (xhci->hci_version < 0x100 || hdev->speed == USB_SPEED_HIGH) + slot_ctx->tt_info |= + cpu_to_le32(TT_THINK_TIME(think_time)); + } else { + xhci_dbg(xhci, "xHCI version %x doesn't need hub " + "TT think time or number of ports\n", + (unsigned int) xhci->hci_version); + } + slot_ctx->dev_state = 0; + spin_unlock_irqrestore(&xhci->lock, flags); + + xhci_dbg(xhci, "Set up %s for hub device.\n", + (xhci->hci_version > 0x95) ? + "configure endpoint" : "evaluate context"); + xhci_dbg(xhci, "Slot %u Input Context:\n", hdev->slot_id); + xhci_dbg_ctx(xhci, config_cmd->in_ctx, 0); + + /* Issue and wait for the configure endpoint or + * evaluate context command. + */ + if (xhci->hci_version > 0x95) + ret = xhci_configure_endpoint(xhci, hdev, config_cmd, + false, false); + else + ret = xhci_configure_endpoint(xhci, hdev, config_cmd, + true, false); + + xhci_dbg(xhci, "Slot %u Output Context:\n", hdev->slot_id); + xhci_dbg_ctx(xhci, vdev->out_ctx, 0); + + xhci_free_command(xhci, config_cmd); + return ret; +} + +int xhci_get_frame(struct usb_hcd *hcd) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + /* EHCI mods by the periodic size. Why? */ + return xhci_readl(xhci, &xhci->run_regs->microframe_index) >> 3; +} + +int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks) +{ + struct xhci_hcd *xhci; + struct device *dev = hcd->self.controller; + int retval; + u32 temp; + + /* Accept arbitrarily long scatter-gather lists */ + hcd->self.sg_tablesize = ~0; + + if (usb_hcd_is_primary_hcd(hcd)) { + xhci = kzalloc(sizeof(struct xhci_hcd), GFP_KERNEL); + if (!xhci) + return -ENOMEM; + *((struct xhci_hcd **) hcd->hcd_priv) = xhci; + xhci->main_hcd = hcd; + /* Mark the first roothub as being USB 2.0. + * The xHCI driver will register the USB 3.0 roothub. + */ + hcd->speed = HCD_USB2; + hcd->self.root_hub->speed = USB_SPEED_HIGH; + /* + * USB 2.0 roothub under xHCI has an integrated TT, + * (rate matching hub) as opposed to having an OHCI/UHCI + * companion controller. + */ + hcd->has_tt = 1; + } else { + /* xHCI private pointer was set in xhci_pci_probe for the second + * registered roothub. + */ + xhci = hcd_to_xhci(hcd); + temp = xhci_readl(xhci, &xhci->cap_regs->hcc_params); + if (HCC_64BIT_ADDR(temp)) { + xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n"); + dma_set_mask(hcd->self.controller, DMA_BIT_MASK(64)); + } else { + dma_set_mask(hcd->self.controller, DMA_BIT_MASK(32)); + } + return 0; + } + + xhci->cap_regs = hcd->regs; + xhci->op_regs = hcd->regs + + HC_LENGTH(xhci_readl(xhci, &xhci->cap_regs->hc_capbase)); + xhci->run_regs = hcd->regs + + (xhci_readl(xhci, &xhci->cap_regs->run_regs_off) & RTSOFF_MASK); + /* Cache read-only capability registers */ + xhci->hcs_params1 = xhci_readl(xhci, &xhci->cap_regs->hcs_params1); + xhci->hcs_params2 = xhci_readl(xhci, &xhci->cap_regs->hcs_params2); + xhci->hcs_params3 = xhci_readl(xhci, &xhci->cap_regs->hcs_params3); + xhci->hcc_params = xhci_readl(xhci, &xhci->cap_regs->hc_capbase); + xhci->hci_version = HC_VERSION(xhci->hcc_params); + xhci->hcc_params = xhci_readl(xhci, &xhci->cap_regs->hcc_params); + xhci_print_registers(xhci); + + get_quirks(dev, xhci); + + /* Make sure the HC is halted. */ + retval = xhci_halt(xhci); + if (retval) + goto error; + + xhci_dbg(xhci, "Resetting HCD\n"); + /* Reset the internal HC memory state and registers. */ + retval = xhci_reset(xhci); + if (retval) + goto error; + xhci_dbg(xhci, "Reset complete\n"); + + temp = xhci_readl(xhci, &xhci->cap_regs->hcc_params); + if (HCC_64BIT_ADDR(temp)) { + xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n"); + dma_set_mask(hcd->self.controller, DMA_BIT_MASK(64)); + } else { + dma_set_mask(hcd->self.controller, DMA_BIT_MASK(32)); + } + + xhci_dbg(xhci, "Calling HCD init\n"); + /* Initialize HCD and host controller data structures. */ + retval = xhci_init(hcd); + if (retval) + goto error; + xhci_dbg(xhci, "Called HCD init\n"); + return 0; +error: + kfree(xhci); + return retval; +} + +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_AUTHOR(DRIVER_AUTHOR); +MODULE_LICENSE("GPL"); +#if defined(__VMKLNX__) +MODULE_VERSION("1.0"); +#endif + +static int __init xhci_hcd_init(void) +{ + int retval; + + retval = xhci_register_pci(); + if (retval < 0) { + printk(KERN_DEBUG "Problem registering PCI driver."); + return retval; + } + retval = xhci_register_plat(); + if (retval < 0) { + printk(KERN_DEBUG "Problem registering platform driver."); + goto unreg_pci; + } + /* + * Check the compiler generated sizes of structures that must be laid + * out in specific ways for hardware access. + */ + BUILD_BUG_ON(sizeof(struct xhci_doorbell_array) != 256*32/8); + BUILD_BUG_ON(sizeof(struct xhci_slot_ctx) != 8*32/8); + BUILD_BUG_ON(sizeof(struct xhci_ep_ctx) != 8*32/8); + /* xhci_device_control has eight fields, and also + * embeds one xhci_slot_ctx and 31 xhci_ep_ctx + */ + BUILD_BUG_ON(sizeof(struct xhci_stream_ctx) != 4*32/8); + BUILD_BUG_ON(sizeof(union xhci_trb) != 4*32/8); + BUILD_BUG_ON(sizeof(struct xhci_erst_entry) != 4*32/8); + BUILD_BUG_ON(sizeof(struct xhci_cap_regs) != 7*32/8); + BUILD_BUG_ON(sizeof(struct xhci_intr_reg) != 8*32/8); + /* xhci_run_regs has eight fields and embeds 128 xhci_intr_regs */ + BUILD_BUG_ON(sizeof(struct xhci_run_regs) != (8+8*128)*32/8); + return 0; +unreg_pci: + xhci_unregister_pci(); + return retval; +} +module_init(xhci_hcd_init); + +static void __exit xhci_hcd_cleanup(void) +{ + xhci_unregister_pci(); + xhci_unregister_plat(); +} +module_exit(xhci_hcd_cleanup); diff --git a/vmkdrivers/src_92/drivers/usb/host/xhci/xhci.h b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci.h new file mode 100644 index 0000000000000000000000000000000000000000..b4f632a76589bc81d91d30e8d7d35b870b8f0535 --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/host/xhci/xhci.h @@ -0,0 +1,1833 @@ +/* + * xHCI host controller driver + * + * Copyright (C) 2008 Intel Corp. + * + * Author: Sarah Sharp + * Some code borrowed from the Linux EHCI driver. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef __LINUX_XHCI_HCD_H +#define __LINUX_XHCI_HCD_H + +#include +#include +#include +#include + +/* Code sharing between pci-quirks and xhci hcd */ +#include "xhci-ext-caps.h" +#include "pci-quirks.h" + +#if defined(__VMKLNX__) +#include "compat/xhci_compat.h" +#endif /* __VMKLNX__ */ + +/* xHCI PCI Configuration Registers */ +#define XHCI_SBRN_OFFSET (0x60) + +/* Max number of USB devices for any host controller - limit in section 6.1 */ +#define MAX_HC_SLOTS 256 +/* Section 5.3.3 - MaxPorts */ +#define MAX_HC_PORTS 127 + +/* + * xHCI register interface. + * This corresponds to the eXtensible Host Controller Interface (xHCI) + * Revision 0.95 specification + */ + +/** + * struct xhci_cap_regs - xHCI Host Controller Capability Registers. + * @hc_capbase: length of the capabilities register and HC version number + * @hcs_params1: HCSPARAMS1 - Structural Parameters 1 + * @hcs_params2: HCSPARAMS2 - Structural Parameters 2 + * @hcs_params3: HCSPARAMS3 - Structural Parameters 3 + * @hcc_params: HCCPARAMS - Capability Parameters + * @db_off: DBOFF - Doorbell array offset + * @run_regs_off: RTSOFF - Runtime register space offset + */ +struct xhci_cap_regs { + __le32 hc_capbase; + __le32 hcs_params1; + __le32 hcs_params2; + __le32 hcs_params3; + __le32 hcc_params; + __le32 db_off; + __le32 run_regs_off; + /* Reserved up to (CAPLENGTH - 0x1C) */ +}; + +/* hc_capbase bitmasks */ +/* bits 7:0 - how long is the Capabilities register */ +#define HC_LENGTH(p) XHCI_HC_LENGTH(p) +/* bits 31:16 */ +#define HC_VERSION(p) (((p) >> 16) & 0xffff) + +/* HCSPARAMS1 - hcs_params1 - bitmasks */ +/* bits 0:7, Max Device Slots */ +#define HCS_MAX_SLOTS(p) (((p) >> 0) & 0xff) +#define HCS_SLOTS_MASK 0xff +/* bits 8:18, Max Interrupters */ +#define HCS_MAX_INTRS(p) (((p) >> 8) & 0x7ff) +/* bits 24:31, Max Ports - max value is 0x7F = 127 ports */ +#define HCS_MAX_PORTS(p) (((p) >> 24) & 0x7f) + +/* HCSPARAMS2 - hcs_params2 - bitmasks */ +/* bits 0:3, frames or uframes that SW needs to queue transactions + * ahead of the HW to meet periodic deadlines */ +#define HCS_IST(p) (((p) >> 0) & 0xf) +/* bits 4:7, max number of Event Ring segments */ +#define HCS_ERST_MAX(p) (((p) >> 4) & 0xf) +/* bit 26 Scratchpad restore - for save/restore HW state - not used yet */ +/* bits 27:31 number of Scratchpad buffers SW must allocate for the HW */ +#define HCS_MAX_SCRATCHPAD(p) (((p) >> 27) & 0x1f) + +/* HCSPARAMS3 - hcs_params3 - bitmasks */ +/* bits 0:7, Max U1 to U0 latency for the roothub ports */ +#define HCS_U1_LATENCY(p) (((p) >> 0) & 0xff) +/* bits 16:31, Max U2 to U0 latency for the roothub ports */ +#define HCS_U2_LATENCY(p) (((p) >> 16) & 0xffff) + +/* HCCPARAMS - hcc_params - bitmasks */ +/* true: HC can use 64-bit address pointers */ +#define HCC_64BIT_ADDR(p) ((p) & (1 << 0)) +/* true: HC can do bandwidth negotiation */ +#define HCC_BANDWIDTH_NEG(p) ((p) & (1 << 1)) +/* true: HC uses 64-byte Device Context structures + * FIXME 64-byte context structures aren't supported yet. + */ +#define HCC_64BYTE_CONTEXT(p) ((p) & (1 << 2)) +/* true: HC has port power switches */ +#define HCC_PPC(p) ((p) & (1 << 3)) +/* true: HC has port indicators */ +#define HCS_INDICATOR(p) ((p) & (1 << 4)) +/* true: HC has Light HC Reset Capability */ +#define HCC_LIGHT_RESET(p) ((p) & (1 << 5)) +/* true: HC supports latency tolerance messaging */ +#define HCC_LTC(p) ((p) & (1 << 6)) +/* true: no secondary Stream ID Support */ +#define HCC_NSS(p) ((p) & (1 << 7)) +/* Max size for Primary Stream Arrays - 2^(n+1), where n is bits 12:15 */ +#define HCC_MAX_PSA(p) (1 << ((((p) >> 12) & 0xf) + 1)) +/* Extended Capabilities pointer from PCI base - section 5.3.6 */ +#define HCC_EXT_CAPS(p) XHCI_HCC_EXT_CAPS(p) + +/* db_off bitmask - bits 0:1 reserved */ +#define DBOFF_MASK (~0x3) + +/* run_regs_off bitmask - bits 0:4 reserved */ +#define RTSOFF_MASK (~0x1f) + + +/* Number of registers per port */ +#define NUM_PORT_REGS 4 + +/** + * struct xhci_op_regs - xHCI Host Controller Operational Registers. + * @command: USBCMD - xHC command register + * @status: USBSTS - xHC status register + * @page_size: This indicates the page size that the host controller + * supports. If bit n is set, the HC supports a page size + * of 2^(n+12), up to a 128MB page size. + * 4K is the minimum page size. + * @cmd_ring: CRP - 64-bit Command Ring Pointer + * @dcbaa_ptr: DCBAAP - 64-bit Device Context Base Address Array Pointer + * @config_reg: CONFIG - Configure Register + * @port_status_base: PORTSCn - base address for Port Status and Control + * Each port has a Port Status and Control register, + * followed by a Port Power Management Status and Control + * register, a Port Link Info register, and a reserved + * register. + * @port_power_base: PORTPMSCn - base address for + * Port Power Management Status and Control + * @port_link_base: PORTLIn - base address for Port Link Info (current + * Link PM state and control) for USB 2.1 and USB 3.0 + * devices. + */ +struct xhci_op_regs { + __le32 command; + __le32 status; + __le32 page_size; + __le32 reserved1; + __le32 reserved2; + __le32 dev_notification; + __le64 cmd_ring; + /* rsvd: offset 0x20-2F */ + __le32 reserved3[4]; + __le64 dcbaa_ptr; + __le32 config_reg; + /* rsvd: offset 0x3C-3FF */ + __le32 reserved4[241]; + /* port 1 registers, which serve as a base address for other ports */ + __le32 port_status_base; + __le32 port_power_base; + __le32 port_link_base; + __le32 reserved5; + /* registers for ports 2-255 */ + __le32 reserved6[NUM_PORT_REGS*254]; +}; + +/* USBCMD - USB command - command bitmasks */ +/* start/stop HC execution - do not write unless HC is halted*/ +#define CMD_RUN XHCI_CMD_RUN +/* Reset HC - resets internal HC state machine and all registers (except + * PCI config regs). HC does NOT drive a USB reset on the downstream ports. + * The xHCI driver must reinitialize the xHC after setting this bit. + */ +#define CMD_RESET (1 << 1) +/* Event Interrupt Enable - a '1' allows interrupts from the host controller */ +#define CMD_EIE XHCI_CMD_EIE +/* Host System Error Interrupt Enable - get out-of-band signal for HC errors */ +#define CMD_HSEIE XHCI_CMD_HSEIE +/* bits 4:6 are reserved (and should be preserved on writes). */ +/* light reset (port status stays unchanged) - reset completed when this is 0 */ +#define CMD_LRESET (1 << 7) +/* host controller save/restore state. */ +#define CMD_CSS (1 << 8) +#define CMD_CRS (1 << 9) +/* Enable Wrap Event - '1' means xHC generates an event when MFINDEX wraps. */ +#define CMD_EWE XHCI_CMD_EWE +/* MFINDEX power management - '1' means xHC can stop MFINDEX counter if all root + * hubs are in U3 (selective suspend), disconnect, disabled, or powered-off. + * '0' means the xHC can power it off if all ports are in the disconnect, + * disabled, or powered-off state. + */ +#define CMD_PM_INDEX (1 << 11) +/* bits 12:31 are reserved (and should be preserved on writes). */ + +/* IMAN - Interrupt Management Register */ +#define IMAN_IP (1 << 1) +#define IMAN_IE (1 << 0) + +/* USBSTS - USB status - status bitmasks */ +/* HC not running - set to 1 when run/stop bit is cleared. */ +#define STS_HALT XHCI_STS_HALT +/* serious error, e.g. PCI parity error. The HC will clear the run/stop bit. */ +#define STS_FATAL (1 << 2) +/* event interrupt - clear this prior to clearing any IP flags in IR set*/ +#define STS_EINT (1 << 3) +/* port change detect */ +#define STS_PORT (1 << 4) +/* bits 5:7 reserved and zeroed */ +/* save state status - '1' means xHC is saving state */ +#define STS_SAVE (1 << 8) +/* restore state status - '1' means xHC is restoring state */ +#define STS_RESTORE (1 << 9) +/* true: save or restore error */ +#define STS_SRE (1 << 10) +/* true: Controller Not Ready to accept doorbell or op reg writes after reset */ +#define STS_CNR XHCI_STS_CNR +/* true: internal Host Controller Error - SW needs to reset and reinitialize */ +#define STS_HCE (1 << 12) +/* bits 13:31 reserved and should be preserved */ + +/* + * DNCTRL - Device Notification Control Register - dev_notification bitmasks + * Generate a device notification event when the HC sees a transaction with a + * notification type that matches a bit set in this bit field. + */ +#define DEV_NOTE_MASK (0xffff) +#define ENABLE_DEV_NOTE(x) (1 << (x)) +/* Most of the device notification types should only be used for debug. + * SW does need to pay attention to function wake notifications. + */ +#define DEV_NOTE_FWAKE ENABLE_DEV_NOTE(1) + +/* CRCR - Command Ring Control Register - cmd_ring bitmasks */ +/* bit 0 is the command ring cycle state */ +/* stop ring operation after completion of the currently executing command */ +#define CMD_RING_PAUSE (1 << 1) +/* stop ring immediately - abort the currently executing command */ +#define CMD_RING_ABORT (1 << 2) +/* true: command ring is running */ +#define CMD_RING_RUNNING (1 << 3) +/* bits 4:5 reserved and should be preserved */ +/* Command Ring pointer - bit mask for the lower 32 bits. */ +#define CMD_RING_RSVD_BITS (0x3f) + +/* CONFIG - Configure Register - config_reg bitmasks */ +/* bits 0:7 - maximum number of device slots enabled (NumSlotsEn) */ +#define MAX_DEVS(p) ((p) & 0xff) +/* bits 8:31 - reserved and should be preserved */ + +/* PORTSC - Port Status and Control Register - port_status_base bitmasks */ +/* true: device connected */ +#define PORT_CONNECT (1 << 0) +/* true: port enabled */ +#define PORT_PE (1 << 1) +/* bit 2 reserved and zeroed */ +/* true: port has an over-current condition */ +#define PORT_OC (1 << 3) +/* true: port reset signaling asserted */ +#define PORT_RESET (1 << 4) +/* Port Link State - bits 5:8 + * A read gives the current link PM state of the port, + * a write with Link State Write Strobe set sets the link state. + */ +#define PORT_PLS_MASK (0xf << 5) +#define XDEV_U0 (0x0 << 5) +#define XDEV_U2 (0x2 << 5) +#define XDEV_U3 (0x3 << 5) +#define XDEV_RESUME (0xf << 5) +/* true: port has power (see HCC_PPC) */ +#define PORT_POWER (1 << 9) +/* bits 10:13 indicate device speed: + * 0 - undefined speed - port hasn't be initialized by a reset yet + * 1 - full speed + * 2 - low speed + * 3 - high speed + * 4 - super speed + * 5-15 reserved + */ +#define DEV_SPEED_MASK (0xf << 10) +#define XDEV_FS (0x1 << 10) +#define XDEV_LS (0x2 << 10) +#define XDEV_HS (0x3 << 10) +#define XDEV_SS (0x4 << 10) +#define DEV_UNDEFSPEED(p) (((p) & DEV_SPEED_MASK) == (0x0<<10)) +#define DEV_FULLSPEED(p) (((p) & DEV_SPEED_MASK) == XDEV_FS) +#define DEV_LOWSPEED(p) (((p) & DEV_SPEED_MASK) == XDEV_LS) +#define DEV_HIGHSPEED(p) (((p) & DEV_SPEED_MASK) == XDEV_HS) +#define DEV_SUPERSPEED(p) (((p) & DEV_SPEED_MASK) == XDEV_SS) +/* Bits 20:23 in the Slot Context are the speed for the device */ +#define SLOT_SPEED_FS (XDEV_FS << 10) +#define SLOT_SPEED_LS (XDEV_LS << 10) +#define SLOT_SPEED_HS (XDEV_HS << 10) +#define SLOT_SPEED_SS (XDEV_SS << 10) +/* Port Indicator Control */ +#define PORT_LED_OFF (0 << 14) +#define PORT_LED_AMBER (1 << 14) +#define PORT_LED_GREEN (2 << 14) +#define PORT_LED_MASK (3 << 14) +/* Port Link State Write Strobe - set this when changing link state */ +#define PORT_LINK_STROBE (1 << 16) +/* true: connect status change */ +#define PORT_CSC (1 << 17) +/* true: port enable change */ +#define PORT_PEC (1 << 18) +/* true: warm reset for a USB 3.0 device is done. A "hot" reset puts the port + * into an enabled state, and the device into the default state. A "warm" reset + * also resets the link, forcing the device through the link training sequence. + * SW can also look at the Port Reset register to see when warm reset is done. + */ +#define PORT_WRC (1 << 19) +/* true: over-current change */ +#define PORT_OCC (1 << 20) +/* true: reset change - 1 to 0 transition of PORT_RESET */ +#define PORT_RC (1 << 21) +/* port link status change - set on some port link state transitions: + * Transition Reason + * ------------------------------------------------------------------------------ + * - U3 to Resume Wakeup signaling from a device + * - Resume to Recovery to U0 USB 3.0 device resume + * - Resume to U0 USB 2.0 device resume + * - U3 to Recovery to U0 Software resume of USB 3.0 device complete + * - U3 to U0 Software resume of USB 2.0 device complete + * - U2 to U0 L1 resume of USB 2.1 device complete + * - U0 to U0 (???) L1 entry rejection by USB 2.1 device + * - U0 to disabled L1 entry error with USB 2.1 device + * - Any state to inactive Error on USB 3.0 port + */ +#define PORT_PLC (1 << 22) +/* port configure error change - port failed to configure its link partner */ +#define PORT_CEC (1 << 23) +/* bit 24 reserved */ +/* wake on connect (enable) */ +#define PORT_WKCONN_E (1 << 25) +/* wake on disconnect (enable) */ +#define PORT_WKDISC_E (1 << 26) +/* wake on over-current (enable) */ +#define PORT_WKOC_E (1 << 27) +/* bits 28:29 reserved */ +/* true: device is removable - for USB 3.0 roothub emulation */ +#define PORT_DEV_REMOVE (1 << 30) +/* Initiate a warm port reset - complete when PORT_WRC is '1' */ +#define PORT_WR (1 << 31) + +/* We mark duplicate entries with -1 */ +#define DUPLICATE_ENTRY ((u8)(-1)) + +/* Port Power Management Status and Control - port_power_base bitmasks */ +/* Inactivity timer value for transitions into U1, in microseconds. + * Timeout can be up to 127us. 0xFF means an infinite timeout. + */ +#define PORT_U1_TIMEOUT(p) ((p) & 0xff) +/* Inactivity timer value for transitions into U2 */ +#define PORT_U2_TIMEOUT(p) (((p) & 0xff) << 8) +/* Bits 24:31 for port testing */ + +/* USB2 Protocol PORTSPMSC */ +#define PORT_L1S_MASK 7 +#define PORT_L1S_SUCCESS 1 +#define PORT_RWE (1 << 3) +#define PORT_HIRD(p) (((p) & 0xf) << 4) +#define PORT_HIRD_MASK (0xf << 4) +#define PORT_L1DS(p) (((p) & 0xff) << 8) +#define PORT_HLE (1 << 16) + +/** + * struct xhci_intr_reg - Interrupt Register Set + * @irq_pending: IMAN - Interrupt Management Register. Used to enable + * interrupts and check for pending interrupts. + * @irq_control: IMOD - Interrupt Moderation Register. + * Used to throttle interrupts. + * @erst_size: Number of segments in the Event Ring Segment Table (ERST). + * @erst_base: ERST base address. + * @erst_dequeue: Event ring dequeue pointer. + * + * Each interrupter (defined by a MSI-X vector) has an event ring and an Event + * Ring Segment Table (ERST) associated with it. The event ring is comprised of + * multiple segments of the same size. The HC places events on the ring and + * "updates the Cycle bit in the TRBs to indicate to software the current + * position of the Enqueue Pointer." The HCD (Linux) processes those events and + * updates the dequeue pointer. + */ +struct xhci_intr_reg { + __le32 irq_pending; + __le32 irq_control; + __le32 erst_size; + __le32 rsvd; + __le64 erst_base; + __le64 erst_dequeue; +}; + +/* irq_pending bitmasks */ +#define ER_IRQ_PENDING(p) ((p) & 0x1) +/* bits 2:31 need to be preserved */ +/* THIS IS BUGGY - FIXME - IP IS WRITE 1 TO CLEAR */ +#define ER_IRQ_CLEAR(p) ((p) & 0xfffffffe) +#define ER_IRQ_ENABLE(p) ((ER_IRQ_CLEAR(p)) | 0x2) +#define ER_IRQ_DISABLE(p) ((ER_IRQ_CLEAR(p)) & ~(0x2)) + +/* irq_control bitmasks */ +/* Minimum interval between interrupts (in 250ns intervals). The interval + * between interrupts will be longer if there are no events on the event ring. + * Default is 4000 (1 ms). + */ +#define ER_IRQ_INTERVAL_MASK (0xffff) +/* Counter used to count down the time to the next interrupt - HW use only */ +#define ER_IRQ_COUNTER_MASK (0xffff << 16) + +/* erst_size bitmasks */ +/* Preserve bits 16:31 of erst_size */ +#define ERST_SIZE_MASK (0xffff << 16) + +/* erst_dequeue bitmasks */ +/* Dequeue ERST Segment Index (DESI) - Segment number (or alias) + * where the current dequeue pointer lies. This is an optional HW hint. + */ +#define ERST_DESI_MASK (0x7) +/* Event Handler Busy (EHB) - is the event ring scheduled to be serviced by + * a work queue (or delayed service routine)? + */ +#define ERST_EHB (1 << 3) +#define ERST_PTR_MASK (0xf) + +/** + * struct xhci_run_regs + * @microframe_index: + * MFINDEX - current microframe number + * + * Section 5.5 Host Controller Runtime Registers: + * "Software should read and write these registers using only Dword (32 bit) + * or larger accesses" + */ +struct xhci_run_regs { + __le32 microframe_index; + __le32 rsvd[7]; + struct xhci_intr_reg ir_set[128]; +}; + +/** + * struct doorbell_array + * + * Bits 0 - 7: Endpoint target + * Bits 8 - 15: RsvdZ + * Bits 16 - 31: Stream ID + * + * Section 5.6 + */ +struct xhci_doorbell_array { + __le32 doorbell[256]; +}; + +#define DB_VALUE(ep, stream) ((((ep) + 1) & 0xff) | ((stream) << 16)) +#define DB_VALUE_HOST 0x00000000 + +/** + * struct xhci_protocol_caps + * @revision: major revision, minor revision, capability ID, + * and next capability pointer. + * @name_string: Four ASCII characters to say which spec this xHC + * follows, typically "USB ". + * @port_info: Port offset, count, and protocol-defined information. + */ +struct xhci_protocol_caps { + u32 revision; + u32 name_string; + u32 port_info; +}; + +#define XHCI_EXT_PORT_MAJOR(x) (((x) >> 24) & 0xff) +#define XHCI_EXT_PORT_OFF(x) ((x) & 0xff) +#define XHCI_EXT_PORT_COUNT(x) (((x) >> 8) & 0xff) + +/** + * struct xhci_container_ctx + * @type: Type of context. Used to calculated offsets to contained contexts. + * @size: Size of the context data + * @bytes: The raw context data given to HW + * @dma: dma address of the bytes + * + * Represents either a Device or Input context. Holds a pointer to the raw + * memory used for the context (bytes) and dma address of it (dma). + */ +struct xhci_container_ctx { + unsigned type; +#define XHCI_CTX_TYPE_DEVICE 0x1 +#define XHCI_CTX_TYPE_INPUT 0x2 + + int size; + + u8 *bytes; + dma_addr_t dma; +}; + +/** + * struct xhci_slot_ctx + * @dev_info: Route string, device speed, hub info, and last valid endpoint + * @dev_info2: Max exit latency for device number, root hub port number + * @tt_info: tt_info is used to construct split transaction tokens + * @dev_state: slot state and device address + * + * Slot Context - section 6.2.1.1. This assumes the HC uses 32-byte context + * structures. If the HC uses 64-byte contexts, there is an additional 32 bytes + * reserved at the end of the slot context for HC internal use. + */ +struct xhci_slot_ctx { + __le32 dev_info; + __le32 dev_info2; + __le32 tt_info; + __le32 dev_state; + /* offset 0x10 to 0x1f reserved for HC internal use */ + __le32 reserved[4]; +}; + +/* dev_info bitmasks */ +/* Route String - 0:19 */ +#define ROUTE_STRING_MASK (0xfffff) +/* Device speed - values defined by PORTSC Device Speed field - 20:23 */ +#define DEV_SPEED (0xf << 20) +/* bit 24 reserved */ +/* Is this LS/FS device connected through a HS hub? - bit 25 */ +#define DEV_MTT (0x1 << 25) +/* Set if the device is a hub - bit 26 */ +#define DEV_HUB (0x1 << 26) +/* Index of the last valid endpoint context in this device context - 27:31 */ +#define LAST_CTX_MASK (0x1f << 27) +#define LAST_CTX(p) ((p) << 27) +#define LAST_CTX_TO_EP_NUM(p) (((p) >> 27) - 1) +#define SLOT_FLAG (1 << 0) +#define EP0_FLAG (1 << 1) + +/* dev_info2 bitmasks */ +/* Max Exit Latency (ms) - worst case time to wake up all links in dev path */ +#define MAX_EXIT (0xffff) +/* Root hub port number that is needed to access the USB device */ +#define ROOT_HUB_PORT(p) (((p) & 0xff) << 16) +#define DEVINFO_TO_ROOT_HUB_PORT(p) (((p) >> 16) & 0xff) +/* Maximum number of ports under a hub device */ +#define XHCI_MAX_PORTS(p) (((p) & 0xff) << 24) + +/* tt_info bitmasks */ +/* + * TT Hub Slot ID - for low or full speed devices attached to a high-speed hub + * The Slot ID of the hub that isolates the high speed signaling from + * this low or full-speed device. '0' if attached to root hub port. + */ +#define TT_SLOT (0xff) +/* + * The number of the downstream facing port of the high-speed hub + * '0' if the device is not low or full speed. + */ +#define TT_PORT (0xff << 8) +#define TT_THINK_TIME(p) (((p) & 0x3) << 16) + +/* dev_state bitmasks */ +/* USB device address - assigned by the HC */ +#define DEV_ADDR_MASK (0xff) +/* bits 8:26 reserved */ +/* Slot state */ +#define SLOT_STATE (0x1f << 27) +#define GET_SLOT_STATE(p) (((p) & (0x1f << 27)) >> 27) + +#define SLOT_STATE_DISABLED 0 +#define SLOT_STATE_ENABLED SLOT_STATE_DISABLED +#define SLOT_STATE_DEFAULT 1 +#define SLOT_STATE_ADDRESSED 2 +#define SLOT_STATE_CONFIGURED 3 + +/** + * struct xhci_ep_ctx + * @ep_info: endpoint state, streams, mult, and interval information. + * @ep_info2: information on endpoint type, max packet size, max burst size, + * error count, and whether the HC will force an event for all + * transactions. + * @deq: 64-bit ring dequeue pointer address. If the endpoint only + * defines one stream, this points to the endpoint transfer ring. + * Otherwise, it points to a stream context array, which has a + * ring pointer for each flow. + * @tx_info: + * Average TRB lengths for the endpoint ring and + * max payload within an Endpoint Service Interval Time (ESIT). + * + * Endpoint Context - section 6.2.1.2. This assumes the HC uses 32-byte context + * structures. If the HC uses 64-byte contexts, there is an additional 32 bytes + * reserved at the end of the endpoint context for HC internal use. + */ +struct xhci_ep_ctx { + __le32 ep_info; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + /* offset 0x14 - 0x1f reserved for HC internal use */ + __le32 reserved[3]; +}; + +/* ep_info bitmasks */ +/* + * Endpoint State - bits 0:2 + * 0 - disabled + * 1 - running + * 2 - halted due to halt condition - ok to manipulate endpoint ring + * 3 - stopped + * 4 - TRB error + * 5-7 - reserved + */ +#define EP_STATE_MASK (0xf) +#define EP_STATE_DISABLED 0 +#define EP_STATE_RUNNING 1 +#define EP_STATE_HALTED 2 +#define EP_STATE_STOPPED 3 +#define EP_STATE_ERROR 4 +/* Mult - Max number of burtst within an interval, in EP companion desc. */ +#define EP_MULT(p) (((p) & 0x3) << 8) +#define CTX_TO_EP_MULT(p) (((p) >> 8) & 0x3) +/* bits 10:14 are Max Primary Streams */ +/* bit 15 is Linear Stream Array */ +/* Interval - period between requests to an endpoint - 125u increments. */ +#define EP_INTERVAL(p) (((p) & 0xff) << 16) +#define EP_INTERVAL_TO_UFRAMES(p) (1 << (((p) >> 16) & 0xff)) +#define CTX_TO_EP_INTERVAL(p) (((p) >> 16) & 0xff) +#define EP_MAXPSTREAMS_MASK (0x1f << 10) +#define EP_MAXPSTREAMS(p) (((p) << 10) & EP_MAXPSTREAMS_MASK) +/* Endpoint is set up with a Linear Stream Array (vs. Secondary Stream Array) */ +#define EP_HAS_LSA (1 << 15) + +/* ep_info2 bitmasks */ +/* + * Force Event - generate transfer events for all TRBs for this endpoint + * This will tell the HC to ignore the IOC and ISP flags (for debugging only). + */ +#define FORCE_EVENT (0x1) +#define ERROR_COUNT(p) (((p) & 0x3) << 1) +#define CTX_TO_EP_TYPE(p) (((p) >> 3) & 0x7) +#define EP_TYPE(p) ((p) << 3) +#define ISOC_OUT_EP 1 +#define BULK_OUT_EP 2 +#define INT_OUT_EP 3 +#define CTRL_EP 4 +#define ISOC_IN_EP 5 +#define BULK_IN_EP 6 +#define INT_IN_EP 7 +/* bit 6 reserved */ +/* bit 7 is Host Initiate Disable - for disabling stream selection */ +#define MAX_BURST(p) (((p)&0xff) << 8) +#define CTX_TO_MAX_BURST(p) (((p) >> 8) & 0xff) +#define MAX_PACKET(p) (((p)&0xffff) << 16) +#define MAX_PACKET_MASK (0xffff << 16) +#define MAX_PACKET_DECODED(p) (((p) >> 16) & 0xffff) + +/* Get max packet size from ep desc. Bit 10..0 specify the max packet size. + * USB2.0 spec 9.6.6. + */ +#define GET_MAX_PACKET(p) ((p) & 0x7ff) + +/* tx_info bitmasks */ +#define AVG_TRB_LENGTH_FOR_EP(p) ((p) & 0xffff) +#define MAX_ESIT_PAYLOAD_FOR_EP(p) (((p) & 0xffff) << 16) +#define CTX_TO_MAX_ESIT_PAYLOAD(p) (((p) >> 16) & 0xffff) + +/* deq bitmasks */ +#define EP_CTX_CYCLE_MASK (1 << 0) + + +/** + * struct xhci_input_control_context + * Input control context; see section 6.2.5. + * + * @drop_context: set the bit of the endpoint context you want to disable + * @add_context: set the bit of the endpoint context you want to enable + */ +struct xhci_input_control_ctx { + __le32 drop_flags; + __le32 add_flags; + __le32 rsvd2[6]; +}; + +#define EP_IS_ADDED(ctrl_ctx, i) \ + (le32_to_cpu(ctrl_ctx->add_flags) & (1 << (i + 1))) +#define EP_IS_DROPPED(ctrl_ctx, i) \ + (le32_to_cpu(ctrl_ctx->drop_flags) & (1 << (i + 1))) + +/* Represents everything that is needed to issue a command on the command ring. + * It's useful to pre-allocate these for commands that cannot fail due to + * out-of-memory errors, like freeing streams. + */ +struct xhci_command { + /* Input context for changing device state */ + struct xhci_container_ctx *in_ctx; + u32 status; + /* If completion is null, no one is waiting on this command + * and the structure can be freed after the command completes. + */ + struct completion *completion; + union xhci_trb *command_trb; + struct list_head cmd_list; +}; + +/* drop context bitmasks */ +#define DROP_EP(x) (0x1 << x) +/* add context bitmasks */ +#define ADD_EP(x) (0x1 << x) + +struct xhci_stream_ctx { + /* 64-bit stream ring address, cycle state, and stream type */ + __le64 stream_ring; + /* offset 0x14 - 0x1f reserved for HC internal use */ + __le32 reserved[2]; +}; + +/* Stream Context Types (section 6.4.1) - bits 3:1 of stream ctx deq ptr */ +#define SCT_FOR_CTX(p) (((p) << 1) & 0x7) +/* Secondary stream array type, dequeue pointer is to a transfer ring */ +#define SCT_SEC_TR 0 +/* Primary stream array type, dequeue pointer is to a transfer ring */ +#define SCT_PRI_TR 1 +/* Dequeue pointer is for a secondary stream array (SSA) with 8 entries */ +#define SCT_SSA_8 2 +#define SCT_SSA_16 3 +#define SCT_SSA_32 4 +#define SCT_SSA_64 5 +#define SCT_SSA_128 6 +#define SCT_SSA_256 7 + +/* Assume no secondary streams for now */ +struct xhci_stream_info { + struct xhci_ring **stream_rings; + /* Number of streams, including stream 0 (which drivers can't use) */ + unsigned int num_streams; + /* The stream context array may be bigger than + * the number of streams the driver asked for + */ + struct xhci_stream_ctx *stream_ctx_array; + unsigned int num_stream_ctxs; + dma_addr_t ctx_array_dma; + /* For mapping physical TRB addresses to segments in stream rings */ + struct radix_tree_root trb_address_map; + struct xhci_command *free_streams_command; +#if defined(__VMKLNX__) + spinlock_t lock; +#endif /* __VMKLNX__ */ +}; + +#define SMALL_STREAM_ARRAY_SIZE 256 +#define MEDIUM_STREAM_ARRAY_SIZE 1024 + +/* Some Intel xHCI host controllers need software to keep track of the bus + * bandwidth. Keep track of endpoint info here. Each root port is allocated + * the full bus bandwidth. We must also treat TTs (including each port under a + * multi-TT hub) as a separate bandwidth domain. The direct memory interface + * (DMI) also limits the total bandwidth (across all domains) that can be used. + */ +struct xhci_bw_info { + /* ep_interval is zero-based */ + unsigned int ep_interval; + /* mult and num_packets are one-based */ + unsigned int mult; + unsigned int num_packets; + unsigned int max_packet_size; + unsigned int max_esit_payload; + unsigned int type; +}; + +/* "Block" sizes in bytes the hardware uses for different device speeds. + * The logic in this part of the hardware limits the number of bits the hardware + * can use, so must represent bandwidth in a less precise manner to mimic what + * the scheduler hardware computes. + */ +#define FS_BLOCK 1 +#define HS_BLOCK 4 +#define SS_BLOCK 16 +#define DMI_BLOCK 32 + +/* Each device speed has a protocol overhead (CRC, bit stuffing, etc) associated + * with each byte transferred. SuperSpeed devices have an initial overhead to + * set up bursts. These are in blocks, see above. LS overhead has already been + * translated into FS blocks. + */ +#define DMI_OVERHEAD 8 +#define DMI_OVERHEAD_BURST 4 +#define SS_OVERHEAD 8 +#define SS_OVERHEAD_BURST 32 +#define HS_OVERHEAD 26 +#define FS_OVERHEAD 20 +#define LS_OVERHEAD 128 +/* The TTs need to claim roughly twice as much bandwidth (94 bytes per + * microframe ~= 24Mbps) of the HS bus as the devices can actually use because + * of overhead associated with split transfers crossing microframe boundaries. + * 31 blocks is pure protocol overhead. + */ +#define TT_HS_OVERHEAD (31 + 94) +#define TT_DMI_OVERHEAD (25 + 12) + +/* Bandwidth limits in blocks */ +#define FS_BW_LIMIT 1285 +#define TT_BW_LIMIT 1320 +#define HS_BW_LIMIT 1607 +#define SS_BW_LIMIT_IN 3906 +#define DMI_BW_LIMIT_IN 3906 +#define SS_BW_LIMIT_OUT 3906 +#define DMI_BW_LIMIT_OUT 3906 + +/* Percentage of bus bandwidth reserved for non-periodic transfers */ +#define FS_BW_RESERVED 10 +#define HS_BW_RESERVED 20 +#define SS_BW_RESERVED 10 + +struct xhci_virt_ep { + struct xhci_ring *ring; + /* Related to endpoints that are configured to use stream IDs only */ + struct xhci_stream_info *stream_info; + /* Temporary storage in case the configure endpoint command fails and we + * have to restore the device state to the previous state + */ + struct xhci_ring *new_ring; + unsigned int ep_state; +#define SET_DEQ_PENDING (1 << 0) +#define EP_HALTED (1 << 1) /* For stall handling */ +#define EP_HALT_PENDING (1 << 2) /* For URB cancellation */ +/* Transitioning the endpoint to using streams, don't enqueue URBs */ +#define EP_GETTING_STREAMS (1 << 3) +#define EP_HAS_STREAMS (1 << 4) +/* Transitioning the endpoint to not using streams, don't enqueue URBs */ +#define EP_GETTING_NO_STREAMS (1 << 5) + /* ---- Related to URB cancellation ---- */ + struct list_head cancelled_td_list; + /* The TRB that was last reported in a stopped endpoint ring */ + union xhci_trb *stopped_trb; + struct xhci_td *stopped_td; + unsigned int stopped_stream; + /* Watchdog timer for stop endpoint command to cancel URBs */ + struct timer_list stop_cmd_timer; + int stop_cmds_pending; + struct xhci_hcd *xhci; + /* Dequeue pointer and dequeue segment for a submitted Set TR Dequeue + * command. We'll need to update the ring's dequeue segment and dequeue + * pointer after the command completes. + */ + struct xhci_segment *queued_deq_seg; + union xhci_trb *queued_deq_ptr; + /* + * Sometimes the xHC can not process isochronous endpoint ring quickly + * enough, and it will miss some isoc tds on the ring and generate + * a Missed Service Error Event. + * Set skip flag when receive a Missed Service Error Event and + * process the missed tds on the endpoint ring. + */ + bool skip; + /* Bandwidth checking storage */ + struct xhci_bw_info bw_info; + struct list_head bw_endpoint_list; +}; + +enum xhci_overhead_type { + LS_OVERHEAD_TYPE = 0, + FS_OVERHEAD_TYPE, + HS_OVERHEAD_TYPE, +}; + +struct xhci_interval_bw { + unsigned int num_packets; + /* Sorted by max packet size. + * Head of the list is the greatest max packet size. + */ + struct list_head endpoints; + /* How many endpoints of each speed are present. */ + unsigned int overhead[3]; +}; + +#define XHCI_MAX_INTERVAL 16 + +struct xhci_interval_bw_table { + unsigned int interval0_esit_payload; + struct xhci_interval_bw interval_bw[XHCI_MAX_INTERVAL]; + /* Includes reserved bandwidth for async endpoints */ + unsigned int bw_used; + unsigned int ss_bw_in; + unsigned int ss_bw_out; +}; + + +struct xhci_virt_device { + struct usb_device *udev; + /* + * Commands to the hardware are passed an "input context" that + * tells the hardware what to change in its data structures. + * The hardware will return changes in an "output context" that + * software must allocate for the hardware. We need to keep + * track of input and output contexts separately because + * these commands might fail and we don't trust the hardware. + */ + struct xhci_container_ctx *out_ctx; + /* Used for addressing devices and configuration changes */ + struct xhci_container_ctx *in_ctx; + /* Rings saved to ensure old alt settings can be re-instated */ + struct xhci_ring **ring_cache; + int num_rings_cached; + /* Store xHC assigned device address */ + int address; +#define XHCI_MAX_RINGS_CACHED 31 + struct xhci_virt_ep eps[31]; + struct completion cmd_completion; + /* Status of the last command issued for this device */ + u32 cmd_status; + struct list_head cmd_list; + u8 fake_port; + u8 real_port; + struct xhci_interval_bw_table *bw_table; + struct xhci_tt_bw_info *tt_info; +}; + +/* + * For each roothub, keep track of the bandwidth information for each periodic + * interval. + * + * If a high speed hub is attached to the roothub, each TT associated with that + * hub is a separate bandwidth domain. The interval information for the + * endpoints on the devices under that TT will appear in the TT structure. + */ +struct xhci_root_port_bw_info { + struct list_head tts; + unsigned int num_active_tts; + struct xhci_interval_bw_table bw_table; +}; + +struct xhci_tt_bw_info { + struct list_head tt_list; + int slot_id; + int ttport; + struct xhci_interval_bw_table bw_table; + int active_eps; +}; + + +/** + * struct xhci_device_context_array + * @dev_context_ptr array of 64-bit DMA addresses for device contexts + */ +struct xhci_device_context_array { + /* 64-bit device addresses; we only write 32-bit addresses */ + __le64 dev_context_ptrs[MAX_HC_SLOTS]; + /* private xHCD pointers */ + dma_addr_t dma; +}; +/* TODO: write function to set the 64-bit device DMA address */ +/* + * TODO: change this to be dynamically sized at HC mem init time since the HC + * might not be able to handle the maximum number of devices possible. + */ + + +struct xhci_transfer_event { + /* 64-bit buffer address, or immediate data */ + __le64 buffer; + __le32 transfer_len; + /* This field is interpreted differently based on the type of TRB */ + __le32 flags; +}; + +/** Transfer Event bit fields **/ +#define TRB_TO_EP_ID(p) (((p) >> 16) & 0x1f) + +/* Completion Code - only applicable for some types of TRBs */ +#define COMP_CODE_MASK (0xff << 24) +#define GET_COMP_CODE(p) (((p) & COMP_CODE_MASK) >> 24) +#define COMP_SUCCESS 1 +/* Data Buffer Error */ +#define COMP_DB_ERR 2 +/* Babble Detected Error */ +#define COMP_BABBLE 3 +/* USB Transaction Error */ +#define COMP_TX_ERR 4 +/* TRB Error - some TRB field is invalid */ +#define COMP_TRB_ERR 5 +/* Stall Error - USB device is stalled */ +#define COMP_STALL 6 +/* Resource Error - HC doesn't have memory for that device configuration */ +#define COMP_ENOMEM 7 +/* Bandwidth Error - not enough room in schedule for this dev config */ +#define COMP_BW_ERR 8 +/* No Slots Available Error - HC ran out of device slots */ +#define COMP_ENOSLOTS 9 +/* Invalid Stream Type Error */ +#define COMP_STREAM_ERR 10 +/* Slot Not Enabled Error - doorbell rung for disabled device slot */ +#define COMP_EBADSLT 11 +/* Endpoint Not Enabled Error */ +#define COMP_EBADEP 12 +/* Short Packet */ +#define COMP_SHORT_TX 13 +/* Ring Underrun - doorbell rung for an empty isoc OUT ep ring */ +#define COMP_UNDERRUN 14 +/* Ring Overrun - isoc IN ep ring is empty when ep is scheduled to RX */ +#define COMP_OVERRUN 15 +/* Virtual Function Event Ring Full Error */ +#define COMP_VF_FULL 16 +/* Parameter Error - Context parameter is invalid */ +#define COMP_EINVAL 17 +/* Bandwidth Overrun Error - isoc ep exceeded its allocated bandwidth */ +#define COMP_BW_OVER 18 +/* Context State Error - illegal context state transition requested */ +#define COMP_CTX_STATE 19 +/* No Ping Response Error - HC didn't get PING_RESPONSE in time to TX */ +#define COMP_PING_ERR 20 +/* Event Ring is full */ +#define COMP_ER_FULL 21 +/* Incompatible Device Error */ +#define COMP_DEV_ERR 22 +/* Missed Service Error - HC couldn't service an isoc ep within interval */ +#define COMP_MISSED_INT 23 +/* Successfully stopped command ring */ +#define COMP_CMD_STOP 24 +/* Successfully aborted current command and stopped command ring */ +#define COMP_CMD_ABORT 25 +/* Stopped - transfer was terminated by a stop endpoint command */ +#define COMP_STOP 26 +/* Same as COMP_EP_STOPPED, but the transferred length in the event is invalid */ +#define COMP_STOP_INVAL 27 +/* Control Abort Error - Debug Capability - control pipe aborted */ +#define COMP_DBG_ABORT 28 +/* Max Exit Latency Too Large Error */ +#define COMP_MEL_ERR 29 +/* TRB type 30 reserved */ +/* Isoc Buffer Overrun - an isoc IN ep sent more data than could fit in TD */ +#define COMP_BUFF_OVER 31 +/* Event Lost Error - xHC has an "internal event overrun condition" */ +#define COMP_ISSUES 32 +/* Undefined Error - reported when other error codes don't apply */ +#define COMP_UNKNOWN 33 +/* Invalid Stream ID Error */ +#define COMP_STRID_ERR 34 +/* Secondary Bandwidth Error - may be returned by a Configure Endpoint cmd */ +#define COMP_2ND_BW_ERR 35 +/* Split Transaction Error */ +#define COMP_SPLIT_ERR 36 + +struct xhci_link_trb { + /* 64-bit segment pointer*/ + __le64 segment_ptr; + __le32 intr_target; + __le32 control; +}; + +/* control bitfields */ +#define LINK_TOGGLE (0x1<<1) + +/* Command completion event TRB */ +struct xhci_event_cmd { + /* Pointer to command TRB, or the value passed by the event data trb */ + __le64 cmd_trb; + __le32 status; + __le32 flags; +}; + +/* flags bitmasks */ +/* bits 16:23 are the virtual function ID */ +/* bits 24:31 are the slot ID */ +#define TRB_TO_SLOT_ID(p) (((p) & (0xff<<24)) >> 24) +#define SLOT_ID_FOR_TRB(p) (((p) & 0xff) << 24) + +/* Stop Endpoint TRB - ep_index to endpoint ID for this TRB */ +#define TRB_TO_EP_INDEX(p) ((((p) & (0x1f << 16)) >> 16) - 1) +#define EP_ID_FOR_TRB(p) ((((p) + 1) & 0x1f) << 16) + +#define SUSPEND_PORT_FOR_TRB(p) (((p) & 1) << 23) +#define TRB_TO_SUSPEND_PORT(p) (((p) & (1 << 23)) >> 23) +#define LAST_EP_INDEX 30 + +/* Set TR Dequeue Pointer command TRB fields */ +#define TRB_TO_STREAM_ID(p) ((((p) & (0xffff << 16)) >> 16)) +#define STREAM_ID_FOR_TRB(p) ((((p)) & 0xffff) << 16) + + +/* Port Status Change Event TRB fields */ +/* Port ID - bits 31:24 */ +#define GET_PORT_ID(p) (((p) & (0xff << 24)) >> 24) + +/* Normal TRB fields */ +/* transfer_len bitmasks - bits 0:16 */ +#define TRB_LEN(p) ((p) & 0x1ffff) +/* Interrupter Target - which MSI-X vector to target the completion event at */ +#define TRB_INTR_TARGET(p) (((p) & 0x3ff) << 22) +#define GET_INTR_TARGET(p) (((p) >> 22) & 0x3ff) +#define TRB_TBC(p) (((p) & 0x3) << 7) +#define TRB_TLBPC(p) (((p) & 0xf) << 16) + +/* Cycle bit - indicates TRB ownership by HC or HCD */ +#define TRB_CYCLE (1<<0) +/* + * Force next event data TRB to be evaluated before task switch. + * Used to pass OS data back after a TD completes. + */ +#define TRB_ENT (1<<1) +/* Interrupt on short packet */ +#define TRB_ISP (1<<2) +/* Set PCIe no snoop attribute */ +#define TRB_NO_SNOOP (1<<3) +/* Chain multiple TRBs into a TD */ +#define TRB_CHAIN (1<<4) +/* Interrupt on completion */ +#define TRB_IOC (1<<5) +/* The buffer pointer contains immediate data */ +#define TRB_IDT (1<<6) + +/* Block Event Interrupt */ +#define TRB_BEI (1<<9) + +/* Control transfer TRB specific fields */ +#define TRB_DIR_IN (1<<16) +#define TRB_TX_TYPE(p) ((p) << 16) +#define TRB_DATA_OUT 2 +#define TRB_DATA_IN 3 + +/* Isochronous TRB specific fields */ +#define TRB_SIA (1<<31) + +struct xhci_generic_trb { + __le32 field[4]; +}; + +union xhci_trb { + struct xhci_link_trb link; + struct xhci_transfer_event trans_event; + struct xhci_event_cmd event_cmd; + struct xhci_generic_trb generic; +}; + +/* TRB bit mask */ +#define TRB_TYPE_BITMASK (0xfc00) +#define TRB_TYPE(p) ((p) << 10) +#define TRB_FIELD_TO_TYPE(p) (((p) & TRB_TYPE_BITMASK) >> 10) +/* TRB type IDs */ +/* bulk, interrupt, isoc scatter/gather, and control data stage */ +#define TRB_NORMAL 1 +/* setup stage for control transfers */ +#define TRB_SETUP 2 +/* data stage for control transfers */ +#define TRB_DATA 3 +/* status stage for control transfers */ +#define TRB_STATUS 4 +/* isoc transfers */ +#define TRB_ISOC 5 +/* TRB for linking ring segments */ +#define TRB_LINK 6 +#define TRB_EVENT_DATA 7 +/* Transfer Ring No-op (not for the command ring) */ +#define TRB_TR_NOOP 8 +/* Command TRBs */ +/* Enable Slot Command */ +#define TRB_ENABLE_SLOT 9 +/* Disable Slot Command */ +#define TRB_DISABLE_SLOT 10 +/* Address Device Command */ +#define TRB_ADDR_DEV 11 +/* Configure Endpoint Command */ +#define TRB_CONFIG_EP 12 +/* Evaluate Context Command */ +#define TRB_EVAL_CONTEXT 13 +/* Reset Endpoint Command */ +#define TRB_RESET_EP 14 +/* Stop Transfer Ring Command */ +#define TRB_STOP_RING 15 +/* Set Transfer Ring Dequeue Pointer Command */ +#define TRB_SET_DEQ 16 +/* Reset Device Command */ +#define TRB_RESET_DEV 17 +/* Force Event Command (opt) */ +#define TRB_FORCE_EVENT 18 +/* Negotiate Bandwidth Command (opt) */ +#define TRB_NEG_BANDWIDTH 19 +/* Set Latency Tolerance Value Command (opt) */ +#define TRB_SET_LT 20 +/* Get port bandwidth Command */ +#define TRB_GET_BW 21 +/* Force Header Command - generate a transaction or link management packet */ +#define TRB_FORCE_HEADER 22 +/* No-op Command - not for transfer rings */ +#define TRB_CMD_NOOP 23 +/* TRB IDs 24-31 reserved */ +/* Event TRBS */ +/* Transfer Event */ +#define TRB_TRANSFER 32 +/* Command Completion Event */ +#define TRB_COMPLETION 33 +/* Port Status Change Event */ +#define TRB_PORT_STATUS 34 +/* Bandwidth Request Event (opt) */ +#define TRB_BANDWIDTH_EVENT 35 +/* Doorbell Event (opt) */ +#define TRB_DOORBELL 36 +/* Host Controller Event */ +#define TRB_HC_EVENT 37 +/* Device Notification Event - device sent function wake notification */ +#define TRB_DEV_NOTE 38 +/* MFINDEX Wrap Event - microframe counter wrapped */ +#define TRB_MFINDEX_WRAP 39 +/* TRB IDs 40-47 reserved, 48-63 is vendor-defined */ + +/* Nec vendor-specific command completion event. */ +#define TRB_NEC_CMD_COMP 48 +/* Get NEC firmware revision. */ +#define TRB_NEC_GET_FW 49 + +#define TRB_TYPE_LINK(x) (((x) & TRB_TYPE_BITMASK) == TRB_TYPE(TRB_LINK)) +/* Above, but for __le32 types -- can avoid work by swapping constants: */ +#define TRB_TYPE_LINK_LE32(x) (((x) & cpu_to_le32(TRB_TYPE_BITMASK)) == \ + cpu_to_le32(TRB_TYPE(TRB_LINK))) +#define TRB_TYPE_NOOP_LE32(x) (((x) & cpu_to_le32(TRB_TYPE_BITMASK)) == \ + cpu_to_le32(TRB_TYPE(TRB_TR_NOOP))) + +#define NEC_FW_MINOR(p) (((p) >> 0) & 0xff) +#define NEC_FW_MAJOR(p) (((p) >> 8) & 0xff) + +/* + * TRBS_PER_SEGMENT must be a multiple of 4, + * since the command ring is 64-byte aligned. + * It must also be greater than 16. + */ +#define TRBS_PER_SEGMENT 64 +/* Allow two commands + a link TRB, along with any reserved command TRBs */ +#define MAX_RSVD_CMD_TRBS (TRBS_PER_SEGMENT - 3) +#define SEGMENT_SIZE (TRBS_PER_SEGMENT*16) +#define SEGMENT_SHIFT (__ffs(SEGMENT_SIZE)) +/* TRB buffer pointers can't cross 64KB boundaries */ +#define TRB_MAX_BUFF_SHIFT 16 +#define TRB_MAX_BUFF_SIZE (1 << TRB_MAX_BUFF_SHIFT) + +struct xhci_segment { + union xhci_trb *trbs; + /* private to HCD */ + struct xhci_segment *next; + dma_addr_t dma; +}; + +struct xhci_td { + struct list_head td_list; + struct list_head cancelled_td_list; + struct urb *urb; + struct xhci_segment *start_seg; + union xhci_trb *first_trb; + union xhci_trb *last_trb; +}; + +struct xhci_dequeue_state { + struct xhci_segment *new_deq_seg; + union xhci_trb *new_deq_ptr; + int new_cycle_state; +}; + +enum xhci_ring_type { + TYPE_CTRL = 0, + TYPE_ISOC, + TYPE_BULK, + TYPE_INTR, + TYPE_STREAM, + TYPE_COMMAND, + TYPE_EVENT, +}; + +struct xhci_ring { + struct xhci_segment *first_seg; + struct xhci_segment *last_seg; + union xhci_trb *enqueue; + struct xhci_segment *enq_seg; + unsigned int enq_updates; + union xhci_trb *dequeue; + struct xhci_segment *deq_seg; + unsigned int deq_updates; + struct list_head td_list; + /* + * Write the cycle state into the TRB cycle field to give ownership of + * the TRB to the host controller (if we are the producer), or to check + * if we own the TRB (if we are the consumer). See section 4.9.1. + */ + u32 cycle_state; + unsigned int stream_id; + unsigned int num_segs; + unsigned int num_trbs_free; + unsigned int num_trbs_free_temp; + enum xhci_ring_type type; + bool last_td_was_short; +}; + +struct xhci_erst_entry { + /* 64-bit event ring segment address */ + __le64 seg_addr; + __le32 seg_size; + /* Set to zero */ + __le32 rsvd; +}; + +struct xhci_erst { + struct xhci_erst_entry *entries; + unsigned int num_entries; + /* xhci->event_ring keeps track of segment dma addresses */ + dma_addr_t erst_dma_addr; + /* Num entries the ERST can contain */ + unsigned int erst_size; +}; + +struct xhci_scratchpad { + u64 *sp_array; + dma_addr_t sp_dma; + void **sp_buffers; + dma_addr_t *sp_dma_buffers; +}; + +struct urb_priv { + int length; + int td_cnt; + struct xhci_td *td[0]; +}; + +/* + * Each segment table entry is 4*32bits long. 1K seems like an ok size: + * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table, + * meaning 64 ring segments. + * Initial allocated size of the ERST, in number of entries */ +#define ERST_NUM_SEGS 1 +/* Initial allocated size of the ERST, in number of entries */ +#define ERST_SIZE 64 +/* Initial number of event segment rings allocated */ +#define ERST_ENTRIES 1 +/* Poll every 60 seconds */ +#define POLL_TIMEOUT 60 +/* Stop endpoint command timeout (secs) for URB cancellation watchdog timer */ +#define XHCI_STOP_EP_CMD_TIMEOUT 5 +/* XXX: Make these module parameters */ + +struct s3_save { + u32 command; + u32 dev_nt; + u64 dcbaa_ptr; + u32 config_reg; + u32 irq_pending; + u32 irq_control; + u32 erst_size; + u64 erst_base; + u64 erst_dequeue; +}; + +/* Use for lpm */ +struct dev_info { + u32 dev_id; + struct list_head list; +}; + +struct xhci_bus_state { + unsigned long bus_suspended; + unsigned long next_statechange; + + /* Port suspend arrays are indexed by the portnum of the fake roothub */ + /* ports suspend status arrays - max 31 ports for USB2, 15 for USB3 */ + u32 port_c_suspend; + u32 suspended_ports; + u32 port_remote_wakeup; + unsigned long resume_done[USB_MAXCHILDREN]; + /* which ports have started to resume */ + unsigned long resuming_ports; +}; + +static inline unsigned int hcd_index(struct usb_hcd *hcd) +{ + if (hcd->speed == HCD_USB3) + return 0; + else + return 1; +} + +/* There is one xhci_hcd structure per controller */ +struct xhci_hcd { + struct usb_hcd *main_hcd; + struct usb_hcd *shared_hcd; + /* glue to PCI and HCD framework */ + struct xhci_cap_regs __iomem *cap_regs; + struct xhci_op_regs __iomem *op_regs; + struct xhci_run_regs __iomem *run_regs; + struct xhci_doorbell_array __iomem *dba; + /* Our HCD's current interrupter register set */ + struct xhci_intr_reg __iomem *ir_set; + + /* Cached register copies of read-only HC data */ + __u32 hcs_params1; + __u32 hcs_params2; + __u32 hcs_params3; + __u32 hcc_params; + + spinlock_t lock; + + /* packed release number */ + u8 sbrn; + u16 hci_version; + u8 max_slots; + u8 max_interrupters; + u8 max_ports; + u8 isoc_threshold; + int event_ring_max; + int addr_64; + /* 4KB min, 128MB max */ + int page_size; + /* Valid values are 12 to 20, inclusive */ + int page_shift; + /* msi-x vectors */ + int msix_count; + struct msix_entry *msix_entries; + /* data structures */ + struct xhci_device_context_array *dcbaa; + struct xhci_ring *cmd_ring; + unsigned int cmd_ring_reserved_trbs; + struct xhci_ring *event_ring; + struct xhci_erst erst; + /* Scratchpad */ + struct xhci_scratchpad *scratchpad; + /* Store LPM test failed devices' information */ + struct list_head lpm_failed_devs; + + /* slot enabling and address device helpers */ + struct completion addr_dev; + int slot_id; + /* Internal mirror of the HW's dcbaa */ + struct xhci_virt_device *devs[MAX_HC_SLOTS]; + /* For keeping track of bandwidth domains per roothub. */ + struct xhci_root_port_bw_info *rh_bw; + + /* DMA pools */ + struct dma_pool *device_pool; + struct dma_pool *segment_pool; + struct dma_pool *small_streams_pool; + struct dma_pool *medium_streams_pool; + +#ifdef CONFIG_USB_XHCI_HCD_DEBUGGING + /* Poll the rings - for debugging */ + struct timer_list event_ring_timer; + int zombie; +#endif + /* Host controller watchdog timer structures */ + unsigned int xhc_state; + + u32 command; + struct s3_save s3; +/* Host controller is dying - not responding to commands. "I'm not dead yet!" + * + * xHC interrupts have been disabled and a watchdog timer will (or has already) + * halt the xHCI host, and complete all URBs with an -ESHUTDOWN code. Any code + * that sees this status (other than the timer that set it) should stop touching + * hardware immediately. Interrupt handlers should return immediately when + * they see this status (any time they drop and re-acquire xhci->lock). + * xhci_urb_dequeue() should call usb_hcd_check_unlink_urb() and return without + * putting the TD on the canceled list, etc. + * + * There are no reports of xHCI host controllers that display this issue. + */ +#define XHCI_STATE_DYING (1 << 0) +#define XHCI_STATE_HALTED (1 << 1) + /* Statistics */ + int error_bitmask; + unsigned int quirks; +#define XHCI_LINK_TRB_QUIRK (1 << 0) +#define XHCI_RESET_EP_QUIRK (1 << 1) +#define XHCI_NEC_HOST (1 << 2) +#define XHCI_AMD_PLL_FIX (1 << 3) +#define XHCI_SPURIOUS_SUCCESS (1 << 4) +/* + * Certain Intel host controllers have a limit to the number of endpoint + * contexts they can handle. Ideally, they would signal that they can't handle + * anymore endpoint contexts by returning a Resource Error for the Configure + * Endpoint command, but they don't. Instead they expect software to keep track + * of the number of active endpoints for them, across configure endpoint + * commands, reset device commands, disable slot commands, and address device + * commands. + */ +#define XHCI_EP_LIMIT_QUIRK (1 << 5) +#define XHCI_BROKEN_MSI (1 << 6) +#define XHCI_RESET_ON_RESUME (1 << 7) +#define XHCI_SW_BW_CHECKING (1 << 8) +#define XHCI_AMD_0x96_HOST (1 << 9) +#define XHCI_TRUST_TX_LENGTH (1 << 10) + unsigned int num_active_eps; + unsigned int limit_active_eps; + /* There are two roothubs to keep track of bus suspend info for */ + struct xhci_bus_state bus_state[2]; + /* Is each xHCI roothub port a USB 3.0, USB 2.0, or USB 1.1 port? */ + u8 *port_array; + /* Array of pointers to USB 3.0 PORTSC registers */ + __le32 __iomem **usb3_ports; + unsigned int num_usb3_ports; + /* Array of pointers to USB 2.0 PORTSC registers */ + __le32 __iomem **usb2_ports; + unsigned int num_usb2_ports; + /* support xHCI 0.96 spec USB2 software LPM */ + unsigned sw_lpm_support:1; + /* support xHCI 1.0 spec USB2 hardware LPM */ + unsigned hw_lpm_support:1; +}; + +/* convert between an HCD pointer and the corresponding EHCI_HCD */ +static inline struct xhci_hcd *hcd_to_xhci(struct usb_hcd *hcd) +{ + return *((struct xhci_hcd **) (hcd->hcd_priv)); +} + +static inline struct usb_hcd *xhci_to_hcd(struct xhci_hcd *xhci) +{ + return xhci->main_hcd; +} + +#ifdef CONFIG_USB_XHCI_HCD_DEBUGGING +#define XHCI_DEBUG 1 +#else +#define XHCI_DEBUG 0 +#endif + +#if defined(__VMKLNX__) +#define xhci_dbg(xhci, fmt, args...) \ + do { if (XHCI_DEBUG) dev_info(xhci_to_hcd(xhci)->self.controller , fmt , ## args); } while (0) +#else +#define xhci_dbg(xhci, fmt, args...) \ + do { if (XHCI_DEBUG) dev_dbg(xhci_to_hcd(xhci)->self.controller , fmt , ## args); } while (0) +#endif +#define xhci_info(xhci, fmt, args...) \ + do { if (XHCI_DEBUG) dev_info(xhci_to_hcd(xhci)->self.controller , fmt , ## args); } while (0) +#define xhci_err(xhci, fmt, args...) \ + dev_err(xhci_to_hcd(xhci)->self.controller , fmt , ## args) +#define xhci_warn(xhci, fmt, args...) \ + dev_warn(xhci_to_hcd(xhci)->self.controller , fmt , ## args) +#if defined(__VMKLNX__) +#define xhci_warn_ratelimited(xhci, fmt, args...) \ + do { \ + static bool warned; \ + \ + if (!warned) { \ + dev_warn(xhci_to_hcd(xhci)->self.controller, \ + fmt , ## args); \ + warned = true; \ + } \ + } while (0) +#else +#define xhci_warn_ratelimited(xhci, fmt, args...) \ + dev_warn_ratelimited(xhci_to_hcd(xhci)->self.controller , fmt , ## args) +#endif + +/* TODO: copied from ehci.h - can be refactored? */ +/* xHCI spec says all registers are little endian */ +static inline unsigned int xhci_readl(const struct xhci_hcd *xhci, + __le32 __iomem *regs) +{ + return readl(regs); +} +static inline void xhci_writel(struct xhci_hcd *xhci, + const unsigned int val, __le32 __iomem *regs) +{ + writel(val, regs); +} + +/* + * Registers should always be accessed with double word or quad word accesses. + * + * Some xHCI implementations may support 64-bit address pointers. Registers + * with 64-bit address pointers should be written to with dword accesses by + * writing the low dword first (ptr[0]), then the high dword (ptr[1]) second. + * xHCI implementations that do not support 64-bit address pointers will ignore + * the high dword, and write order is irrelevant. + */ +static inline u64 xhci_read_64(const struct xhci_hcd *xhci, + __le64 __iomem *regs) +{ + __u32 __iomem *ptr = (__u32 __iomem *) regs; + u64 val_lo = readl(ptr); + u64 val_hi = readl(ptr + 1); + return val_lo + (val_hi << 32); +} +static inline void xhci_write_64(struct xhci_hcd *xhci, + const u64 val, __le64 __iomem *regs) +{ + __u32 __iomem *ptr = (__u32 __iomem *) regs; + u32 val_lo = lower_32_bits(val); + u32 val_hi = upper_32_bits(val); + + writel(val_lo, ptr); + writel(val_hi, ptr + 1); +} + +static inline int xhci_link_trb_quirk(struct xhci_hcd *xhci) +{ + return xhci->quirks & XHCI_LINK_TRB_QUIRK; +} + +/* xHCI debugging */ +void xhci_print_ir_set(struct xhci_hcd *xhci, int set_num); +void xhci_print_registers(struct xhci_hcd *xhci); +void xhci_dbg_regs(struct xhci_hcd *xhci); +void xhci_print_run_regs(struct xhci_hcd *xhci); +void xhci_print_trb_offsets(struct xhci_hcd *xhci, union xhci_trb *trb); +void xhci_debug_trb(struct xhci_hcd *xhci, union xhci_trb *trb); +void xhci_debug_segment(struct xhci_hcd *xhci, struct xhci_segment *seg); +void xhci_debug_ring(struct xhci_hcd *xhci, struct xhci_ring *ring); +void xhci_dbg_erst(struct xhci_hcd *xhci, struct xhci_erst *erst); +void xhci_dbg_cmd_ptrs(struct xhci_hcd *xhci); +void xhci_dbg_ring_ptrs(struct xhci_hcd *xhci, struct xhci_ring *ring); +void xhci_dbg_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, unsigned int last_ep); +char *xhci_get_slot_state(struct xhci_hcd *xhci, + struct xhci_container_ctx *ctx); +void xhci_dbg_ep_rings(struct xhci_hcd *xhci, + unsigned int slot_id, unsigned int ep_index, + struct xhci_virt_ep *ep); + +/* xHCI memory management */ +void xhci_mem_cleanup(struct xhci_hcd *xhci); +int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags); +void xhci_free_virt_device(struct xhci_hcd *xhci, int slot_id); +int xhci_alloc_virt_device(struct xhci_hcd *xhci, int slot_id, struct usb_device *udev, gfp_t flags); +int xhci_setup_addressable_virt_dev(struct xhci_hcd *xhci, struct usb_device *udev); +void xhci_copy_ep0_dequeue_into_input_ctx(struct xhci_hcd *xhci, + struct usb_device *udev); +unsigned int xhci_get_endpoint_index(struct usb_endpoint_descriptor *desc); +unsigned int xhci_get_endpoint_flag(struct usb_endpoint_descriptor *desc); +unsigned int xhci_get_endpoint_flag_from_index(unsigned int ep_index); +unsigned int xhci_last_valid_endpoint(u32 added_ctxs); +void xhci_endpoint_zero(struct xhci_hcd *xhci, struct xhci_virt_device *virt_dev, struct usb_host_endpoint *ep); +void xhci_drop_ep_from_interval_table(struct xhci_hcd *xhci, + struct xhci_bw_info *ep_bw, + struct xhci_interval_bw_table *bw_table, + struct usb_device *udev, + struct xhci_virt_ep *virt_ep, + struct xhci_tt_bw_info *tt_info); +void xhci_update_tt_active_eps(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + int old_active_eps); +void xhci_clear_endpoint_bw_info(struct xhci_bw_info *bw_info); +void xhci_update_bw_info(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx, + struct xhci_input_control_ctx *ctrl_ctx, + struct xhci_virt_device *virt_dev); +void xhci_endpoint_copy(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx, + struct xhci_container_ctx *out_ctx, + unsigned int ep_index); +void xhci_slot_copy(struct xhci_hcd *xhci, + struct xhci_container_ctx *in_ctx, + struct xhci_container_ctx *out_ctx); +int xhci_endpoint_init(struct xhci_hcd *xhci, struct xhci_virt_device *virt_dev, + struct usb_device *udev, struct usb_host_endpoint *ep, + gfp_t mem_flags); +void xhci_ring_free(struct xhci_hcd *xhci, struct xhci_ring *ring); +int xhci_ring_expansion(struct xhci_hcd *xhci, struct xhci_ring *ring, + unsigned int num_trbs, gfp_t flags); +void xhci_free_or_cache_endpoint_ring(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + unsigned int ep_index); +struct xhci_stream_info *xhci_alloc_stream_info(struct xhci_hcd *xhci, + unsigned int num_stream_ctxs, + unsigned int num_streams, gfp_t flags); +void xhci_free_stream_info(struct xhci_hcd *xhci, + struct xhci_stream_info *stream_info); +void xhci_setup_streams_ep_input_ctx(struct xhci_hcd *xhci, + struct xhci_ep_ctx *ep_ctx, + struct xhci_stream_info *stream_info); +void xhci_setup_no_streams_ep_input_ctx(struct xhci_hcd *xhci, + struct xhci_ep_ctx *ep_ctx, + struct xhci_virt_ep *ep); +void xhci_free_device_endpoint_resources(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, bool drop_control_ep); +struct xhci_ring *xhci_dma_to_transfer_ring( + struct xhci_virt_ep *ep, + u64 address); +struct xhci_ring *xhci_stream_id_to_ring( + struct xhci_virt_device *dev, + unsigned int ep_index, + unsigned int stream_id); +struct xhci_command *xhci_alloc_command(struct xhci_hcd *xhci, + bool allocate_in_ctx, bool allocate_completion, + gfp_t mem_flags); +void xhci_urb_free_priv(struct xhci_hcd *xhci, struct urb_priv *urb_priv); +void xhci_free_command(struct xhci_hcd *xhci, + struct xhci_command *command); + +#ifdef CONFIG_PCI +/* xHCI PCI glue */ +int xhci_register_pci(void); +void xhci_unregister_pci(void); +#else +static inline int xhci_register_pci(void) { return 0; } +static inline void xhci_unregister_pci(void) {} +#endif + +#if defined(CONFIG_USB_XHCI_PLATFORM) \ + || defined(CONFIG_USB_XHCI_PLATFORM_MODULE) +int xhci_register_plat(void); +void xhci_unregister_plat(void); +#else +static inline int xhci_register_plat(void) +{ return 0; } +static inline void xhci_unregister_plat(void) +{ } +#endif + +/* xHCI host controller glue */ +typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); +void xhci_quiesce(struct xhci_hcd *xhci); +int xhci_halt(struct xhci_hcd *xhci); +int xhci_reset(struct xhci_hcd *xhci); +int xhci_init(struct usb_hcd *hcd); +int xhci_run(struct usb_hcd *hcd); +void xhci_stop(struct usb_hcd *hcd); +void xhci_shutdown(struct usb_hcd *hcd); +int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks); + +#ifdef CONFIG_PM +int xhci_suspend(struct xhci_hcd *xhci); +int xhci_resume(struct xhci_hcd *xhci, bool hibernated); +#else +#define xhci_suspend NULL +#define xhci_resume NULL +#endif + +int xhci_get_frame(struct usb_hcd *hcd); +irqreturn_t xhci_irq(struct usb_hcd *hcd); +irqreturn_t xhci_msi_irq(int irq, struct usb_hcd *hcd); +int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev); +void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev); +int xhci_alloc_tt_info(struct xhci_hcd *xhci, + struct xhci_virt_device *virt_dev, + struct usb_device *hdev, + struct usb_tt *tt, gfp_t mem_flags); +int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev, + struct usb_host_endpoint **eps, unsigned int num_eps, + unsigned int num_streams, gfp_t mem_flags); +int xhci_free_streams(struct usb_hcd *hcd, struct usb_device *udev, + struct usb_host_endpoint **eps, unsigned int num_eps, + gfp_t mem_flags); +int xhci_address_device(struct usb_hcd *hcd, struct usb_device *udev); +int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev); +int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd, + struct usb_device *udev, int enable); +int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev, + struct usb_tt *tt, gfp_t mem_flags); +int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags); +int xhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status); +int xhci_add_endpoint(struct usb_hcd *hcd, struct usb_device *udev, struct usb_host_endpoint *ep); +int xhci_drop_endpoint(struct usb_hcd *hcd, struct usb_device *udev, struct usb_host_endpoint *ep); +void xhci_endpoint_reset(struct usb_hcd *hcd, struct usb_host_endpoint *ep); +int xhci_discover_or_reset_device(struct usb_hcd *hcd, struct usb_device *udev); +int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev); +void xhci_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev); + +/* xHCI ring, segment, TRB, and TD functions */ +dma_addr_t xhci_trb_virt_to_dma(struct xhci_segment *seg, union xhci_trb *trb); +struct xhci_segment *trb_in_td(struct xhci_segment *start_seg, + union xhci_trb *start_trb, union xhci_trb *end_trb, + dma_addr_t suspect_dma); +int xhci_is_vendor_info_code(struct xhci_hcd *xhci, unsigned int trb_comp_code); +void xhci_ring_cmd_db(struct xhci_hcd *xhci); +int xhci_queue_slot_control(struct xhci_hcd *xhci, u32 trb_type, u32 slot_id); +int xhci_queue_address_device(struct xhci_hcd *xhci, dma_addr_t in_ctx_ptr, + u32 slot_id); +int xhci_queue_vendor_command(struct xhci_hcd *xhci, + u32 field1, u32 field2, u32 field3, u32 field4); +int xhci_queue_stop_endpoint(struct xhci_hcd *xhci, int slot_id, + unsigned int ep_index, int suspend); +int xhci_queue_ctrl_tx(struct xhci_hcd *xhci, gfp_t mem_flags, struct urb *urb, + int slot_id, unsigned int ep_index); +int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, struct urb *urb, + int slot_id, unsigned int ep_index); +int xhci_queue_intr_tx(struct xhci_hcd *xhci, gfp_t mem_flags, struct urb *urb, + int slot_id, unsigned int ep_index); +int xhci_queue_isoc_tx_prepare(struct xhci_hcd *xhci, gfp_t mem_flags, + struct urb *urb, int slot_id, unsigned int ep_index); +int xhci_queue_configure_endpoint(struct xhci_hcd *xhci, dma_addr_t in_ctx_ptr, + u32 slot_id, bool command_must_succeed); +int xhci_queue_evaluate_context(struct xhci_hcd *xhci, dma_addr_t in_ctx_ptr, + u32 slot_id); +int xhci_queue_reset_ep(struct xhci_hcd *xhci, int slot_id, + unsigned int ep_index); +int xhci_queue_reset_device(struct xhci_hcd *xhci, u32 slot_id); +void xhci_find_new_dequeue_state(struct xhci_hcd *xhci, + unsigned int slot_id, unsigned int ep_index, + unsigned int stream_id, struct xhci_td *cur_td, + struct xhci_dequeue_state *state); +void xhci_queue_new_dequeue_state(struct xhci_hcd *xhci, + unsigned int slot_id, unsigned int ep_index, + unsigned int stream_id, + struct xhci_dequeue_state *deq_state); +void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci, + struct usb_device *udev, unsigned int ep_index); +void xhci_queue_config_ep_quirk(struct xhci_hcd *xhci, + unsigned int slot_id, unsigned int ep_index, + struct xhci_dequeue_state *deq_state); +void xhci_stop_endpoint_command_watchdog(unsigned long arg); +void xhci_ring_ep_doorbell(struct xhci_hcd *xhci, unsigned int slot_id, + unsigned int ep_index, unsigned int stream_id); + +/* xHCI roothub code */ +void xhci_set_link_state(struct xhci_hcd *xhci, __le32 __iomem **port_array, + int port_id, u32 link_state); +void xhci_test_and_clear_bit(struct xhci_hcd *xhci, __le32 __iomem **port_array, + int port_id, u32 port_bit); +int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, u16 wIndex, + char *buf, u16 wLength); +int xhci_hub_status_data(struct usb_hcd *hcd, char *buf); + +#ifdef CONFIG_PM +int xhci_bus_suspend(struct usb_hcd *hcd); +int xhci_bus_resume(struct usb_hcd *hcd); +#else +#define xhci_bus_suspend NULL +#define xhci_bus_resume NULL +#endif /* CONFIG_PM */ + +u32 xhci_port_state_to_neutral(u32 state); +int xhci_find_slot_id_by_port(struct usb_hcd *hcd, struct xhci_hcd *xhci, + u16 port); +void xhci_ring_device(struct xhci_hcd *xhci, int slot_id); + +/* xHCI contexts */ +struct xhci_input_control_ctx *xhci_get_input_control_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx); +struct xhci_slot_ctx *xhci_get_slot_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx); +struct xhci_ep_ctx *xhci_get_ep_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, unsigned int ep_index); + +#endif /* __LINUX_XHCI_HCD_H */ diff --git a/vmkdrivers/src_92/drivers/usb/input/hid-core.c b/vmkdrivers/src_92/drivers/usb/input/hid-core.c index 5578ebd83646d001bc9e2a3ec37ddf0b592d4e73..9d2820ef16c4b7917e56b39ea10df89fe93d4c97 100644 --- a/vmkdrivers/src_92/drivers/usb/input/hid-core.c +++ b/vmkdrivers/src_92/drivers/usb/input/hid-core.c @@ -521,7 +521,13 @@ void __usbhid_submit_report(struct hid_device *hid, struct hid_report *report, u { int head; struct usbhid_device *usbhid = hid->driver_data; - int len = ((report->size - 1) >> 3) + 1 + (report->id > 0); + + /* + * 7 extra bytes are necessary to achieve proper functionality + * of implement() working on 8 byte chunks + */ + + int len = ((report->size - 1) >> 3) + 1 + (report->id > 0) + 7; if ((hid->quirks & HID_QUIRK_NOGET) && dir == USB_DIR_IN) return; diff --git a/vmkdrivers/src_92/drivers/usb/net/usbnet.c b/vmkdrivers/src_92/drivers/usb/net/usbnet.c index 61c651d909a98d640697b5b92ed4647b196d7f18..1cc0ff206cabcaa896a730285923b2bbf8f19643 100644 --- a/vmkdrivers/src_92/drivers/usb/net/usbnet.c +++ b/vmkdrivers/src_92/drivers/usb/net/usbnet.c @@ -278,8 +278,11 @@ static void defer_bh(struct usbnet *dev, struct sk_buff *skb, struct sk_buff_hea spin_unlock(&list->lock); spin_lock(&dev->done.lock); __skb_queue_tail(&dev->done, skb); - if (dev->done.qlen == 1) + if (dev->done.qlen == 1) { + spin_unlock_irqrestore(&dev->done.lock, flags); tasklet_schedule(&dev->bh); + return; + } spin_unlock_irqrestore(&dev->done.lock, flags); } diff --git a/vmkdrivers/src_92/drivers/usb/storage/option_ms.c b/vmkdrivers/src_92/drivers/usb/storage/option_ms.c index 89460181d122759ba00ff064b49b2ff3c8b28268..e0f76bb05915cb63647a5470c71714c61e0a52ce 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/option_ms.c +++ b/vmkdrivers/src_92/drivers/usb/storage/option_ms.c @@ -22,6 +22,7 @@ #include #include +#include #include "usb.h" #include "transport.h" diff --git a/vmkdrivers/src_92/drivers/usb/storage/protocol.c b/vmkdrivers/src_92/drivers/usb/storage/protocol.c index a30b8997d72171fb5b9cbbc046576061b13afca9..70ab71cf7215c8e212ea3943b8bd60054eb1c47f 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/protocol.c +++ b/vmkdrivers/src_92/drivers/usb/storage/protocol.c @@ -46,6 +46,7 @@ */ #include +#include #include #include #if defined(__VMKLNX__) @@ -118,7 +119,9 @@ void fix_inquiry_data(struct scsi_cmnd *srb, struct us_data *us) void usb_stor_pad12_command(struct scsi_cmnd *srb, struct us_data *us) { - /* Pad the SCSI command with zeros out to 12 bytes + /* + * Pad the SCSI command with zeros out to 12 bytes. If the + * command already is 12 bytes or longer, leave it alone. * * NOTE: This only works because a scsi_cmnd struct field contains * a unsigned char cmnd[16], so we know we have storage available @@ -126,9 +129,6 @@ void usb_stor_pad12_command(struct scsi_cmnd *srb, struct us_data *us) for (; srb->cmd_len<12; srb->cmd_len++) srb->cmnd[srb->cmd_len] = 0; - /* set command length to 12 bytes */ - srb->cmd_len = 12; - /* send the command to the transport layer */ usb_stor_invoke_transport(srb, us); #if defined(__VMKLNX__) diff --git a/vmkdrivers/src_92/drivers/usb/storage/scsiglue.c b/vmkdrivers/src_92/drivers/usb/storage/scsiglue.c index 2ea2f2c1de79ceaac0e9035afb70e5a8db7c73fe..63f55eb51ec717f9bc7d5820347b55bf4c2fd756 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/scsiglue.c +++ b/vmkdrivers/src_92/drivers/usb/storage/scsiglue.c @@ -123,7 +123,7 @@ static int slave_alloc (struct scsi_device *sdev) * Let the scanning code know if this target merely sets * Peripheral Device Type to 0x1f to indicate no LUN. */ - if (us->subclass == US_SC_UFI) + if (us->subclass == USB_SC_UFI) sdev->sdev_target->pdt_1f_for_no_lun = 1; return 0; @@ -188,7 +188,7 @@ static int slave_configure(struct scsi_device *sdev) /* Disk-type devices use MODE SENSE(6) if the protocol * (SubClass) is Transparent SCSI, otherwise they use * MODE SENSE(10). */ - if (us->subclass != US_SC_SCSI && us->subclass != US_SC_CYP_ATACB) + if (us->subclass != USB_SC_SCSI && us->subclass != USB_SC_CYP_ATACB) sdev->use_10_for_ms = 1; /* Many disks only accept MODE SENSE transfer lengths of @@ -209,6 +209,11 @@ static int slave_configure(struct scsi_device *sdev) * page x08, so we will skip it. */ sdev->skip_ms_page_8 = 1; +#if !defined(__VMKLNX__) + /* Some devices don't handle VPD pages correctly */ + sdev->skip_vpd_pages = 1; +#endif + /* Some disks return the total number of blocks in response * to READ CAPACITY rather than the highest block number. * If this device makes that mistake, tell the sd driver. */ @@ -221,12 +226,17 @@ static int slave_configure(struct scsi_device *sdev) * The sd driver has to guess which is the case. */ if (us->fflags & US_FL_CAPACITY_HEURISTICS) sdev->guess_capacity = 1; + + /* Some devices cannot handle READ_CAPACITY_16 */ + if (us->fflags & US_FL_NO_READ_CAPACITY_16) + sdev->no_read_capacity_16 = 1; #endif /* assume SPC3 or latter devices support sense size > 18 */ if (sdev->scsi_level > SCSI_SPC_2) us->fflags |= US_FL_SANE_SENSE; +#if defined(__VMKLNX__) /* Some devices report a SCSI revision level above 2 but are * unable to handle the REPORT LUNS command (for which * support is mandatory at level 3). Since we already have @@ -236,6 +246,7 @@ static int slave_configure(struct scsi_device *sdev) if (sdev->scsi_level > SCSI_2) sdev->sdev_target->scsi_level = sdev->scsi_level = SCSI_2; +#endif /* USB-IDE bridges tend to report SK = 0x04 (Non-recoverable * Hardware Error) when any low-level error occurs, @@ -261,7 +272,7 @@ static int slave_configure(struct scsi_device *sdev) * capacity will be decremented or is correct. */ if (!(us->fflags & (US_FL_FIX_CAPACITY | US_FL_CAPACITY_OK | US_FL_SCM_MULT_TARG)) && - us->protocol == US_PR_BULK) + us->protocol == USB_PR_BULK) us->use_last_sector_hacks = 1; } else { @@ -269,6 +280,12 @@ static int slave_configure(struct scsi_device *sdev) * or to force 192-byte transfer lengths for MODE SENSE. * But they do need to use MODE SENSE(10). */ sdev->use_10_for_ms = 1; +#if !defined(__VMKLNX__) + /* Some (fake) usb cdrom devices don't like READ_DISC_INFO */ + if (us->fflags & US_FL_NO_READ_DISC_INFO) + sdev->no_read_disc_info = 1; +#endif + } /* The CB and CBI transports have no way to pass LUN values @@ -277,7 +294,7 @@ static int slave_configure(struct scsi_device *sdev) * scsi_level == 0 (UNKNOWN). Hence such devices must necessarily * be single-LUN. */ - if ((us->protocol == US_PR_CB || us->protocol == US_PR_CBI) && + if ((us->protocol == USB_PR_CB || us->protocol == USB_PR_CBI) && sdev->scsi_level == SCSI_UNKNOWN) us->max_lun = 0; @@ -291,10 +308,46 @@ static int slave_configure(struct scsi_device *sdev) return 0; } +static int target_alloc(struct scsi_target *starget) +{ + struct us_data *us = host_to_us(dev_to_shost(starget->dev.parent)); + + +#if !defined(__VMKLNX__) + /* + * Some USB drives don't support REPORT LUNS, even though they + * report a SCSI revision level above 2. Tell the SCSI layer + * not to issue that command; it will perform a normal sequential + * scan instead. + */ + starget->no_report_luns = 1; +#endif + + /* + * The UFI spec treats the Peripheral Qualifier bits in an + * INQUIRY result as reserved and requires devices to set them + * to 0. However the SCSI spec requires these bits to be set + * to 3 to indicate when a LUN is not present. + * + * Let the scanning code know if this target merely sets + * Peripheral Device Type to 0x1f to indicate no LUN. + */ + if (us->subclass == USB_SC_UFI) + starget->pdt_1f_for_no_lun = 1; + + return 0; +} + + /* queue a command */ /* This is always called with scsi_lock(host) held */ +#if defined(__VMKLNX__) static int queuecommand(struct scsi_cmnd *srb, void (*done)(struct scsi_cmnd *)) +#else +static int queuecommand_lck(struct scsi_cmnd *srb, + void (*done)(struct scsi_cmnd *)) +#endif { struct us_data *us = host_to_us(srb->device->host); @@ -335,6 +388,14 @@ static int queuecommand(struct scsi_cmnd *srb, return 0; } + +#if !defined(__VMKLNX__) +/* This macro was added into the linux 3.4.2 USB storage branch, but + * relies on scsi additions that linux 3.4.2 has but are not in vmklinux scsi */ +static DEF_SCSI_QCMD(queuecommand) +#endif + + /*********************************************************************** * Error handling functions ***********************************************************************/ @@ -582,6 +643,7 @@ struct scsi_host_template usb_stor_host_template = { .slave_alloc = slave_alloc, .slave_configure = slave_configure, + .target_alloc = target_alloc, #if defined(__VMKLNX__) .sg_tablesize = SG_ALL, diff --git a/vmkdrivers/src_92/drivers/usb/storage/transport.c b/vmkdrivers/src_92/drivers/usb/storage/transport.c index 666efefff0dfa6d3d16d4be7f0d0d314deed63d0..ba851c237e7ee6fac420dd21add2d213d14bf2a7 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/transport.c +++ b/vmkdrivers/src_92/drivers/usb/storage/transport.c @@ -49,6 +49,7 @@ #include #include #include +#include #include @@ -148,15 +149,12 @@ static int usb_stor_msg_common(struct us_data *us, int timeout) /* fill the common fields in the URB */ us->current_urb->context = &urb_done; - us->current_urb->actual_length = 0; - us->current_urb->error_count = 0; - us->current_urb->status = 0; + us->current_urb->transfer_flags = 0; /* we assume that if transfer_buffer isn't us->iobuf then it * hasn't been mapped for DMA. Yes, this is clunky, but it's * easier than always having the caller tell us whether the * transfer buffer has already been mapped. */ - us->current_urb->transfer_flags = URB_NO_SETUP_DMA_MAP; #if defined(__VMKLNX__) if (us->current_urb->transfer_buffer == us->iobuf) { us->current_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; @@ -172,7 +170,6 @@ static int usb_stor_msg_common(struct us_data *us, int timeout) us->current_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; us->current_urb->transfer_dma = us->iobuf_dma; #endif - us->current_urb->setup_dma = us->cr_dma; /* submit the URB */ #if defined(__VMKLNX__) @@ -865,7 +862,7 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us) * unless the operation involved a data-in transfer. Devices * can signal most data-in errors by stalling the bulk-in pipe. */ - if ((us->protocol == US_PR_CB || us->protocol == US_PR_DPCM_USB) && + if ((us->protocol == USB_PR_CB || us->protocol == USB_PR_DPCM_USB) && srb->sc_data_direction != DMA_FROM_DEVICE) { _VMKLNX_USB_STOR_MSG("-- CB transport device requiring auto-sense\n", srb); US_DEBUGP("-- CB transport device requiring auto-sense\n"); @@ -917,6 +914,9 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us) int temp_result; struct scsi_eh_save ses; int sense_size = US_SENSE_SIZE; + struct scsi_sense_hdr sshdr; + const u8 *scdd; + u8 fm_ili; /* device supports and needs bigger sense buffer */ if (us->fflags & US_FL_SANE_SENSE) @@ -933,8 +933,8 @@ Retry_Sense: #endif /* FIXME: we must do the protocol translation here */ - if (us->subclass == US_SC_RBC || us->subclass == US_SC_SCSI || - us->subclass == US_SC_CYP_ATACB) + if (us->subclass == USB_SC_RBC || us->subclass == USB_SC_SCSI || + us->subclass == USB_SC_CYP_ATACB) srb->cmd_len = 6; else srb->cmd_len = 12; @@ -1010,17 +1010,15 @@ Retry_Sense: srb->sense_buffer[7] = (US_SENSE_SIZE - 8); } + scsi_normalize_sense(srb->sense_buffer, SCSI_SENSE_BUFFERSIZE, + &sshdr); + US_DEBUGP("-- Result from auto-sense is %d\n", temp_result); US_DEBUGP("-- code: 0x%x, key: 0x%x, ASC: 0x%x, ASCQ: 0x%x\n", - srb->sense_buffer[0], - srb->sense_buffer[2] & 0xf, - srb->sense_buffer[12], - srb->sense_buffer[13]); + sshdr.response_code, sshdr.sense_key, + sshdr.asc, sshdr.ascq); #ifdef CONFIG_USB_STORAGE_DEBUG - usb_stor_show_sense( - srb->sense_buffer[2] & 0xf, - srb->sense_buffer[12], - srb->sense_buffer[13]); + usb_stor_show_sense(sshdr.sense_key, sshdr.asc, sshdr.ascq); #endif /* set the result so the higher layers expect this data */ @@ -1034,17 +1032,16 @@ Retry_Sense: } #endif + scdd = scsi_sense_desc_find(srb->sense_buffer, + SCSI_SENSE_BUFFERSIZE, 4); + fm_ili = (scdd ? scdd[3] : srb->sense_buffer[2]) & 0xA0; /* We often get empty sense data. This could indicate that * everything worked or that there was an unspecified * problem. We have to decide which. */ - if ( /* Filemark 0, ignore EOM, ILI 0, no sense */ - (srb->sense_buffer[2] & 0xaf) == 0 && - /* No ASC or ASCQ */ - srb->sense_buffer[12] == 0 && - srb->sense_buffer[13] == 0) { - + if (sshdr.sense_key == 0 && sshdr.asc == 0 && sshdr.ascq == 0 && + fm_ili == 0) { /* If things are really okay, then let's show that. * Zero out the sense buffer so the higher layers * won't realize we did an unsolicited auto-sense. @@ -1059,11 +1056,43 @@ Retry_Sense: */ } else { srb->result = DID_ERROR << 16; - srb->sense_buffer[2] = HARDWARE_ERROR; + if ((sshdr.response_code & 0x72) == 0x72) + srb->sense_buffer[1] = HARDWARE_ERROR; + else + srb->sense_buffer[2] = HARDWARE_ERROR; } } } + /* + * Some devices don't work or return incorrect data the first + * time they get a READ(10) command, or for the first READ(10) + * after a media change. If the INITIAL_READ10 flag is set, + * keep track of whether READ(10) commands succeed. If the + * previous one succeeded and this one failed, set the REDO_READ10 + * flag to force a retry. + */ + if (unlikely((us->fflags & US_FL_INITIAL_READ10) && + srb->cmnd[0] == READ_10)) { + if (srb->result == SAM_STAT_GOOD) { + set_bit(US_FLIDX_READ10_WORKED, &us->dflags); + } else if (test_bit(US_FLIDX_READ10_WORKED, &us->dflags)) { + clear_bit(US_FLIDX_READ10_WORKED, &us->dflags); + set_bit(US_FLIDX_REDO_READ10, &us->dflags); + } + + /* + * Next, if the REDO_READ10 flag is set, return a result + * code that will cause the SCSI core to retry the READ(10) + * command immediately. + */ + if (test_bit(US_FLIDX_REDO_READ10, &us->dflags)) { + clear_bit(US_FLIDX_REDO_READ10, &us->dflags); + srb->result = DID_IMM_RETRY << 16; + srb->sense_buffer[0] = 0; + } + } + /* Did we transfer less than the minimum amount required? */ #if defined(__VMKLNX__) if ((srb->result == SAM_STAT_GOOD || srb->sense_buffer[2] == 0) && @@ -1196,7 +1225,7 @@ int usb_stor_CB_transport(struct scsi_cmnd *srb, struct us_data *us) /* NOTE: CB does not have a status stage. Silly, I know. So * we have to catch this at a higher level. */ - if (us->protocol != US_PR_CBI) + if (us->protocol != USB_PR_CBI) return USB_STOR_TRANSPORT_GOOD; result = usb_stor_intr_transfer(us, us->iobuf, 2); @@ -1212,7 +1241,7 @@ int usb_stor_CB_transport(struct scsi_cmnd *srb, struct us_data *us) * that this means we could be ignoring a real error on these * commands, but that can't be helped. */ - if (us->subclass == US_SC_UFI) { + if (us->subclass == USB_SC_UFI) { if (srb->cmnd[0] == REQUEST_SENSE || srb->cmnd[0] == INQUIRY) return USB_STOR_TRANSPORT_GOOD; @@ -1309,7 +1338,8 @@ int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us) /* set up the command wrapper */ bcb->Signature = cpu_to_le32(US_BULK_CB_SIGN); bcb->DataTransferLength = cpu_to_le32(transfer_length); - bcb->Flags = srb->sc_data_direction == DMA_FROM_DEVICE ? 1 << 7 : 0; + bcb->Flags = srb->sc_data_direction == DMA_FROM_DEVICE ? + US_BULK_FLAG_IN : 0; bcb->Tag = ++us->tag; bcb->Lun = srb->device->lun; if (us->fflags & US_FL_SCM_MULT_TARG) diff --git a/vmkdrivers/src_92/drivers/usb/storage/transport.h b/vmkdrivers/src_92/drivers/usb/storage/transport.h index 242ff5e791a532ecc96d4ceaf180e3d60130f8c1..9369d752d4194682b1a52532f2107c84a5979bca 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/transport.h +++ b/vmkdrivers/src_92/drivers/usb/storage/transport.h @@ -41,45 +41,6 @@ #include -/* - * Bulk only data structures - */ - -/* command block wrapper */ -struct bulk_cb_wrap { - __le32 Signature; /* contains 'USBC' */ - __u32 Tag; /* unique per command id */ - __le32 DataTransferLength; /* size of data */ - __u8 Flags; /* direction in bit 0 */ - __u8 Lun; /* LUN normally 0 */ - __u8 Length; /* of of the CDB */ - __u8 CDB[16]; /* max command */ -}; - -#define US_BULK_CB_WRAP_LEN 31 -#define US_BULK_CB_SIGN 0x43425355 /*spells out USBC */ -#define US_BULK_FLAG_IN 1 -#define US_BULK_FLAG_OUT 0 - -/* command status wrapper */ -struct bulk_cs_wrap { - __le32 Signature; /* should = 'USBS' */ - __u32 Tag; /* same as original command */ - __le32 Residue; /* amount not transferred */ - __u8 Status; /* see below */ - __u8 Filler[18]; -}; - -#define US_BULK_CS_WRAP_LEN 13 -#define US_BULK_CS_SIGN 0x53425355 /* spells out 'USBS' */ -#define US_BULK_STAT_OK 0 -#define US_BULK_STAT_FAIL 1 -#define US_BULK_STAT_PHASE 2 - -/* bulk-only class specific requests */ -#define US_BULK_RESET_REQUEST 0xff -#define US_BULK_GET_MAX_LUN 0xfe - /* * usb_stor_bulk_transfer_xxx() return codes, in order of severity */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_alauda.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_alauda.h index 8c412f885dd2e59543c2247e72edbb835274395b..fa3e9edaa2cfaf8ba420aab00e3bcddc50129938 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_alauda.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_alauda.h @@ -21,11 +21,11 @@ UNUSUAL_DEV( 0x0584, 0x0008, 0x0102, 0x0102, "Fujifilm", "DPC-R1 (Alauda)", - US_SC_SCSI, US_PR_ALAUDA, init_alauda, 0), + USB_SC_SCSI, USB_PR_ALAUDA, init_alauda, 0), UNUSUAL_DEV( 0x07b4, 0x010a, 0x0102, 0x0102, "Olympus", "MAUSB-10 (Alauda)", - US_SC_SCSI, US_PR_ALAUDA, init_alauda, 0), + USB_SC_SCSI, USB_PR_ALAUDA, init_alauda, 0), #endif /* defined(CONFIG_USB_STORAGE_ALAUDA) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_cypress.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_cypress.h index 44be6d75dab6ec7cec3519b9abf1b616f10f8b3e..2c8553026222fb178a4b11d2ae4380751ce716c6 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_cypress.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_cypress.h @@ -23,12 +23,17 @@ UNUSUAL_DEV( 0x04b4, 0x6830, 0x0000, 0x9999, "Cypress", "Cypress AT2LP", - US_SC_CYP_ATACB, US_PR_DEVICE, NULL, 0), + USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0), /* CY7C68310 : support atacb and atacb2 */ UNUSUAL_DEV( 0x04b4, 0x6831, 0x0000, 0x9999, "Cypress", "Cypress ISD-300LP", - US_SC_CYP_ATACB, US_PR_DEVICE, NULL, 0), + USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0), + +UNUSUAL_DEV( 0x14cd, 0x6116, 0x0000, 0x9999, + "Super Top", + "USB 2.0 SATA BRIDGE", + USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0), #endif /* defined(CONFIG_USB_STORAGE_CYPRESS_ATACB) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_datafab.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_datafab.h index c9298ce9f2231428f96e5004b37afae5610d1c98..582a603c78bee7d1f07e768410932563002e0811 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_datafab.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_datafab.h @@ -21,7 +21,7 @@ UNUSUAL_DEV( 0x07c4, 0xa000, 0x0000, 0x0015, "Datafab", "MDCFE-B USB CF Reader", - US_SC_SCSI, US_PR_DATAFAB, NULL, + USB_SC_SCSI, USB_PR_DATAFAB, NULL, 0), /* @@ -38,45 +38,45 @@ UNUSUAL_DEV( 0x07c4, 0xa000, 0x0000, 0x0015, UNUSUAL_DEV( 0x07c4, 0xa001, 0x0000, 0xffff, "SIIG/Datafab", "SIIG/Datafab Memory Stick+CF Reader/Writer", - US_SC_SCSI, US_PR_DATAFAB, NULL, + USB_SC_SCSI, USB_PR_DATAFAB, NULL, 0), /* Reported by Josef Reisinger */ UNUSUAL_DEV( 0x07c4, 0xa002, 0x0000, 0xffff, "Datafab/Unknown", "MD2/MD3 Disk enclosure", - US_SC_SCSI, US_PR_DATAFAB, NULL, + USB_SC_SCSI, USB_PR_DATAFAB, NULL, US_FL_SINGLE_LUN), UNUSUAL_DEV( 0x07c4, 0xa003, 0x0000, 0xffff, "Datafab/Unknown", "Datafab-based Reader", - US_SC_SCSI, US_PR_DATAFAB, NULL, + USB_SC_SCSI, USB_PR_DATAFAB, NULL, 0), UNUSUAL_DEV( 0x07c4, 0xa004, 0x0000, 0xffff, "Datafab/Unknown", "Datafab-based Reader", - US_SC_SCSI, US_PR_DATAFAB, NULL, + USB_SC_SCSI, USB_PR_DATAFAB, NULL, 0), UNUSUAL_DEV( 0x07c4, 0xa005, 0x0000, 0xffff, "PNY/Datafab", "PNY/Datafab CF+SM Reader", - US_SC_SCSI, US_PR_DATAFAB, NULL, + USB_SC_SCSI, USB_PR_DATAFAB, NULL, 0), UNUSUAL_DEV( 0x07c4, 0xa006, 0x0000, 0xffff, "Simple Tech/Datafab", "Simple Tech/Datafab CF+SM Reader", - US_SC_SCSI, US_PR_DATAFAB, NULL, + USB_SC_SCSI, USB_PR_DATAFAB, NULL, 0), /* Submitted by Olaf Hering */ UNUSUAL_DEV( 0x07c4, 0xa109, 0x0000, 0xffff, "Datafab Systems, Inc.", "USB to CF + SM Combo (LC1)", - US_SC_SCSI, US_PR_DATAFAB, NULL, + USB_SC_SCSI, USB_PR_DATAFAB, NULL, 0), /* Reported by Felix Moeller @@ -86,13 +86,13 @@ UNUSUAL_DEV( 0x07c4, 0xa109, 0x0000, 0xffff, UNUSUAL_DEV( 0x07c4, 0xa10b, 0x0000, 0xffff, "DataFab Systems Inc.", "USB CF+MS", - US_SC_SCSI, US_PR_DATAFAB, NULL, + USB_SC_SCSI, USB_PR_DATAFAB, NULL, 0), UNUSUAL_DEV( 0x0c0b, 0xa109, 0x0000, 0xffff, "Acomdata", "CF", - US_SC_SCSI, US_PR_DATAFAB, NULL, + USB_SC_SCSI, USB_PR_DATAFAB, NULL, US_FL_SINGLE_LUN), #endif /* defined(CONFIG_USB_STORAGE_DATAFAB) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_devs.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_devs.h index 47ebee46c3e3c20d1e22b1c1570cb0e2d1d52631..31fc6db9c83b7b404bce1091ecc57fcf9efe737c 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_devs.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_devs.h @@ -66,26 +66,26 @@ UNUSUAL_DEV( 0x03eb, 0x2002, 0x0100, 0x0100, "ATMEL", "SND1 Storage", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE), /* Reported by Rodolfo Quesada */ UNUSUAL_DEV( 0x03ee, 0x6906, 0x0003, 0x0003, "VIA Technologies Inc.", "Mitsumi multi cardreader", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), UNUSUAL_DEV( 0x03f0, 0x0107, 0x0200, 0x0200, "HP", "CD-Writer+", - US_SC_8070, US_PR_CB, NULL, 0), + USB_SC_8070, USB_PR_CB, NULL, 0), /* Reported by Ben Efros */ UNUSUAL_DEV( 0x03f0, 0x070c, 0x0000, 0x0000, "HP", "Personal Media Drive", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SANE_SENSE ), /* Reported by Grant Grundler @@ -94,7 +94,7 @@ UNUSUAL_DEV( 0x03f0, 0x070c, 0x0000, 0x0000, UNUSUAL_DEV( 0x03f0, 0x4002, 0x0001, 0x0001, "HP", "PhotoSmart R707", - US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), /* Reported by Sebastian Kapfer * and Olaf Hering (different bcd's, same vendor/product) @@ -103,14 +103,14 @@ UNUSUAL_DEV( 0x03f0, 0x4002, 0x0001, 0x0001, UNUSUAL_DEV( 0x0409, 0x0040, 0x0000, 0x9999, "NEC", "NEC USB UF000x", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), /* Patch submitted by Mihnea-Costin Grigore */ UNUSUAL_DEV( 0x040d, 0x6205, 0x0003, 0x0003, "VIA Technologies Inc.", "USB 2.0 Card Reader", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Deduced by Jonathan Woithe @@ -120,40 +120,40 @@ UNUSUAL_DEV( 0x040d, 0x6205, 0x0003, 0x0003, UNUSUAL_DEV( 0x0411, 0x001c, 0x0113, 0x0113, "Buffalo", "DUB-P40G HDD", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), /* Submitted by Ernestas Vaiciukevicius */ UNUSUAL_DEV( 0x0419, 0x0100, 0x0100, 0x0100, "Samsung Info. Systems America, Inc.", "MP3 Player", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Orgad Shaneh */ UNUSUAL_DEV( 0x0419, 0xaace, 0x0100, 0x0100, "Samsung", "MP3 Player", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Christian Leber */ UNUSUAL_DEV( 0x0419, 0xaaf5, 0x0100, 0x0100, "TrekStor", "i.Beat 115 2.0", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_NOT_LOCKABLE ), /* Reported by Stefan Werner */ UNUSUAL_DEV( 0x0419, 0xaaf6, 0x0100, 0x0100, "TrekStor", "i.Beat Joy 2.0", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Pete Zaitcev , bz#176584 */ UNUSUAL_DEV( 0x0420, 0x0001, 0x0100, 0x0100, "GENERIC", "MP3 PLAYER", /* MyMusix PD-205 on the outside. */ - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Andrew Nayenko @@ -161,28 +161,28 @@ UNUSUAL_DEV( 0x0420, 0x0001, 0x0100, 0x0100, UNUSUAL_DEV( 0x0421, 0x0019, 0x0592, 0x0610, "Nokia", "Nokia 6288", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64 ), /* Reported by Mario Rettig */ UNUSUAL_DEV( 0x0421, 0x042e, 0x0100, 0x0100, "Nokia", "Nokia 3250", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ), /* Reported by */ UNUSUAL_DEV( 0x0421, 0x0433, 0x0100, 0x0100, "Nokia", "E70", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ), /* Reported by Jon Hart */ UNUSUAL_DEV( 0x0421, 0x0434, 0x0100, 0x0100, "Nokia", "E60", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY | US_FL_IGNORE_RESIDUE ), /* Reported by Sumedha Swamy and @@ -190,7 +190,7 @@ UNUSUAL_DEV( 0x0421, 0x0434, 0x0100, 0x0100, UNUSUAL_DEV( 0x0421, 0x0444, 0x0100, 0x0100, "Nokia", "N91", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ), /* Reported by Jiri Slaby and @@ -198,42 +198,42 @@ UNUSUAL_DEV( 0x0421, 0x0444, 0x0100, 0x0100, UNUSUAL_DEV( 0x0421, 0x0446, 0x0100, 0x0100, "Nokia", "N80", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ), /* Reported by Matthew Bloch */ UNUSUAL_DEV( 0x0421, 0x044e, 0x0100, 0x0100, "Nokia", "E61", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ), /* Reported by Bardur Arantsson */ UNUSUAL_DEV( 0x0421, 0x047c, 0x0370, 0x0610, "Nokia", "6131", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64 ), /* Reported by Manuel Osdoba */ UNUSUAL_DEV( 0x0421, 0x0492, 0x0452, 0x9999, "Nokia", "Nokia 6233", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64 ), /* Reported by Alex Corcoles */ UNUSUAL_DEV( 0x0421, 0x0495, 0x0370, 0x0370, "Nokia", "6234", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64 ), #ifdef NO_SDDR09 UNUSUAL_DEV( 0x0436, 0x0005, 0x0100, 0x0100, "Microtech", "CameraMate", - US_SC_SCSI, US_PR_CB, NULL, + USB_SC_SCSI, USB_PR_CB, NULL, US_FL_SINGLE_LUN ), #endif @@ -242,7 +242,7 @@ UNUSUAL_DEV( 0x0436, 0x0005, 0x0100, 0x0100, UNUSUAL_DEV( 0x0451, 0x5416, 0x0100, 0x0100, "Neuros Audio", "USB 2.0 HD 2.5", - US_SC_DEVICE, US_PR_BULK, NULL, + USB_SC_DEVICE, USB_PR_BULK, NULL, US_FL_NEED_OVERRIDE ), /* @@ -253,7 +253,7 @@ UNUSUAL_DEV( 0x0451, 0x5416, 0x0100, 0x0100, UNUSUAL_DEV( 0x0457, 0x0150, 0x0100, 0x0100, "USBest Technology", /* sold by Transcend */ "USB Mass Storage Device", - US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ), + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ), /* * Bohdan Linda @@ -263,7 +263,7 @@ UNUSUAL_DEV( 0x0457, 0x0150, 0x0100, 0x0100, UNUSUAL_DEV( 0x0457, 0x0151, 0x0100, 0x0100, "USB 2.0", "Flash Disk", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ), /* Reported by Tamas Kerecsen @@ -275,7 +275,7 @@ UNUSUAL_DEV( 0x0457, 0x0151, 0x0100, 0x0100, UNUSUAL_DEV( 0x045e, 0xffff, 0x0000, 0x0000, "Mitac", "GPS", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64 ), /* @@ -287,32 +287,32 @@ UNUSUAL_DEV( 0x045e, 0xffff, 0x0000, 0x0000, UNUSUAL_DEV( 0x046b, 0xff40, 0x0100, 0x0100, "AMI", "Virtual Floppy", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NO_WP_DETECT), /* Patch submitted by Philipp Friedrich */ UNUSUAL_DEV( 0x0482, 0x0100, 0x0100, 0x0100, "Kyocera", "Finecam S3x", - US_SC_8070, US_PR_CB, NULL, US_FL_FIX_INQUIRY), + USB_SC_8070, USB_PR_CB, NULL, US_FL_FIX_INQUIRY), /* Patch submitted by Philipp Friedrich */ UNUSUAL_DEV( 0x0482, 0x0101, 0x0100, 0x0100, "Kyocera", "Finecam S4", - US_SC_8070, US_PR_CB, NULL, US_FL_FIX_INQUIRY), + USB_SC_8070, USB_PR_CB, NULL, US_FL_FIX_INQUIRY), /* Patch submitted by Stephane Galles */ UNUSUAL_DEV( 0x0482, 0x0103, 0x0100, 0x0100, "Kyocera", "Finecam S5", - US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_FIX_INQUIRY), + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY), /* Patch submitted by Jens Taprogge */ UNUSUAL_DEV( 0x0482, 0x0107, 0x0100, 0x0100, "Kyocera", "CONTAX SL300R T*", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY | US_FL_NOT_LOCKABLE), /* Reported by Paul Stewart @@ -320,7 +320,7 @@ UNUSUAL_DEV( 0x0482, 0x0107, 0x0100, 0x0100, UNUSUAL_DEV( 0x04a4, 0x0004, 0x0001, 0x0001, "Hitachi", "DVD-CAM DZ-MV100A Camcorder", - US_SC_SCSI, US_PR_CB, NULL, US_FL_SINGLE_LUN), + USB_SC_SCSI, USB_PR_CB, NULL, US_FL_SINGLE_LUN), /* BENQ DC5330 * Reported by Manuel Fombuena and @@ -328,7 +328,7 @@ UNUSUAL_DEV( 0x04a4, 0x0004, 0x0001, 0x0001, UNUSUAL_DEV( 0x04a5, 0x3010, 0x0100, 0x0100, "Tekom Technologies, Inc", "300_CAMERA", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Patch for Nikon coolpix 2000 @@ -336,14 +336,14 @@ UNUSUAL_DEV( 0x04a5, 0x3010, 0x0100, 0x0100, UNUSUAL_DEV( 0x04b0, 0x0301, 0x0010, 0x0010, "NIKON", "NIKON DSC E2000", - US_SC_DEVICE, US_PR_DEVICE,NULL, + USB_SC_DEVICE, USB_PR_DEVICE,NULL, US_FL_NOT_LOCKABLE ), /* Reported by Doug Maxey (dwm@austin.ibm.com) */ UNUSUAL_DEV( 0x04b3, 0x4001, 0x0110, 0x0110, "IBM", "IBM RSA2", - US_SC_DEVICE, US_PR_CB, NULL, + USB_SC_DEVICE, USB_PR_CB, NULL, US_FL_MAX_SECTORS_MIN), /* Reported by Simon Levitt @@ -351,14 +351,14 @@ UNUSUAL_DEV( 0x04b3, 0x4001, 0x0110, 0x0110, UNUSUAL_DEV( 0x04b8, 0x0601, 0x0100, 0x0100, "Epson", "875DC Storage", - US_SC_SCSI, US_PR_CB, NULL, US_FL_FIX_INQUIRY), + USB_SC_SCSI, USB_PR_CB, NULL, US_FL_FIX_INQUIRY), /* Reported by Khalid Aziz * This entry is needed because the device reports Sub=ff */ UNUSUAL_DEV( 0x04b8, 0x0602, 0x0110, 0x0110, "Epson", "785EPX Storage", - US_SC_SCSI, US_PR_BULK, NULL, US_FL_SINGLE_LUN), + USB_SC_SCSI, USB_PR_BULK, NULL, US_FL_SINGLE_LUN), /* Not sure who reported this originally but * Pavel Machek reported that the extra US_FL_SINGLE_LUN @@ -366,16 +366,7 @@ UNUSUAL_DEV( 0x04b8, 0x0602, 0x0110, 0x0110, UNUSUAL_DEV( 0x04cb, 0x0100, 0x0000, 0x2210, "Fujifilm", "FinePix 1400Zoom", - US_SC_UFI, US_PR_DEVICE, NULL, US_FL_FIX_INQUIRY | US_FL_SINGLE_LUN), - -/* Reported by Peter Wächtler - * The device needs the flags only. - */ -UNUSUAL_DEV( 0x04ce, 0x0002, 0x0074, 0x0074, - "ScanLogic", - "SL11R-IDE", - US_SC_DEVICE, US_PR_DEVICE, NULL, - US_FL_FIX_INQUIRY), + USB_SC_UFI, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY | US_FL_SINGLE_LUN), /* Reported by Ondrej Zary * The device reports one sector more and breaks when that sector is accessed @@ -383,7 +374,7 @@ UNUSUAL_DEV( 0x04ce, 0x0002, 0x0074, 0x0074, UNUSUAL_DEV( 0x04ce, 0x0002, 0x026c, 0x026c, "ScanLogic", "SL11R-IDE", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), /* Reported by Kriston Fincher @@ -394,27 +385,27 @@ UNUSUAL_DEV( 0x04ce, 0x0002, 0x026c, 0x026c, UNUSUAL_DEV( 0x04da, 0x0901, 0x0100, 0x0200, "Panasonic", "LS-120 Camera", - US_SC_UFI, US_PR_DEVICE, NULL, 0), + USB_SC_UFI, USB_PR_DEVICE, NULL, 0), /* From Yukihiro Nakai, via zaitcev@yahoo.com. * This is needed for CB instead of CBI */ UNUSUAL_DEV( 0x04da, 0x0d05, 0x0000, 0x0000, "Sharp CE-CW05", "CD-R/RW Drive", - US_SC_8070, US_PR_CB, NULL, 0), + USB_SC_8070, USB_PR_CB, NULL, 0), /* Reported by Adriaan Penning */ UNUSUAL_DEV( 0x04da, 0x2372, 0x0000, 0x9999, "Panasonic", "DMC-LCx Camera", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY | US_FL_NOT_LOCKABLE ), /* Reported by Simeon Simeonov */ UNUSUAL_DEV( 0x04da, 0x2373, 0x0000, 0x9999, "LEICA", "D-LUX Camera", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY | US_FL_NOT_LOCKABLE ), /* Most of the following entries were developed with the help of @@ -423,19 +414,19 @@ UNUSUAL_DEV( 0x04da, 0x2373, 0x0000, 0x9999, UNUSUAL_DEV( 0x04e6, 0x0001, 0x0200, 0x0200, "Matshita", "LS-120", - US_SC_8020, US_PR_CB, NULL, 0), + USB_SC_8020, USB_PR_CB, NULL, 0), UNUSUAL_DEV( 0x04e6, 0x0002, 0x0100, 0x0100, "Shuttle", "eUSCSI Bridge", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_euscsi_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_euscsi_init, US_FL_SCM_MULT_TARG ), #ifdef NO_SDDR09 UNUSUAL_DEV( 0x04e6, 0x0005, 0x0100, 0x0208, "SCM Microsystems", "eUSB CompactFlash Adapter", - US_SC_SCSI, US_PR_CB, NULL, + USB_SC_SCSI, USB_PR_CB, NULL, US_FL_SINGLE_LUN), #endif @@ -443,56 +434,63 @@ UNUSUAL_DEV( 0x04e6, 0x0005, 0x0100, 0x0208, UNUSUAL_DEV( 0x04e6, 0x0006, 0x0100, 0x0100, "SCM Microsystems Inc.", "eUSB MMC Adapter", - US_SC_SCSI, US_PR_CB, NULL, + USB_SC_SCSI, USB_PR_CB, NULL, US_FL_SINGLE_LUN), /* Reported by Daniel Nouri */ UNUSUAL_DEV( 0x04e6, 0x0006, 0x0205, 0x0205, "Shuttle", "eUSB MMC Adapter", - US_SC_SCSI, US_PR_DEVICE, NULL, + USB_SC_SCSI, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN), UNUSUAL_DEV( 0x04e6, 0x0007, 0x0100, 0x0200, "Sony", "Hifd", - US_SC_SCSI, US_PR_CB, NULL, + USB_SC_SCSI, USB_PR_CB, NULL, US_FL_SINGLE_LUN), UNUSUAL_DEV( 0x04e6, 0x0009, 0x0200, 0x0200, "Shuttle", "eUSB ATA/ATAPI Adapter", - US_SC_8020, US_PR_CB, NULL, 0), + USB_SC_8020, USB_PR_CB, NULL, 0), UNUSUAL_DEV( 0x04e6, 0x000a, 0x0200, 0x0200, "Shuttle", "eUSB CompactFlash Adapter", - US_SC_8020, US_PR_CB, NULL, 0), + USB_SC_8020, USB_PR_CB, NULL, 0), UNUSUAL_DEV( 0x04e6, 0x000B, 0x0100, 0x0100, "Shuttle", "eUSCSI Bridge", - US_SC_SCSI, US_PR_BULK, usb_stor_euscsi_init, + USB_SC_SCSI, USB_PR_BULK, usb_stor_euscsi_init, US_FL_SCM_MULT_TARG ), UNUSUAL_DEV( 0x04e6, 0x000C, 0x0100, 0x0100, "Shuttle", "eUSCSI Bridge", - US_SC_SCSI, US_PR_BULK, usb_stor_euscsi_init, + USB_SC_SCSI, USB_PR_BULK, usb_stor_euscsi_init, US_FL_SCM_MULT_TARG ), UNUSUAL_DEV( 0x04e6, 0x0101, 0x0200, 0x0200, "Shuttle", "CD-RW Device", - US_SC_8020, US_PR_CB, NULL, 0), + USB_SC_8020, USB_PR_CB, NULL, 0), /* Reported by Dmitry Khlystov */ UNUSUAL_DEV( 0x04e8, 0x507c, 0x0220, 0x0220, "Samsung", "YP-U3", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64), +/* Reported by Vitaly Kuznetsov */ +UNUSUAL_DEV( 0x04e8, 0x5122, 0x0000, 0x9999, + "Samsung", + "YP-CP3", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64 | US_FL_BULK_IGNORE_TAG), + /* Entry and supporting patch by Theodore Kilgore . * Device uses standards-violating 32-byte Bulk Command Block Wrappers and * reports itself as "Proprietary SCSI Bulk." Cf. device entry 0x084d:0x0011. @@ -500,14 +498,14 @@ UNUSUAL_DEV( 0x04e8, 0x507c, 0x0220, 0x0220, UNUSUAL_DEV( 0x04fc, 0x80c2, 0x0100, 0x0100, "Kobian Mercury", "Binocam DCB-132", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_BULK32), /* Reported by Bob Sass -- only rev 1.33 tested */ UNUSUAL_DEV( 0x050d, 0x0115, 0x0133, 0x0133, "Belkin", "USB SCSI Adaptor", - US_SC_SCSI, US_PR_BULK, usb_stor_euscsi_init, + USB_SC_SCSI, USB_PR_BULK, usb_stor_euscsi_init, US_FL_SCM_MULT_TARG ), /* Iomega Clik! Drive @@ -517,14 +515,14 @@ UNUSUAL_DEV( 0x050d, 0x0115, 0x0133, 0x0133, UNUSUAL_DEV( 0x0525, 0xa140, 0x0100, 0x0100, "Iomega", "USB Clik! 40", - US_SC_8070, US_PR_DEVICE, NULL, + USB_SC_8070, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), /* Added by Alan Stern */ COMPLIANT_DEV(0x0525, 0xa4a5, 0x0000, 0x9999, "Linux", "File-backed Storage Gadget", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_CAPACITY_OK ), /* Yakumo Mega Image 37 @@ -532,7 +530,7 @@ COMPLIANT_DEV(0x0525, 0xa4a5, 0x0000, 0x9999, UNUSUAL_DEV( 0x052b, 0x1801, 0x0100, 0x0100, "Tekom Technologies, Inc", "300_CAMERA", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Another Yakumo camera. @@ -540,14 +538,14 @@ UNUSUAL_DEV( 0x052b, 0x1801, 0x0100, 0x0100, UNUSUAL_DEV( 0x052b, 0x1804, 0x0100, 0x0100, "Tekom Technologies, Inc", "300_CAMERA", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Iacopo Spalletti */ UNUSUAL_DEV( 0x052b, 0x1807, 0x0100, 0x0100, "Tekom Technologies, Inc", "300_CAMERA", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Yakumo Mega Image 47 @@ -555,7 +553,7 @@ UNUSUAL_DEV( 0x052b, 0x1807, 0x0100, 0x0100, UNUSUAL_DEV( 0x052b, 0x1905, 0x0100, 0x0100, "Tekom Technologies, Inc", "400_CAMERA", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Paul Ortyl @@ -563,13 +561,13 @@ UNUSUAL_DEV( 0x052b, 0x1905, 0x0100, 0x0100, UNUSUAL_DEV( 0x052b, 0x1911, 0x0100, 0x0100, "Tekom Technologies, Inc", "400_CAMERA", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), UNUSUAL_DEV( 0x054c, 0x0010, 0x0106, 0x0450, "Sony", "DSC-S30/S70/S75/505V/F505/F707/F717/P8", - US_SC_SCSI, US_PR_DEVICE, NULL, + USB_SC_SCSI, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN | US_FL_NOT_LOCKABLE | US_FL_NO_WP_DETECT ), /* Submitted by Lars Jacob @@ -577,7 +575,7 @@ UNUSUAL_DEV( 0x054c, 0x0010, 0x0106, 0x0450, UNUSUAL_DEV( 0x054c, 0x0010, 0x0500, 0x0610, "Sony", "DSC-T1/T5/H5", - US_SC_8070, US_PR_DEVICE, NULL, + USB_SC_8070, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), @@ -585,88 +583,88 @@ UNUSUAL_DEV( 0x054c, 0x0010, 0x0500, 0x0610, UNUSUAL_DEV( 0x054c, 0x0025, 0x0100, 0x0100, "Sony", "Memorystick NW-MS7", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), /* Submitted by Olaf Hering, SuSE Bugzilla #49049 */ UNUSUAL_DEV( 0x054c, 0x002c, 0x0501, 0x2000, "Sony", "USB Floppy Drive", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), UNUSUAL_DEV( 0x054c, 0x002d, 0x0100, 0x0100, "Sony", "Memorystick MSAC-US1", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), /* Submitted by Klaus Mueller */ UNUSUAL_DEV( 0x054c, 0x002e, 0x0106, 0x0310, "Sony", "Handycam", - US_SC_SCSI, US_PR_DEVICE, NULL, + USB_SC_SCSI, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), /* Submitted by Rajesh Kumble Nayak */ UNUSUAL_DEV( 0x054c, 0x002e, 0x0500, 0x0500, "Sony", "Handycam HC-85", - US_SC_UFI, US_PR_DEVICE, NULL, + USB_SC_UFI, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), UNUSUAL_DEV( 0x054c, 0x0032, 0x0000, 0x9999, "Sony", "Memorystick MSC-U01N", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), /* Submitted by Michal Mlotek */ UNUSUAL_DEV( 0x054c, 0x0058, 0x0000, 0x9999, "Sony", "PEG N760c Memorystick", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), UNUSUAL_DEV( 0x054c, 0x0069, 0x0000, 0x9999, "Sony", "Memorystick MSC-U03", - US_SC_UFI, US_PR_CB, NULL, + USB_SC_UFI, USB_PR_CB, NULL, US_FL_SINGLE_LUN ), /* Submitted by Nathan Babb */ UNUSUAL_DEV( 0x054c, 0x006d, 0x0000, 0x9999, "Sony", "PEG Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), /* Submitted by Frank Engel */ UNUSUAL_DEV( 0x054c, 0x0099, 0x0000, 0x9999, "Sony", "PEG Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), /* Submitted by Mike Alborn */ UNUSUAL_DEV( 0x054c, 0x016a, 0x0000, 0x9999, "Sony", "PEG Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), /* floppy reports multiple luns */ UNUSUAL_DEV( 0x055d, 0x2020, 0x0000, 0x0210, "SAMSUNG", "SFD-321U [FW 0C]", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), /* We keep this entry to force the transport; firmware 3.00 and later is ok. */ UNUSUAL_DEV( 0x057b, 0x0000, 0x0000, 0x0299, "Y-E Data", "Flashbuster-U", - US_SC_DEVICE, US_PR_CB, NULL, + USB_SC_DEVICE, USB_PR_CB, NULL, US_FL_SINGLE_LUN), /* Reported by Johann Cardon @@ -676,20 +674,20 @@ UNUSUAL_DEV( 0x057b, 0x0000, 0x0000, 0x0299, UNUSUAL_DEV( 0x057b, 0x0022, 0x0000, 0x9999, "Y-E Data", "Silicon Media R/W", - US_SC_DEVICE, US_PR_DEVICE, NULL, 0), + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0), /* Reported by RTE */ UNUSUAL_DEV( 0x058f, 0x6387, 0x0141, 0x0141, "JetFlash", "TS1GJF2A/120", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64 ), /* Fabrizio Fellini */ UNUSUAL_DEV( 0x0595, 0x4343, 0x0000, 0x2210, "Fujifilm", "Digital Camera EX-20 DSC", - US_SC_8070, US_PR_DEVICE, NULL, 0 ), + USB_SC_8070, USB_PR_DEVICE, NULL, 0 ), /* Reported by Andre Welter * This antique device predates the release of the Bulk-only Transport @@ -700,14 +698,14 @@ UNUSUAL_DEV( 0x0595, 0x4343, 0x0000, 0x2210, UNUSUAL_DEV( 0x059b, 0x0001, 0x0100, 0x0100, "Iomega", "ZIP 100", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), /* Reported by */ UNUSUAL_DEV( 0x059f, 0x0643, 0x0000, 0x0000, "LaCie", "DVD+-RW", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_GO_SLOW ), /* Submitted by Joel Bourquard @@ -717,7 +715,7 @@ UNUSUAL_DEV( 0x059f, 0x0643, 0x0000, 0x0000, UNUSUAL_DEV( 0x05ab, 0x0060, 0x1104, 0x1110, "In-System", "PyroGate External CD-ROM Enclosure (FCD-523)", - US_SC_SCSI, US_PR_BULK, NULL, + USB_SC_SCSI, USB_PR_BULK, NULL, US_FL_NEED_OVERRIDE ), /* Submitted by Sven Anderson @@ -729,26 +727,26 @@ UNUSUAL_DEV( 0x05ab, 0x0060, 0x1104, 0x1110, UNUSUAL_DEV( 0x05ac, 0x1202, 0x0000, 0x9999, "Apple", "iPod", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), /* Reported by Avi Kivity */ UNUSUAL_DEV( 0x05ac, 0x1203, 0x0000, 0x9999, "Apple", "iPod", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), UNUSUAL_DEV( 0x05ac, 0x1204, 0x0000, 0x9999, "Apple", "iPod", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY | US_FL_NOT_LOCKABLE ), UNUSUAL_DEV( 0x05ac, 0x1205, 0x0000, 0x9999, "Apple", "iPod", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), /* @@ -758,7 +756,7 @@ UNUSUAL_DEV( 0x05ac, 0x1205, 0x0000, 0x9999, UNUSUAL_DEV( 0x05ac, 0x120a, 0x0000, 0x9999, "Apple", "iPod", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), /* Reported by Dan Williams @@ -770,14 +768,14 @@ UNUSUAL_DEV( 0x05ac, 0x120a, 0x0000, 0x9999, UNUSUAL_DEV( 0x05c6, 0x1000, 0x0000, 0x9999, "Option N.V.", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, option_ms_init, + USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init, 0), /* Reported by Blake Matheny */ UNUSUAL_DEV( 0x05dc, 0xb002, 0x0000, 0x0113, "Lexar", "USB CF Reader", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), /* The following two entries are for a Genesys USB to IDE @@ -794,20 +792,20 @@ UNUSUAL_DEV( 0x05dc, 0xb002, 0x0000, 0x0113, UNUSUAL_DEV( 0x05e3, 0x0701, 0x0000, 0xffff, "Genesys Logic", "USB to IDE Optical", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 | US_FL_IGNORE_RESIDUE ), UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0xffff, "Genesys Logic", "USB to IDE Disk", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 | US_FL_IGNORE_RESIDUE ), /* Reported by Ben Efros */ UNUSUAL_DEV( 0x05e3, 0x0723, 0x9451, 0x9451, "Genesys Logic", "USB to SATA", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SANE_SENSE ), /* Reported by Hanno Boeck @@ -815,33 +813,33 @@ UNUSUAL_DEV( 0x05e3, 0x0723, 0x9451, 0x9451, UNUSUAL_DEV( 0x0636, 0x0003, 0x0000, 0x9999, "Vivitar", "Vivicam 35Xx", - US_SC_SCSI, US_PR_BULK, NULL, + USB_SC_SCSI, USB_PR_BULK, NULL, US_FL_FIX_INQUIRY ), UNUSUAL_DEV( 0x0644, 0x0000, 0x0100, 0x0100, "TEAC", "Floppy Drive", - US_SC_UFI, US_PR_CB, NULL, 0 ), + USB_SC_UFI, USB_PR_CB, NULL, 0 ), /* Reported by Darsen Lu */ UNUSUAL_DEV( 0x066f, 0x8000, 0x0001, 0x0001, "SigmaTel", "USBMSC Audio Player", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), /* Reported by Daniel Kukula */ UNUSUAL_DEV( 0x067b, 0x1063, 0x0100, 0x0100, "Prolific Technology, Inc.", "Prolific Storage Gadget", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_BAD_SENSE ), /* Reported by Rogerio Brito */ UNUSUAL_DEV( 0x067b, 0x2317, 0x0001, 0x001, "Prolific Technology, Inc.", "Mass Storage Device", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ), /* Reported by Richard -=[]=- */ @@ -850,46 +848,47 @@ UNUSUAL_DEV( 0x067b, 0x2317, 0x0001, 0x001, UNUSUAL_DEV( 0x067b, 0x2507, 0x0001, 0x0100, "Prolific Technology Inc.", "Mass Storage Device", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY | US_FL_GO_SLOW ), /* Reported by Alex Butcher */ UNUSUAL_DEV( 0x067b, 0x3507, 0x0001, 0x0101, "Prolific Technology Inc.", "ATAPI-6 Bridge Controller", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY | US_FL_GO_SLOW ), /* Submitted by Benny Sjostrand */ UNUSUAL_DEV( 0x0686, 0x4011, 0x0001, 0x0001, "Minolta", "Dimage F300", - US_SC_SCSI, US_PR_BULK, NULL, 0 ), + USB_SC_SCSI, USB_PR_BULK, NULL, 0 ), /* Reported by Miguel A. Fosas */ UNUSUAL_DEV( 0x0686, 0x4017, 0x0001, 0x0001, "Minolta", "DIMAGE E223", - US_SC_SCSI, US_PR_DEVICE, NULL, 0 ), + USB_SC_SCSI, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0693, 0x0005, 0x0100, 0x0100, "Hagiwara", "Flashgate", - US_SC_SCSI, US_PR_BULK, NULL, 0 ), + USB_SC_SCSI, USB_PR_BULK, NULL, 0 ), /* Reported by David Hamilton */ UNUSUAL_DEV( 0x069b, 0x3004, 0x0001, 0x0001, "Thomson Multimedia Inc.", "RCA RD1080 MP3 Player", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), /* Reported by Adrian Pilchowiec */ UNUSUAL_DEV( 0x071b, 0x3203, 0x0000, 0x0000, "RockChip", "MP3", - US_SC_DEVICE, US_PR_DEVICE, NULL, - US_FL_NO_WP_DETECT | US_FL_MAX_SECTORS_64), + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_NO_WP_DETECT | US_FL_MAX_SECTORS_64 | + US_FL_NO_READ_CAPACITY_16), /* Reported by Jean-Baptiste Onofre * Support the following product : @@ -898,7 +897,7 @@ UNUSUAL_DEV( 0x071b, 0x3203, 0x0000, 0x0000, UNUSUAL_DEV( 0x071b, 0x32bb, 0x0000, 0x0000, "RockChip", "MTP", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NO_WP_DETECT | US_FL_MAX_SECTORS_64), /* Reported by Massimiliano Ghilardi @@ -914,59 +913,59 @@ UNUSUAL_DEV( 0x071b, 0x32bb, 0x0000, 0x0000, UNUSUAL_DEV( 0x071b, 0x3203, 0x0100, 0x0100, "RockChip", "ROCK MP3", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64), /* Reported by Olivier Blondeau */ UNUSUAL_DEV( 0x0727, 0x0306, 0x0100, 0x0100, "ATMEL", "SND1 Storage", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE), /* Submitted by Roman Hodek */ UNUSUAL_DEV( 0x0781, 0x0001, 0x0200, 0x0200, "Sandisk", "ImageMate SDDR-05a", - US_SC_SCSI, US_PR_CB, NULL, + USB_SC_SCSI, USB_PR_CB, NULL, US_FL_SINGLE_LUN ), UNUSUAL_DEV( 0x0781, 0x0002, 0x0009, 0x0009, "SanDisk Corporation", "ImageMate CompactFlash USB", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), UNUSUAL_DEV( 0x0781, 0x0100, 0x0100, 0x0100, "Sandisk", "ImageMate SDDR-12", - US_SC_SCSI, US_PR_CB, NULL, + USB_SC_SCSI, USB_PR_CB, NULL, US_FL_SINGLE_LUN ), /* Reported by Eero Volotinen */ UNUSUAL_DEV( 0x07ab, 0xfccd, 0x0000, 0x9999, "Freecom Technologies", "FHD-Classic", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), UNUSUAL_DEV( 0x07af, 0x0004, 0x0100, 0x0133, "Microtech", "USB-SCSI-DB25", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_euscsi_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_euscsi_init, US_FL_SCM_MULT_TARG ), UNUSUAL_DEV( 0x07af, 0x0005, 0x0100, 0x0100, "Microtech", "USB-SCSI-HD50", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_euscsi_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_euscsi_init, US_FL_SCM_MULT_TARG ), #ifdef NO_SDDR09 UNUSUAL_DEV( 0x07af, 0x0006, 0x0100, 0x0100, "Microtech", "CameraMate", - US_SC_SCSI, US_PR_CB, NULL, + USB_SC_SCSI, USB_PR_CB, NULL, US_FL_SINGLE_LUN ), #endif @@ -979,7 +978,7 @@ UNUSUAL_DEV( 0x07af, 0x0006, 0x0100, 0x0100, UNUSUAL_DEV( 0x07c4, 0xa400, 0x0000, 0xffff, "Datafab", "KECF-USB", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY | US_FL_FIX_CAPACITY ), /* Reported by Rauch Wolke @@ -988,7 +987,7 @@ UNUSUAL_DEV( 0x07c4, 0xa400, 0x0000, 0xffff, UNUSUAL_DEV( 0x07c4, 0xa4a5, 0x0000, 0xffff, "Simple Tech/Datafab", "CF+SM Reader", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_MAX_SECTORS_64 ), /* Casio QV 2x00/3x00/4000/8000 digital still cameras are not conformant @@ -998,42 +997,42 @@ UNUSUAL_DEV( 0x07c4, 0xa4a5, 0x0000, 0xffff, * - They don't like the INQUIRY command. So we must handle this command * of the SCSI layer ourselves. * - Some cameras with idProduct=0x1001 and bcdDevice=0x1000 have - * bInterfaceProtocol=0x00 (US_PR_CBI) while others have 0x01 (US_PR_CB). - * So don't remove the US_PR_CB override! - * - Cameras with bcdDevice=0x9009 require the US_SC_8070 override. + * bInterfaceProtocol=0x00 (USB_PR_CBI) while others have 0x01 (USB_PR_CB). + * So don't remove the USB_PR_CB override! + * - Cameras with bcdDevice=0x9009 require the USB_SC_8070 override. */ UNUSUAL_DEV( 0x07cf, 0x1001, 0x1000, 0x9999, "Casio", "QV DigitalCamera", - US_SC_8070, US_PR_CB, NULL, + USB_SC_8070, USB_PR_CB, NULL, US_FL_NEED_OVERRIDE | US_FL_FIX_INQUIRY ), /* Submitted by Hartmut Wahl */ UNUSUAL_DEV( 0x0839, 0x000a, 0x0001, 0x0001, "Samsung", "Digimax 410", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY), /* Reported by Luciano Rocha */ UNUSUAL_DEV( 0x0840, 0x0082, 0x0001, 0x0001, "Argosy", "Storage", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), /* Reported and patched by Nguyen Anh Quynh */ UNUSUAL_DEV( 0x0840, 0x0084, 0x0001, 0x0001, "Argosy", "Storage", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), /* Reported by Martijn Hijdra */ UNUSUAL_DEV( 0x0840, 0x0085, 0x0001, 0x0001, "Argosy", "Storage", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), /* Entry and supporting patch by Theodore Kilgore . @@ -1045,9 +1044,18 @@ UNUSUAL_DEV( 0x0840, 0x0085, 0x0001, 0x0001, UNUSUAL_DEV( 0x084d, 0x0011, 0x0110, 0x0110, "Grandtech", "DC2MEGA", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_BULK32), +/* Reported by + * The device reports a vendor-specific device class, requiring an + * explicit vendor/product match. + */ +UNUSUAL_DEV( 0x0851, 0x1542, 0x0002, 0x0002, + "MagicPixel", + "FW_Omega2", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0), + /* Andrew Lunn * PanDigital Digital Picture Frame. Does not like ALLOW_MEDIUM_REMOVAL * on LUN 4. @@ -1056,14 +1064,14 @@ UNUSUAL_DEV( 0x084d, 0x0011, 0x0110, 0x0110, UNUSUAL_DEV( 0x0851, 0x1543, 0x0200, 0x0200, "PanDigital", "Photo Frame", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE), /* Submitted by Jan De Luyck */ UNUSUAL_DEV( 0x08bd, 0x1100, 0x0000, 0x0000, "CITIZEN", "X1DE-USB", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN), /* Submitted by Dylan Taft @@ -1072,7 +1080,7 @@ UNUSUAL_DEV( 0x08bd, 0x1100, 0x0000, 0x0000, UNUSUAL_DEV( 0x08ca, 0x3103, 0x0100, 0x0100, "AIPTEK", "Aiptek USB Keychain MP3 Player", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE), /* Entry needed for flags. Moreover, all devices with this ID use @@ -1083,7 +1091,7 @@ UNUSUAL_DEV( 0x08ca, 0x3103, 0x0100, 0x0100, UNUSUAL_DEV( 0x090a, 0x1001, 0x0100, 0x0100, "Trumpion", "t33520 USB Flash Card Controller", - US_SC_DEVICE, US_PR_BULK, NULL, + USB_SC_DEVICE, USB_PR_BULK, NULL, US_FL_NEED_OVERRIDE ), /* Reported by Filippo Bardelli @@ -1092,23 +1100,33 @@ UNUSUAL_DEV( 0x090a, 0x1001, 0x0100, 0x0100, UNUSUAL_DEV( 0x090a, 0x1050, 0x0100, 0x0100, "Trumpion Microelectronics, Inc.", "33520 USB Digital Voice Recorder", - US_SC_UFI, US_PR_DEVICE, NULL, + USB_SC_UFI, USB_PR_DEVICE, NULL, 0), /* Trumpion Microelectronics MP3 player (felipe_alfaro@linuxmail.org) */ UNUSUAL_DEV( 0x090a, 0x1200, 0x0000, 0x9999, "Trumpion", "MP3 player", - US_SC_RBC, US_PR_BULK, NULL, + USB_SC_RBC, USB_PR_BULK, NULL, 0 ), /* aeb */ UNUSUAL_DEV( 0x090c, 0x1132, 0x0000, 0xffff, "Feiya", "5-in-1 Card Reader", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), +/* Reported by Paul Hartman + * This card reader returns "Illegal Request, Logical Block Address + * Out of Range" for the first READ(10) after a new card is inserted. + */ +UNUSUAL_DEV( 0x090c, 0x6000, 0x0100, 0x0100, + "Feiya", + "SD/SDHC Card Reader", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_INITIAL_READ10 ), + /* This Pentax still camera is not conformant * to the USB storage specification: - * - It does not like the INQUIRY command. So we must handle this command @@ -1119,7 +1137,7 @@ UNUSUAL_DEV( 0x090c, 0x1132, 0x0000, 0xffff, UNUSUAL_DEV( 0x0a17, 0x0004, 0x1000, 0x1000, "Pentax", "Optio 2/3/400", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), /* These are virtual windows driver CDs, which the zd1211rw driver @@ -1127,13 +1145,13 @@ UNUSUAL_DEV( 0x0a17, 0x0004, 0x1000, 0x1000, UNUSUAL_DEV( 0x0ace, 0x2011, 0x0101, 0x0101, "ZyXEL", "G-220F USB-WLAN Install", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_DEVICE ), UNUSUAL_DEV( 0x0ace, 0x20ff, 0x0101, 0x0101, "SiteCom", "WL-117 USB-WLAN Install", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_DEVICE ), /* Reported by Dan Williams @@ -1145,7 +1163,7 @@ UNUSUAL_DEV( 0x0ace, 0x20ff, 0x0101, 0x0101, UNUSUAL_DEV( 0x0af0, 0x6971, 0x0000, 0x9999, "Option N.V.", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, option_ms_init, + USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init, 0), /* Reported by F. Aben @@ -1155,7 +1173,7 @@ UNUSUAL_DEV( 0x0af0, 0x6971, 0x0000, 0x9999, UNUSUAL_DEV( 0x0af0, 0x7401, 0x0000, 0x0000, "Option", "GI 0401 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), /* Reported by Jan Dumon @@ -1165,104 +1183,104 @@ UNUSUAL_DEV( 0x0af0, 0x7401, 0x0000, 0x0000, UNUSUAL_DEV( 0x0af0, 0x7501, 0x0000, 0x0000, "Option", "GI 0431 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0x7701, 0x0000, 0x0000, "Option", "GI 0451 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0x7706, 0x0000, 0x0000, "Option", "GI 0451 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0x7901, 0x0000, 0x0000, "Option", "GI 0452 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0x7A01, 0x0000, 0x0000, "Option", "GI 0461 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0x7A05, 0x0000, 0x0000, "Option", "GI 0461 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0x8300, 0x0000, 0x0000, "Option", "GI 033x SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0x8302, 0x0000, 0x0000, "Option", "GI 033x SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0x8304, 0x0000, 0x0000, "Option", "GI 033x SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0xc100, 0x0000, 0x0000, "Option", "GI 070x SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0xd057, 0x0000, 0x0000, "Option", "GI 1505 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0xd058, 0x0000, 0x0000, "Option", "GI 1509 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0xd157, 0x0000, 0x0000, "Option", "GI 1515 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0xd257, 0x0000, 0x0000, "Option", "GI 1215 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), UNUSUAL_DEV( 0x0af0, 0xd357, 0x0000, 0x0000, "Option", "GI 1505 SD-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0 ), /* Reported by Ben Efros */ UNUSUAL_DEV( 0x0bc2, 0x3010, 0x0000, 0x0000, "Seagate", "FreeAgent Pro", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SANE_SENSE ), UNUSUAL_DEV( 0x0d49, 0x7310, 0x0000, 0x9999, "Maxtor", "USB to SATA", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SANE_SENSE), /* @@ -1272,14 +1290,14 @@ UNUSUAL_DEV( 0x0d49, 0x7310, 0x0000, 0x9999, UNUSUAL_DEV( 0x0c45, 0x1060, 0x0100, 0x0100, "Unknown", "Unknown", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), /* Submitted by Joris Struyve */ UNUSUAL_DEV( 0x0d96, 0x410a, 0x0001, 0xffff, "Medion", "MD 7425", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY), /* @@ -1290,13 +1308,13 @@ UNUSUAL_DEV( 0x0d96, 0x410a, 0x0001, 0xffff, UNUSUAL_DEV( 0x0d96, 0x5200, 0x0001, 0x0200, "Jenoptik", "JD 5200 z3", - US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_FIX_INQUIRY), + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY), /* Reported by Jason Johnston */ UNUSUAL_DEV( 0x0dc4, 0x0073, 0x0000, 0x0000, "Macpower Technology Co.LTD.", "USB 2.0 3.5\" DEVICE", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), /* Reported by Lubomir Blaha @@ -1307,7 +1325,7 @@ UNUSUAL_DEV( 0x0dc4, 0x0073, 0x0000, 0x0000, UNUSUAL_DEV( 0x0dd8, 0x1060, 0x0000, 0xffff, "Netac", "USB-CF-Card", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), /* Reported by Edward Chapman (taken from linux-usb mailing list) @@ -1315,7 +1333,7 @@ UNUSUAL_DEV( 0x0dd8, 0x1060, 0x0000, 0xffff, UNUSUAL_DEV( 0x0dd8, 0xd202, 0x0000, 0x9999, "Netac", "USB Flash Disk", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), @@ -1324,28 +1342,28 @@ UNUSUAL_DEV( 0x0dd8, 0xd202, 0x0000, 0x9999, UNUSUAL_DEV( 0x0dda, 0x0001, 0x0012, 0x0012, "WINWARD", "Music Disk", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Ian McConnell */ UNUSUAL_DEV( 0x0dda, 0x0301, 0x0012, 0x0012, "PNP_MP3", "PNP_MP3 PLAYER", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Jim McCloskey */ UNUSUAL_DEV( 0x0e21, 0x0520, 0x0100, 0x0100, "Cowon Systems", "iAUDIO M5", - US_SC_DEVICE, US_PR_BULK, NULL, + USB_SC_DEVICE, USB_PR_BULK, NULL, US_FL_NEED_OVERRIDE ), /* Submitted by Antoine Mairesse */ UNUSUAL_DEV( 0x0ed1, 0x6660, 0x0100, 0x0300, "USB", "Solid state disk", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), /* Submitted by Daniel Drake @@ -1353,14 +1371,14 @@ UNUSUAL_DEV( 0x0ed1, 0x6660, 0x0100, 0x0300, UNUSUAL_DEV( 0x0ea0, 0x2168, 0x0110, 0x0110, "Ours Technology", "Flash Disk", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Rastislav Stanik */ UNUSUAL_DEV( 0x0ea0, 0x6828, 0x0110, 0x0110, "USB", "Flash Disk", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Benjamin Schiller @@ -1368,7 +1386,7 @@ UNUSUAL_DEV( 0x0ea0, 0x6828, 0x0110, 0x0110, UNUSUAL_DEV( 0x0ed1, 0x7636, 0x0103, 0x0103, "Typhoon", "My DJ 1820", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_GO_SLOW | US_FL_MAX_SECTORS_64), /* Patch by Leonid Petrov mail at lpetrov.net @@ -1379,7 +1397,7 @@ UNUSUAL_DEV( 0x0ed1, 0x7636, 0x0103, 0x0103, UNUSUAL_DEV( 0x0f19, 0x0103, 0x0100, 0x0100, "Oracom Co., Ltd", "ORC-200M", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* David Kuehling : @@ -1389,21 +1407,28 @@ UNUSUAL_DEV( 0x0f19, 0x0103, 0x0100, 0x0100, UNUSUAL_DEV( 0x0f19, 0x0105, 0x0100, 0x0100, "C-MEX", "A-VOX", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), +/* Submitted by Nick Holloway */ +UNUSUAL_DEV( 0x0f88, 0x042e, 0x0100, 0x0100, + "VTech", + "Kidizoom", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_FIX_CAPACITY ), + /* Reported by Michael Stattmann */ UNUSUAL_DEV( 0x0fce, 0xd008, 0x0000, 0x0000, "Sony Ericsson", "V800-Vodafone 802", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NO_WP_DETECT ), /* Reported by The Solutor */ UNUSUAL_DEV( 0x0fce, 0xd0e1, 0x0000, 0x0000, "Sony Ericsson", "MD400", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_DEVICE), /* Reported by Jan Mate @@ -1411,21 +1436,21 @@ UNUSUAL_DEV( 0x0fce, 0xd0e1, 0x0000, 0x0000, UNUSUAL_DEV( 0x0fce, 0xe030, 0x0000, 0x0000, "Sony Ericsson", "P990i", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY | US_FL_IGNORE_RESIDUE ), /* Reported by Emmanuel Vasilakis */ UNUSUAL_DEV( 0x0fce, 0xe031, 0x0000, 0x0000, "Sony Ericsson", "M600i", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ), /* Reported by Ricardo Barberis */ UNUSUAL_DEV( 0x0fce, 0xe092, 0x0000, 0x0000, "Sony Ericsson", "P1i", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Kevin Cernekee @@ -1437,13 +1462,13 @@ UNUSUAL_DEV( 0x0fce, 0xe092, 0x0000, 0x0000, UNUSUAL_DEV( 0x1019, 0x0c55, 0x0000, 0x0110, "Desknote", "UCR-61S2B", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_ucr61s2b_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_ucr61s2b_init, 0 ), UNUSUAL_DEV( 0x1058, 0x0704, 0x0000, 0x9999, "Western Digital", "External HDD", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SANE_SENSE), /* Reported by Fabio Venturi @@ -1452,7 +1477,7 @@ UNUSUAL_DEV( 0x1058, 0x0704, 0x0000, 0x9999, UNUSUAL_DEV( 0x10d6, 0x2200, 0x0100, 0x0100, "Actions Semiconductor", "Mtp device", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0), /* Reported by Pascal Terjan @@ -1461,7 +1486,7 @@ UNUSUAL_DEV( 0x10d6, 0x2200, 0x0100, 0x0100, UNUSUAL_DEV( 0x1186, 0x3e04, 0x0000, 0x0000, "D-Link", "USB Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, option_ms_init, US_FL_IGNORE_DEVICE), + USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init, US_FL_IGNORE_DEVICE), /* Reported by Kevin Lloyd * Entry is needed for the initializer function override, @@ -1472,10 +1497,10 @@ UNUSUAL_DEV( 0x1199, 0x0fff, 0x0000, 0x9999, "Sierra Wireless", "USB MMC Storage", #if defined(__VMKLNX__) - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_DEVICE), #else - US_SC_DEVICE, US_PR_DEVICE, sierra_ms_init, + USB_SC_DEVICE, USB_PR_DEVICE, sierra_ms_init, 0), #endif @@ -1486,7 +1511,7 @@ UNUSUAL_DEV( 0x1199, 0x0fff, 0x0000, 0x9999, UNUSUAL_DEV( 0x1210, 0x0003, 0x0100, 0x0100, "Digitech HMG", "DigiTech Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by fangxiaozhi @@ -1495,353 +1520,360 @@ UNUSUAL_DEV( 0x1210, 0x0003, 0x0100, 0x0100, UNUSUAL_DEV( 0x12d1, 0x1001, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1004, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1401, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1402, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1403, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1404, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1405, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1406, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1407, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1408, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1409, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x140A, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x140B, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x140C, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x140D, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x140E, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x140F, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1410, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1411, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1412, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1413, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1414, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1415, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1416, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1417, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1418, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1419, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x141A, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x141B, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x141C, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x141D, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x141E, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x141F, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1420, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1421, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1422, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1423, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1424, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1425, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1426, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1427, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1428, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1429, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x142A, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x142B, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x142C, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x142D, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x142E, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x142F, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1430, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1431, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1432, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1433, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1434, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1435, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1436, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1437, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1438, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x1439, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x143A, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x143B, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x143C, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x143D, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x143E, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), UNUSUAL_DEV( 0x12d1, 0x143F, 0x0000, 0x0000, "HUAWEI MOBILE", "Mass Storage", - US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_e220_init, 0), /* Reported by Vilius Bilinkevicius */ UNUSUAL_DEV( 0x1370, 0x6828, 0x0110, 0x0110, "SWISSBIT", "Black Silver", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), +/* Reported by Qinglin Ye */ +UNUSUAL_DEV( 0x13fe, 0x3600, 0x0100, 0x0100, + "Kingston", + "DT 101 G2", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_BULK_IGNORE_TAG ), + /* Reported by Francesco Foresti */ UNUSUAL_DEV( 0x14cd, 0x6600, 0x0201, 0x0201, "Super Top", "IDE DEVICE", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Alexandre Oliva @@ -1850,7 +1882,7 @@ UNUSUAL_DEV( 0x14cd, 0x6600, 0x0201, 0x0201, UNUSUAL_DEV( 0x152d, 0x2329, 0x0100, 0x0100, "JMicron", "USB to ATA/ATAPI Bridge", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_SANE_SENSE ), /* Reported by Robert Schedel @@ -1858,9 +1890,16 @@ UNUSUAL_DEV( 0x152d, 0x2329, 0x0100, 0x0100, UNUSUAL_DEV( 0x1652, 0x6600, 0x0201, 0x0201, "Teac", "HD-35PUK-B", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), +/* Reported by Jesse Feddema */ +UNUSUAL_DEV( 0x177f, 0x0400, 0x0000, 0x0000, + "Yarvik", + "PMP400", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_BULK_IGNORE_TAG | US_FL_MAX_SECTORS_64 ), + /* Reported by Hans de Goede * These Appotech controllers are found in Picture Frames, they provide a * (buggy) emulation of a cdrom drive which contains the windows software @@ -1868,18 +1907,48 @@ UNUSUAL_DEV( 0x1652, 0x6600, 0x0201, 0x0201, UNUSUAL_DEV( 0x1908, 0x1315, 0x0000, 0x0000, "BUILDWIN", "Photo Frame", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_BAD_SENSE ), UNUSUAL_DEV( 0x1908, 0x1320, 0x0000, 0x0000, "BUILDWIN", "Photo Frame", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_BAD_SENSE ), +UNUSUAL_DEV( 0x1908, 0x3335, 0x0200, 0x0200, + "BUILDWIN", + "Photo Frame", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_NO_READ_DISC_INFO ), + +/* Reported by Sven Geggus + * This encrypted pen drive returns bogus data for the initial READ(10). + */ +UNUSUAL_DEV( 0x1b1c, 0x1ab5, 0x0200, 0x0200, + "Corsair", + "Padlock v2", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_INITIAL_READ10 ), + +/* Patch by Richard Schütz + * This external hard drive enclosure uses a JMicron chip which + * needs the US_FL_IGNORE_RESIDUE flag to work properly. */ +UNUSUAL_DEV( 0x1e68, 0x001b, 0x0000, 0x0000, + "TrekStor GmbH & Co. KG", + "DataStation maxi g.u", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_IGNORE_RESIDUE | US_FL_SANE_SENSE ), + +/* Reported by Jasper Mackenzie */ +UNUSUAL_DEV( 0x1e74, 0x4621, 0x0000, 0x0000, + "Coby Electronics", + "MP3 Player", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_BULK_IGNORE_TAG | US_FL_MAX_SECTORS_64 ), UNUSUAL_DEV( 0x2116, 0x0320, 0x0001, 0x0001, "ST", "2A", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), /* patch submitted by Davide Perini @@ -1888,7 +1957,7 @@ UNUSUAL_DEV( 0x2116, 0x0320, 0x0001, 0x0001, UNUSUAL_DEV( 0x22b8, 0x3010, 0x0001, 0x0001, "Motorola", "RAZR V3x", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY | US_FL_IGNORE_RESIDUE ), /* @@ -1899,14 +1968,14 @@ UNUSUAL_DEV( 0x22b8, 0x3010, 0x0001, 0x0001, UNUSUAL_DEV( 0x22b8, 0x6426, 0x0101, 0x0101, "Motorola", "MSnc.", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY | US_FL_FIX_CAPACITY | US_FL_BULK_IGNORE_TAG), /* Reported by Radovan Garabik */ UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999, "MPIO", "HS200", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_GO_SLOW ), /* Reported by Frederic Marchal @@ -1915,21 +1984,21 @@ UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999, UNUSUAL_DEV( 0x3340, 0xffff, 0x0000, 0x0000, "Mitac", "Mio DigiWalker USB Sync", - US_SC_DEVICE,US_PR_DEVICE,NULL, + USB_SC_DEVICE,USB_PR_DEVICE,NULL, US_FL_MAX_SECTORS_64 ), /* Reported by Andrey Rahmatullin */ UNUSUAL_DEV( 0x4102, 0x1020, 0x0100, 0x0100, "iRiver", "MP3 T10", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), /* Reported by Sergey Pinaev */ UNUSUAL_DEV( 0x4102, 0x1059, 0x0000, 0x0000, "iRiver", "P7K", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64 ), /* @@ -1939,50 +2008,60 @@ UNUSUAL_DEV( 0x4102, 0x1059, 0x0000, 0x0000, UNUSUAL_DEV( 0x4146, 0xba01, 0x0100, 0x0100, "Iomega", "Micro Mini 1GB", - US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ), + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ), + +/* + * Nick Bowler + * SCSI stack spams (otherwise harmless) error messages. + */ +UNUSUAL_DEV( 0xc251, 0x4003, 0x0100, 0x0100, + "Keil Software, Inc.", + "V2M MotherBoard", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_NOT_LOCKABLE), /* Reported by Andrew Simmons */ UNUSUAL_DEV( 0xed06, 0x4500, 0x0001, 0x0001, "DataStor", "USB4500 FW1.04", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_CAPACITY_HEURISTICS), #if defined(__VMKLNX__) UNUSUAL_DEV( 0x0951, 0x1600, 0x0000, 0x9999, "Kingston", "DataTraveler II", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), UNUSUAL_DEV( 0x0951, 0x1601, 0x0000, 0x9999, "Kingston", "DataTraveler II+", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), UNUSUAL_DEV( 0x090c, 0x6200, 0x0000, 0x9999, "Feiya Technology Corp.", "microSD card reader", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), UNUSUAL_DEV( 0x046b, 0xff90, 0x0000, 0x9999, "DELL INC.", "iDRAC", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_VMKLNX_NO_FILTERING | US_FL_VMKLNX_NO_UNCLAIM), UNUSUAL_DEV( 0x046b, 0xff91, 0x0000, 0x9999, "DELL INC.", "iDRAC", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_VMKLNX_NO_FILTERING | US_FL_VMKLNX_NO_UNCLAIM), UNUSUAL_DEV( 0x046b, 0xff92, 0x0000, 0x9999, "DELL INC.", "iDRAC", - US_SC_DEVICE, US_PR_DEVICE, NULL, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_VMKLNX_NO_FILTERING | US_FL_VMKLNX_NO_UNCLAIM), #endif @@ -1990,28 +2069,28 @@ UNUSUAL_DEV( 0x046b, 0xff92, 0x0000, 0x9999, UNUSUAL_DEV( 0xed10, 0x7636, 0x0001, 0x0001, "TGE", "Digital MP3 Audio Player", - US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ), + USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ), /* Control/Bulk transport for all SubClass values */ -USUAL_DEV(US_SC_RBC, US_PR_CB, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_8020, US_PR_CB, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_QIC, US_PR_CB, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_UFI, US_PR_CB, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_8070, US_PR_CB, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_SCSI, US_PR_CB, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_RBC, USB_PR_CB, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_8020, USB_PR_CB, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_QIC, USB_PR_CB, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_UFI, USB_PR_CB, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_8070, USB_PR_CB, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_SCSI, USB_PR_CB, USB_US_TYPE_STOR), /* Control/Bulk/Interrupt transport for all SubClass values */ -USUAL_DEV(US_SC_RBC, US_PR_CBI, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_8020, US_PR_CBI, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_QIC, US_PR_CBI, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_UFI, US_PR_CBI, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_8070, US_PR_CBI, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_SCSI, US_PR_CBI, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_RBC, USB_PR_CBI, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_8020, USB_PR_CBI, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_QIC, USB_PR_CBI, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_UFI, USB_PR_CBI, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_8070, USB_PR_CBI, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_SCSI, USB_PR_CBI, USB_US_TYPE_STOR), /* Bulk-only transport for all SubClass values */ -USUAL_DEV(US_SC_RBC, US_PR_BULK, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_8020, US_PR_BULK, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_QIC, US_PR_BULK, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_UFI, US_PR_BULK, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_8070, US_PR_BULK, USB_US_TYPE_STOR), -USUAL_DEV(US_SC_SCSI, US_PR_BULK, 0), +USUAL_DEV(USB_SC_RBC, USB_PR_BULK, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_8020, USB_PR_BULK, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_QIC, USB_PR_BULK, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_UFI, USB_PR_BULK, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_8070, USB_PR_BULK, USB_US_TYPE_STOR), +USUAL_DEV(USB_SC_SCSI, USB_PR_BULK, 0), diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_ene_ub6250.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_ene_ub6250.h new file mode 100644 index 0000000000000000000000000000000000000000..5667f5d365c6d51488a2fdf415b9771edfc372ab --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_ene_ub6250.h @@ -0,0 +1,26 @@ +/* + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#if defined(CONFIG_USB_STORAGE_ENE_UB6250) || \ + defined(CONFIG_USB_STORAGE_ENE_UB6250_MODULE) + +UNUSUAL_DEV(0x0cf2, 0x6250, 0x0000, 0x9999, + "ENE", + "ENE UB6250 reader", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, 0), + +#endif /* defined(CONFIG_USB_STORAGE_ENE_UB6250) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_freecom.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_freecom.h index 3758679423918d9879906b492243600f3115c637..59a261155b988f0bdec4b1c8e287885940a4ef1e 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_freecom.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_freecom.h @@ -21,6 +21,6 @@ UNUSUAL_DEV( 0x07ab, 0xfc01, 0x0000, 0x9999, "Freecom", "USB-IDE", - US_SC_QIC, US_PR_FREECOM, init_freecom, 0), + USB_SC_QIC, USB_PR_FREECOM, init_freecom, 0), #endif /* defined(CONFIG_USB_STORAGE_FREECOM) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_isd200.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_isd200.h index 0d99dde3382a840a92ea4e21bb1c005c44dc1c87..14cca0c48302dbbca9f1edd124a3141d2e8269b9 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_isd200.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_isd200.h @@ -21,37 +21,37 @@ UNUSUAL_DEV( 0x054c, 0x002b, 0x0100, 0x0110, "Sony", "Portable USB Harddrive V2", - US_SC_ISD200, US_PR_BULK, isd200_Initialization, + USB_SC_ISD200, USB_PR_BULK, isd200_Initialization, 0), UNUSUAL_DEV( 0x05ab, 0x0031, 0x0100, 0x0110, "In-System", "USB/IDE Bridge (ATA/ATAPI)", - US_SC_ISD200, US_PR_BULK, isd200_Initialization, + USB_SC_ISD200, USB_PR_BULK, isd200_Initialization, 0), UNUSUAL_DEV( 0x05ab, 0x0301, 0x0100, 0x0110, "In-System", "Portable USB Harddrive V2", - US_SC_ISD200, US_PR_BULK, isd200_Initialization, + USB_SC_ISD200, USB_PR_BULK, isd200_Initialization, 0), UNUSUAL_DEV( 0x05ab, 0x0351, 0x0100, 0x0110, "In-System", "Portable USB Harddrive V2", - US_SC_ISD200, US_PR_BULK, isd200_Initialization, + USB_SC_ISD200, USB_PR_BULK, isd200_Initialization, 0), UNUSUAL_DEV( 0x05ab, 0x5701, 0x0100, 0x0110, "In-System", "USB Storage Adapter V2", - US_SC_ISD200, US_PR_BULK, isd200_Initialization, + USB_SC_ISD200, USB_PR_BULK, isd200_Initialization, 0), UNUSUAL_DEV( 0x0bf6, 0xa001, 0x0100, 0x0110, "ATI", "USB Cable 205", - US_SC_ISD200, US_PR_BULK, isd200_Initialization, + USB_SC_ISD200, USB_PR_BULK, isd200_Initialization, 0), #endif /* defined(CONFIG_USB_STORAGE_ISD200) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_jumpshot.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_jumpshot.h index 2e549b1c2c6205af9adf42031428448196ee597c..54be78b5d6438d7b8b71c31dbc7c3ce961c94874 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_jumpshot.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_jumpshot.h @@ -21,7 +21,7 @@ UNUSUAL_DEV( 0x05dc, 0x0001, 0x0000, 0x0001, "Lexar", "Jumpshot USB CF Reader", - US_SC_SCSI, US_PR_JUMPSHOT, NULL, + USB_SC_SCSI, USB_PR_JUMPSHOT, NULL, US_FL_NEED_OVERRIDE), #endif /* defined(CONFIG_USB_STORAGE_JUMPSHOT) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_karma.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_karma.h index 12ae3a03e802cf4a6193971c25008fa3d87ddd53..6df03972a22cf9425d17342648a2c3cc001b8f8e 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_karma.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_karma.h @@ -21,6 +21,6 @@ UNUSUAL_DEV( 0x045a, 0x5210, 0x0101, 0x0101, "Rio", "Rio Karma", - US_SC_SCSI, US_PR_KARMA, rio_karma_init, 0), + USB_SC_SCSI, USB_PR_KARMA, rio_karma_init, 0), #endif /* defined(CONFIG_USB_STORAGE_KARMA) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_onetouch.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_onetouch.h index bd9306b637df7fde7095251406e183b6fef03989..0abb819c74058e4c6886bc0485d4de0cdd1e9b92 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_onetouch.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_onetouch.h @@ -24,13 +24,13 @@ UNUSUAL_DEV( 0x0d49, 0x7000, 0x0000, 0x9999, "Maxtor", "OneTouch External Harddrive", - US_SC_DEVICE, US_PR_DEVICE, onetouch_connect_input, + USB_SC_DEVICE, USB_PR_DEVICE, onetouch_connect_input, 0), UNUSUAL_DEV( 0x0d49, 0x7010, 0x0000, 0x9999, "Maxtor", "OneTouch External Harddrive", - US_SC_DEVICE, US_PR_DEVICE, onetouch_connect_input, + USB_SC_DEVICE, USB_PR_DEVICE, onetouch_connect_input, 0), #endif /* defined(CONFIG_USB_STORAGE_ONETOUCH) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_realtek.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_realtek.h new file mode 100644 index 0000000000000000000000000000000000000000..e41f50c95ed409e7301ff5a8ad79334e16f08f2d --- /dev/null +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_realtek.h @@ -0,0 +1,41 @@ +/* Driver for Realtek RTS51xx USB card reader + * + * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * wwang (wei_wang@realsil.com.cn) + * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China + */ + +#if defined(CONFIG_USB_STORAGE_REALTEK) || \ + defined(CONFIG_USB_STORAGE_REALTEK_MODULE) + +UNUSUAL_DEV(0x0bda, 0x0138, 0x0000, 0x9999, + "Realtek", + "USB Card Reader", + USB_SC_DEVICE, USB_PR_DEVICE, init_realtek_cr, 0), + +UNUSUAL_DEV(0x0bda, 0x0158, 0x0000, 0x9999, + "Realtek", + "USB Card Reader", + USB_SC_DEVICE, USB_PR_DEVICE, init_realtek_cr, 0), + +UNUSUAL_DEV(0x0bda, 0x0159, 0x0000, 0x9999, + "Realtek", + "USB Card Reader", + USB_SC_DEVICE, USB_PR_DEVICE, init_realtek_cr, 0), + +#endif /* defined(CONFIG_USB_STORAGE_REALTEK) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_sddr09.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_sddr09.h index 50cab511a4d79018e98a3062befbca19eede54a6..59a7e37b6c11d64efa09aaba2e5035bc6c0a0c67 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_sddr09.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_sddr09.h @@ -21,36 +21,36 @@ UNUSUAL_DEV( 0x0436, 0x0005, 0x0100, 0x0100, "Microtech", "CameraMate (DPCM_USB)", - US_SC_SCSI, US_PR_DPCM_USB, NULL, 0), + USB_SC_SCSI, USB_PR_DPCM_USB, NULL, 0), UNUSUAL_DEV( 0x04e6, 0x0003, 0x0000, 0x9999, "Sandisk", "ImageMate SDDR09", - US_SC_SCSI, US_PR_EUSB_SDDR09, usb_stor_sddr09_init, + USB_SC_SCSI, USB_PR_EUSB_SDDR09, usb_stor_sddr09_init, 0), /* This entry is from Andries.Brouwer@cwi.nl */ UNUSUAL_DEV( 0x04e6, 0x0005, 0x0100, 0x0208, "SCM Microsystems", "eUSB SmartMedia / CompactFlash Adapter", - US_SC_SCSI, US_PR_DPCM_USB, usb_stor_sddr09_dpcm_init, + USB_SC_SCSI, USB_PR_DPCM_USB, usb_stor_sddr09_dpcm_init, 0), UNUSUAL_DEV( 0x066b, 0x0105, 0x0100, 0x0100, "Olympus", "Camedia MAUSB-2", - US_SC_SCSI, US_PR_EUSB_SDDR09, usb_stor_sddr09_init, + USB_SC_SCSI, USB_PR_EUSB_SDDR09, usb_stor_sddr09_init, 0), UNUSUAL_DEV( 0x0781, 0x0200, 0x0000, 0x9999, "Sandisk", "ImageMate SDDR-09", - US_SC_SCSI, US_PR_EUSB_SDDR09, usb_stor_sddr09_init, + USB_SC_SCSI, USB_PR_EUSB_SDDR09, usb_stor_sddr09_init, 0), UNUSUAL_DEV( 0x07af, 0x0006, 0x0100, 0x0100, "Microtech", "CameraMate (DPCM_USB)", - US_SC_SCSI, US_PR_DPCM_USB, NULL, 0), + USB_SC_SCSI, USB_PR_DPCM_USB, NULL, 0), #endif /* defined(CONFIG_USB_STORAGE_SDDR09) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_sddr55.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_sddr55.h index ae81ef7a1cfd41e599c78ea32498f9d4cfb6ab78..fcb7e12c598fa15ab937a2ca5c8469718d887a52 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_sddr55.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_sddr55.h @@ -22,23 +22,23 @@ UNUSUAL_DEV( 0x07c4, 0xa103, 0x0000, 0x9999, "Datafab", "MDSM-B reader", - US_SC_SCSI, US_PR_SDDR55, NULL, + USB_SC_SCSI, USB_PR_SDDR55, NULL, US_FL_FIX_INQUIRY), /* SM part - aeb */ UNUSUAL_DEV( 0x07c4, 0xa109, 0x0000, 0xffff, "Datafab Systems, Inc.", "USB to CF + SM Combo (LC1)", - US_SC_SCSI, US_PR_SDDR55, NULL, 0), + USB_SC_SCSI, USB_PR_SDDR55, NULL, 0), UNUSUAL_DEV( 0x0c0b, 0xa109, 0x0000, 0xffff, "Acomdata", "SM", - US_SC_SCSI, US_PR_SDDR55, NULL, 0), + USB_SC_SCSI, USB_PR_SDDR55, NULL, 0), UNUSUAL_DEV( 0x55aa, 0xa103, 0x0000, 0x9999, "Sandisk", "ImageMate SDDR55", - US_SC_SCSI, US_PR_SDDR55, NULL, 0), + USB_SC_SCSI, USB_PR_SDDR55, NULL, 0), #endif /* defined(CONFIG_USB_STORAGE_SDDR55) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/unusual_usbat.h b/vmkdrivers/src_92/drivers/usb/storage/unusual_usbat.h index 80e869f101806a250328a634563054df7974f1af..38e79c4e6d6ace9ae939f6a23c87a2a341e74423 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/unusual_usbat.h +++ b/vmkdrivers/src_92/drivers/usb/storage/unusual_usbat.h @@ -21,23 +21,23 @@ UNUSUAL_DEV( 0x03f0, 0x0207, 0x0001, 0x0001, "HP", "CD-Writer+ 8200e", - US_SC_8070, US_PR_USBAT, init_usbat_cd, 0), + USB_SC_8070, USB_PR_USBAT, init_usbat_cd, 0), UNUSUAL_DEV( 0x03f0, 0x0307, 0x0001, 0x0001, "HP", "CD-Writer+ CD-4e", - US_SC_8070, US_PR_USBAT, init_usbat_cd, 0), + USB_SC_8070, USB_PR_USBAT, init_usbat_cd, 0), UNUSUAL_DEV( 0x04e6, 0x1010, 0x0000, 0x9999, "Shuttle/SCM", "USBAT-02", - US_SC_SCSI, US_PR_USBAT, init_usbat_flash, + USB_SC_SCSI, USB_PR_USBAT, init_usbat_flash, US_FL_SINGLE_LUN), UNUSUAL_DEV( 0x0781, 0x0005, 0x0005, 0x0005, "Sandisk", "ImageMate SDDR-05b", - US_SC_SCSI, US_PR_USBAT, init_usbat_flash, + USB_SC_SCSI, USB_PR_USBAT, init_usbat_flash, US_FL_SINGLE_LUN), #endif /* defined(CONFIG_USB_STORAGE_USBAT) || ... */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/usb.c b/vmkdrivers/src_92/drivers/usb/storage/usb.c index 59cfe09a7316a71d1161ca3f4f389d52d2a2e683..74bbc446252298241ec6f4fbab45abe2e01b3d3f 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/usb.c +++ b/vmkdrivers/src_92/drivers/usb/storage/usb.c @@ -143,6 +143,9 @@ static struct us_unusual_dev us_unusual_dev_list[] = { { } /* Terminating entry */ }; +static struct us_unusual_dev for_dynamic_ids = + USUAL_DEV(USB_SC_SCSI, USB_PR_BULK, 0); + #undef UNUSUAL_DEV #undef COMPLIANT_DEV #undef USUAL_DEV @@ -259,6 +262,36 @@ static void cached_names_remove(struct us_data *us) } #endif +#ifdef CONFIG_LOCKDEP + +static struct lock_class_key us_interface_key[USB_MAXINTERFACES]; + +static void us_set_lock_class(struct mutex *mutex, + struct usb_interface *intf) +{ + struct usb_device *udev = interface_to_usbdev(intf); + struct usb_host_config *config = udev->actconfig; + int i; + + for (i = 0; i < config->desc.bNumInterfaces; i++) { + if (config->interface[i] == intf) + break; + } + + BUG_ON(i == config->desc.bNumInterfaces); + + lockdep_set_class(mutex, &us_interface_key[i]); +} + +#else + +static void us_set_lock_class(struct mutex *mutex, + struct usb_interface *intf) +{ +} + +#endif + #ifdef CONFIG_PM /* Minimal support for suspend and resume */ @@ -528,6 +561,7 @@ static int usb_stor_control_thread(void * __us) else { US_DEBUG(usb_stor_show_command(us->srb)); us->proto_handler(us->srb, us); + usb_mark_last_busy(us->pusb_dev); } /* lock access to the state */ @@ -613,15 +647,14 @@ static int associate_dev(struct us_data *us, struct usb_interface *intf) /* Store our private data in the interface */ usb_set_intfdata(intf, us); - /* Allocate the device-related DMA-mapped buffers */ - us->cr = usb_buffer_alloc(us->pusb_dev, sizeof(*us->cr), - GFP_KERNEL, &us->cr_dma); + /* Allocate the control/setup and DMA-mapped buffers */ + us->cr = kmalloc(sizeof(*us->cr), GFP_KERNEL); if (!us->cr) { US_DEBUGP("usb_ctrlrequest allocation failed\n"); return -ENOMEM; } - us->iobuf = usb_buffer_alloc(us->pusb_dev, US_IOBUF_SIZE, + us->iobuf = usb_alloc_coherent(us->pusb_dev, US_IOBUF_SIZE, GFP_KERNEL, &us->iobuf_dma); if (!us->iobuf) { US_DEBUGP("I/O buffer allocation failed\n"); @@ -629,7 +662,7 @@ static int associate_dev(struct us_data *us, struct usb_interface *intf) } #if defined(__VMKLNX__) - us->sensebuf = usb_buffer_alloc(us->pusb_dev, US_SENSE_SIZE, + us->sensebuf = usb_alloc_coherent(us->pusb_dev, US_SENSE_SIZE, GFP_KERNEL, &us->sensebuf_dma); if (!us->sensebuf) { US_DEBUGP("Sense buffer allocation failed\n"); @@ -654,7 +687,9 @@ static void adjust_quirks(struct us_data *us) US_FL_CAPACITY_HEURISTICS | US_FL_IGNORE_DEVICE | US_FL_NOT_LOCKABLE | US_FL_MAX_SECTORS_64 | US_FL_CAPACITY_OK | US_FL_IGNORE_RESIDUE | - US_FL_SINGLE_LUN | US_FL_NO_WP_DETECT); + US_FL_SINGLE_LUN | US_FL_NO_WP_DETECT | + US_FL_NO_READ_DISC_INFO | US_FL_NO_READ_CAPACITY_16 | + US_FL_INITIAL_READ10); p = quirks; while (*p) { @@ -686,6 +721,12 @@ static void adjust_quirks(struct us_data *us) case 'c': f |= US_FL_FIX_CAPACITY; break; + case 'd': + f |= US_FL_NO_READ_DISC_INFO; + break; + case 'e': + f |= US_FL_NO_READ_CAPACITY_16; + break; case 'h': f |= US_FL_CAPACITY_HEURISTICS; break; @@ -698,6 +739,9 @@ static void adjust_quirks(struct us_data *us) case 'm': f |= US_FL_MAX_SECTORS_64; break; + case 'n': + f |= US_FL_INITIAL_READ10; + break; case 'o': f |= US_FL_CAPACITY_OK; break; @@ -714,9 +758,6 @@ static void adjust_quirks(struct us_data *us) } } us->fflags = (us->fflags & ~mask) | f; - dev_info(&us->pusb_intf->dev, "Quirks match for " - "vid %04x pid %04x: %x\n", - vid, pid, f); } /* Get the unusual_devs entries and the string descriptors */ @@ -726,20 +767,21 @@ static int get_device_info(struct us_data *us, const struct usb_device_id *id, struct usb_device *dev = us->pusb_dev; struct usb_interface_descriptor *idesc = &us->pusb_intf->cur_altsetting->desc; + struct device *pdev = &us->pusb_intf->dev; /* Store the entries */ us->unusual_dev = unusual_dev; - us->subclass = (unusual_dev->useProtocol == US_SC_DEVICE) ? + us->subclass = (unusual_dev->useProtocol == USB_SC_DEVICE) ? idesc->bInterfaceSubClass : unusual_dev->useProtocol; - us->protocol = (unusual_dev->useTransport == US_PR_DEVICE) ? + us->protocol = (unusual_dev->useTransport == USB_PR_DEVICE) ? idesc->bInterfaceProtocol : unusual_dev->useTransport; us->fflags = USB_US_ORIG_FLAGS(id->driver_info); adjust_quirks(us); if (us->fflags & US_FL_IGNORE_DEVICE) { - printk(KERN_INFO USB_STORAGE "device ignored\n"); + dev_info(pdev, "device ignored\n"); return -ENODEV; } @@ -750,6 +792,12 @@ static int get_device_info(struct us_data *us, const struct usb_device_id *id, if (dev->speed != USB_SPEED_HIGH) us->fflags &= ~US_FL_GO_SLOW; + if (us->fflags) + dev_info(pdev, "Quirks match for vid %04x pid %04x: %lx\n", + le16_to_cpu(dev->descriptor.idVendor), + le16_to_cpu(dev->descriptor.idProduct), + us->fflags); + /* Log a message if a non-generic unusual_dev entry contains an * unnecessary subclass or protocol override. This may stimulate * reports from users that will help us remove unneeded entries @@ -763,26 +811,26 @@ static int get_device_info(struct us_data *us, const struct usb_device_id *id, struct usb_device_descriptor *ddesc = &dev->descriptor; int msg = -1; - if (unusual_dev->useProtocol != US_SC_DEVICE && + if (unusual_dev->useProtocol != USB_SC_DEVICE && us->subclass == idesc->bInterfaceSubClass) msg += 1; - if (unusual_dev->useTransport != US_PR_DEVICE && + if (unusual_dev->useTransport != USB_PR_DEVICE && us->protocol == idesc->bInterfaceProtocol) msg += 2; if (msg >= 0 && !(us->fflags & US_FL_NEED_OVERRIDE)) - printk(KERN_NOTICE USB_STORAGE "This device " - "(%04x,%04x,%04x S %02x P %02x)" - " has %s in unusual_devs.h (kernel" - " %s)\n" - " Please send a copy of this message to " - " and " - "\n", - le16_to_cpu(ddesc->idVendor), - le16_to_cpu(ddesc->idProduct), - le16_to_cpu(ddesc->bcdDevice), - idesc->bInterfaceSubClass, - idesc->bInterfaceProtocol, - msgs[msg], + dev_notice(pdev, "This device " + "(%04x,%04x,%04x S %02x P %02x)" + " has %s in unusual_devs.h (kernel" + " %s)\n" + " Please send a copy of this message to " + " and " + "\n", + le16_to_cpu(ddesc->idVendor), + le16_to_cpu(ddesc->idProduct), + le16_to_cpu(ddesc->bcdDevice), + idesc->bInterfaceSubClass, + idesc->bInterfaceProtocol, + msgs[msg], #if defined(__VMKLNX__) "vmklinux"); #else @@ -797,21 +845,21 @@ static int get_device_info(struct us_data *us, const struct usb_device_id *id, static void get_transport(struct us_data *us) { switch (us->protocol) { - case US_PR_CB: + case USB_PR_CB: us->transport_name = "Control/Bulk"; us->transport = usb_stor_CB_transport; us->transport_reset = usb_stor_CB_reset; us->max_lun = 7; break; - case US_PR_CBI: + case USB_PR_CBI: us->transport_name = "Control/Bulk/Interrupt"; us->transport = usb_stor_CB_transport; us->transport_reset = usb_stor_CB_reset; us->max_lun = 7; break; - case US_PR_BULK: + case USB_PR_BULK: us->transport_name = "Bulk"; us->transport = usb_stor_Bulk_transport; us->transport_reset = usb_stor_Bulk_reset; @@ -823,35 +871,35 @@ static void get_transport(struct us_data *us) static void get_protocol(struct us_data *us) { switch (us->subclass) { - case US_SC_RBC: + case USB_SC_RBC: us->protocol_name = "Reduced Block Commands (RBC)"; us->proto_handler = usb_stor_transparent_scsi_command; break; - case US_SC_8020: + case USB_SC_8020: us->protocol_name = "8020i"; us->proto_handler = usb_stor_pad12_command; us->max_lun = 0; break; - case US_SC_QIC: + case USB_SC_QIC: us->protocol_name = "QIC-157"; us->proto_handler = usb_stor_pad12_command; us->max_lun = 0; break; - case US_SC_8070: + case USB_SC_8070: us->protocol_name = "8070i"; us->proto_handler = usb_stor_pad12_command; us->max_lun = 0; break; - case US_SC_SCSI: + case USB_SC_SCSI: us->protocol_name = "Transparent SCSI"; us->proto_handler = usb_stor_transparent_scsi_command; break; - case US_SC_UFI: + case USB_SC_UFI: us->protocol_name = "Uniform Floppy Interface (UFI)"; us->proto_handler = usb_stor_ufi_command; break; @@ -894,13 +942,13 @@ static int get_pipes(struct us_data *us) } } - if (!ep_in || !ep_out || (us->protocol == US_PR_CBI && !ep_int)) { + if (!ep_in || !ep_out || (us->protocol == USB_PR_CBI && !ep_int)) { US_DEBUGP("Endpoint sanity check failed! Rejecting dev.\n"); return -EIO; } #if defined(__VMKLNX__) - if (us->protocol == US_PR_CBI || us->protocol == US_PR_CB) { + if (us->protocol == USB_PR_CBI || us->protocol == USB_PR_CB) { printk(KERN_WARNING USB_STORAGE "Unsupported USB floppy (CBI or CB) device! Rejecting device.\n"); return -EIO; @@ -945,8 +993,8 @@ static int usb_stor_acquire_resources(struct us_data *us) /* Start up our control thread */ th = kthread_run(usb_stor_control_thread, us, "usb-storage"); if (IS_ERR(th)) { - printk(KERN_WARNING USB_STORAGE - "Unable to start control thread\n"); + dev_warn(&us->pusb_intf->dev, + "Unable to start control thread\n"); return PTR_ERR(th); } us->ctl_thread = th; @@ -989,13 +1037,9 @@ static void dissociate_dev(struct us_data *us) us->sensebuf_dma); #endif - /* Free the device-related DMA-mapped buffers */ - if (us->cr) - usb_buffer_free(us->pusb_dev, sizeof(*us->cr), us->cr, - us->cr_dma); - if (us->iobuf) - usb_buffer_free(us->pusb_dev, US_IOBUF_SIZE, us->iobuf, - us->iobuf_dma); + /* Free the buffers */ + kfree(us->cr); + usb_free_coherent(us->pusb_dev, US_IOBUF_SIZE, us->iobuf, us->iobuf_dma); /* Remove our private data from the interface */ usb_set_intfdata(us->pusb_intf, NULL); @@ -1009,15 +1053,19 @@ static void quiesce_and_remove_host(struct us_data *us) struct Scsi_Host *host = us_to_host(us); /* If the device is really gone, cut short reset delays */ - if (us->pusb_dev->state == USB_STATE_NOTATTACHED) + if (us->pusb_dev->state == USB_STATE_NOTATTACHED) { set_bit(US_FLIDX_DISCONNECTING, &us->dflags); + wake_up(&us->delay_wait); + } - /* Prevent SCSI-scanning (if it hasn't started yet) - * and wait for the SCSI-scanning thread to stop. + /* Prevent SCSI scanning (if it hasn't started yet) + * or wait for the SCSI-scanning routine to stop. */ - set_bit(US_FLIDX_DONT_SCAN, &us->dflags); - wake_up(&us->delay_wait); - wait_for_completion(&us->scanning_done); + cancel_delayed_work_sync(&us->scan_dwork); + + /* Balance autopm calls if scanning was cancelled */ + if (test_bit(US_FLIDX_SCAN_PENDING, &us->dflags)) + usb_autopm_put_interface_no_suspend(us->pusb_intf); /* Removing the host will perform an orderly shutdown: caches * synchronized, disks spun down, etc. @@ -1051,33 +1099,14 @@ static void release_everything(struct us_data *us) scsi_host_put(us_to_host(us)); } -/* Thread to carry out delayed SCSI-device scanning */ -static int usb_stor_scan_thread(void * __us) +/* Delayed-work routine to carry out SCSI-device scanning */ +static void usb_stor_scan_dwork(struct work_struct *work) { - struct us_data *us = (struct us_data *)__us; - - dev_dbg(&us->pusb_intf->dev, "device found\n"); + struct us_data *us = container_of(work, struct us_data, + scan_dwork.work); + struct device *dev = &us->pusb_intf->dev; -#if !defined(__VMKLNX__) - set_freezable(); -#endif - /* Wait for the timeout to expire or for a disconnect */ - if (delay_use > 0) { - dev_dbg(&us->pusb_intf->dev, "waiting for device to settle " - "before scanning\n"); -#if defined(__VMKLNX__) - wait_event_interruptible_timeout(us->delay_wait, - test_bit(US_FLIDX_DISCONNECTING, &us->dflags), - delay_use * HZ); -#else - wait_event_freezable_timeout(us->delay_wait, - test_bit(US_FLIDX_DONT_SCAN, &us->dflags), - delay_use * HZ); -#endif - } - - /* If the device is still connected, perform the scanning */ - if (!test_bit(US_FLIDX_DONT_SCAN, &us->dflags)) { + dev_dbg(dev, "starting scan\n"); #if !defined(__VMKLNX__) /* done in probe2 */ /* For bulk-only devices, determine the max LUN value */ @@ -1088,16 +1117,13 @@ static int usb_stor_scan_thread(void * __us) mutex_unlock(&us->dev_mutex); } #endif - scsi_scan_host(us_to_host(us)); - dev_dbg(&us->pusb_intf->dev, "scan complete\n"); + scsi_scan_host(us_to_host(us)); + dev_dbg(dev, "scan complete\n"); - /* Should we unbind if no devices were detected? */ - } + /* Should we unbind if no devices were detected? */ - complete_and_exit(&us->scanning_done, 0); -#if defined(__VMKLNX__) - return 0; -#endif + usb_autopm_put_interface(us->pusb_intf); + clear_bit(US_FLIDX_SCAN_PENDING, &us->dflags); } #if defined(__VMKLNX__) @@ -1158,8 +1184,8 @@ int usb_stor_probe1(struct us_data **pus, */ host = scsi_host_alloc(&usb_stor_host_template, sizeof(*us)); if (!host) { - printk(KERN_WARNING USB_STORAGE - "Unable to allocate the scsi host\n"); + dev_warn(&intf->dev, + "Unable to allocate the scsi host\n"); return -ENOMEM; } @@ -1174,10 +1200,11 @@ int usb_stor_probe1(struct us_data **pus, us->devtype = 0xff; /* uninitialized */ #endif mutex_init(&(us->dev_mutex)); + us_set_lock_class(&us->dev_mutex, intf); init_completion(&us->cmnd_ready); init_completion(&(us->notify)); init_waitqueue_head(&us->delay_wait); - init_completion(&us->scanning_done); + INIT_DELAYED_WORK(&us->scan_dwork, usb_stor_scan_dwork); #if defined(__VMKLNX__) INIT_WORK(&us->unclaim_work, storage_unclaim); #endif @@ -1217,8 +1244,8 @@ EXPORT_SYMBOL_GPL(usb_stor_probe1); /* Second part of general USB mass-storage probing */ int usb_stor_probe2(struct us_data *us) { - struct task_struct *th; int result; + struct device *dev = &us->pusb_intf->dev; /* Make sure the transport and protocol have both been set */ if (!us->transport || !us->proto_handler) { @@ -1237,6 +1264,13 @@ int usb_stor_probe2(struct us_data *us) if (result) goto BadDevice; + /* + * If the device returns invalid data for the first READ(10) + * command, indicate the command should be retried. + */ + if (us->fflags & US_FL_INITIAL_READ10) + set_bit(US_FLIDX_REDO_READ10, &us->dflags); + /* Acquire all the other resources and add the host */ result = usb_stor_acquire_resources(us); if (result) @@ -1260,7 +1294,7 @@ int usb_stor_probe2(struct us_data *us) host->max_sectors = 64; /* For bulk-only devices, determine the max LUN value */ - if (us->protocol == US_PR_BULK && + if (us->protocol == USB_PR_BULK && !(us->fflags & US_FL_SINGLE_LUN)) { us->max_lun = usb_stor_Bulk_max_lun(us); } @@ -1271,26 +1305,28 @@ int usb_stor_probe2(struct us_data *us) #endif snprintf(us->scsi_name, sizeof(us->scsi_name), "usb-storage %s", dev_name(&us->pusb_intf->dev)); - result = scsi_add_host(us_to_host(us), &us->pusb_intf->dev); + result = scsi_add_host(us_to_host(us), dev); if (result) { - printk(KERN_WARNING USB_STORAGE - "Unable to add the scsi host\n"); + dev_warn(dev, + "Unable to add the scsi host\n"); goto BadDevice; } - /* Start up the thread for delayed SCSI-device scanning */ - th = kthread_create(usb_stor_scan_thread, us, "usb-stor-scan"); - if (IS_ERR(th)) { - printk(KERN_WARNING USB_STORAGE - "Unable to start the device-scanning thread\n"); - complete(&us->scanning_done); - quiesce_and_remove_host(us); - result = PTR_ERR(th); - goto BadDevice; - } + /* Submit the delayed_work for SCSI-device scanning */ + usb_autopm_get_interface_no_resume(us->pusb_intf); + set_bit(US_FLIDX_SCAN_PENDING, &us->dflags); + + if (delay_use > 0) + dev_dbg(dev, "waiting for device to settle before scanning\n"); - wake_up_process(th); +#if defined(__VMKLNX__) + /* Original VMKLNX code did not schedule anywork as freezable */ + schedule_delayed_work(&us->scan_dwork, delay_use * HZ); +#else + queue_delayed_work(system_freezable_wq, &us->scan_dwork, + delay_use * HZ); +#endif return 0; /* We come here if there are any problems */ @@ -1316,8 +1352,10 @@ EXPORT_SYMBOL_GPL(usb_stor_disconnect); static int storage_probe(struct usb_interface *intf, const struct usb_device_id *id) { + struct us_unusual_dev *unusual_dev; struct us_data *us; int result; + int size; /* * If libusual is configured, let it decide whether a standard @@ -1336,8 +1374,19 @@ static int storage_probe(struct usb_interface *intf, * table, so we use the index of the id entry to find the * corresponding unusual_devs entry. */ - result = usb_stor_probe1(&us, intf, id, - (id - usb_storage_usb_ids) + us_unusual_dev_list); + + size = ARRAY_SIZE(us_unusual_dev_list); + if (id >= usb_storage_usb_ids && id < usb_storage_usb_ids + size) { + unusual_dev = (id - usb_storage_usb_ids) + us_unusual_dev_list; + } else { + unusual_dev = &for_dynamic_ids; + + US_DEBUGP("%s %s 0x%04x 0x%04x\n", "Use Bulk-Only transport", + "with the Transparent SCSI protocol for dynamic id:", + id->idVendor, id->idProduct); + } + + result = usb_stor_probe1(&us, intf, id, unusual_dev); if (result) return result; @@ -1410,10 +1459,11 @@ static struct usb_driver usb_storage_driver = { .pre_reset = usb_stor_pre_reset, .post_reset = usb_stor_post_reset, .id_table = usb_storage_usb_ids, + .supports_autosuspend = 1, .soft_unbind = 1, #if defined(__VMKLNX__) - .ioctl = storage_ioctl, - .module = THIS_MODULE, + .ioctl = storage_ioctl, + .module = THIS_MODULE, #endif }; @@ -1421,7 +1471,7 @@ static int __init usb_stor_init(void) { int retval; - printk(KERN_INFO "Initializing USB Mass Storage driver...\n"); + pr_info("Initializing USB Mass Storage driver...\n"); #if defined(__VMKLNX__) cached_names_init(); #endif @@ -1429,7 +1479,7 @@ static int __init usb_stor_init(void) /* register the driver, return usb_register return code if error */ retval = usb_register(&usb_storage_driver); if (retval == 0) { - printk(KERN_INFO "USB Mass Storage support registered.\n"); + pr_info("USB Mass Storage support registered.\n"); usb_usual_set_present(USB_US_TYPE_STOR); } #if defined (__VMKLNX__) diff --git a/vmkdrivers/src_92/drivers/usb/storage/usb.h b/vmkdrivers/src_92/drivers/usb/storage/usb.h index 9b080533626e1850e21f3a051900e1e2d37b5d14..09ee8fd257086ea3095d2d0af9d60ab1d498d71e 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/usb.h +++ b/vmkdrivers/src_92/drivers/usb/storage/usb.h @@ -50,6 +50,7 @@ #include #include #include +#include #include #if defined(__VMKLNX__) #include "debug.h" @@ -78,7 +79,9 @@ struct us_unusual_dev { #define US_FLIDX_DISCONNECTING 3 /* disconnect in progress */ #define US_FLIDX_RESETTING 4 /* device reset in progress */ #define US_FLIDX_TIMED_OUT 5 /* SCSI midlayer timed out */ -#define US_FLIDX_DONT_SCAN 6 /* don't scan (disconnect) */ +#define US_FLIDX_SCAN_PENDING 6 /* scanning not yet done */ +#define US_FLIDX_REDO_READ10 7 /* redo READ(10) command */ +#define US_FLIDX_READ10_WORKED 8 /* previous READ(10) succeeded */ #define USB_STOR_STRING_LEN 32 @@ -145,8 +148,7 @@ struct us_data { struct usb_ctrlrequest *cr; /* control requests */ struct usb_sg_request current_sg; /* scatter-gather req. */ unsigned char *iobuf; /* I/O buffer */ - dma_addr_t cr_dma; /* buffer DMA addresses */ - dma_addr_t iobuf_dma; + dma_addr_t iobuf_dma; /* buffer DMA addresses */ #if defined(__VMKLNX__) unsigned char *sensebuf; /* sense data buffer */ dma_addr_t sensebuf_dma; @@ -160,8 +162,8 @@ struct us_data { /* mutual exclusion and synchronization structures */ struct completion cmnd_ready; /* to sleep thread on */ struct completion notify; /* thread begin/end */ - wait_queue_head_t delay_wait; /* wait during scan, reset */ - struct completion scanning_done; /* wait for scan thread */ + wait_queue_head_t delay_wait; /* wait during reset */ + struct delayed_work scan_dwork; /* for async scanning */ /* subdriver information */ void *extra; /* Any extra data */ diff --git a/vmkdrivers/src_92/drivers/usb/storage/usual-tables.c b/vmkdrivers/src_92/drivers/usb/storage/usual-tables.c index 468bde7d1971c92b12307ed7557ec786f7e5f289..b96927914f89098bc00119d1338fb381368ea687 100644 --- a/vmkdrivers/src_92/drivers/usb/storage/usual-tables.c +++ b/vmkdrivers/src_92/drivers/usb/storage/usual-tables.c @@ -80,11 +80,13 @@ static struct ignore_entry ignore_ids[] = { # include "unusual_alauda.h" # include "unusual_cypress.h" # include "unusual_datafab.h" +# include "unusual_ene_ub6250.h" # include "unusual_freecom.h" # include "unusual_isd200.h" # include "unusual_jumpshot.h" # include "unusual_karma.h" # include "unusual_onetouch.h" +# include "unusual_realtek.h" # include "unusual_sddr09.h" # include "unusual_sddr55.h" # include "unusual_usbat.h" diff --git a/vmkdrivers/src_92/include/linux/fs.h b/vmkdrivers/src_92/include/linux/fs.h index 50d3eef1ba4e5f7b91743d32e0cf94d9ec0713ae..575e2387723fa33dcf002201c5dd987bb5bef2dd 100644 --- a/vmkdrivers/src_92/include/linux/fs.h +++ b/vmkdrivers/src_92/include/linux/fs.h @@ -279,7 +279,9 @@ extern int dir_notify_enable; #include #include #include +#if !defined(__VMKLNX__) #include +#endif /* defined(__VMKLNX__) */ #include #include #include @@ -435,7 +437,12 @@ struct address_space_operations { struct backing_dev_info; struct address_space { struct inode *host; /* owner: inode, block_device */ +#if !defined(__VMKLNX__) struct radix_tree_root page_tree; /* radix tree of all pages */ +#else + unsigned long long unused1; /* for alignment only */ + unsigned long long unused2; /* for alignment only */ +#endif /* defined(__VMKLNX__) */ rwlock_t tree_lock; /* and rwlock protecting it */ unsigned int i_mmap_writable;/* count VM_SHARED mappings */ struct prio_tree_root i_mmap; /* tree of private and shared mappings */ diff --git a/vmkdrivers/src_92/include/linux/miscdevice.h b/vmkdrivers/src_92/include/linux/miscdevice.h index 8cf715fe4a426d071e531fa682ef2ca65732226b..9b0b9ab9e2c4eeb2bb3b85da72468cb3b9017c20 100644 --- a/vmkdrivers/src_92/include/linux/miscdevice.h +++ b/vmkdrivers/src_92/include/linux/miscdevice.h @@ -33,6 +33,8 @@ #define MPT_SAS_MINOR 222 #define MEGASAS_MINOR 223 #define MPT2_SAS_MINOR 224 +#define MPT3_SAS_MINOR 225 +#define MEGARAID_PERC9_MINOR 226 #endif /* defined(__VMKLNX__) */ #define MISC_DYNAMIC_MINOR 255 diff --git a/vmkdrivers/src_92/include/linux/radix-tree.h b/vmkdrivers/src_92/include/linux/radix-tree.h deleted file mode 100644 index e10a426307c0bbf06a249cf9b5c461049838afd6..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_92/include/linux/radix-tree.h +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Copyright (C) 2001 Momchil Velikov - * Portions Copyright (C) 2001 Christoph Hellwig - * Copyright (C) 2006 Nick Piggin - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ -#ifndef _LINUX_RADIX_TREE_H -#define _LINUX_RADIX_TREE_H - -#include -#include -#include -#include - -/* - * An indirect pointer (root->rnode pointing to a radix_tree_node, rather - * than a data item) is signalled by the low bit set in the root->rnode - * pointer. - * - * In this case root->height is > 0, but the indirect pointer tests are - * needed for RCU lookups (because root->height is unreliable). The only - * time callers need worry about this is when doing a lookup_slot under - * RCU. - * - * Indirect pointer in fact is also used to tag the last pointer of a node - * when it is shrunk, before we rcu free the node. See shrink code for - * details. - */ -#define RADIX_TREE_INDIRECT_PTR 1 -/* - * A common use of the radix tree is to store pointers to struct pages; - * but shmem/tmpfs needs also to store swap entries in the same tree: - * those are marked as exceptional entries to distinguish them. - * EXCEPTIONAL_ENTRY tests the bit, EXCEPTIONAL_SHIFT shifts content past it. - */ -#define RADIX_TREE_EXCEPTIONAL_ENTRY 2 -#define RADIX_TREE_EXCEPTIONAL_SHIFT 2 - -static inline int radix_tree_is_indirect_ptr(void *ptr) -{ - return (int)((unsigned long)ptr & RADIX_TREE_INDIRECT_PTR); -} - -/*** radix-tree API starts here ***/ - -#define RADIX_TREE_MAX_TAGS 3 - -/* root tags are stored in gfp_mask, shifted by __GFP_BITS_SHIFT */ -struct radix_tree_root { - unsigned int height; - gfp_t gfp_mask; - struct radix_tree_node __rcu *rnode; -}; - -#define RADIX_TREE_INIT(mask) { \ - .height = 0, \ - .gfp_mask = (mask), \ - .rnode = NULL, \ -} - -#define RADIX_TREE(name, mask) \ - struct radix_tree_root name = RADIX_TREE_INIT(mask) - -#define INIT_RADIX_TREE(root, mask) \ -do { \ - (root)->height = 0; \ - (root)->gfp_mask = (mask); \ - (root)->rnode = NULL; \ -} while (0) - -/** - * Radix-tree synchronization - * - * The radix-tree API requires that users provide all synchronisation (with - * specific exceptions, noted below). - * - * Synchronization of access to the data items being stored in the tree, and - * management of their lifetimes must be completely managed by API users. - * - * For API usage, in general, - * - any function _modifying_ the tree or tags (inserting or deleting - * items, setting or clearing tags) must exclude other modifications, and - * exclude any functions reading the tree. - * - any function _reading_ the tree or tags (looking up items or tags, - * gang lookups) must exclude modifications to the tree, but may occur - * concurrently with other readers. - * - * The notable exceptions to this rule are the following functions: - * radix_tree_lookup - * radix_tree_lookup_slot - * radix_tree_tag_get - * radix_tree_gang_lookup - * radix_tree_gang_lookup_slot - * radix_tree_gang_lookup_tag - * radix_tree_gang_lookup_tag_slot - * radix_tree_tagged - * - * The first 7 functions are able to be called locklessly, using RCU. The - * caller must ensure calls to these functions are made within rcu_read_lock() - * regions. Other readers (lock-free or otherwise) and modifications may be - * running concurrently. - * - * It is still required that the caller manage the synchronization and lifetimes - * of the items. So if RCU lock-free lookups are used, typically this would mean - * that the items have their own locks, or are amenable to lock-free access; and - * that the items are freed by RCU (or only freed after having been deleted from - * the radix tree *and* a synchronize_rcu() grace period). - * - * (Note, rcu_assign_pointer and rcu_dereference are not needed to control - * access to data items when inserting into or looking up from the radix tree) - * - * Note that the value returned by radix_tree_tag_get() may not be relied upon - * if only the RCU read lock is held. Functions to set/clear tags and to - * delete nodes running concurrently with it may affect its result such that - * two consecutive reads in the same locked section may return different - * values. If reliability is required, modification functions must also be - * excluded from concurrency. - * - * radix_tree_tagged is able to be called without locking or RCU. - */ - -/** - * radix_tree_deref_slot - dereference a slot - * @pslot: pointer to slot, returned by radix_tree_lookup_slot - * Returns: item that was stored in that slot with any direct pointer flag - * removed. - * - * For use with radix_tree_lookup_slot(). Caller must hold tree at least read - * locked across slot lookup and dereference. Not required if write lock is - * held (ie. items cannot be concurrently inserted). - * - * radix_tree_deref_retry must be used to confirm validity of the pointer if - * only the read lock is held. - */ -static inline void *radix_tree_deref_slot(void **pslot) -{ - return rcu_dereference(*pslot); -} - -/** - * radix_tree_deref_slot_protected - dereference a slot without RCU lock but with tree lock held - * @pslot: pointer to slot, returned by radix_tree_lookup_slot - * Returns: item that was stored in that slot with any direct pointer flag - * removed. - * - * Similar to radix_tree_deref_slot but only used during migration when a pages - * mapping is being moved. The caller does not hold the RCU read lock but it - * must hold the tree lock to prevent parallel updates. - */ -static inline void *radix_tree_deref_slot_protected(void **pslot, - spinlock_t *treelock) -{ - return rcu_dereference_protected(*pslot, lockdep_is_held(treelock)); -} - -/** - * radix_tree_deref_retry - check radix_tree_deref_slot - * @arg: pointer returned by radix_tree_deref_slot - * Returns: 0 if retry is not required, otherwise retry is required - * - * radix_tree_deref_retry must be used with radix_tree_deref_slot. - */ -static inline int radix_tree_deref_retry(void *arg) -{ - return unlikely((unsigned long)arg & RADIX_TREE_INDIRECT_PTR); -} - -/** - * radix_tree_exceptional_entry - radix_tree_deref_slot gave exceptional entry? - * @arg: value returned by radix_tree_deref_slot - * Returns: 0 if well-aligned pointer, non-0 if exceptional entry. - */ -static inline int radix_tree_exceptional_entry(void *arg) -{ - /* Not unlikely because radix_tree_exception often tested first */ - return (unsigned long)arg & RADIX_TREE_EXCEPTIONAL_ENTRY; -} - -/** - * radix_tree_exception - radix_tree_deref_slot returned either exception? - * @arg: value returned by radix_tree_deref_slot - * Returns: 0 if well-aligned pointer, non-0 if either kind of exception. - */ -static inline int radix_tree_exception(void *arg) -{ - return unlikely((unsigned long)arg & - (RADIX_TREE_INDIRECT_PTR | RADIX_TREE_EXCEPTIONAL_ENTRY)); -} - -/** - * radix_tree_replace_slot - replace item in a slot - * @pslot: pointer to slot, returned by radix_tree_lookup_slot - * @item: new item to store in the slot. - * - * For use with radix_tree_lookup_slot(). Caller must hold tree write locked - * across slot lookup and replacement. - */ -static inline void radix_tree_replace_slot(void **pslot, void *item) -{ - BUG_ON(radix_tree_is_indirect_ptr(item)); - rcu_assign_pointer(*pslot, item); -} - -int radix_tree_insert(struct radix_tree_root *, unsigned long, void *); -void *radix_tree_lookup(struct radix_tree_root *, unsigned long); -void **radix_tree_lookup_slot(struct radix_tree_root *, unsigned long); -void *radix_tree_delete(struct radix_tree_root *, unsigned long); -unsigned int -radix_tree_gang_lookup(struct radix_tree_root *root, void **results, - unsigned long first_index, unsigned int max_items); -unsigned int radix_tree_gang_lookup_slot(struct radix_tree_root *root, - void ***results, unsigned long *indices, - unsigned long first_index, unsigned int max_items); -unsigned long radix_tree_next_hole(struct radix_tree_root *root, - unsigned long index, unsigned long max_scan); -unsigned long radix_tree_prev_hole(struct radix_tree_root *root, - unsigned long index, unsigned long max_scan); -#if !defined(__VMKLNX__) -int radix_tree_preload(gfp_t gfp_mask); -#endif -void radix_tree_init(void); -void *radix_tree_tag_set(struct radix_tree_root *root, - unsigned long index, unsigned int tag); -void *radix_tree_tag_clear(struct radix_tree_root *root, - unsigned long index, unsigned int tag); -int radix_tree_tag_get(struct radix_tree_root *root, - unsigned long index, unsigned int tag); -unsigned int -radix_tree_gang_lookup_tag(struct radix_tree_root *root, void **results, - unsigned long first_index, unsigned int max_items, - unsigned int tag); -unsigned int -radix_tree_gang_lookup_tag_slot(struct radix_tree_root *root, void ***results, - unsigned long first_index, unsigned int max_items, - unsigned int tag); -unsigned long radix_tree_range_tag_if_tagged(struct radix_tree_root *root, - unsigned long *first_indexp, unsigned long last_index, - unsigned long nr_to_tag, - unsigned int fromtag, unsigned int totag); -int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag); -unsigned long radix_tree_locate_item(struct radix_tree_root *root, void *item); - -#if !defined(__VMKLNX__) -static inline void radix_tree_preload_end(void) -{ - preempt_enable(); -} -#endif - -#if defined(__VMKLNX__) -void radix_tree_init_maxindex(void); -#endif - -#endif /* _LINUX_RADIX_TREE_H */ diff --git a/vmkdrivers/src_92/include/linux/usb/storage.h b/vmkdrivers/src_92/include/linux/usb/storage.h new file mode 100644 index 0000000000000000000000000000000000000000..cb33fff2ba0be33f3aa6b764e78b402f948e9c4d --- /dev/null +++ b/vmkdrivers/src_92/include/linux/usb/storage.h @@ -0,0 +1,86 @@ +#ifndef __LINUX_USB_STORAGE_H +#define __LINUX_USB_STORAGE_H + +/* + * linux/usb/storage.h + * + * Copyright Matthew Wilcox for Intel Corp, 2010 + * + * This file contains definitions taken from the + * USB Mass Storage Class Specification Overview + * + * Distributed under the terms of the GNU GPL, version two. + */ + +/* Storage subclass codes */ + +#define USB_SC_RBC 0x01 /* Typically, flash devices */ +#define USB_SC_8020 0x02 /* CD-ROM */ +#define USB_SC_QIC 0x03 /* QIC-157 Tapes */ +#define USB_SC_UFI 0x04 /* Floppy */ +#define USB_SC_8070 0x05 /* Removable media */ +#define USB_SC_SCSI 0x06 /* Transparent */ +#define USB_SC_LOCKABLE 0x07 /* Password-protected */ + +#define USB_SC_ISD200 0xf0 /* ISD200 ATA */ +#define USB_SC_CYP_ATACB 0xf1 /* Cypress ATACB */ +#define USB_SC_DEVICE 0xff /* Use device's value */ + +/* Storage protocol codes */ + +#define USB_PR_CBI 0x00 /* Control/Bulk/Interrupt */ +#define USB_PR_CB 0x01 /* Control/Bulk w/o interrupt */ +#define USB_PR_BULK 0x50 /* bulk only */ +#define USB_PR_UAS 0x62 /* USB Attached SCSI */ + +#define USB_PR_USBAT 0x80 /* SCM-ATAPI bridge */ +#define USB_PR_EUSB_SDDR09 0x81 /* SCM-SCSI bridge for SDDR-09 */ +#define USB_PR_SDDR55 0x82 /* SDDR-55 (made up) */ +#define USB_PR_DPCM_USB 0xf0 /* Combination CB/SDDR09 */ +#define USB_PR_FREECOM 0xf1 /* Freecom */ +#define USB_PR_DATAFAB 0xf2 /* Datafab chipsets */ +#define USB_PR_JUMPSHOT 0xf3 /* Lexar Jumpshot */ +#define USB_PR_ALAUDA 0xf4 /* Alauda chipsets */ +#define USB_PR_KARMA 0xf5 /* Rio Karma */ + +#define USB_PR_DEVICE 0xff /* Use device's value */ + + /* + * Bulk only data structures + */ + +/* command block wrapper */ +struct bulk_cb_wrap { + __le32 Signature; /* contains 'USBC' */ + __u32 Tag; /* unique per command id */ + __le32 DataTransferLength; /* size of data */ + __u8 Flags; /* direction in bit 0 */ + __u8 Lun; /* LUN normally 0 */ + __u8 Length; /* of of the CDB */ + __u8 CDB[16]; /* max command */ +}; + +#define US_BULK_CB_WRAP_LEN 31 +#define US_BULK_CB_SIGN 0x43425355 /*spells out USBC */ +#define US_BULK_FLAG_IN (1 << 7) +#define US_BULK_FLAG_OUT 0 + +/* command status wrapper */ +struct bulk_cs_wrap { + __le32 Signature; /* should = 'USBS' */ + __u32 Tag; /* same as original command */ + __le32 Residue; /* amount not transferred */ + __u8 Status; /* see below */ +}; + +#define US_BULK_CS_WRAP_LEN 13 +#define US_BULK_CS_SIGN 0x53425355 /* spells out 'USBS' */ +#define US_BULK_STAT_OK 0 +#define US_BULK_STAT_FAIL 1 +#define US_BULK_STAT_PHASE 2 + +/* bulk-only class specific requests */ +#define US_BULK_RESET_REQUEST 0xff +#define US_BULK_GET_MAX_LUN 0xfe + +#endif diff --git a/vmkdrivers/src_92/include/linux/usb_usual.h b/vmkdrivers/src_92/include/linux/usb_usual.h index 63012cb1fbdd9837ad3b228488353ff734a57213..12c16750963a81b5bb8e6f3a422d58c0a6b2ea2f 100644 --- a/vmkdrivers/src_92/include/linux/usb_usual.h +++ b/vmkdrivers/src_92/include/linux/usb_usual.h @@ -62,6 +62,12 @@ /* READ CAPACITY response is correct */ \ US_FLAG(BAD_SENSE, 0x00020000) \ /* Bad Sense (never more than 18 bytes) */ \ + US_FLAG(NO_READ_DISC_INFO, 0x00040000) \ + /* cannot handle READ_DISC_INFO */ \ + US_FLAG(NO_READ_CAPACITY_16, 0x00080000) \ + /* cannot handle READ_CAPACITY_16 */ \ + US_FLAG(INITIAL_READ10, 0x00100000) \ + /* Initial READ(10) (and others) must be retried */ \ US_FLAG(VMKLNX_NO_FILTERING, 0x00040000) \ /* Don't filter SCSI commands */ \ US_FLAG(VMKLNX_NO_UNCLAIM, 0x00080000) \ @@ -98,42 +104,7 @@ enum { US_DO_ALL_FLAGS }; /* _VMKLNX_CODECHECK_: USB_US_ORIG_FLAGS */ #define USB_US_ORIG_FLAGS(flags) ((flags) & 0x00FFFFFF) -/* - * This is probably not the best place to keep these constants, conceptually. - * But it's the only header included into all places which need them. - */ - -/* Sub Classes */ - -#define US_SC_RBC 0x01 /* Typically, flash devices */ -#define US_SC_8020 0x02 /* CD-ROM */ -#define US_SC_QIC 0x03 /* QIC-157 Tapes */ -#define US_SC_UFI 0x04 /* Floppy */ -#define US_SC_8070 0x05 /* Removable media */ -#define US_SC_SCSI 0x06 /* Transparent */ -#define US_SC_LOCKABLE 0x07 /* Password-protected */ - -#define US_SC_ISD200 0xf0 /* ISD200 ATA */ -#define US_SC_CYP_ATACB 0xf1 /* Cypress ATACB */ -#define US_SC_DEVICE 0xff /* Use device's value */ - -/* Protocols */ - -#define US_PR_CBI 0x00 /* Control/Bulk/Interrupt */ -#define US_PR_CB 0x01 /* Control/Bulk w/o interrupt */ -#define US_PR_BULK 0x50 /* bulk only */ - -#define US_PR_USBAT 0x80 /* SCM-ATAPI bridge */ -#define US_PR_EUSB_SDDR09 0x81 /* SCM-SCSI bridge for SDDR-09 */ -#define US_PR_SDDR55 0x82 /* SDDR-55 (made up) */ -#define US_PR_DPCM_USB 0xf0 /* Combination CB/SDDR09 */ -#define US_PR_FREECOM 0xf1 /* Freecom */ -#define US_PR_DATAFAB 0xf2 /* Datafab chipsets */ -#define US_PR_JUMPSHOT 0xf3 /* Lexar Jumpshot */ -#define US_PR_ALAUDA 0xf4 /* Alauda chipsets */ -#define US_PR_KARMA 0xf5 /* Rio Karma */ - -#define US_PR_DEVICE 0xff /* Use device's value */ +#include /* */ diff --git a/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/power/runtime.c b/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/power/runtime.c index 3a31a9f0b26ced657237db291aafa924278e3d87..bd9f116541e1e6c3a819c5f72bb49f9481e15d61 100644 --- a/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/power/runtime.c +++ b/vmkdrivers/src_92/vmklinux_92/linux/drivers/base/power/runtime.c @@ -13,7 +13,7 @@ * VMKLNX notes: * From Linux 2.6.34.1, git commit 3db48f5c1a68e801146ca58ff94f3898c6fbf90e. * "dev->power." is changed to "dev->power2->" throughout; - * other changes are marked with __VMKLNX__. + * other changes are marked with __VMKLNX__ or VMKAPI_MODULE_CALL(). */ #if defined(__VMKLNX__) @@ -96,20 +96,23 @@ static int __pm_runtime_idle(struct device *dev) if (dev->bus && dev->bus->pm && dev->bus->pm->runtime_idle) { spin_unlock_irq(&dev->power2->lock); - dev->bus->pm->runtime_idle(dev); + VMKAPI_MODULE_CALL_VOID(dev->bus->owner->moduleID, + dev->bus->pm->runtime_idle, dev); spin_lock_irq(&dev->power2->lock); } else if (dev->type && dev->type->pm && dev->type->pm->runtime_idle) { spin_unlock_irq(&dev->power2->lock); - dev->type->pm->runtime_idle(dev); + VMKAPI_MODULE_CALL_VOID(dev->driver->owner->moduleID, + dev->type->pm->runtime_idle, dev); spin_lock_irq(&dev->power2->lock); } else if (dev->class && dev->class->pm && dev->class->pm->runtime_idle) { spin_unlock_irq(&dev->power2->lock); - dev->class->pm->runtime_idle(dev); + VMKAPI_MODULE_CALL_VOID(dev->class->owner->moduleID, + dev->class->pm->runtime_idle, dev); spin_lock_irq(&dev->power2->lock); } @@ -220,7 +223,8 @@ int __pm_runtime_suspend(struct device *dev, bool from_wq) if (dev->bus && dev->bus->pm && dev->bus->pm->runtime_suspend) { spin_unlock_irq(&dev->power2->lock); - retval = dev->bus->pm->runtime_suspend(dev); + VMKAPI_MODULE_CALL(dev->bus->owner->moduleID, retval, + dev->bus->pm->runtime_suspend, dev); spin_lock_irq(&dev->power2->lock); dev->power2->runtime_error = retval; @@ -228,7 +232,8 @@ int __pm_runtime_suspend(struct device *dev, bool from_wq) && dev->type->pm->runtime_suspend) { spin_unlock_irq(&dev->power2->lock); - retval = dev->type->pm->runtime_suspend(dev); + VMKAPI_MODULE_CALL(dev->driver->owner->moduleID, retval, + dev->type->pm->runtime_suspend, dev); spin_lock_irq(&dev->power2->lock); dev->power2->runtime_error = retval; @@ -236,7 +241,8 @@ int __pm_runtime_suspend(struct device *dev, bool from_wq) && dev->class->pm->runtime_suspend) { spin_unlock_irq(&dev->power2->lock); - retval = dev->class->pm->runtime_suspend(dev); + VMKAPI_MODULE_CALL(dev->class->owner->moduleID, retval, + dev->class->pm->runtime_suspend, dev); spin_lock_irq(&dev->power2->lock); dev->power2->runtime_error = retval; @@ -404,7 +410,8 @@ int __pm_runtime_resume(struct device *dev, bool from_wq) if (dev->bus && dev->bus->pm && dev->bus->pm->runtime_resume) { spin_unlock_irq(&dev->power2->lock); - retval = dev->bus->pm->runtime_resume(dev); + VMKAPI_MODULE_CALL(dev->bus->owner->moduleID, retval, + dev->bus->pm->runtime_resume, dev); spin_lock_irq(&dev->power2->lock); dev->power2->runtime_error = retval; @@ -412,7 +419,8 @@ int __pm_runtime_resume(struct device *dev, bool from_wq) && dev->type->pm->runtime_resume) { spin_unlock_irq(&dev->power2->lock); - retval = dev->type->pm->runtime_resume(dev); + VMKAPI_MODULE_CALL(dev->driver->owner->moduleID, retval, + dev->type->pm->runtime_resume, dev); spin_lock_irq(&dev->power2->lock); dev->power2->runtime_error = retval; @@ -420,7 +428,8 @@ int __pm_runtime_resume(struct device *dev, bool from_wq) && dev->class->pm->runtime_resume) { spin_unlock_irq(&dev->power2->lock); - retval = dev->class->pm->runtime_resume(dev); + VMKAPI_MODULE_CALL(dev->class->owner->moduleID, retval, + dev->class->pm->runtime_resume, dev); spin_lock_irq(&dev->power2->lock); dev->power2->runtime_error = retval; diff --git a/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/scsi_error.c b/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/scsi_error.c index c05698a8bebdfb25c1822a0a1a7aed7c4f339be3..e313b427b3e7c5e11afef0ba711e28983e30d0c0 100644 --- a/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/scsi_error.c +++ b/vmkdrivers/src_92/vmklinux_92/linux/drivers/scsi/scsi_error.c @@ -1932,7 +1932,9 @@ int scsi_command_normalize_sense(struct scsi_cmnd *cmd, sizeof(cmd->sense_buffer), sshdr); } EXPORT_SYMBOL(scsi_command_normalize_sense); +#endif /* !defined(__VMKLNX__) */ +#if defined(__VMKLNX__) /** * scsi_sense_desc_find - search for a given descriptor type in * descriptor sense data format. @@ -1948,6 +1950,7 @@ EXPORT_SYMBOL(scsi_command_normalize_sense); * Return value: * pointer to start of (first) descriptor if found else NULL **/ +/* _VMKLNX_CODECHECK_: scsi_sense_desc_find */ const u8 * scsi_sense_desc_find(const u8 * sense_buffer, int sb_len, int desc_type) { @@ -1973,7 +1976,9 @@ const u8 * scsi_sense_desc_find(const u8 * sense_buffer, int sb_len, return NULL; } EXPORT_SYMBOL(scsi_sense_desc_find); +#endif /* defined(__VMKLNX__) */ +#if !defined(__VMKLNX__) /** * scsi_get_sense_info_fld - attempts to get information field from * sense data (either fixed or descriptor format) diff --git a/vmkdrivers/src_92/vmklinux_92/linux/lib/radix-tree.c b/vmkdrivers/src_92/vmklinux_92/linux/lib/radix-tree.c deleted file mode 100644 index ab024424c08a3499dde839e5bdb194a056fe2068..0000000000000000000000000000000000000000 --- a/vmkdrivers/src_92/vmklinux_92/linux/lib/radix-tree.c +++ /dev/null @@ -1,1595 +0,0 @@ -/* - * Portions Copyright 2012 VMware, Inc. - */ -/* - * Copyright (C) 2001 Momchil Velikov - * Portions Copyright (C) 2001 Christoph Hellwig - * Copyright (C) 2005 SGI, Christoph Lameter - * Copyright (C) 2006 Nick Piggin - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#if !defined(__VMKLNX__) -#include -#endif -#include -#include -#include - - -#ifdef __KERNEL__ -#define RADIX_TREE_MAP_SHIFT (CONFIG_BASE_SMALL ? 4 : 6) -#else -#define RADIX_TREE_MAP_SHIFT 3 /* For more stressful testing */ -#endif - -#define RADIX_TREE_MAP_SIZE (1UL << RADIX_TREE_MAP_SHIFT) -#define RADIX_TREE_MAP_MASK (RADIX_TREE_MAP_SIZE-1) - -#define RADIX_TREE_TAG_LONGS \ - ((RADIX_TREE_MAP_SIZE + BITS_PER_LONG - 1) / BITS_PER_LONG) - -struct radix_tree_node { - unsigned int height; /* Height from the bottom */ - unsigned int count; - union { - struct radix_tree_node *parent; /* Used when ascending tree */ - struct rcu_head rcu_head; /* Used when freeing node */ - }; - void __rcu *slots[RADIX_TREE_MAP_SIZE]; - unsigned long tags[RADIX_TREE_MAX_TAGS][RADIX_TREE_TAG_LONGS]; -}; - -#define RADIX_TREE_INDEX_BITS (8 /* CHAR_BIT */ * sizeof(unsigned long)) -#define RADIX_TREE_MAX_PATH (DIV_ROUND_UP(RADIX_TREE_INDEX_BITS, \ - RADIX_TREE_MAP_SHIFT)) - -/* - * The height_to_maxindex array needs to be one deeper than the maximum - * path as height 0 holds only 1 entry. - */ -static unsigned long height_to_maxindex[RADIX_TREE_MAX_PATH + 1] __read_mostly; - -#if !defined(__VMKLNX__) -/* - * Radix tree node cache. - */ -static struct kmem_cache *radix_tree_node_cachep; -#endif - -#if !defined(__VMKLNX__) -/* - * Per-cpu pool of preloaded nodes - */ -struct radix_tree_preload { - int nr; - struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH]; -}; -static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, }; -#endif - -static inline void *ptr_to_indirect(void *ptr) -{ - return (void *)((unsigned long)ptr | RADIX_TREE_INDIRECT_PTR); -} - -static inline void *indirect_to_ptr(void *ptr) -{ - return (void *)((unsigned long)ptr & ~RADIX_TREE_INDIRECT_PTR); -} - -static inline gfp_t root_gfp_mask(struct radix_tree_root *root) -{ - return root->gfp_mask & __GFP_BITS_MASK; -} - -static inline void tag_set(struct radix_tree_node *node, unsigned int tag, - int offset) -{ - __set_bit(offset, node->tags[tag]); -} - -static inline void tag_clear(struct radix_tree_node *node, unsigned int tag, - int offset) -{ - __clear_bit(offset, node->tags[tag]); -} - -static inline int tag_get(struct radix_tree_node *node, unsigned int tag, - int offset) -{ - return test_bit(offset, node->tags[tag]); -} - -static inline void root_tag_set(struct radix_tree_root *root, unsigned int tag) -{ - root->gfp_mask |= (__force gfp_t)(1 << (tag + __GFP_BITS_SHIFT)); -} - -static inline void root_tag_clear(struct radix_tree_root *root, unsigned int tag) -{ - root->gfp_mask &= (__force gfp_t)~(1 << (tag + __GFP_BITS_SHIFT)); -} - -static inline void root_tag_clear_all(struct radix_tree_root *root) -{ - root->gfp_mask &= __GFP_BITS_MASK; -} - -static inline int root_tag_get(struct radix_tree_root *root, unsigned int tag) -{ - return (__force unsigned)root->gfp_mask & (1 << (tag + __GFP_BITS_SHIFT)); -} - -/* - * Returns 1 if any slot in the node has this tag set. - * Otherwise returns 0. - */ -static inline int any_tag_set(struct radix_tree_node *node, unsigned int tag) -{ - int idx; - for (idx = 0; idx < RADIX_TREE_TAG_LONGS; idx++) { - if (node->tags[tag][idx]) - return 1; - } - return 0; -} -/* - * This assumes that the caller has performed appropriate preallocation, and - * that the caller has pinned this thread of control to the current CPU. - */ -static struct radix_tree_node * -radix_tree_node_alloc(struct radix_tree_root *root) -{ - struct radix_tree_node *ret = NULL; - gfp_t gfp_mask = root_gfp_mask(root); - -#if !defined(__VMKLNX__) - if (!(gfp_mask & __GFP_WAIT)) { - struct radix_tree_preload *rtp; - - /* - * Provided the caller has preloaded here, we will always - * succeed in getting a node here (and never reach - * kmem_cache_alloc) - */ - rtp = &__get_cpu_var(radix_tree_preloads); - if (rtp->nr) { - ret = rtp->nodes[rtp->nr - 1]; - rtp->nodes[rtp->nr - 1] = NULL; - rtp->nr--; - } - } - if (ret == NULL) - ret = kmem_cache_alloc(radix_tree_node_cachep, gfp_mask); -#else - ret = kzalloc(sizeof(struct radix_tree_node), gfp_mask); -#endif - - BUG_ON(radix_tree_is_indirect_ptr(ret)); - return ret; -} - -static void radix_tree_node_rcu_free(struct rcu_head *head) -{ - struct radix_tree_node *node = - container_of(head, struct radix_tree_node, rcu_head); - int i; - - /* - * must only free zeroed nodes into the slab. radix_tree_shrink - * can leave us with a non-NULL entry in the first slot, so clear - * that here to make sure. - */ - for (i = 0; i < RADIX_TREE_MAX_TAGS; i++) - tag_clear(node, i, 0); - - node->slots[0] = NULL; - node->count = 0; - -#if !defined(__VMKLNX__) - kmem_cache_free(radix_tree_node_cachep, node); -#else - kfree(node); -#endif -} - -static inline void -radix_tree_node_free(struct radix_tree_node *node) -{ - call_rcu(&node->rcu_head, radix_tree_node_rcu_free); -} - -#if !defined(__VMKLNX__) -/* - * Load up this CPU's radix_tree_node buffer with sufficient objects to - * ensure that the addition of a single element in the tree cannot fail. On - * success, return zero, with preemption disabled. On error, return -ENOMEM - * with preemption not disabled. - * - * To make use of this facility, the radix tree must be initialised without - * __GFP_WAIT being passed to INIT_RADIX_TREE(). - */ -int radix_tree_preload(gfp_t gfp_mask) -{ - struct radix_tree_preload *rtp; - struct radix_tree_node *node; - int ret = -ENOMEM; - - preempt_disable(); - rtp = &__get_cpu_var(radix_tree_preloads); - while (rtp->nr < ARRAY_SIZE(rtp->nodes)) { - preempt_enable(); - node = kmem_cache_alloc(radix_tree_node_cachep, gfp_mask); - if (node == NULL) - goto out; - preempt_disable(); - rtp = &__get_cpu_var(radix_tree_preloads); - if (rtp->nr < ARRAY_SIZE(rtp->nodes)) - rtp->nodes[rtp->nr++] = node; - else - kmem_cache_free(radix_tree_node_cachep, node); - } - ret = 0; -out: - return ret; -} -EXPORT_SYMBOL(radix_tree_preload); -#endif - -/* - * Return the maximum key which can be store into a - * radix tree with height HEIGHT. - */ -static inline unsigned long radix_tree_maxindex(unsigned int height) -{ - return height_to_maxindex[height]; -} - -/* - * Extend a radix tree so it can store key @index. - */ -static int radix_tree_extend(struct radix_tree_root *root, unsigned long index) -{ - struct radix_tree_node *node; - struct radix_tree_node *slot; - unsigned int height; - int tag; - - /* Figure out what the height should be. */ - height = root->height + 1; - while (index > radix_tree_maxindex(height)) - height++; - - if (root->rnode == NULL) { - root->height = height; - goto out; - } - - do { - unsigned int newheight; - if (!(node = radix_tree_node_alloc(root))) - return -ENOMEM; - - /* Propagate the aggregated tag info into the new root */ - for (tag = 0; tag < RADIX_TREE_MAX_TAGS; tag++) { - if (root_tag_get(root, tag)) - tag_set(node, tag, 0); - } - - /* Increase the height. */ - newheight = root->height+1; - node->height = newheight; - node->count = 1; - node->parent = NULL; - slot = root->rnode; - if (newheight > 1) { - slot = indirect_to_ptr(slot); - slot->parent = node; - } - node->slots[0] = slot; - node = ptr_to_indirect(node); - rcu_assign_pointer(root->rnode, node); - root->height = newheight; - } while (height > root->height); -out: - return 0; -} - -/** - * radix_tree_insert - insert into a radix tree - * @root: radix tree root - * @index: index key - * @item: item to insert - * - * Insert an item into the radix tree at position @index. - */ -int radix_tree_insert(struct radix_tree_root *root, - unsigned long index, void *item) -{ - struct radix_tree_node *node = NULL, *slot; - unsigned int height, shift; - int offset; - int error; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - BUG_ON(radix_tree_is_indirect_ptr(item)); - - /* Make sure the tree is high enough. */ - if (index > radix_tree_maxindex(root->height)) { - error = radix_tree_extend(root, index); - if (error) - return error; - } - - slot = indirect_to_ptr(root->rnode); - - height = root->height; - shift = (height-1) * RADIX_TREE_MAP_SHIFT; - - offset = 0; /* uninitialised var warning */ - while (height > 0) { - if (slot == NULL) { - /* Have to add a child node. */ - if (!(slot = radix_tree_node_alloc(root))) - return -ENOMEM; - slot->height = height; - slot->parent = node; - if (node) { - rcu_assign_pointer(node->slots[offset], slot); - node->count++; - } else - rcu_assign_pointer(root->rnode, ptr_to_indirect(slot)); - } - - /* Go a level down */ - offset = (index >> shift) & RADIX_TREE_MAP_MASK; - node = slot; - slot = node->slots[offset]; - shift -= RADIX_TREE_MAP_SHIFT; - height--; - } - - if (slot != NULL) - return -EEXIST; - - if (node) { - node->count++; - rcu_assign_pointer(node->slots[offset], item); - BUG_ON(tag_get(node, 0, offset)); - BUG_ON(tag_get(node, 1, offset)); - } else { - rcu_assign_pointer(root->rnode, item); - BUG_ON(root_tag_get(root, 0)); - BUG_ON(root_tag_get(root, 1)); - } - - return 0; -} -EXPORT_SYMBOL(radix_tree_insert); - -/* - * is_slot == 1 : search for the slot. - * is_slot == 0 : search for the node. - */ -static void *radix_tree_lookup_element(struct radix_tree_root *root, - unsigned long index, int is_slot) -{ - unsigned int height, shift; - struct radix_tree_node *node, **slot; - - node = rcu_dereference_raw(root->rnode); - if (node == NULL) - return NULL; - - if (!radix_tree_is_indirect_ptr(node)) { - if (index > 0) - return NULL; - return is_slot ? (void *)&root->rnode : node; - } - node = indirect_to_ptr(node); - - height = node->height; - if (index > radix_tree_maxindex(height)) - return NULL; - - shift = (height-1) * RADIX_TREE_MAP_SHIFT; - - do { - slot = (struct radix_tree_node **) - (node->slots + ((index>>shift) & RADIX_TREE_MAP_MASK)); - node = rcu_dereference_raw(*slot); - if (node == NULL) - return NULL; - - shift -= RADIX_TREE_MAP_SHIFT; - height--; - } while (height > 0); - - return is_slot ? (void *)slot : indirect_to_ptr(node); -} - -/** - * radix_tree_lookup_slot - lookup a slot in a radix tree - * @root: radix tree root - * @index: index key - * - * Returns: the slot corresponding to the position @index in the - * radix tree @root. This is useful for update-if-exists operations. - * - * This function can be called under rcu_read_lock iff the slot is not - * modified by radix_tree_replace_slot, otherwise it must be called - * exclusive from other writers. Any dereference of the slot must be done - * using radix_tree_deref_slot. - */ -void **radix_tree_lookup_slot(struct radix_tree_root *root, unsigned long index) -{ -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - return (void **)radix_tree_lookup_element(root, index, 1); -} -EXPORT_SYMBOL(radix_tree_lookup_slot); - -/** - * radix_tree_lookup - perform lookup operation on a radix tree - * @root: radix tree root - * @index: index key - * - * Lookup the item at the position @index in the radix tree @root. - * - * This function can be called under rcu_read_lock, however the caller - * must manage lifetimes of leaf nodes (eg. RCU may also be used to free - * them safely). No RCU barriers are required to access or modify the - * returned item, however. - */ -void *radix_tree_lookup(struct radix_tree_root *root, unsigned long index) -{ -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - return radix_tree_lookup_element(root, index, 0); -} -EXPORT_SYMBOL(radix_tree_lookup); - -/** - * radix_tree_tag_set - set a tag on a radix tree node - * @root: radix tree root - * @index: index key - * @tag: tag index - * - * Set the search tag (which must be < RADIX_TREE_MAX_TAGS) - * corresponding to @index in the radix tree. From - * the root all the way down to the leaf node. - * - * Returns the address of the tagged item. Setting a tag on a not-present - * item is a bug. - */ -void *radix_tree_tag_set(struct radix_tree_root *root, - unsigned long index, unsigned int tag) -{ - unsigned int height, shift; - struct radix_tree_node *slot; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - height = root->height; - BUG_ON(index > radix_tree_maxindex(height)); - - slot = indirect_to_ptr(root->rnode); - shift = (height - 1) * RADIX_TREE_MAP_SHIFT; - - while (height > 0) { - int offset; - - offset = (index >> shift) & RADIX_TREE_MAP_MASK; - if (!tag_get(slot, tag, offset)) - tag_set(slot, tag, offset); - slot = slot->slots[offset]; - BUG_ON(slot == NULL); - shift -= RADIX_TREE_MAP_SHIFT; - height--; - } - - /* set the root's tag bit */ - if (slot && !root_tag_get(root, tag)) - root_tag_set(root, tag); - - return slot; -} -EXPORT_SYMBOL(radix_tree_tag_set); - -/** - * radix_tree_tag_clear - clear a tag on a radix tree node - * @root: radix tree root - * @index: index key - * @tag: tag index - * - * Clear the search tag (which must be < RADIX_TREE_MAX_TAGS) - * corresponding to @index in the radix tree. If - * this causes the leaf node to have no tags set then clear the tag in the - * next-to-leaf node, etc. - * - * Returns the address of the tagged item on success, else NULL. ie: - * has the same return value and semantics as radix_tree_lookup(). - */ -void *radix_tree_tag_clear(struct radix_tree_root *root, - unsigned long index, unsigned int tag) -{ - struct radix_tree_node *node = NULL; - struct radix_tree_node *slot = NULL; - unsigned int height, shift; - int uninitialized_var(offset); - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - height = root->height; - if (index > radix_tree_maxindex(height)) - goto out; - - shift = height * RADIX_TREE_MAP_SHIFT; - slot = indirect_to_ptr(root->rnode); - - while (shift) { - if (slot == NULL) - goto out; - - shift -= RADIX_TREE_MAP_SHIFT; - offset = (index >> shift) & RADIX_TREE_MAP_MASK; - node = slot; - slot = slot->slots[offset]; - } - - if (slot == NULL) - goto out; - - while (node) { - if (!tag_get(node, tag, offset)) - goto out; - tag_clear(node, tag, offset); - if (any_tag_set(node, tag)) - goto out; - - index >>= RADIX_TREE_MAP_SHIFT; - offset = index & RADIX_TREE_MAP_MASK; - node = node->parent; - } - - /* clear the root's tag bit */ - if (root_tag_get(root, tag)) - root_tag_clear(root, tag); - -out: - return slot; -} -EXPORT_SYMBOL(radix_tree_tag_clear); - -/** - * radix_tree_tag_get - get a tag on a radix tree node - * @root: radix tree root - * @index: index key - * @tag: tag index (< RADIX_TREE_MAX_TAGS) - * - * Return values: - * - * 0: tag not present or not set - * 1: tag set - * - * Note that the return value of this function may not be relied on, even if - * the RCU lock is held, unless tag modification and node deletion are excluded - * from concurrency. - */ -int radix_tree_tag_get(struct radix_tree_root *root, - unsigned long index, unsigned int tag) -{ - unsigned int height, shift; - struct radix_tree_node *node; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - /* check the root's tag bit */ - if (!root_tag_get(root, tag)) - return 0; - - node = rcu_dereference_raw(root->rnode); - if (node == NULL) - return 0; - - if (!radix_tree_is_indirect_ptr(node)) - return (index == 0); - node = indirect_to_ptr(node); - - height = node->height; - if (index > radix_tree_maxindex(height)) - return 0; - - shift = (height - 1) * RADIX_TREE_MAP_SHIFT; - - for ( ; ; ) { - int offset; - - if (node == NULL) - return 0; - - offset = (index >> shift) & RADIX_TREE_MAP_MASK; - if (!tag_get(node, tag, offset)) - return 0; - if (height == 1) - return 1; - node = rcu_dereference_raw(node->slots[offset]); - shift -= RADIX_TREE_MAP_SHIFT; - height--; - } -} -EXPORT_SYMBOL(radix_tree_tag_get); - -/** - * radix_tree_range_tag_if_tagged - for each item in given range set given - * tag if item has another tag set - * @root: radix tree root - * @first_indexp: pointer to a starting index of a range to scan - * @last_index: last index of a range to scan - * @nr_to_tag: maximum number items to tag - * @iftag: tag index to test - * @settag: tag index to set if tested tag is set - * - * This function scans range of radix tree from first_index to last_index - * (inclusive). For each item in the range if iftag is set, the function sets - * also settag. The function stops either after tagging nr_to_tag items or - * after reaching last_index. - * - * The tags must be set from the leaf level only and propagated back up the - * path to the root. We must do this so that we resolve the full path before - * setting any tags on intermediate nodes. If we set tags as we descend, then - * we can get to the leaf node and find that the index that has the iftag - * set is outside the range we are scanning. This reults in dangling tags and - * can lead to problems with later tag operations (e.g. livelocks on lookups). - * - * The function returns number of leaves where the tag was set and sets - * *first_indexp to the first unscanned index. - * WARNING! *first_indexp can wrap if last_index is ULONG_MAX. Caller must - * be prepared to handle that. - */ -unsigned long radix_tree_range_tag_if_tagged(struct radix_tree_root *root, - unsigned long *first_indexp, unsigned long last_index, - unsigned long nr_to_tag, - unsigned int iftag, unsigned int settag) -{ - unsigned int height = root->height; - struct radix_tree_node *node = NULL; - struct radix_tree_node *slot; - unsigned int shift; - unsigned long tagged = 0; - unsigned long index = *first_indexp; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - last_index = min(last_index, radix_tree_maxindex(height)); - if (index > last_index) - return 0; - if (!nr_to_tag) - return 0; - if (!root_tag_get(root, iftag)) { - *first_indexp = last_index + 1; - return 0; - } - if (height == 0) { - *first_indexp = last_index + 1; - root_tag_set(root, settag); - return 1; - } - - shift = (height - 1) * RADIX_TREE_MAP_SHIFT; - slot = indirect_to_ptr(root->rnode); - - for (;;) { - unsigned long upindex; - int offset; - - offset = (index >> shift) & RADIX_TREE_MAP_MASK; - if (!slot->slots[offset]) - goto next; - if (!tag_get(slot, iftag, offset)) - goto next; - if (shift) { - /* Go down one level */ - shift -= RADIX_TREE_MAP_SHIFT; - node = slot; - slot = slot->slots[offset]; - continue; - } - - /* tag the leaf */ - tagged++; - tag_set(slot, settag, offset); - - /* walk back up the path tagging interior nodes */ - upindex = index; - while (node) { - upindex >>= RADIX_TREE_MAP_SHIFT; - offset = upindex & RADIX_TREE_MAP_MASK; - - /* stop if we find a node with the tag already set */ - if (tag_get(node, settag, offset)) - break; - tag_set(node, settag, offset); - node = node->parent; - } - - /* - * Small optimization: now clear that node pointer. - * Since all of this slot's ancestors now have the tag set - * from setting it above, we have no further need to walk - * back up the tree setting tags, until we update slot to - * point to another radix_tree_node. - */ - node = NULL; - -next: - /* Go to next item at level determined by 'shift' */ - index = ((index >> shift) + 1) << shift; - /* Overflow can happen when last_index is ~0UL... */ - if (index > last_index || !index) - break; - if (tagged >= nr_to_tag) - break; - while (((index >> shift) & RADIX_TREE_MAP_MASK) == 0) { - /* - * We've fully scanned this node. Go up. Because - * last_index is guaranteed to be in the tree, what - * we do below cannot wander astray. - */ - slot = slot->parent; - shift += RADIX_TREE_MAP_SHIFT; - } - } - /* - * We need not to tag the root tag if there is no tag which is set with - * settag within the range from *first_indexp to last_index. - */ - if (tagged > 0) - root_tag_set(root, settag); - *first_indexp = index; - - return tagged; -} -EXPORT_SYMBOL(radix_tree_range_tag_if_tagged); - - -/** - * radix_tree_next_hole - find the next hole (not-present entry) - * @root: tree root - * @index: index key - * @max_scan: maximum range to search - * - * Search the set [index, min(index+max_scan-1, MAX_INDEX)] for the lowest - * indexed hole. - * - * Returns: the index of the hole if found, otherwise returns an index - * outside of the set specified (in which case 'return - index >= max_scan' - * will be true). In rare cases of index wrap-around, 0 will be returned. - * - * radix_tree_next_hole may be called under rcu_read_lock. However, like - * radix_tree_gang_lookup, this will not atomically search a snapshot of - * the tree at a single point in time. For example, if a hole is created - * at index 5, then subsequently a hole is created at index 10, - * radix_tree_next_hole covering both indexes may return 10 if called - * under rcu_read_lock. - */ -unsigned long radix_tree_next_hole(struct radix_tree_root *root, - unsigned long index, unsigned long max_scan) -{ - unsigned long i; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - for (i = 0; i < max_scan; i++) { - if (!radix_tree_lookup(root, index)) - break; - index++; - if (index == 0) - break; - } - - return index; -} -EXPORT_SYMBOL(radix_tree_next_hole); - -/** - * radix_tree_prev_hole - find the prev hole (not-present entry) - * @root: tree root - * @index: index key - * @max_scan: maximum range to search - * - * Search backwards in the range [max(index-max_scan+1, 0), index] - * for the first hole. - * - * Returns: the index of the hole if found, otherwise returns an index - * outside of the set specified (in which case 'index - return >= max_scan' - * will be true). In rare cases of wrap-around, ULONG_MAX will be returned. - * - * radix_tree_next_hole may be called under rcu_read_lock. However, like - * radix_tree_gang_lookup, this will not atomically search a snapshot of - * the tree at a single point in time. For example, if a hole is created - * at index 10, then subsequently a hole is created at index 5, - * radix_tree_prev_hole covering both indexes may return 5 if called under - * rcu_read_lock. - */ -unsigned long radix_tree_prev_hole(struct radix_tree_root *root, - unsigned long index, unsigned long max_scan) -{ - unsigned long i; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - for (i = 0; i < max_scan; i++) { - if (!radix_tree_lookup(root, index)) - break; - index--; - if (index == ULONG_MAX) - break; - } - - return index; -} -EXPORT_SYMBOL(radix_tree_prev_hole); - -static unsigned int -__lookup(struct radix_tree_node *slot, void ***results, unsigned long *indices, - unsigned long index, unsigned int max_items, unsigned long *next_index) -{ - unsigned int nr_found = 0; - unsigned int shift, height; - unsigned long i; - - height = slot->height; - if (height == 0) - goto out; - shift = (height-1) * RADIX_TREE_MAP_SHIFT; - - for ( ; height > 1; height--) { - i = (index >> shift) & RADIX_TREE_MAP_MASK; - for (;;) { - if (slot->slots[i] != NULL) - break; - index &= ~((1UL << shift) - 1); - index += 1UL << shift; - if (index == 0) - goto out; /* 32-bit wraparound */ - i++; - if (i == RADIX_TREE_MAP_SIZE) - goto out; - } - - shift -= RADIX_TREE_MAP_SHIFT; - slot = rcu_dereference_raw(slot->slots[i]); - if (slot == NULL) - goto out; - } - - /* Bottom level: grab some items */ - for (i = index & RADIX_TREE_MAP_MASK; i < RADIX_TREE_MAP_SIZE; i++) { - if (slot->slots[i]) { - results[nr_found] = &(slot->slots[i]); - if (indices) - indices[nr_found] = index; - if (++nr_found == max_items) { - index++; - goto out; - } - } - index++; - } -out: - *next_index = index; - return nr_found; -} - -/** - * radix_tree_gang_lookup - perform multiple lookup on a radix tree - * @root: radix tree root - * @results: where the results of the lookup are placed - * @first_index: start the lookup from this key - * @max_items: place up to this many items at *results - * - * Performs an index-ascending scan of the tree for present items. Places - * them at *@results and returns the number of items which were placed at - * *@results. - * - * The implementation is naive. - * - * Like radix_tree_lookup, radix_tree_gang_lookup may be called under - * rcu_read_lock. In this case, rather than the returned results being - * an atomic snapshot of the tree at a single point in time, the semantics - * of an RCU protected gang lookup are as though multiple radix_tree_lookups - * have been issued in individual locks, and results stored in 'results'. - */ -unsigned int -radix_tree_gang_lookup(struct radix_tree_root *root, void **results, - unsigned long first_index, unsigned int max_items) -{ - unsigned long max_index; - struct radix_tree_node *node; - unsigned long cur_index = first_index; - unsigned int ret; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - node = rcu_dereference_raw(root->rnode); - if (!node) - return 0; - - if (!radix_tree_is_indirect_ptr(node)) { - if (first_index > 0) - return 0; - results[0] = node; - return 1; - } - node = indirect_to_ptr(node); - - max_index = radix_tree_maxindex(node->height); - - ret = 0; - while (ret < max_items) { - unsigned int nr_found, slots_found, i; - unsigned long next_index; /* Index of next search */ - - if (cur_index > max_index) - break; - slots_found = __lookup(node, (void ***)results + ret, NULL, - cur_index, max_items - ret, &next_index); - nr_found = 0; - for (i = 0; i < slots_found; i++) { - struct radix_tree_node *slot; - slot = *(((void ***)results)[ret + i]); - if (!slot) - continue; - results[ret + nr_found] = - indirect_to_ptr(rcu_dereference_raw(slot)); - nr_found++; - } - ret += nr_found; - if (next_index == 0) - break; - cur_index = next_index; - } - - return ret; -} -EXPORT_SYMBOL(radix_tree_gang_lookup); - -/** - * radix_tree_gang_lookup_slot - perform multiple slot lookup on radix tree - * @root: radix tree root - * @results: where the results of the lookup are placed - * @indices: where their indices should be placed (but usually NULL) - * @first_index: start the lookup from this key - * @max_items: place up to this many items at *results - * - * Performs an index-ascending scan of the tree for present items. Places - * their slots at *@results and returns the number of items which were - * placed at *@results. - * - * The implementation is naive. - * - * Like radix_tree_gang_lookup as far as RCU and locking goes. Slots must - * be dereferenced with radix_tree_deref_slot, and if using only RCU - * protection, radix_tree_deref_slot may fail requiring a retry. - */ -unsigned int -radix_tree_gang_lookup_slot(struct radix_tree_root *root, - void ***results, unsigned long *indices, - unsigned long first_index, unsigned int max_items) -{ - unsigned long max_index; - struct radix_tree_node *node; - unsigned long cur_index = first_index; - unsigned int ret; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - node = rcu_dereference_raw(root->rnode); - if (!node) - return 0; - - if (!radix_tree_is_indirect_ptr(node)) { - if (first_index > 0) - return 0; - results[0] = (void **)&root->rnode; - if (indices) - indices[0] = 0; - return 1; - } - node = indirect_to_ptr(node); - - max_index = radix_tree_maxindex(node->height); - - ret = 0; - while (ret < max_items) { - unsigned int slots_found; - unsigned long next_index; /* Index of next search */ - - if (cur_index > max_index) - break; - slots_found = __lookup(node, results + ret, - indices ? indices + ret : NULL, - cur_index, max_items - ret, &next_index); - ret += slots_found; - if (next_index == 0) - break; - cur_index = next_index; - } - - return ret; -} -EXPORT_SYMBOL(radix_tree_gang_lookup_slot); - -/* - * FIXME: the two tag_get()s here should use find_next_bit() instead of - * open-coding the search. - */ -static unsigned int -__lookup_tag(struct radix_tree_node *slot, void ***results, unsigned long index, - unsigned int max_items, unsigned long *next_index, unsigned int tag) -{ - unsigned int nr_found = 0; - unsigned int shift, height; - - height = slot->height; - if (height == 0) - goto out; - shift = (height-1) * RADIX_TREE_MAP_SHIFT; - - while (height > 0) { - unsigned long i = (index >> shift) & RADIX_TREE_MAP_MASK ; - - for (;;) { - if (tag_get(slot, tag, i)) - break; - index &= ~((1UL << shift) - 1); - index += 1UL << shift; - if (index == 0) - goto out; /* 32-bit wraparound */ - i++; - if (i == RADIX_TREE_MAP_SIZE) - goto out; - } - height--; - if (height == 0) { /* Bottom level: grab some items */ - unsigned long j = index & RADIX_TREE_MAP_MASK; - - for ( ; j < RADIX_TREE_MAP_SIZE; j++) { - index++; - if (!tag_get(slot, tag, j)) - continue; - /* - * Even though the tag was found set, we need to - * recheck that we have a non-NULL node, because - * if this lookup is lockless, it may have been - * subsequently deleted. - * - * Similar care must be taken in any place that - * lookup ->slots[x] without a lock (ie. can't - * rely on its value remaining the same). - */ - if (slot->slots[j]) { - results[nr_found++] = &(slot->slots[j]); - if (nr_found == max_items) - goto out; - } - } - } - shift -= RADIX_TREE_MAP_SHIFT; - slot = rcu_dereference_raw(slot->slots[i]); - if (slot == NULL) - break; - } -out: - *next_index = index; - return nr_found; -} - -/** - * radix_tree_gang_lookup_tag - perform multiple lookup on a radix tree - * based on a tag - * @root: radix tree root - * @results: where the results of the lookup are placed - * @first_index: start the lookup from this key - * @max_items: place up to this many items at *results - * @tag: the tag index (< RADIX_TREE_MAX_TAGS) - * - * Performs an index-ascending scan of the tree for present items which - * have the tag indexed by @tag set. Places the items at *@results and - * returns the number of items which were placed at *@results. - */ -unsigned int -radix_tree_gang_lookup_tag(struct radix_tree_root *root, void **results, - unsigned long first_index, unsigned int max_items, - unsigned int tag) -{ - struct radix_tree_node *node; - unsigned long max_index; - unsigned long cur_index = first_index; - unsigned int ret; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - /* check the root's tag bit */ - if (!root_tag_get(root, tag)) - return 0; - - node = rcu_dereference_raw(root->rnode); - if (!node) - return 0; - - if (!radix_tree_is_indirect_ptr(node)) { - if (first_index > 0) - return 0; - results[0] = node; - return 1; - } - node = indirect_to_ptr(node); - - max_index = radix_tree_maxindex(node->height); - - ret = 0; - while (ret < max_items) { - unsigned int nr_found, slots_found, i; - unsigned long next_index; /* Index of next search */ - - if (cur_index > max_index) - break; - slots_found = __lookup_tag(node, (void ***)results + ret, - cur_index, max_items - ret, &next_index, tag); - nr_found = 0; - for (i = 0; i < slots_found; i++) { - struct radix_tree_node *slot; - slot = *(((void ***)results)[ret + i]); - if (!slot) - continue; - results[ret + nr_found] = - indirect_to_ptr(rcu_dereference_raw(slot)); - nr_found++; - } - ret += nr_found; - if (next_index == 0) - break; - cur_index = next_index; - } - - return ret; -} -EXPORT_SYMBOL(radix_tree_gang_lookup_tag); - -/** - * radix_tree_gang_lookup_tag_slot - perform multiple slot lookup on a - * radix tree based on a tag - * @root: radix tree root - * @results: where the results of the lookup are placed - * @first_index: start the lookup from this key - * @max_items: place up to this many items at *results - * @tag: the tag index (< RADIX_TREE_MAX_TAGS) - * - * Performs an index-ascending scan of the tree for present items which - * have the tag indexed by @tag set. Places the slots at *@results and - * returns the number of slots which were placed at *@results. - */ -unsigned int -radix_tree_gang_lookup_tag_slot(struct radix_tree_root *root, void ***results, - unsigned long first_index, unsigned int max_items, - unsigned int tag) -{ - struct radix_tree_node *node; - unsigned long max_index; - unsigned long cur_index = first_index; - unsigned int ret; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - /* check the root's tag bit */ - if (!root_tag_get(root, tag)) - return 0; - - node = rcu_dereference_raw(root->rnode); - if (!node) - return 0; - - if (!radix_tree_is_indirect_ptr(node)) { - if (first_index > 0) - return 0; - results[0] = (void **)&root->rnode; - return 1; - } - node = indirect_to_ptr(node); - - max_index = radix_tree_maxindex(node->height); - - ret = 0; - while (ret < max_items) { - unsigned int slots_found; - unsigned long next_index; /* Index of next search */ - - if (cur_index > max_index) - break; - slots_found = __lookup_tag(node, results + ret, - cur_index, max_items - ret, &next_index, tag); - ret += slots_found; - if (next_index == 0) - break; - cur_index = next_index; - } - - return ret; -} -EXPORT_SYMBOL(radix_tree_gang_lookup_tag_slot); - -#if defined(CONFIG_SHMEM) && defined(CONFIG_SWAP) -#include /* for cond_resched() */ - -/* - * This linear search is at present only useful to shmem_unuse_inode(). - */ -static unsigned long __locate(struct radix_tree_node *slot, void *item, - unsigned long index, unsigned long *found_index) -{ - unsigned int shift, height; - unsigned long i; - - height = slot->height; - shift = (height-1) * RADIX_TREE_MAP_SHIFT; - - for ( ; height > 1; height--) { - i = (index >> shift) & RADIX_TREE_MAP_MASK; - for (;;) { - if (slot->slots[i] != NULL) - break; - index &= ~((1UL << shift) - 1); - index += 1UL << shift; - if (index == 0) - goto out; /* 32-bit wraparound */ - i++; - if (i == RADIX_TREE_MAP_SIZE) - goto out; - } - - shift -= RADIX_TREE_MAP_SHIFT; - slot = rcu_dereference_raw(slot->slots[i]); - if (slot == NULL) - goto out; - } - - /* Bottom level: check items */ - for (i = 0; i < RADIX_TREE_MAP_SIZE; i++) { - if (slot->slots[i] == item) { - *found_index = index + i; - index = 0; - goto out; - } - } - index += RADIX_TREE_MAP_SIZE; -out: - return index; -} - -/** - * radix_tree_locate_item - search through radix tree for item - * @root: radix tree root - * @item: item to be found - * - * Returns index where item was found, or -1 if not found. - * Caller must hold no lock (since this time-consuming function needs - * to be preemptible), and must check afterwards if item is still there. - */ -unsigned long radix_tree_locate_item(struct radix_tree_root *root, void *item) -{ - struct radix_tree_node *node; - unsigned long max_index; - unsigned long cur_index = 0; - unsigned long found_index = -1; - - do { - rcu_read_lock(); - node = rcu_dereference_raw(root->rnode); - if (!radix_tree_is_indirect_ptr(node)) { - rcu_read_unlock(); - if (node == item) - found_index = 0; - break; - } - - node = indirect_to_ptr(node); - max_index = radix_tree_maxindex(node->height); - if (cur_index > max_index) - break; - - cur_index = __locate(node, item, cur_index, &found_index); - rcu_read_unlock(); - cond_resched(); - } while (cur_index != 0 && cur_index <= max_index); - - return found_index; -} -#else -unsigned long radix_tree_locate_item(struct radix_tree_root *root, void *item) -{ - return -1; -} -#endif /* CONFIG_SHMEM && CONFIG_SWAP */ - -/** - * radix_tree_shrink - shrink height of a radix tree to minimal - * @root radix tree root - */ -static inline void radix_tree_shrink(struct radix_tree_root *root) -{ - /* try to shrink tree height */ - while (root->height > 0) { - struct radix_tree_node *to_free = root->rnode; - struct radix_tree_node *slot; - - BUG_ON(!radix_tree_is_indirect_ptr(to_free)); - to_free = indirect_to_ptr(to_free); - - /* - * The candidate node has more than one child, or its child - * is not at the leftmost slot, we cannot shrink. - */ - if (to_free->count != 1) - break; - if (!to_free->slots[0]) - break; - - /* - * We don't need rcu_assign_pointer(), since we are simply - * moving the node from one part of the tree to another: if it - * was safe to dereference the old pointer to it - * (to_free->slots[0]), it will be safe to dereference the new - * one (root->rnode) as far as dependent read barriers go. - */ - slot = to_free->slots[0]; - if (root->height > 1) { - slot->parent = NULL; - slot = ptr_to_indirect(slot); - } - root->rnode = slot; - root->height--; - - /* - * We have a dilemma here. The node's slot[0] must not be - * NULLed in case there are concurrent lookups expecting to - * find the item. However if this was a bottom-level node, - * then it may be subject to the slot pointer being visible - * to callers dereferencing it. If item corresponding to - * slot[0] is subsequently deleted, these callers would expect - * their slot to become empty sooner or later. - * - * For example, lockless pagecache will look up a slot, deref - * the page pointer, and if the page is 0 refcount it means it - * was concurrently deleted from pagecache so try the deref - * again. Fortunately there is already a requirement for logic - * to retry the entire slot lookup -- the indirect pointer - * problem (replacing direct root node with an indirect pointer - * also results in a stale slot). So tag the slot as indirect - * to force callers to retry. - */ - if (root->height == 0) - *((unsigned long *)&to_free->slots[0]) |= - RADIX_TREE_INDIRECT_PTR; - - radix_tree_node_free(to_free); - } -} - -/** - * radix_tree_delete - delete an item from a radix tree - * @root: radix tree root - * @index: index key - * - * Remove the item at @index from the radix tree rooted at @root. - * - * Returns the address of the deleted item, or NULL if it was not present. - */ -void *radix_tree_delete(struct radix_tree_root *root, unsigned long index) -{ - struct radix_tree_node *node = NULL; - struct radix_tree_node *slot = NULL; - struct radix_tree_node *to_free; - unsigned int height, shift; - int tag; - int uninitialized_var(offset); - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - height = root->height; - if (index > radix_tree_maxindex(height)) - goto out; - - slot = root->rnode; - if (height == 0) { - root_tag_clear_all(root); - root->rnode = NULL; - goto out; - } - slot = indirect_to_ptr(slot); - shift = height * RADIX_TREE_MAP_SHIFT; - - do { - if (slot == NULL) - goto out; - - shift -= RADIX_TREE_MAP_SHIFT; - offset = (index >> shift) & RADIX_TREE_MAP_MASK; - node = slot; - slot = slot->slots[offset]; - } while (shift); - - if (slot == NULL) - goto out; - - /* - * Clear all tags associated with the item to be deleted. - * This way of doing it would be inefficient, but seldom is any set. - */ - for (tag = 0; tag < RADIX_TREE_MAX_TAGS; tag++) { - if (tag_get(node, tag, offset)) - radix_tree_tag_clear(root, index, tag); - } - - to_free = NULL; - /* Now free the nodes we do not need anymore */ - while (node) { - node->slots[offset] = NULL; - node->count--; - /* - * Queue the node for deferred freeing after the - * last reference to it disappears (set NULL, above). - */ - if (to_free) - radix_tree_node_free(to_free); - - if (node->count) { - if (node == indirect_to_ptr(root->rnode)) - radix_tree_shrink(root); - goto out; - } - - /* Node with zero slots in use so free it */ - to_free = node; - - index >>= RADIX_TREE_MAP_SHIFT; - offset = index & RADIX_TREE_MAP_MASK; - node = node->parent; - } - - root_tag_clear_all(root); - root->height = 0; - root->rnode = NULL; - if (to_free) - radix_tree_node_free(to_free); - -out: - return slot; -} -EXPORT_SYMBOL(radix_tree_delete); - -/** - * radix_tree_tagged - test whether any items in the tree are tagged - * @root: radix tree root - * @tag: tag to test - */ -int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag) -{ -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - return root_tag_get(root, tag); -} -EXPORT_SYMBOL(radix_tree_tagged); - -#if !defined(__VMKLNX__) -static void -radix_tree_node_ctor(void *node) -{ - memset(node, 0, sizeof(struct radix_tree_node)); -} -#endif - -#if !defined(__VMKLNX__) -static __init unsigned long __maxindex(unsigned int height) -#else -static unsigned long __maxindex(unsigned int height) -#endif -{ - unsigned int width = height * RADIX_TREE_MAP_SHIFT; - int shift = RADIX_TREE_INDEX_BITS - width; - - if (shift < 0) - return ~0UL; - if (shift >= BITS_PER_LONG) - return 0UL; - return ~0UL >> shift; -} - -#if defined(__VMKLNX__) -void radix_tree_init(void) -#else -static __init void radix_tree_init_maxindex(void) -#endif -{ - unsigned int i; - -#if defined(__VMKLNX__) - VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); -#endif - for (i = 0; i < ARRAY_SIZE(height_to_maxindex); i++) - height_to_maxindex[i] = __maxindex(i); -} -#if defined(__VMKLNX__) -EXPORT_SYMBOL(radix_tree_init); -#endif - -#if !defined(__VMKLNX__) -static int radix_tree_callback(struct notifier_block *nfb, - unsigned long action, - void *hcpu) -{ - int cpu = (long)hcpu; - struct radix_tree_preload *rtp; - - /* Free per-cpu pool of perloaded nodes */ - if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) { - rtp = &per_cpu(radix_tree_preloads, cpu); - while (rtp->nr) { - kmem_cache_free(radix_tree_node_cachep, - rtp->nodes[rtp->nr-1]); - rtp->nodes[rtp->nr-1] = NULL; - rtp->nr--; - } - } - return NOTIFY_OK; -} - -void __init radix_tree_init(void) -{ - radix_tree_node_cachep = kmem_cache_create("radix_tree_node", - sizeof(struct radix_tree_node), 0, - SLAB_PANIC | SLAB_RECLAIM_ACCOUNT, - radix_tree_node_ctor); - radix_tree_init_maxindex(); - hotcpu_notifier(radix_tree_callback, 0); -} -#endif diff --git a/vmkdrivers/src_92/vmklinux_92/vmware/linux_net.c b/vmkdrivers/src_92/vmklinux_92/vmware/linux_net.c index e2158c901216456d65a69441a8bf80aa50e0464b..f030f82e66af3791bf5914012c7d299d7449aa18 100644 --- a/vmkdrivers/src_92/vmklinux_92/vmware/linux_net.c +++ b/vmkdrivers/src_92/vmklinux_92/vmware/linux_net.c @@ -2542,11 +2542,7 @@ netdev_tx_internal(struct net_device *dev, atomic_inc(&(skb_shinfo(skb)->fragsref)); dev_kfree_skb_any(skb); - /* - * sticking pkt back this way may cause tx re-ordering, - * but this should be very rare. - */ - vmk_PktListAppendPkt(pktList, pkt); + vmk_PktListPrependPkt(pktList, pkt); if (xmit_status == NETDEV_TX_BUSY) { ret = VMK_BUSY; } else { @@ -3884,6 +3880,10 @@ LinNet_DestroyDMAEngine(struct net_device *device) * port 2 - vmnic1000402 * port 3 - vmnic1000403 * + * if module parameter vmklnx_low_port2numbering is set to 1, + * then the port2 alias is determined using 63 - k, where k is + * the first port's pciIndex. + * * This formula allows to have 99 pseudo logical devices. * * Results: @@ -3903,6 +3903,7 @@ create_pseudo_dev_name(char *name, int length, struct pci_dev *pdev) LinuxPCIDevExt *pe; VMK_ReturnStatus status; char pci_name[VMK_DEVICE_NAME_MAX_LENGTH]; + int port2_alias; pe = container_of(pdev, LinuxPCIDevExt, linuxDev); status = vmk_PCIGetDeviceName(pe->vmkDev, pci_name, length); @@ -3921,6 +3922,23 @@ create_pseudo_dev_name(char *name, int length, struct pci_dev *pdev) nameCounter += baseCounter + (pciIndex*maxDevs); maxCounter = baseCounter + (pciIndex*maxDevs) + maxDevs; + if (vmklnx_get_low_port2numbering() == 1) { + /* + * 2nd port gets alias using 63 - k where k is picked + * from 1st port. + */ + port2_alias = 63 - pciIndex; + snprintf(name, length, "vmnic%d", port2_alias); + if (vmk_UplinkIsNameAvailable(name)) { + return VMK_OK; + } else { + /* + * Need to fail the netdev registration. + */ + VMKLNX_ALERT("Unable to assign lower port2 device name"); + goto fail; + } + } VMKLNX_INFO("maxCounter %d\n", maxCounter); @@ -3999,12 +4017,11 @@ VMK_ReturnStatus validate_driver_defined_name(struct net_device *dev, char *name) { int number,ret; - + ret = sscanf(name, "vmnic%d", &number); - if (ret == 1) { + if (ret == 1) { return VMK_FAILURE; } - if (!vmk_UplinkIsNameAvailable(name)) { return VMK_FAILURE; } @@ -4230,15 +4247,13 @@ unregister_netdev(struct net_device *dev) VMKLNX_DEBUG(0, "Unregistering %s", dev->name); if (!(dev->features & NETIF_F_CNA)) { - if ((dev->pdev == NULL) && !(dev->features & NETIF_F_PSEUDO_REG)) { - /* - * For pseudo NIC, close the uplink here. - * For real PCI NIC, the uplink is closed via vmk_PCIDoPreRemove(). - * XXX: this is redundant, module's preUnload callback will do this - * for all NICs owned by the module. - */ - vmk_UplinkClose(dev->uplinkDev); - } + /* + * For pseudo NIC, close the uplink here. + * For real PCI NIC, the uplink is closed via vmk_PCIDoPreRemove(). + * XXX: this is redundant, module's preUnload callback will do this + * for all NICs owned by the module. + */ + vmk_UplinkClose(dev->uplinkDev); LinNet_DisconnectUplink(dev); } @@ -8143,7 +8158,7 @@ SetCoalesceParams(vmk_AddrCookie cookie, vmk_UplinkCoalesceParams *coalesceParam struct ethtool_coalesce coalesce; VMK_ReturnStatus status; - if (!ops || !ops->set_coalesce) { + if (!ops || !ops->set_coalesce || !ops->get_coalesce) { status = VMK_NOT_SUPPORTED; } else { int ret = -1; @@ -8693,12 +8708,12 @@ GetNICSupportedModes(struct net_device *dev, i++; } if (mask & SUPPORTED_20000baseMLD2_Full) { - supportedModes[i].speed = 20000; + supportedModes[i].speed = VMK_LINK_SPEED_20000_MBPS; supportedModes[i].duplex = VMK_LINK_DUPLEX_FULL; i++; } if (mask & SUPPORTED_20000baseKR2_Full) { - supportedModes[i].speed = 20000; + supportedModes[i].speed = VMK_LINK_SPEED_20000_MBPS; supportedModes[i].duplex = VMK_LINK_DUPLEX_FULL; i++; } diff --git a/vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.c b/vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.c index 0baeefaf48598b97b7b088c8cd9e12bf3b55eccb..955c83817ba745bbd1bd0115dc528c70b5426c22 100644 --- a/vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.c +++ b/vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.c @@ -25,6 +25,9 @@ struct bus_type pci_bus_type = { .name = "pci", +#if defined(__VMKLNX__) + .owner = THIS_MODULE, +#endif }; EXPORT_SYMBOL(pci_bus_type); diff --git a/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi.c b/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi.c index 29352658691dfda92ef423731b295f8801da7717..de5323033a0220c4693186ac98d3abcd867b19d0 100644 --- a/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi.c +++ b/vmkdrivers/src_92/vmklinux_92/vmware/linux_scsi.c @@ -2263,8 +2263,7 @@ SCSILinuxCmdDone(struct scsi_cmnd *scmd) if (unlikely(!(scmd->vmkflags & VMK_FLAGS_NEED_CMDDONE))) { spin_unlock_irqrestore(&scmd->vmklock, flags); - VMKLNX_ALERT("Attempted double completion"); - VMK_NOT_REACHED(); + VMKLNX_PANIC("Attempted double completion"); } if (unlikely((scmd->vmkflags & VMK_FLAGS_DELAY_CMDDONE) != 0)) { diff --git a/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.c b/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.c index 23c20c578508324f2f810bb024ce7b59e39436d5..b3a02ec0bf84ddbc991c0db40ade83b83c26f76d 100644 --- a/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.c +++ b/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.c @@ -234,6 +234,10 @@ static int vmklnx_vmalloc_heap_max = VMKLNX_VMALLOC_HEAP_MAX; module_param(vmklnx_vmalloc_heap_max, int, 0444); MODULE_PARM_DESC(vmklnx_vmalloc_heap_max, "Maximum attainable heap size for vmalloc."); +static int vmklnx_low_port2numbering = 0; +module_param(vmklnx_low_port2numbering, int, 0444); +MODULE_PARM_DESC(vmklnx_low_port2numbering, "Lower port2 vmnic aliases."); + #define VMKLNX_LOW_HEAP_MIN (1*1024*1024) #define VMKLNX_LOW_HEAP_MAX (20*1024*1024) #define VMKLNX_LOW_HEAP "vmklnxLowHeap" @@ -328,6 +332,20 @@ static void vmklnx_mod_uninit(void); #define MIN_UMEM_SIZE 128 + /* + *---------------------------------------------------------------------- + * + * vmklnx_get_low_port2numbering -- + * + * Return the value of vmklinux_low_port2numbering + * + *---------------------------------------------------------------------- + */ +unsigned int vmklnx_get_low_port2numbering(void) +{ + return vmklnx_low_port2numbering; +} + /* *---------------------------------------------------------------------- * diff --git a/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.h b/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.h index 5e091d5464a08216562dbcb7a3c2899402ff27b5..c4cfd9b78842238e5c2ff05adca280b7287bfa0b 100644 --- a/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.h +++ b/vmkdrivers/src_92/vmklinux_92/vmware/linux_stubs.h @@ -85,4 +85,6 @@ extern int mousedev_init(void); extern void mousedev_exit(void); vmk_ModuleID vmklnx_get_driver_module_id(const struct device_driver *drv); +unsigned int vmklnx_get_low_port2numbering(void); + #endif diff --git a/vmkdrivers/src_92/vmklinux_9_2_2_0/vmklinux_9_2_2_0.c b/vmkdrivers/src_92/vmklinux_9_2_2_0/vmklinux_9_2_2_0.c index 24d1cd44da0f0e32b39999e6aaf48d39fa1f861d..0233c5738a67122d8805ce25c1b167ca68a77407 100644 --- a/vmkdrivers/src_92/vmklinux_9_2_2_0/vmklinux_9_2_2_0.c +++ b/vmkdrivers/src_92/vmklinux_9_2_2_0/vmklinux_9_2_2_0.c @@ -477,10 +477,6 @@ VMK_MODULE_EXPORT_ALIAS(put_disk); VMK_MODULE_EXPORT_ALIAS(put_driver); VMK_MODULE_EXPORT_ALIAS(queue_delayed_work); VMK_MODULE_EXPORT_ALIAS(queue_work); -VMK_MODULE_EXPORT_ALIAS(radix_tree_delete); -VMK_MODULE_EXPORT_ALIAS(radix_tree_init); -VMK_MODULE_EXPORT_ALIAS(radix_tree_insert); -VMK_MODULE_EXPORT_ALIAS(radix_tree_lookup); VMK_MODULE_EXPORT_ALIAS(raw_smp_processor_id); VMK_MODULE_EXPORT_ALIAS(__read_lock_failed); VMK_MODULE_EXPORT_ALIAS(register_chrdev); @@ -576,6 +572,7 @@ VMK_MODULE_EXPORT_ALIAS(scsi_rescan_device); VMK_MODULE_EXPORT_ALIAS(scsi_scan_host); VMK_MODULE_EXPORT_ALIAS(scsi_scan_target); VMK_MODULE_EXPORT_ALIAS(scsi_schedule_eh); +VMK_MODULE_EXPORT_ALIAS(scsi_sense_desc_find); VMK_MODULE_EXPORT_ALIAS(scsi_sense_key_string); VMK_MODULE_EXPORT_ALIAS(scsi_target_block); VMK_MODULE_EXPORT_ALIAS(scsi_target_unblock);