PERFORCE change 53377 for review
Robert Watson
rwatson at FreeBSD.org
Sun May 23 21:11:55 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=53377
Change 53377 by rwatson at rwatson_paprika on 2004/05/23 21:11:05
Integ netperf_socket branch to CVS HEAD:
- bde makes kernel profiling work on amd64 more to his
satisfaction.
- if_capenable mixups cleaned up.
- if_sis locking nit: don't mark its callouts as MPSAFE
unless running debug.mpsafenet=1.
Affected files ...
.. //depot/projects/netperf_socket/sys/amd64/amd64/exception.S#3 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/prof_machdep.c#2 integrate
.. //depot/projects/netperf_socket/sys/amd64/ia32/ia32_exception.S#2 integrate
.. //depot/projects/netperf_socket/sys/conf/files.amd64#7 integrate
.. //depot/projects/netperf_socket/sys/dev/firewire/fwdev.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/fxp/if_fxp.c#7 integrate
.. //depot/projects/netperf_socket/sys/dev/hme/if_hme.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/nge/if_nge.c#9 integrate
.. //depot/projects/netperf_socket/sys/dev/re/if_re.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/tx/if_tx.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/ums.c#3 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/exception.s#5 integrate
.. //depot/projects/netperf_socket/sys/net/if_vlan.c#4 integrate
.. //depot/projects/netperf_socket/sys/pci/if_dc.c#5 integrate
.. //depot/projects/netperf_socket/sys/pci/if_rl.c#8 integrate
.. //depot/projects/netperf_socket/sys/pci/if_sis.c#6 integrate
.. //depot/projects/netperf_socket/sys/pci/if_ste.c#13 integrate
Differences ...
==== //depot/projects/netperf_socket/sys/amd64/amd64/exception.S#3 (text+ko) ====
@@ -27,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.116 2004/04/05 21:25:51 imp Exp $
+ * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.117 2004/05/23 17:18:48 bde Exp $
*/
#include <machine/asmacros.h>
@@ -163,8 +163,10 @@
movq %r14,TF_R14(%rsp)
movq %r15,TF_R15(%rsp)
alltraps_with_regs_pushed:
+ FAKE_MCOUNT(TF_RIP(%rsp))
calltrap:
call trap
+ MEXITCOUNT
jmp doreti /* Handle any pending ASTs */
/*
@@ -239,6 +241,7 @@
movq %r13,TF_R13(%rsp) /* C preserved */
movq %r14,TF_R14(%rsp) /* C preserved */
movq %r15,TF_R15(%rsp) /* C preserved */
+ FAKE_MCOUNT(TF_RIP(%rsp))
call syscall
movq PCPU(CURPCB),%rax
testq $PCB_FULLCTX,PCB_FLAGS(%rax)
@@ -253,6 +256,7 @@
call ast
jmp 1b
2: /* restore preserved registers */
+ MEXITCOUNT
movq TF_RDI(%rsp),%rdi /* bonus; preserve arg 1 */
movq TF_RSI(%rsp),%rsi /* bonus: preserve arg 2 */
movq TF_RDX(%rsp),%rdx /* return value 2 */
@@ -271,6 +275,7 @@
sysretq
3: /* Requested full context restore, use doreti for that */
andq $~PCB_FULLCTX,PCB_FLAGS(%rax)
+ MEXITCOUNT
jmp doreti
/*
@@ -286,6 +291,7 @@
movq %rbx, %rsi /* arg1 */
movq %rsp, %rdx /* trapframe pointer */
call fork_exit
+ MEXITCOUNT
jmp doreti /* Handle any ASTs */
.data
@@ -301,6 +307,7 @@
.globl doreti
.type doreti, at function
doreti:
+ FAKE_MCOUNT($bintr) /* init "from" bintr -> doreti */
/*
* Check if ASTs can be handled now.
*/
@@ -330,6 +337,7 @@
* registers. The fault is handled in trap.c.
*/
doreti_exit:
+ MEXITCOUNT
movq TF_RDI(%rsp),%rdi
movq TF_RSI(%rsp),%rsi
movq TF_RDX(%rsp),%rdx
==== //depot/projects/netperf_socket/sys/amd64/amd64/prof_machdep.c#2 (text+ko) ====
@@ -25,11 +25,13 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/prof_machdep.c,v 1.19 2004/03/12 21:45:31 trhodes Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/prof_machdep.c,v 1.20 2004/05/23 18:27:14 bde Exp $");
#ifdef GUPROF
+#if 0
#include "opt_i586_guprof.h"
#include "opt_perfmon.h"
+#endif
#include <sys/param.h>
#include <sys/systm.h>
@@ -38,7 +40,9 @@
#include <sys/sysctl.h>
#include <machine/clock.h>
+#if 0
#include <machine/perfmon.h>
+#endif
#include <machine/profile.h>
#undef MCOUNT
#endif
@@ -89,7 +93,14 @@
# hasn't changed the stack except to call here, so the \n\
# caller's raddr is above our raddr. \n\
# \n\
- movl 4(%esp),%edx \n\
+ pushq %rax \n\
+ pushq %rdx \n\
+ pushq %rcx \n\
+ pushq %rsi \n\
+ pushq %rdi \n\
+ pushq %r8 \n\
+ pushq %r9 \n\
+ movq 7*8+8(%rsp),%rdi \n\
jmp .got_frompc \n\
\n\
.p2align 4,0x90 \n\
@@ -101,24 +112,35 @@
je .mcount_exit \n\
# \n\
# The caller's stack frame has already been built, so \n\
- # %ebp is the caller's frame pointer. The caller's \n\
+ # %rbp is the caller's frame pointer. The caller's \n\
# raddr is in the caller's frame following the caller's \n\
# caller's frame pointer. \n\
# \n\
- movl 4(%ebp),%edx \n\
+ pushq %rax \n\
+ pushq %rdx \n\
+ pushq %rcx \n\
+ pushq %rsi \n\
+ pushq %rdi \n\
+ pushq %r8 \n\
+ pushq %r9 \n\
+ movq 8(%rbp),%rdi \n\
.got_frompc: \n\
# \n\
# Our raddr is the caller's pc. \n\
# \n\
- movl (%esp),%eax \n\
+ movq 7*8(%rsp),%rsi \n\
\n\
- pushfl \n\
- pushl %eax \n\
- pushl %edx \n\
+ pushfq \n\
cli \n\
call " __XSTRING(CNAME(mcount)) " \n\
- addl $8,%esp \n\
- popfl \n\
+ popfq \n\
+ popq %r9 \n\
+ popq %r8 \n\
+ popq %rdi \n\
+ popq %rsi \n\
+ popq %rcx \n\
+ popq %rdx \n\
+ popq %rax \n\
.mcount_exit: \n\
ret \n\
");
@@ -154,17 +176,25 @@
__cyg_profile_func_exit: \n\
cmpl $GMON_PROF_HIRES," __XSTRING(CNAME(_gmonparam)) "+GM_STATE \n\
jne .mexitcount_exit \n\
- pushl %edx \n\
- pushl %eax \n\
- movl 8(%esp),%eax \n\
- pushfl \n\
- pushl %eax \n\
+ pushq %rax \n\
+ pushq %rdx \n\
+ pushq %rcx \n\
+ pushq %rsi \n\
+ pushq %rdi \n\
+ pushq %r8 \n\
+ pushq %r9 \n\
+ movq 7*8(%rsp),%rdi \n\
+ pushfq \n\
cli \n\
call " __XSTRING(CNAME(mexitcount)) " \n\
- addl $4,%esp \n\
- popfl \n\
- popl %eax \n\
- popl %edx \n\
+ popfq \n\
+ popq %r9 \n\
+ popq %r8 \n\
+ popq %rdi \n\
+ popq %rsi \n\
+ popq %rcx \n\
+ popq %rdx \n\
+ popq %rax \n\
.mexitcount_exit: \n\
ret \n\
");
@@ -188,7 +218,7 @@
u_char high, low;
static u_int prev_count;
-#if (defined(I586_CPU) || defined(I686_CPU)) && !defined(SMP)
+#ifndef SMP
if (cputime_clock == CPUTIME_CLOCK_TSC) {
count = (u_int)rdtsc();
delta = (int)(count - prev_count);
@@ -210,7 +240,7 @@
return (delta);
}
#endif /* PERFMON && I586_PMC_GUPROF */
-#endif /* (I586_CPU || I686_CPU) && !SMP */
+#endif /* !SMP */
/*
* Read the current value of the 8254 timer counter 0.
@@ -292,13 +322,13 @@
{
if (cputime_clock == CPUTIME_CLOCK_UNINITIALIZED) {
cputime_clock = CPUTIME_CLOCK_I8254;
-#if (defined(I586_CPU) || defined(I686_CPU)) && !defined(SMP)
+#ifndef SMP
if (tsc_freq != 0)
cputime_clock = CPUTIME_CLOCK_TSC;
#endif
}
gp->profrate = timer_freq << CPUTIME_CLOCK_I8254_SHIFT;
-#if (defined(I586_CPU) || defined(I686_CPU)) && !defined(SMP)
+#ifndef SMP
if (cputime_clock == CPUTIME_CLOCK_TSC)
gp->profrate = tsc_freq;
#if defined(PERFMON) && defined(I586_PMC_GUPROF)
@@ -327,7 +357,7 @@
}
}
#endif /* PERFMON && I586_PMC_GUPROF */
-#endif /* (I586_CPU || I686_CPU) && !SMP */
+#endif /* !SMP */
cputime_bias = 0;
cputime();
}
==== //depot/projects/netperf_socket/sys/amd64/ia32/ia32_exception.S#2 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/ia32/ia32_exception.S,v 1.2 2003/11/13 02:38:33 peter Exp $
+ * $FreeBSD: src/sys/amd64/ia32/ia32_exception.S,v 1.3 2004/05/23 19:06:15 bde Exp $
*/
#include <machine/asmacros.h>
@@ -63,5 +63,7 @@
movq %r13,TF_R13(%rsp)
movq %r14,TF_R14(%rsp)
movq %r15,TF_R15(%rsp)
+ FAKE_MCOUNT(TF_RIP(%rsp))
call ia32_syscall
+ MEXITCOUNT
jmp doreti
==== //depot/projects/netperf_socket/sys/conf/files.amd64#7 (text+ko) ====
@@ -1,7 +1,7 @@
# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
-# $FreeBSD: src/sys/conf/files.amd64,v 1.34 2004/05/17 05:46:15 imp Exp $
+# $FreeBSD: src/sys/conf/files.amd64,v 1.35 2004/05/23 18:38:27 bde Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -69,6 +69,7 @@
amd64/amd64/mptable.c optional mptable
amd64/amd64/mptable_pci.c optional mptable pci
amd64/amd64/nexus.c standard
+amd64/amd64/prof_machdep.c optional profiling-routine
amd64/amd64/pmap.c standard
amd64/amd64/sigtramp.S standard
amd64/amd64/support.S standard
==== //depot/projects/netperf_socket/sys/dev/firewire/fwdev.c#5 (text+ko) ====
@@ -31,7 +31,7 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/firewire/fwdev.c,v 1.41 2004/05/22 16:14:17 dfr Exp $
+ * $FreeBSD: src/sys/dev/firewire/fwdev.c,v 1.42 2004/05/23 18:43:44 dfr Exp $
*
*/
@@ -594,13 +594,21 @@
/* copy response */
tinfo = &sc->fc->tcode[xfer->recv.hdr.mode.hdr.tcode];
- if (asyreq->req.len >= xfer->recv.pay_len + tinfo->hdr_len)
- asyreq->req.len = xfer->recv.pay_len;
- else
- err = EINVAL;
+ if (xfer->recv.hdr.mode.hdr.tcode == FWTCODE_RRESB ||
+ xfer->recv.hdr.mode.hdr.tcode == FWTCODE_LRES) {
+ pay_len = xfer->recv.pay_len;
+ if (asyreq->req.len >= xfer->recv.pay_len + tinfo->hdr_len) {
+ asyreq->req.len = xfer->recv.pay_len +
+ tinfo->hdr_len;
+ } else {
+ err = EINVAL;
+ pay_len = 0;
+ }
+ } else {
+ pay_len = 0;
+ }
bcopy(&xfer->recv.hdr, fp, tinfo->hdr_len);
- bcopy(xfer->recv.payload, (char *)fp + tinfo->hdr_len,
- MAX(0, asyreq->req.len - tinfo->hdr_len));
+ bcopy(xfer->recv.payload, (char *)fp + tinfo->hdr_len, pay_len);
out:
fw_xfer_free_buf(xfer);
break;
==== //depot/projects/netperf_socket/sys/dev/fxp/if_fxp.c#7 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.206 2004/05/23 16:11:48 mux Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.207 2004/05/23 21:05:07 yar Exp $");
/*
* Intel EtherExpress Pro/100B PCI Fast Ethernet driver
@@ -2496,7 +2496,8 @@
break;
case SIOCSIFCAP:
- ifp->if_capenable = ifr->ifr_reqcap;
+ ifp->if_capenable &= ~IFCAP_POLLING;
+ ifp->if_capenable |= ifr->ifr_reqcap & IFCAP_POLLING;
break;
default:
==== //depot/projects/netperf_socket/sys/dev/hme/if_hme.c#4 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/hme/if_hme.c,v 1.21 2004/05/23 16:11:49 mux Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/hme/if_hme.c,v 1.22 2004/05/23 19:21:47 yar Exp $");
/*
* HME Ethernet module driver.
@@ -319,6 +319,7 @@
*/
ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header);
ifp->if_capabilities |= IFCAP_VLAN_MTU;
+ ifp->if_capenable |= IFCAP_VLAN_MTU;
callout_init(&sc->sc_tick_ch, 0);
return (0);
==== //depot/projects/netperf_socket/sys/dev/nge/if_nge.c#9 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/nge/if_nge.c,v 1.59 2004/05/23 16:11:50 mux Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/nge/if_nge.c,v 1.61 2004/05/23 21:05:07 yar Exp $");
/*
* National Semiconductor DP83820/DP83821 gigabit ethernet driver
@@ -2114,10 +2114,13 @@
* 8152 (TX FIFO size minus 64 minus 18), turn off
* TX checksum offloading.
*/
- if (ifr->ifr_mtu >= 8152)
+ if (ifr->ifr_mtu >= 8152) {
+ ifp->if_capenable &= ~IFCAP_TXCSUM;
ifp->if_hwassist = 0;
- else
+ } else {
+ ifp->if_capenable |= IFCAP_TXCSUM;
ifp->if_hwassist = NGE_CSUM_FEATURES;
+ }
}
break;
case SIOCSIFFLAGS:
@@ -2164,7 +2167,8 @@
}
break;
case SIOCSIFCAP:
- ifp->if_capenable = ifr->ifr_reqcap;
+ ifp->if_capenable &= ~IFCAP_POLLING;
+ ifp->if_capenable |= ifr->ifr_reqcap & IFCAP_POLLING;
break;
default:
error = ether_ioctl(ifp, command, data);
==== //depot/projects/netperf_socket/sys/dev/re/if_re.c#6 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.21 2004/05/23 16:11:50 mux Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.22 2004/05/23 21:05:08 yar Exp $");
/*
* RealTek 8139C+/8169/8169S/8110S PCI NIC driver
@@ -2315,7 +2315,9 @@
error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command);
break;
case SIOCSIFCAP:
- ifp->if_capenable = ifr->ifr_reqcap;
+ ifp->if_capenable &= ~(IFCAP_HWCSUM | IFCAP_POLLING);
+ ifp->if_capenable |=
+ ifr->ifr_reqcap & (IFCAP_HWCSUM | IFCAP_POLLING);
if (ifp->if_capenable & IFCAP_TXCSUM)
ifp->if_hwassist = RE_CSUM_FEATURES;
else
==== //depot/projects/netperf_socket/sys/dev/tx/if_tx.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/tx/if_tx.c,v 1.82 2004/03/17 17:50:46 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/tx/if_tx.c,v 1.83 2004/05/23 19:21:48 yar Exp $");
/*
* EtherPower II 10/100 Fast Ethernet (SMC 9432 serie)
@@ -413,6 +413,7 @@
ifp->if_hdrlen = sizeof(struct ether_vlan_header);
ifp->if_capabilities |= IFCAP_VLAN_MTU;
+ ifp->if_capenable |= IFCAP_VLAN_MTU;
callout_handle_init(&sc->stat_ch);
/* Activate our interrupt handler. */
==== //depot/projects/netperf_socket/sys/dev/usb/ums.c#3 (text+ko) ====
@@ -37,10 +37,10 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/ums.c,v 1.66 2004/02/21 21:10:49 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/ums.c,v 1.67 2004/05/23 17:09:07 le Exp $");
/*
- * HID spec: http://www.usb.org/developers/data/devclass/hid1_1.pdf
+ * HID spec: http://www.usb.org/developers/devclass_docs/HID1_11.pdf
*/
#include <sys/param.h>
==== //depot/projects/netperf_socket/sys/i386/i386/exception.s#5 (text+ko) ====
@@ -27,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/i386/i386/exception.s,v 1.109 2004/05/23 16:50:55 bde Exp $
+ * $FreeBSD: src/sys/i386/i386/exception.s,v 1.110 2004/05/23 17:25:46 bde Exp $
*/
#include "opt_npx.h"
@@ -136,7 +136,6 @@
movl %eax,%fs
FAKE_MCOUNT(TF_EIP(%esp))
calltrap:
- FAKE_MCOUNT(btrap) /* init "from" btrap -> calltrap */
call trap
/*
@@ -235,7 +234,7 @@
.globl doreti
.type doreti, at function
doreti:
- FAKE_MCOUNT(bintr) /* init "from" bintr -> doreti */
+ FAKE_MCOUNT($bintr) /* init "from" bintr -> doreti */
doreti_next:
/*
* Check if ASTs can be handled now. PSL_VM must be checked first
==== //depot/projects/netperf_socket/sys/net/if_vlan.c#4 (text+ko) ====
@@ -26,7 +26,7 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/net/if_vlan.c,v 1.61 2004/05/21 08:43:38 ru Exp $
+ * $FreeBSD: src/sys/net/if_vlan.c,v 1.62 2004/05/23 22:32:15 yar Exp $
*/
/*
@@ -338,7 +338,7 @@
* knows how to find the VLAN tag to use, so we attach a
* packet tag that holds it.
*/
- if (p->if_capabilities & IFCAP_VLAN_HWTAGGING) {
+ if (p->if_capenable & IFCAP_VLAN_HWTAGGING) {
struct m_tag *mtag = m_tag_alloc(MTAG_VLAN,
MTAG_VLAN_TAG,
sizeof (u_int),
@@ -542,13 +542,20 @@
(IFF_BROADCAST | IFF_MULTICAST | IFF_SIMPLEX | IFF_POINTOPOINT));
ifv->ifv_if.if_link_state = p->if_link_state;
+#if 0
/*
+ * Not ready yet. We need notification from the parent
+ * when hw checksumming flags in its if_capenable change.
+ * Flags set in if_capabilities only are useless.
+ */
+ /*
* If the parent interface can do hardware-assisted
* VLAN encapsulation, then propagate its hardware-
* assisted checksumming flags.
*/
if (p->if_capabilities & IFCAP_VLAN_HWTAGGING)
ifv->ifv_if.if_capabilities |= p->if_capabilities & IFCAP_HWCSUM;
+#endif
/*
* Set up our ``Ethernet address'' to reflect the underlying
==== //depot/projects/netperf_socket/sys/pci/if_dc.c#5 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/pci/if_dc.c,v 1.142 2004/04/11 13:47:15 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/pci/if_dc.c,v 1.143 2004/05/23 21:05:06 yar Exp $");
/*
* DEC "tulip" clone ethernet driver. Supports the DEC/Intel 21143
@@ -3708,7 +3708,8 @@
#endif
break;
case SIOCSIFCAP:
- ifp->if_capenable = ifr->ifr_reqcap;
+ ifp->if_capenable &= ~IFCAP_POLLING;
+ ifp->if_capenable |= ifr->ifr_reqcap & IFCAP_POLLING;
break;
default:
error = ether_ioctl(ifp, command, data);
==== //depot/projects/netperf_socket/sys/pci/if_rl.c#8 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/pci/if_rl.c,v 1.135 2004/04/11 16:23:16 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/pci/if_rl.c,v 1.136 2004/05/23 21:05:07 yar Exp $");
/*
* RealTek 8129/8139 PCI NIC driver
@@ -1830,7 +1830,8 @@
error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command);
break;
case SIOCSIFCAP:
- ifp->if_capenable = ifr->ifr_reqcap;
+ ifp->if_capenable &= ~IFCAP_POLLING;
+ ifp->if_capenable |= ifr->ifr_reqcap & IFCAP_POLLING;
break;
default:
error = ether_ioctl(ifp, command, data);
==== //depot/projects/netperf_socket/sys/pci/if_sis.c#6 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/pci/if_sis.c,v 1.97 2004/04/11 20:34:08 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/pci/if_sis.c,v 1.99 2004/05/23 22:22:29 rwatson Exp $");
/*
* SiS 900/SiS 7016 fast ethernet PCI NIC driver. Datasheets are
@@ -1234,7 +1234,10 @@
}
sc->sis_unit = unit;
- callout_init(&sc->sis_stat_ch, CALLOUT_MPSAFE);
+ if (debug_mpsafenet)
+ callout_init(&sc->sis_stat_ch, CALLOUT_MPSAFE);
+ else
+ callout_init(&sc->sis_stat_ch, 0);
bcopy(eaddr, (char *)&sc->arpcom.ac_enaddr, ETHER_ADDR_LEN);
/*
@@ -2340,7 +2343,8 @@
SIS_UNLOCK(sc);
break;
case SIOCSIFCAP:
- ifp->if_capenable = ifr->ifr_reqcap;
+ ifp->if_capenable &= ~IFCAP_POLLING;
+ ifp->if_capenable |= ifr->ifr_reqcap & IFCAP_POLLING;
break;
default:
error = ether_ioctl(ifp, command, data);
==== //depot/projects/netperf_socket/sys/pci/if_ste.c#13 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/pci/if_ste.c,v 1.72 2004/04/11 14:42:25 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/pci/if_ste.c,v 1.73 2004/05/23 21:05:07 yar Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1555,7 +1555,8 @@
error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command);
break;
case SIOCSIFCAP:
- ifp->if_capenable = ifr->ifr_reqcap;
+ ifp->if_capenable &= ~IFCAP_POLLING;
+ ifp->if_capenable |= ifr->ifr_reqcap & IFCAP_POLLING;
break;
default:
error = ether_ioctl(ifp, command, data);
More information about the p4-projects
mailing list