Module Name: src Committed By: martin Date: Fri Mar 30 12:07:35 UTC 2018
Modified Files: src/sys/dev/pci/ixgbe [netbsd-8]: if_bypass.c if_sriov.c ix_txrx.c ixgbe.c ixgbe.h ixgbe_common.c ixgbe_common.h ixgbe_osdep.c ixgbe_osdep.h ixgbe_phy.c ixgbe_sriov.h ixgbe_type.h ixgbe_vf.h ixgbe_x540.c ixgbe_x550.c ixv.c Log Message: Pull up following revision(s) (requested by msaitoh in ticket #673): sys/dev/pci/ixgbe/if_sriov.c: revision 1.2 sys/dev/pci/ixgbe/ixgbe.c: revision 1.135 sys/dev/pci/ixgbe/ixgbe.c: revision 1.136 sys/dev/pci/ixgbe/ixgbe.c: revision 1.137 sys/dev/pci/ixgbe/ixgbe_common.c: revision 1.17 sys/dev/pci/ixgbe/if_bypass.c: revision 1.3 sys/dev/pci/ixgbe/ixgbe_common.c: revision 1.18 sys/dev/pci/ixgbe/ixgbe_common.h: revision 1.10 sys/dev/pci/ixgbe/ixgbe.h: revision 1.36 sys/dev/pci/ixgbe/ixgbe_osdep.c: revision 1.3 sys/dev/pci/ixgbe/ixgbe.h: revision 1.37 sys/dev/pci/ixgbe/ix_txrx.c: revision 1.36 sys/dev/pci/ixgbe/ixgbe_type.h: revision 1.32 sys/dev/pci/ixgbe/ixgbe_vf.h: revision 1.12 sys/dev/pci/ixgbe/ixgbe_sriov.h: revision 1.2 sys/dev/pci/ixgbe/ixgbe_osdep.h: revision 1.20 sys/dev/pci/ixgbe/ixv.c: revision 1.88 sys/dev/pci/ixgbe/ixgbe_phy.c: revision 1.15 sys/dev/pci/ixgbe/ixv.c: revision 1.89 sys/dev/pci/ixgbe/ixgbe_x540.c: revision 1.13 sys/dev/pci/ixgbe/ixgbe_x550.c: revision 1.8 sys/dev/pci/ixgbe/ixgbe_x550.c: revision 1.9 Add some changes from ix-3.2.17.tar.gz and r328265. Not fully synchronized. Some others (e.g. sfp cage interrupt and bypass adapter stuff) will be merged later: - Initialize firmware command buffer correctly in ixgbe_read_ee_hostif_X550() and ixgbe_read_ee_hostif_buffer_X550(). These functions are used when reading NVM. - Fix a bug that ixgbe_mng_present() misunderstand management capability on X550 and newer on some environment. X550 changed FWSM bit definition. See X540 document and X550's document and compare them. - Fix checksum calculation in ixgbe_set_fw_drv_ver_generic(). This function is not used in NetBSD. - Add some unused funtions. - Whitespace fix. - Check offset correctly in ixgbe_get_oem_prod_version(). Note that this function is not used. - Set PHY correctly in ixgbe_setup_mac_link_sfp_x550a() if a device is a C3000 KR SFP+. Fix race about writing adapter->link_active for ixg(4). adapter->link_active is updated by ixgbe_update_link_status() only. The function is called from the following four functions. - ixgbe_media_status() - ixgbe_local_timer1() - ixgbe_stop() - ixgbe_handle_link() The functions other than ixgbe_handle_link() call ixgbe_update_link_status() with holding IXGBE_CORE_LOCK, however ixgbe_handle_link() calls it without holding IXGBE_CORE_LOCK. That can cause race. So, add IXGBE_CORE_LOCK to ixgbe_handle_link(). Tested by msaitoh@n.o and me. Fix race about writing adapter->link_active for ixv(4). adapter->link_active is updated by ixv_update_link_status() only. The function is called from the following two functions. - ixv_media_status() - ixv_handle_link() ixv_media_status() calls ixv_update_link_status() with holding IXGBE_CORE_LOCK, however ixv_handle_link() calls it without holding IXGBE_CORE_LOCK, the same as ixg(4). ok by msaitoh@n.o. - Add link related softint's counter. - Fix indent. To generate a diff of this commit: cvs rdiff -u -r1.2.4.2 -r1.2.4.3 src/sys/dev/pci/ixgbe/if_bypass.c cvs rdiff -u -r1.1.4.2 -r1.1.4.3 src/sys/dev/pci/ixgbe/if_sriov.c \ src/sys/dev/pci/ixgbe/ixgbe_sriov.h cvs rdiff -u -r1.24.2.7 -r1.24.2.8 src/sys/dev/pci/ixgbe/ix_txrx.c cvs rdiff -u -r1.88.2.14 -r1.88.2.15 src/sys/dev/pci/ixgbe/ixgbe.c cvs rdiff -u -r1.24.6.7 -r1.24.6.8 src/sys/dev/pci/ixgbe/ixgbe.h cvs rdiff -u -r1.13.2.1 -r1.13.2.2 src/sys/dev/pci/ixgbe/ixgbe_common.c cvs rdiff -u -r1.7.8.1 -r1.7.8.2 src/sys/dev/pci/ixgbe/ixgbe_common.h cvs rdiff -u -r1.1.12.1 -r1.1.12.2 src/sys/dev/pci/ixgbe/ixgbe_osdep.c cvs rdiff -u -r1.17.6.1 -r1.17.6.2 src/sys/dev/pci/ixgbe/ixgbe_osdep.h cvs rdiff -u -r1.11.6.1 -r1.11.6.2 src/sys/dev/pci/ixgbe/ixgbe_phy.c cvs rdiff -u -r1.22.2.3 -r1.22.2.4 src/sys/dev/pci/ixgbe/ixgbe_type.h cvs rdiff -u -r1.8.6.1 -r1.8.6.2 src/sys/dev/pci/ixgbe/ixgbe_vf.h cvs rdiff -u -r1.9.6.1 -r1.9.6.2 src/sys/dev/pci/ixgbe/ixgbe_x540.c cvs rdiff -u -r1.5.6.1 -r1.5.6.2 src/sys/dev/pci/ixgbe/ixgbe_x550.c cvs rdiff -u -r1.56.2.11 -r1.56.2.12 src/sys/dev/pci/ixgbe/ixv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.