PERFORCE change 201779 for review
Matt Jacob
mjacob at FreeBSD.org
Thu Nov 17 01:01:56 UTC 2011
http://p4web.freebsd.org/@@201779?ac=10
Change 201779 by mjacob at mjacob-sandbox on 2011/11/17 01:01:37
IFC
Affected files ...
.. //depot/projects/mjacob-dev/contrib/bind9/CHANGES#7 integrate
.. //depot/projects/mjacob-dev/contrib/bind9/bin/named/query.c#6 integrate
.. //depot/projects/mjacob-dev/contrib/bind9/lib/dns/rbtdb.c#6 integrate
.. //depot/projects/mjacob-dev/contrib/bind9/version#7 integrate
.. //depot/projects/mjacob-dev/contrib/gcc/config/rs6000/freebsd.h#4 integrate
.. //depot/projects/mjacob-dev/share/man/man4/Makefile#11 integrate
.. //depot/projects/mjacob-dev/share/man/man4/sfxge.4#1 branch
.. //depot/projects/mjacob-dev/share/man/man9/lock.9#2 integrate
.. //depot/projects/mjacob-dev/share/man/man9/mutex.9#3 integrate
.. //depot/projects/mjacob-dev/share/man/man9/rmlock.9#2 integrate
.. //depot/projects/mjacob-dev/share/man/man9/rwlock.9#2 integrate
.. //depot/projects/mjacob-dev/share/man/man9/stack.9#2 integrate
.. //depot/projects/mjacob-dev/share/man/man9/sx.9#2 integrate
.. //depot/projects/mjacob-dev/sys/conf/files#14 integrate
.. //depot/projects/mjacob-dev/sys/dev/isp/isp.c#7 integrate
.. //depot/projects/mjacob-dev/sys/dev/isp/isp_pci.c#5 integrate
.. //depot/projects/mjacob-dev/sys/dev/mfi/mfi.c#7 integrate
.. //depot/projects/mjacob-dev/sys/dev/mfi/mfi_cam.c#5 integrate
.. //depot/projects/mjacob-dev/sys/dev/mfi/mfi_debug.c#2 integrate
.. //depot/projects/mjacob-dev/sys/dev/mfi/mfi_disk.c#2 integrate
.. //depot/projects/mjacob-dev/sys/dev/mfi/mfi_pci.c#2 integrate
.. //depot/projects/mjacob-dev/sys/dev/mfi/mfivar.h#4 integrate
.. //depot/projects/mjacob-dev/sys/dev/msk/if_msk.c#7 integrate
.. //depot/projects/mjacob-dev/sys/dev/msk/if_mskreg.h#3 integrate
.. //depot/projects/mjacob-dev/sys/dev/re/if_re.c#8 integrate
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efsys.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_bootcfg.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_ev.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_filter.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_impl.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_intr.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_mac.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_mcdi.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_mcdi.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_mon.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_nic.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_nvram.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_phy.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_port.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_regs.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_regs_ef10.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_regs_mcdi.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_regs_pci.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_rx.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_sram.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_tx.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_types.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_vpd.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/efx_wol.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/siena_flash.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/siena_impl.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/siena_mac.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/siena_mon.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/siena_nic.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/siena_nvram.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/siena_phy.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/siena_sram.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/common/siena_vpd.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge_dma.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge_ev.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge_intr.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge_mcdi.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge_port.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge_rx.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge_rx.h#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge_tx.c#1 branch
.. //depot/projects/mjacob-dev/sys/dev/sfxge/sfxge_tx.h#1 branch
.. //depot/projects/mjacob-dev/sys/fs/pseudofs/pseudofs_vnops.c#3 integrate
.. //depot/projects/mjacob-dev/sys/kern/kern_lock.c#6 integrate
.. //depot/projects/mjacob-dev/sys/kern/kern_mutex.c#2 integrate
.. //depot/projects/mjacob-dev/sys/kern/kern_rmlock.c#4 integrate
.. //depot/projects/mjacob-dev/sys/kern/kern_rwlock.c#3 integrate
.. //depot/projects/mjacob-dev/sys/kern/kern_sx.c#5 integrate
.. //depot/projects/mjacob-dev/sys/kern/subr_stack.c#3 integrate
.. //depot/projects/mjacob-dev/sys/kern/subr_witness.c#5 integrate
.. //depot/projects/mjacob-dev/sys/modules/Makefile#12 integrate
.. //depot/projects/mjacob-dev/sys/modules/sfxge/Makefile#1 branch
.. //depot/projects/mjacob-dev/sys/pci/if_rlreg.h#6 integrate
.. //depot/projects/mjacob-dev/sys/powerpc/aim/slb.c#4 integrate
.. //depot/projects/mjacob-dev/sys/sparc64/sbus/lsi64854.c#5 integrate
.. //depot/projects/mjacob-dev/sys/sys/lock.h#2 integrate
.. //depot/projects/mjacob-dev/sys/sys/lockmgr.h#2 integrate
.. //depot/projects/mjacob-dev/sys/sys/mutex.h#3 integrate
.. //depot/projects/mjacob-dev/sys/sys/rmlock.h#2 integrate
.. //depot/projects/mjacob-dev/sys/sys/rwlock.h#2 integrate
.. //depot/projects/mjacob-dev/sys/sys/stack.h#2 integrate
.. //depot/projects/mjacob-dev/sys/sys/sx.h#3 integrate
.. //depot/projects/mjacob-dev/sys/vm/vm_contig.c#6 integrate
.. //depot/projects/mjacob-dev/sys/vm/vm_page.c#11 integrate
.. //depot/projects/mjacob-dev/sys/vm/vm_page.h#9 integrate
.. //depot/projects/mjacob-dev/sys/vm/vm_phys.c#5 integrate
.. //depot/projects/mjacob-dev/sys/vm/vm_phys.h#3 integrate
.. //depot/projects/mjacob-dev/usr.bin/comm/comm.1#3 integrate
Differences ...
==== //depot/projects/mjacob-dev/contrib/bind9/CHANGES#7 (text+ko) ====
@@ -1,3 +1,9 @@
+ --- 9.8.1-P1 released ---
+
+3218. [security] Cache lookup could return RRSIG data associated with
+ nonexistent records, leading to an assertion
+ failure. [RT #26590]
+
--- 9.8.1 released ---
--- 9.8.1rc1 released ---
==== //depot/projects/mjacob-dev/contrib/bind9/bin/named/query.c#6 (text+ko) ====
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: query.c,v 1.353.8.11 2011-06-09 03:14:03 marka Exp $ */
+/* $Id: query.c,v 1.353.8.11.4.1 2011-11-16 09:32:08 marka Exp $ */
/*! \file */
@@ -1393,11 +1393,9 @@
goto addname;
if (result == DNS_R_NCACHENXRRSET) {
dns_rdataset_disassociate(rdataset);
- /*
- * Negative cache entries don't have sigrdatasets.
- */
- INSIST(sigrdataset == NULL ||
- ! dns_rdataset_isassociated(sigrdataset));
+ if (sigrdataset != NULL &&
+ dns_rdataset_isassociated(sigrdataset))
+ dns_rdataset_disassociate(sigrdataset);
}
if (result == ISC_R_SUCCESS) {
mname = NULL;
@@ -1438,8 +1436,9 @@
goto addname;
if (result == DNS_R_NCACHENXRRSET) {
dns_rdataset_disassociate(rdataset);
- INSIST(sigrdataset == NULL ||
- ! dns_rdataset_isassociated(sigrdataset));
+ if (sigrdataset != NULL &&
+ dns_rdataset_isassociated(sigrdataset))
+ dns_rdataset_disassociate(sigrdataset);
}
if (result == ISC_R_SUCCESS) {
mname = NULL;
@@ -1889,10 +1888,8 @@
goto setcache;
if (result == DNS_R_NCACHENXRRSET) {
dns_rdataset_disassociate(rdataset);
- /*
- * Negative cache entries don't have sigrdatasets.
- */
- INSIST(! dns_rdataset_isassociated(sigrdataset));
+ if (dns_rdataset_isassociated(sigrdataset))
+ dns_rdataset_disassociate(sigrdataset);
}
if (result == ISC_R_SUCCESS) {
/* Remember the result as a cache */
==== //depot/projects/mjacob-dev/contrib/bind9/lib/dns/rbtdb.c#6 (text+ko) ====
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: rbtdb.c,v 1.310.8.5 2011-06-08 23:02:42 each Exp $ */
+/* $Id: rbtdb.c,v 1.310.8.5.4.1 2011-11-16 09:32:08 marka Exp $ */
/*! \file */
@@ -5053,7 +5053,7 @@
rdataset);
if (need_headerupdate(found, search.now))
update = found;
- if (foundsig != NULL) {
+ if (!NEGATIVE(found) && foundsig != NULL) {
bind_rdataset(search.rbtdb, node, foundsig, search.now,
sigrdataset);
if (need_headerupdate(foundsig, search.now))
@@ -5685,7 +5685,7 @@
}
if (found != NULL) {
bind_rdataset(rbtdb, rbtnode, found, now, rdataset);
- if (foundsig != NULL)
+ if (!NEGATIVE(found) && foundsig != NULL)
bind_rdataset(rbtdb, rbtnode, foundsig, now,
sigrdataset);
}
==== //depot/projects/mjacob-dev/contrib/bind9/version#7 (text+ko) ====
@@ -1,4 +1,4 @@
-# $Id: version,v 1.53.8.9 2011-08-24 02:08:26 marka Exp $
+# $Id: version,v 1.53.8.9.6.1 2011-11-16 09:32:07 marka Exp $
#
# This file must follow /bin/sh rules. It is imported directly via
# configure.
@@ -6,5 +6,5 @@
MAJORVER=9
MINORVER=8
PATCHVER=1
-RELEASETYPE=
-RELEASEVER=
+RELEASETYPE=-P
+RELEASEVER=1
==== //depot/projects/mjacob-dev/contrib/gcc/config/rs6000/freebsd.h#4 (text+ko) ====
@@ -253,3 +253,22 @@
#undef NEED_INDICATE_EXEC_STACK
#define NEED_INDICATE_EXEC_STACK 1
+
+/* This is how to declare the size of a function. */
+#undef ASM_DECLARE_FUNCTION_SIZE
+#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
+ do \
+ { \
+ if (!flag_inhibit_size_directive) \
+ { \
+ fputs ("\t.size\t", (FILE)); \
+ if (TARGET_64BIT && DOT_SYMBOLS) \
+ putc ('.', (FILE)); \
+ assemble_name ((FILE), (FNAME)); \
+ fputs (",.-", (FILE)); \
+ rs6000_output_function_entry (FILE, FNAME); \
+ putc ('\n', (FILE)); \
+ } \
+ } \
+ while (0)
+
==== //depot/projects/mjacob-dev/share/man/man4/Makefile#11 (text+ko) ====
@@ -1,5 +1,5 @@
# @(#)Makefile 8.1 (Berkeley) 6/18/93
-# $FreeBSD: src/share/man/man4/Makefile,v 1.513 2011/11/03 21:20:22 bz Exp $
+# $FreeBSD: src/share/man/man4/Makefile,v 1.514 2011/11/16 17:11:13 philip Exp $
MAN= aac.4 \
acpi.4 \
@@ -377,6 +377,7 @@
send.4 \
ses.4 \
sf.4 \
+ sfxge.4 \
sge.4 \
si.4 \
siba.4 \
==== //depot/projects/mjacob-dev/share/man/man9/lock.9#2 (text+ko) ====
@@ -24,9 +24,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
.\" DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/lock.9,v 1.35 2009/06/17 01:55:42 attilio Exp $
+.\" $FreeBSD: src/share/man/man9/lock.9,v 1.36 2011/11/16 21:51:17 pjd Exp $
.\"
-.Dd June 16, 2009
+.Dd November 16, 2011
.Dt LOCK 9
.Os
.Sh NAME
@@ -60,20 +60,20 @@
.Ft void
.Fn lockmgr_disown "struct lock *lkp"
.Ft void
-.Fn lockmgr_printinfo "struct lock *lkp"
+.Fn lockmgr_printinfo "const struct lock *lkp"
.Ft int
-.Fn lockmgr_recursed "struct lock *lkp"
+.Fn lockmgr_recursed "const struct lock *lkp"
.Ft int
.Fn lockmgr_rw "struct lock *lkp" "u_int flags" "struct rwlock *ilk"
.Ft int
-.Fn lockmgr_waiters "struct lock *lkp"
+.Fn lockmgr_waiters "const struct lock *lkp"
.Ft int
-.Fn lockstatus "struct lock *lkp"
+.Fn lockstatus "const struct lock *lkp"
.Pp
.Cd "options INVARIANTS"
.Cd "options INVARIANT_SUPPORT"
.Ft void
-.Fn lockmgr_assert "struct lock *lkp" "int what"
+.Fn lockmgr_assert "const struct lock *lkp" "int what"
.Sh DESCRIPTION
The
.Fn lockinit
==== //depot/projects/mjacob-dev/share/man/man9/mutex.9#3 (text+ko) ====
@@ -26,9 +26,9 @@
.\" SUCH DAMAGE.
.\"
.\" from BSDI $Id: mutex.4,v 1.1.2.3 1998/04/27 22:53:13 ewv Exp $
-.\" $FreeBSD: src/share/man/man9/mutex.9,v 1.56 2011/01/06 21:14:34 jhb Exp $
+.\" $FreeBSD: src/share/man/man9/mutex.9,v 1.57 2011/11/16 21:51:17 pjd Exp $
.\"
-.Dd December 21, 2006
+.Dd November 16, 2011
.Dt MUTEX 9
.Os
.Sh NAME
@@ -83,16 +83,16 @@
.Ft int
.Fn mtx_sleep "void *chan" "struct mtx *mtx" "int priority" "const char *wmesg" "int timo"
.Ft int
-.Fn mtx_initialized "struct mtx *mutex"
+.Fn mtx_initialized "const struct mtx *mutex"
.Ft int
-.Fn mtx_owned "struct mtx *mutex"
+.Fn mtx_owned "const struct mtx *mutex"
.Ft int
-.Fn mtx_recursed "struct mtx *mutex"
+.Fn mtx_recursed "const struct mtx *mutex"
.Pp
.Cd "options INVARIANTS"
.Cd "options INVARIANT_SUPPORT"
.Ft void
-.Fn mtx_assert "struct mtx *mutex" "int what"
+.Fn mtx_assert "const struct mtx *mutex" "int what"
.In sys/kernel.h
.Fn MTX_SYSINIT "name" "struct mtx *mtx" "const char *description" "int opts"
.Sh DESCRIPTION
==== //depot/projects/mjacob-dev/share/man/man9/rmlock.9#2 (text+ko) ====
@@ -23,10 +23,10 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/rmlock.9,v 1.6 2010/09/01 19:50:03 mlaier Exp $
+.\" $FreeBSD: src/share/man/man9/rmlock.9,v 1.7 2011/11/16 21:51:17 pjd Exp $
.\"
.\" Based on rwlock.9 man page
-.Dd November 10, 2007
+.Dd November 16, 2011
.Dt RMLOCK 9
.Os
.Sh NAME
@@ -63,7 +63,7 @@
.Ft void
.Fn rm_wunlock "struct rmlock *rm"
.Ft int
-.Fn rm_wowned "struct rmlock *rm"
+.Fn rm_wowned "const struct rmlock *rm"
.In sys/kernel.h
.Fn RM_SYSINIT "name" "struct rmlock *rm" "const char *desc" "int opts"
.Sh DESCRIPTION
@@ -208,7 +208,7 @@
The
.Fa rm
lock must be unlocked.
-.It Fn rm_wowned "struct rmlock *rm"
+.It Fn rm_wowned "const struct rmlock *rm"
This function returns a non-zero value if the current thread owns an
exclusive lock on
.Fa rm .
==== //depot/projects/mjacob-dev/share/man/man9/rwlock.9#2 (text+ko) ====
@@ -22,9 +22,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/rwlock.9,v 1.15 2008/04/01 20:56:45 attilio Exp $
+.\" $FreeBSD: src/share/man/man9/rwlock.9,v 1.16 2011/11/16 21:51:17 pjd Exp $
.\"
-.Dd April 1, 2008
+.Dd November 16, 2011
.Dt RWLOCK 9
.Os
.Sh NAME
@@ -78,14 +78,14 @@
.Ft int
.Fn rw_sleep "void *chan" "struct rwlock *rw" "int priority" "const char *wmesg" "int timo"
.Ft int
-.Fn rw_initialized "struct rwlock *rw"
+.Fn rw_initialized "const struct rwlock *rw"
.Ft int
-.Fn rw_wowned "struct rwlock *rw"
+.Fn rw_wowned "const struct rwlock *rw"
.Pp
.Cd "options INVARIANTS"
.Cd "options INVARIANT_SUPPORT"
.Ft void
-.Fn rw_assert "struct rwlock *rw" "int what"
+.Fn rw_assert "const struct rwlock *rw" "int what"
.In sys/kernel.h
.Fn RW_SYSINIT "name" "struct rwlock *rw" "const char *desc"
.Sh DESCRIPTION
@@ -231,7 +231,7 @@
For more details on the parameters to this function,
see
.Xr sleep 9 .
-.It Fn rw_initialized "struct rwlock *rw"
+.It Fn rw_initialized "const struct rwlock *rw"
This function returns non-zero if
.Fa rw
has been initialized, and zero otherwise.
@@ -241,11 +241,11 @@
The
.Fa rw
lock must be unlocked.
-.It Fn rw_wowned "struct rwlock *rw"
+.It Fn rw_wowned "const struct rwlock *rw"
This function returns a non-zero value if the current thread owns an
exclusive lock on
.Fa rw .
-.It Fn rw_assert "struct rwlock *rw" "int what"
+.It Fn rw_assert "const struct rwlock *rw" "int what"
This function allows assertions specified in
.Fa what
to be made about
==== //depot/projects/mjacob-dev/share/man/man9/stack.9#2 (text+ko) ====
@@ -25,9 +25,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
.\" DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/stack.9,v 1.8 2010/04/07 19:13:31 emaste Exp $
+.\" $FreeBSD: src/share/man/man9/stack.9,v 1.9 2011/11/16 19:06:55 pjd Exp $
.\"
-.Dd June 24, 2009
+.Dd November 16, 2011
.Dt STACK 9
.Os
.Sh NAME
@@ -46,21 +46,21 @@
.Ft int
.Fn stack_put "struct stack *st" "vm_offset_t pc"
.Ft void
-.Fn stack_copy "struct stack *src" "struct stack dst"
+.Fn stack_copy "const struct stack *src" "struct stack dst"
.Ft void
.Fn stack_zero "struct stack *st"
.Ft void
-.Fn stack_print "struct stack *st"
+.Fn stack_print "const struct stack *st"
.Ft void
-.Fn stack_print_ddb "struct stack *st"
+.Fn stack_print_ddb "const struct stack *st"
.Ft void
-.Fn stack_print_short "struct stack *st"
+.Fn stack_print_short "const struct stack *st"
.Ft void
-.Fn stack_print_short_ddb "struct stack *st"
+.Fn stack_print_short_ddb "const struct stack *st"
.Ft void
-.Fn stack_sbuf_print "struct sbuf sb*" "struct stack *st"
+.Fn stack_sbuf_print "struct sbuf sb*" "const struct stack *st"
.Ft void
-.Fn stack_sbuf_print_ddb "struct sbuf sb*" "struct stack *st"
+.Fn stack_sbuf_print_ddb "struct sbuf sb*" "const struct stack *st"
.Ft void
.Fn stack_save "struct stack *st"
.Sh DESCRIPTION
==== //depot/projects/mjacob-dev/share/man/man9/sx.9#2 (text+ko) ====
@@ -24,9 +24,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
.\" DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/sx.9,v 1.44 2009/05/29 01:49:27 attilio Exp $
+.\" $FreeBSD: src/share/man/man9/sx.9,v 1.45 2011/11/16 21:51:17 pjd Exp $
.\"
-.Dd May 28, 2009
+.Dd November 16, 2011
.Dt SX 9
.Os
.Sh NAME
@@ -88,12 +88,12 @@
.Ft "struct thread *"
.Fn sx_xholder "struct sx *sx"
.Ft int
-.Fn sx_xlocked "struct sx *sx"
+.Fn sx_xlocked "const struct sx *sx"
.Pp
.Cd "options INVARIANTS"
.Cd "options INVARIANT_SUPPORT"
.Ft void
-.Fn sx_assert "struct sx *sx" "int what"
+.Fn sx_assert "const struct sx *sx" "int what"
.In sys/kernel.h
.Fn SX_SYSINIT "name" "struct sx *sx" "const char *description"
.Sh DESCRIPTION
==== //depot/projects/mjacob-dev/sys/conf/files#14 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1616 2011/11/01 21:26:57 marius Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1617 2011/11/16 17:11:13 philip Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -1675,6 +1675,37 @@
dev/scd/scd_isa.c optional scd isa
dev/sdhci/sdhci.c optional sdhci pci
dev/sf/if_sf.c optional sf pci
+dev/sfxge/common/efx_bootcfg.c optional sfxge inet pci
+dev/sfxge/common/efx_ev.c optional sfxge inet pci
+dev/sfxge/common/efx_filter.c optional sfxge inet pci
+dev/sfxge/common/efx_intr.c optional sfxge inet pci
+dev/sfxge/common/efx_mac.c optional sfxge inet pci
+dev/sfxge/common/efx_mcdi.c optional sfxge inet pci
+dev/sfxge/common/efx_mon.c optional sfxge inet pci
+dev/sfxge/common/efx_nic.c optional sfxge inet pci
+dev/sfxge/common/efx_nvram.c optional sfxge inet pci
+dev/sfxge/common/efx_phy.c optional sfxge inet pci
+dev/sfxge/common/efx_port.c optional sfxge inet pci
+dev/sfxge/common/efx_rx.c optional sfxge inet pci
+dev/sfxge/common/efx_sram.c optional sfxge inet pci
+dev/sfxge/common/efx_tx.c optional sfxge inet pci
+dev/sfxge/common/efx_vpd.c optional sfxge inet pci
+dev/sfxge/common/efx_wol.c optional sfxge inet pci
+dev/sfxge/common/siena_mac.c optional sfxge inet pci
+dev/sfxge/common/siena_mon.c optional sfxge inet pci
+dev/sfxge/common/siena_nic.c optional sfxge inet pci
+dev/sfxge/common/siena_nvram.c optional sfxge inet pci
+dev/sfxge/common/siena_phy.c optional sfxge inet pci
+dev/sfxge/common/siena_sram.c optional sfxge inet pci
+dev/sfxge/common/siena_vpd.c optional sfxge inet pci
+dev/sfxge/sfxge.c optional sfxge inet pci
+dev/sfxge/sfxge_dma.c optional sfxge inet pci
+dev/sfxge/sfxge_ev.c optional sfxge inet pci
+dev/sfxge/sfxge_intr.c optional sfxge inet pci
+dev/sfxge/sfxge_mcdi.c optional sfxge inet pci
+dev/sfxge/sfxge_port.c optional sfxge inet pci
+dev/sfxge/sfxge_rx.c optional sfxge inet pci
+dev/sfxge/sfxge_tx.c optional sfxge inet pci
dev/sge/if_sge.c optional sge pci
dev/si/si.c optional si
dev/si/si2_z280.c optional si
==== //depot/projects/mjacob-dev/sys/dev/isp/isp.c#7 (text+ko) ====
@@ -47,7 +47,7 @@
#endif
#ifdef __FreeBSD__
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/isp/isp.c,v 1.167 2011/08/13 23:34:17 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/isp/isp.c,v 1.168 2011/11/16 02:52:24 mjacob Exp $");
#include <dev/isp/isp_freebsd.h>
#endif
#ifdef __OpenBSD__
@@ -748,11 +748,13 @@
if (dodnld && IS_24XX(isp)) {
const uint32_t *ptr = isp->isp_mdvec->dv_ispfw;
+ int wordload;
/*
* Keep loading until we run out of f/w.
*/
code_org = ptr[2]; /* 1st load address is our start addr */
+ wordload = 0;
for (;;) {
uint32_t la, wi, wl;
@@ -777,6 +779,7 @@
wl--;
}
MEMORYBARRIER(isp, SYNC_REQUEST, 0, ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)), -1);
+ again:
ISP_MEMZERO(&mbs, sizeof (mbs));
if (la < 0x10000 && nw < 0x10000) {
mbs.param[0] = MBOX_LOAD_RISC_RAM_2100;
@@ -786,6 +789,23 @@
mbs.param[4] = nw;
mbs.param[6] = DMA_WD3(isp->isp_rquest_dma);
mbs.param[7] = DMA_WD2(isp->isp_rquest_dma);
+ isp_prt(isp, ISP_LOGDEBUG0, "LOAD RISC RAM 2100 %u words at load address 0x%x", nw, la);
+ } else if (wordload) {
+ union {
+ const uint32_t *cp;
+ uint32_t *np;
+ } ucd;
+ ucd.cp = (const uint32_t *)cp;
+ mbs.param[0] = MBOX_WRITE_RAM_WORD_EXTENDED;
+ mbs.param[1] = la;
+ mbs.param[2] = (*ucd.np);
+ mbs.param[3] = (*ucd.np) >> 16;
+ mbs.param[8] = la >> 16;
+ isp->isp_mbxwrk0 = nw - 1;
+ isp->isp_mbxworkp = ucd.np+1;
+ isp->isp_mbxwrk1 = (la + 1);
+ isp->isp_mbxwrk8 = (la + 1) >> 16;
+ isp_prt(isp, ISP_LOGDEBUG0, "WRITE RAM WORD EXTENDED %u words at load address 0x%x", nw, la);
} else {
mbs.param[0] = MBOX_LOAD_RISC_RAM;
mbs.param[1] = la;
@@ -796,10 +816,16 @@
mbs.param[6] = DMA_WD3(isp->isp_rquest_dma);
mbs.param[7] = DMA_WD2(isp->isp_rquest_dma);
mbs.param[8] = la >> 16;
+ isp_prt(isp, ISP_LOGDEBUG0, "LOAD RISC RAM %u words at load address 0x%x", nw, la);
}
mbs.logval = MBLOGALL;
isp_mboxcmd(isp, &mbs);
if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
+ if (mbs.param[0] == MBOX_HOST_INTERFACE_ERROR) {
+ isp_prt(isp, ISP_LOGERR, "switching to word load");
+ wordload = 1;
+ goto again;
+ }
isp_prt(isp, ISP_LOGERR, "F/W Risc Ram Load Failed");
ISP_RESET0(isp);
return;
@@ -855,6 +881,7 @@
mbs.param[4] = nw;
mbs.param[6] = DMA_WD3(isp->isp_rquest_dma);
mbs.param[7] = DMA_WD2(isp->isp_rquest_dma);
+ isp_prt(isp, ISP_LOGDEBUG1, "LOAD RISC RAM 2100 %u words at load address 0x%x\n", nw, la);
} else {
mbs.param[0] = MBOX_LOAD_RISC_RAM;
mbs.param[1] = la;
@@ -864,6 +891,7 @@
mbs.param[6] = DMA_WD3(isp->isp_rquest_dma);
mbs.param[7] = DMA_WD2(isp->isp_rquest_dma);
mbs.param[8] = la >> 16;
+ isp_prt(isp, ISP_LOGDEBUG1, "LOAD RISC RAM %u words at load address 0x%x\n", nw, la);
}
mbs.logval = MBLOGALL;
isp_mboxcmd(isp, &mbs);
@@ -910,6 +938,7 @@
mbs.param[1] = code_org;
mbs.param[2] = ucd.np[0];
mbs.logval = MBLOGNONE;
+ isp_prt(isp, ISP_LOGDEBUG1, "WRITE RAM %u words at load address 0x%x\n", ucd.np[3], code_org);
isp_mboxcmd(isp, &mbs);
if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
isp_prt(isp, ISP_LOGERR, "F/W download failed at word %d", isp->isp_mbxwrk1 - code_org);
@@ -6589,23 +6618,39 @@
mbs.param[1] = isp->isp_mbxwrk1++;
break;
case MBOX_WRITE_RAM_WORD_EXTENDED:
+ if (IS_24XX(isp)) {
+ uint32_t *lptr = (uint32_t *)ptr;
+ mbs.param[2] = lptr[0];
+ mbs.param[3] = lptr[0] >> 16;
+ lptr++;
+ ptr = (uint16_t *)lptr;
+ } else {
+ mbs.param[2] = *ptr++;
+ }
offset = isp->isp_mbxwrk1;
offset |= isp->isp_mbxwrk8 << 16;
-
- mbs.param[2] = *ptr++;
mbs.param[1] = offset;
mbs.param[8] = offset >> 16;
- isp->isp_mbxwrk1 = ++offset;
+ offset++;
+ isp->isp_mbxwrk1 = offset;
isp->isp_mbxwrk8 = offset >> 16;
break;
case MBOX_READ_RAM_WORD_EXTENDED:
+ if (IS_24XX(isp)) {
+ uint32_t *lptr = (uint32_t *)ptr;
+ uint32_t val = isp->isp_mboxtmp[2];
+ val |= (isp->isp_mboxtmp[3]) << 16;
+ *lptr++ = val;
+ ptr = (uint16_t *)lptr;
+ } else {
+ *ptr++ = isp->isp_mboxtmp[2];
+ }
offset = isp->isp_mbxwrk1;
offset |= isp->isp_mbxwrk8 << 16;
-
- *ptr++ = isp->isp_mboxtmp[2];
mbs.param[1] = offset;
mbs.param[8] = offset >> 16;
- isp->isp_mbxwrk1 = ++offset;
+ offset++;
+ isp->isp_mbxwrk1 = offset;
isp->isp_mbxwrk8 = offset >> 16;
break;
}
@@ -6830,7 +6875,7 @@
ISPOPMAP(0x00, 0x00), /* 0x0c: */
ISPOPMAP(0x10f, 0x01), /* 0x0d: MBOX_WRITE_RAM_WORD_EXTENDED */
ISPOPMAP(0x01, 0x05), /* 0x0e: MBOX_CHECK_FIRMWARE */
- ISPOPMAP(0x10f, 0x05), /* 0x0f: MBOX_READ_RAM_WORD_EXTENDED */
+ ISPOPMAP(0x103, 0x0d), /* 0x0f: MBOX_READ_RAM_WORD_EXTENDED */
ISPOPMAP(0x1f, 0x11), /* 0x10: MBOX_INIT_REQ_QUEUE */
ISPOPMAP(0x2f, 0x21), /* 0x11: MBOX_INIT_RES_QUEUE */
ISPOPMAP(0x0f, 0x01), /* 0x12: MBOX_EXECUTE_IOCB */
@@ -6962,13 +7007,13 @@
"MAILBOX REG TEST",
"VERIFY CHECKSUM",
"ABOUT FIRMWARE",
- "LOAD RAM",
+ "LOAD RAM (2100)",
"DUMP RAM",
+ "LOAD RISC RAM",
+ NULL,
"WRITE RAM WORD EXTENDED",
- NULL,
+ "CHECK FIRMWARE",
"READ RAM WORD EXTENDED",
- "CHECK FIRMWARE",
- NULL,
"INIT REQUEST QUEUE",
"INIT RESULT QUEUE",
"EXECUTE IOCB",
==== //depot/projects/mjacob-dev/sys/dev/isp/isp_pci.c#5 (text+ko) ====
@@ -28,7 +28,7 @@
* FreeBSD Version.
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/isp/isp_pci.c,v 1.158 2011/08/13 23:34:17 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/isp/isp_pci.c,v 1.159 2011/11/16 02:52:24 mjacob Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1458,6 +1458,7 @@
imushp->error = EINVAL;
return;
}
+ isp_prt(imushp->isp, ISP_LOGDEBUG0, "request/result area @ 0x%jx/0x%jx", (uintmax_t) segs->ds_addr, (uintmax_t) segs->ds_len);
imushp->isp->isp_rquest = imushp->vbase;
imushp->isp->isp_rquest_dma = segs->ds_addr;
segs->ds_addr += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(imushp->isp));
@@ -1487,6 +1488,7 @@
imushp->error = EINVAL;
return;
}
+ isp_prt(imushp->isp, ISP_LOGDEBUG0, "scdma @ 0x%jx/0x%jx", (uintmax_t) segs->ds_addr, (uintmax_t) segs->ds_len);
FCPARAM(imushp->isp, imushp->chan)->isp_scdma = segs->ds_addr;
FCPARAM(imushp->isp, imushp->chan)->isp_scratch = imushp->vbase;
}
==== //depot/projects/mjacob-dev/sys/dev/mfi/mfi.c#7 (text) ====
@@ -51,7 +51,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi.c,v 1.62 2011/11/09 21:53:49 delphij Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi.c,v 1.63 2011/11/16 15:39:27 jhb Exp $");
#include "opt_mfi.h"
@@ -117,7 +117,7 @@
static void mfi_issue_cmd_xscale(struct mfi_softc *sc,uint32_t bus_add,uint32_t frame_cnt);
static void mfi_issue_cmd_ppc(struct mfi_softc *sc,uint32_t bus_add,uint32_t frame_cnt);
-static SYSCTL_NODE(_hw, OID_AUTO, mfi, CTLFLAG_RD, 0, "MFI driver parameters");
+SYSCTL_NODE(_hw, OID_AUTO, mfi, CTLFLAG_RD, 0, "MFI driver parameters");
static int mfi_event_locale = MFI_EVT_LOCALE_ALL;
TUNABLE_INT("hw.mfi.event_locale", &mfi_event_locale);
SYSCTL_INT(_hw_mfi, OID_AUTO, event_locale, CTLFLAG_RW, &mfi_event_locale,
@@ -484,15 +484,8 @@
mtx_unlock(&sc->mfi_io_lock);
/*
- * Set up the interrupt handler. XXX This should happen in
- * mfi_pci.c
+ * Set up the interrupt handler.
*/
- sc->mfi_irq_rid = 0;
- if ((sc->mfi_irq = bus_alloc_resource_any(sc->mfi_dev, SYS_RES_IRQ,
- &sc->mfi_irq_rid, RF_SHAREABLE | RF_ACTIVE)) == NULL) {
- device_printf(sc->mfi_dev, "Cannot allocate interrupt\n");
- return (EINVAL);
- }
if (bus_setup_intr(sc->mfi_dev, sc->mfi_irq, INTR_MPSAFE|INTR_TYPE_BIO,
NULL, mfi_intr, sc, &sc->mfi_intr)) {
device_printf(sc->mfi_dev, "Cannot set up interrupt\n");
==== //depot/projects/mjacob-dev/sys/dev/mfi/mfi_cam.c#5 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_cam.c,v 1.7 2011/10/13 20:06:19 marius Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_cam.c,v 1.8 2011/11/16 15:39:27 jhb Exp $");
#include "opt_mfi.h"
@@ -45,6 +45,7 @@
#include <sys/uio.h>
#include <sys/proc.h>
#include <sys/signalvar.h>
+#include <sys/sysctl.h>
#include <cam/cam.h>
#include <cam/cam_ccb.h>
==== //depot/projects/mjacob-dev/sys/dev/mfi/mfi_debug.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_debug.c,v 1.3 2006/10/16 04:18:38 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_debug.c,v 1.4 2011/11/16 18:42:39 kib Exp $");
#include "opt_mfi.h"
@@ -41,6 +41,7 @@
#include <sys/mutex.h>
#include <sys/malloc.h>
#include <sys/selinfo.h>
+#include <sys/sysctl.h>
#include <sys/taskqueue.h>
#include <sys/uio.h>
#include <machine/resource.h>
==== //depot/projects/mjacob-dev/sys/dev/mfi/mfi_disk.c#2 (text) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_disk.c,v 1.8 2008/11/17 23:30:19 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_disk.c,v 1.9 2011/11/16 15:39:27 jhb Exp $");
#include "opt_mfi.h"
@@ -35,6 +35,7 @@
#include <sys/selinfo.h>
#include <sys/module.h>
#include <sys/malloc.h>
+#include <sys/sysctl.h>
#include <sys/uio.h>
#include <sys/bio.h>
==== //depot/projects/mjacob-dev/sys/dev/mfi/mfi_pci.c#2 (text) ====
@@ -51,7 +51,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_pci.c,v 1.16 2010/03/02 17:34:11 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi_pci.c,v 1.17 2011/11/16 15:39:27 jhb Exp $");
/* PCI/PCI-X/PCIe bus interface for the LSI MegaSAS controllers */
@@ -66,6 +66,7 @@
#include <sys/conf.h>
#include <sys/bio.h>
#include <sys/malloc.h>
+#include <sys/sysctl.h>
#include <sys/uio.h>
#include <machine/bus.h>
@@ -107,6 +108,11 @@
DRIVER_MODULE(mfi, pci, mfi_pci_driver, mfi_devclass, 0, 0);
MODULE_VERSION(mfi, 1);
+static int mfi_msi = 0;
+TUNABLE_INT("hw.mfi.msi", &mfi_msi);
+SYSCTL_INT(_hw_mfi, OID_AUTO, msi, CTLFLAG_RDTUN, &mfi_msi, 0,
+ "Enable use of MSI interrupts");
+
struct mfi_ident {
uint16_t vendor;
uint16_t device;
@@ -169,7 +175,7 @@
struct mfi_softc *sc;
struct mfi_ident *m;
uint32_t command;
- int error;
+ int count, error;
sc = device_get_softc(dev);
bzero(sc, sizeof(*sc));
@@ -226,6 +232,20 @@
goto out;
}
+ /* Allocate IRQ resource. */
+ sc->mfi_irq_rid = 0;
+ count = 1;
+ if (mfi_msi && pci_alloc_msi(sc->mfi_dev, &count) == 0) {
+ device_printf(sc->mfi_dev, "Using MSI\n");
+ sc->mfi_irq_rid = 1;
+ }
+ if ((sc->mfi_irq = bus_alloc_resource_any(sc->mfi_dev, SYS_RES_IRQ,
+ &sc->mfi_irq_rid, RF_SHAREABLE | RF_ACTIVE)) == NULL) {
+ device_printf(sc->mfi_dev, "Cannot allocate interrupt\n");
+ error = EINVAL;
+ goto out;
+ }
+
error = mfi_attach(sc);
out:
if (error) {
@@ -280,6 +300,8 @@
bus_release_resource(sc->mfi_dev, SYS_RES_MEMORY,
sc->mfi_regs_rid, sc->mfi_regs_resource);
}
+ if (sc->mfi_irq_rid != 0)
+ pci_release_msi(sc->mfi_dev);
return;
}
==== //depot/projects/mjacob-dev/sys/dev/mfi/mfivar.h#4 (text) ====
@@ -54,7 +54,7 @@
#define _MFIVAR_H
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mfi/mfivar.h,v 1.15 2011/10/29 06:26:49 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mfi/mfivar.h,v 1.16 2011/11/16 15:39:27 jhb Exp $");
#include <sys/lock.h>
#include <sys/sx.h>
@@ -395,6 +395,7 @@
(sc)->mfi_bhandle, (reg))
MALLOC_DECLARE(M_MFIBUF);
+SYSCTL_DECL(_hw_mfi);
#define MFI_CMD_TIMEOUT 30
#define MFI_MAXPHYS (128 * 1024)
==== //depot/projects/mjacob-dev/sys/dev/msk/if_msk.c#7 (text+ko) ====
@@ -99,7 +99,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/msk/if_msk.c,v 1.118 2011/10/17 19:49:00 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/msk/if_msk.c,v 1.119 2011/11/16 19:25:26 yongari Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -700,7 +700,7 @@
{
struct msk_ring_data *rd;
struct msk_rxdesc *rxd;
- int i, prod;
+ int i, nbuf, prod;
MSK_IF_LOCK_ASSERT(sc_if);
@@ -710,11 +710,18 @@
rd = &sc_if->msk_rdata;
bzero(rd->msk_rx_ring, sizeof(struct msk_rx_desc) * MSK_RX_RING_CNT);
- prod = sc_if->msk_cdata.msk_rx_prod;
- i = 0;
+ for (i = prod = 0; i < MSK_RX_RING_CNT; i++) {
+ rxd = &sc_if->msk_cdata.msk_rxdesc[prod];
+ rxd->rx_m = NULL;
+ rxd->rx_le = &rd->msk_rx_ring[prod];
+ MSK_INC(prod, MSK_RX_RING_CNT);
+ }
+ nbuf = MSK_RX_BUF_CNT;
+ prod = 0;
/* Have controller know how to compute Rx checksum. */
if ((sc_if->msk_flags & MSK_FLAG_DESCV2) == 0 &&
(sc_if->msk_ifp->if_capenable & IFCAP_RXCSUM) != 0) {
+#ifdef MSK_64BIT_DMA
rxd = &sc_if->msk_cdata.msk_rxdesc[prod];
rxd->rx_m = NULL;
rxd->rx_le = &rd->msk_rx_ring[prod];
@@ -723,15 +730,21 @@
rxd->rx_le->msk_control = htole32(OP_TCPSTART | HW_OWNER);
MSK_INC(prod, MSK_RX_RING_CNT);
MSK_INC(sc_if->msk_cdata.msk_rx_cons, MSK_RX_RING_CNT);
- i++;
- }
- for (; i < MSK_RX_RING_CNT; i++) {
+#endif
rxd = &sc_if->msk_cdata.msk_rxdesc[prod];
rxd->rx_m = NULL;
rxd->rx_le = &rd->msk_rx_ring[prod];
+ rxd->rx_le->msk_addr = htole32(ETHER_HDR_LEN << 16 |
+ ETHER_HDR_LEN);
+ rxd->rx_le->msk_control = htole32(OP_TCPSTART | HW_OWNER);
+ MSK_INC(prod, MSK_RX_RING_CNT);
+ MSK_INC(sc_if->msk_cdata.msk_rx_cons, MSK_RX_RING_CNT);
+ nbuf--;
+ }
+ for (i = 0; i < nbuf; i++) {
if (msk_newbuf(sc_if, prod) != 0)
return (ENOBUFS);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list