Module Name: src Committed By: christos Date: Sat Feb 7 00:02:09 UTC 2015
Modified Files: src/sys/dev/pci/ixgbe: ixgbe.c Log Message: disable preemption while scheduling the softint to configure the link. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/dev/pci/ixgbe/ixgbe.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/ixgbe/ixgbe.c diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.18 src/sys/dev/pci/ixgbe/ixgbe.c:1.19 --- src/sys/dev/pci/ixgbe/ixgbe.c:1.18 Wed Feb 4 04:05:53 2015 +++ src/sys/dev/pci/ixgbe/ixgbe.c Fri Feb 6 19:02:09 2015 @@ -59,7 +59,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ /*$FreeBSD: src/sys/dev/ixgbe/ixgbe.c,v 1.51 2011/04/25 23:34:21 jfv Exp $*/ -/*$NetBSD: ixgbe.c,v 1.18 2015/02/04 09:05:53 msaitoh Exp $*/ +/*$NetBSD: ixgbe.c,v 1.19 2015/02/07 00:02:09 christos Exp $*/ #include "opt_inet.h" @@ -2710,13 +2710,19 @@ ixgbe_config_link(struct adapter *adapte sfp = ixgbe_is_sfp(hw); if (sfp) { + void *ip; + if (hw->phy.multispeed_fiber) { hw->mac.ops.setup_sfp(hw); ixgbe_enable_tx_laser(hw); - softint_schedule(adapter->msf_si); + ip = adapter->msf_si; } else { - softint_schedule(adapter->mod_si); + ip = adapter->mod_si; } + + kpreempt_disable(); + softint_schedule(ip); + kpreempt_enable(); } else { if (hw->mac.ops.check_link) err = ixgbe_check_link(hw, &autoneg,