Module Name: src Committed By: msaitoh Date: Thu Dec 6 13:25:02 UTC 2018
Modified Files: src/sys/dev/pci/ixgbe: if_sriov.c ixgbe.c ixgbe.h ixgbe_82599.c ixgbe_api.c ixgbe_api.h ixgbe_features.h ixgbe_netbsd.c ixgbe_netbsd.h ixgbe_phy.c ixgbe_type.h ixgbe_x550.c ixgbe_x550.h Log Message: Apply FreeBSD ix-3.3.6.tar.gz's change to NetBSD. Tested on C3000 and X550-T1, but not tested on Xeon D: - Add firmware recovery mode for X550, X550A(Xeon D) and X550EM (C3000): - FreeBSD always set IXGBE_FEATURE_RECOVERY_MODE without checking the NVM image version. We compare it against 2.0 to not to make new callout and not to call extra atomic operations. - In some FreeBSD's sysctl functions, atomic_load_acq_int() is called before a null pointer check. We call it after null pointer check. - Before calling atomic_load_acq_uint(), check adapter->feat_en flags to save atomic operation call. - We don't check recovery_mode in ixgbe_set_sysctl_value() because this function doesn't touch any hardware register. - NetBSD don't have FreeBSD's atomic_load_acq_int()-like function, so do it with membar_sync(). Thanks riastradh@ for the advice. - FreeBSD's ix-3.3.6 changed ixgbe_enable_aim from TRUE to FALSE, but we will keep it as TRUE because we have already fixed some bugs. - Remove IXGBE_DEV_ID_82599_LS(0x154f) support again. I don't know why. This was added in ix-3.2.18.tar.gz(NetBSD: ixgbe_82599.c rev. 1.20) and removed in ix-3.3.6.tar.gz. - On X550EMU, use ixgbe_identify_sfp_module_X550em() instead of ixgbe_identify_module_generic(). ixgbe_identify_sfp_module_X550em() has extra check (e.g. exclude 1G copper). - if_sriov.c's change doesn't affect to NetBSD because we don't support SR-IOV PF function. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/dev/pci/ixgbe/if_sriov.c \ src/sys/dev/pci/ixgbe/ixgbe_x550.h cvs rdiff -u -r1.168 -r1.169 src/sys/dev/pci/ixgbe/ixgbe.c cvs rdiff -u -r1.52 -r1.53 src/sys/dev/pci/ixgbe/ixgbe.h cvs rdiff -u -r1.20 -r1.21 src/sys/dev/pci/ixgbe/ixgbe_82599.c cvs rdiff -u -r1.21 -r1.22 src/sys/dev/pci/ixgbe/ixgbe_api.c cvs rdiff -u -r1.13 -r1.14 src/sys/dev/pci/ixgbe/ixgbe_api.h \ src/sys/dev/pci/ixgbe/ixgbe_x550.c cvs rdiff -u -r1.1 -r1.2 src/sys/dev/pci/ixgbe/ixgbe_features.h cvs rdiff -u -r1.8 -r1.9 src/sys/dev/pci/ixgbe/ixgbe_netbsd.c \ src/sys/dev/pci/ixgbe/ixgbe_netbsd.h cvs rdiff -u -r1.17 -r1.18 src/sys/dev/pci/ixgbe/ixgbe_phy.c cvs rdiff -u -r1.36 -r1.37 src/sys/dev/pci/ixgbe/ixgbe_type.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.