PERFORCE change 78928 for review
John Baldwin
jhb at FreeBSD.org
Fri Jun 24 18:11:05 GMT 2005
http://perforce.freebsd.org/chv.cgi?CH=78928
Change 78928 by jhb at jhb_slimer on 2005/06/24 18:10:31
IFC @78925.
Affected files ...
.. //depot/projects/smpng/sys/alpha/conf/.cvsignore#1 branch
.. //depot/projects/smpng/sys/amd64/amd64/exception.S#13 integrate
.. //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#12 integrate
.. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#15 integrate
.. //depot/projects/smpng/sys/amd64/amd64/machdep.c#41 integrate
.. //depot/projects/smpng/sys/amd64/amd64/support.S#13 integrate
.. //depot/projects/smpng/sys/amd64/amd64/trap.c#27 integrate
.. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#27 integrate
.. //depot/projects/smpng/sys/amd64/conf/.cvsignore#1 branch
.. //depot/projects/smpng/sys/amd64/linux32/linux32_machdep.c#8 integrate
.. //depot/projects/smpng/sys/arm/arm/db_interface.c#5 integrate
.. //depot/projects/smpng/sys/arm/arm/pmap.c#18 integrate
.. //depot/projects/smpng/sys/arm/arm/trap.c#12 integrate
.. //depot/projects/smpng/sys/arm/arm/vm_machdep.c#13 integrate
.. //depot/projects/smpng/sys/arm/conf/.cvsignore#1 branch
.. //depot/projects/smpng/sys/arm/include/atomic.h#13 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/iq31244_machdep.c#12 integrate
.. //depot/projects/smpng/sys/cam/cam_xpt.c#30 integrate
.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#20 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_stats.c#28 integrate
.. //depot/projects/smpng/sys/conf/NOTES#99 integrate
.. //depot/projects/smpng/sys/conf/files#142 integrate
.. //depot/projects/smpng/sys/conf/files.i386#84 integrate
.. //depot/projects/smpng/sys/conf/files.pc98#75 integrate
.. //depot/projects/smpng/sys/conf/options#100 integrate
.. //depot/projects/smpng/sys/conf/options.i386#48 integrate
.. //depot/projects/smpng/sys/conf/options.pc98#47 integrate
.. //depot/projects/smpng/sys/contrib/ipfilter/netinet/fil.c#18 integrate
.. //depot/projects/smpng/sys/contrib/ipfilter/netinet/ip_htable.c#2 integrate
.. //depot/projects/smpng/sys/dev/acpi_support/acpi_ibm.c#4 integrate
.. //depot/projects/smpng/sys/dev/aic/aic_pccard.c#10 integrate
.. //depot/projects/smpng/sys/dev/amr/amr.c#31 integrate
.. //depot/projects/smpng/sys/dev/an/if_an_pccard.c#16 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-card.c#27 integrate
.. //depot/projects/smpng/sys/dev/awi/if_awi_pccard.c#15 integrate
.. //depot/projects/smpng/sys/dev/cs/if_cs_pccard.c#12 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#29 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep_pccard.c#18 integrate
.. //depot/projects/smpng/sys/dev/ex/if_ex_pccard.c#10 integrate
.. //depot/projects/smpng/sys/dev/fatm/if_fatm.c#13 integrate
.. //depot/projects/smpng/sys/dev/fdc/fdc_pccard.c#7 integrate
.. //depot/projects/smpng/sys/dev/fe/if_fe_pccard.c#14 integrate
.. //depot/projects/smpng/sys/dev/hatm/if_hatmvar.h#9 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_amd.c#3 integrate
.. //depot/projects/smpng/sys/dev/iwi/if_iwi.c#3 integrate
.. //depot/projects/smpng/sys/dev/ncv/ncr53c500_pccard.c#18 integrate
.. //depot/projects/smpng/sys/dev/nsp/nsp_pccard.c#14 integrate
.. //depot/projects/smpng/sys/dev/owi/if_owi_pccard.c#5 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccarddevs#45 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccardvar.h#21 integrate
.. //depot/projects/smpng/sys/dev/ral/if_ral_pccard.c#2 integrate
.. //depot/projects/smpng/sys/dev/sn/if_sn_pccard.c#14 integrate
.. //depot/projects/smpng/sys/dev/stg/tmc18c30_pccard.c#15 integrate
.. //depot/projects/smpng/sys/dev/uart/uart_cpu_alpha.c#7 integrate
.. //depot/projects/smpng/sys/dev/utopia/utopia.c#10 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#34 integrate
.. //depot/projects/smpng/sys/dev/xe/if_xe_pccard.c#18 integrate
.. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_fs.h#2 integrate
.. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_fs_sb.h#2 integrate
.. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_linux_balloc.c#2 integrate
.. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#2 integrate
.. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_vfsops.c#2 integrate
.. //depot/projects/smpng/sys/gnu/fs/ext2fs/i386-bitops.h#2 integrate
.. //depot/projects/smpng/sys/gnu/fs/ext2fs/sparc64-bitops.h#2 integrate
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/README#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_fs.h#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_fs_i.h#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_fs_sb.h#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_hashes.c#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_inode.c#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_item_ops.c#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_mount.h#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_namei.c#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_prints.c#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_stree.c#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_vfsops.c#1 branch
.. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_vnops.c#1 branch
.. //depot/projects/smpng/sys/gnu/reiserfs/README#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_fs.h#3 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_fs_i.h#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_fs_sb.h#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_hashes.c#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_inode.c#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_item_ops.c#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_mount.h#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_namei.c#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_prints.c#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_stree.c#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_vfsops.c#2 delete
.. //depot/projects/smpng/sys/gnu/reiserfs/reiserfs_vnops.c#2 delete
.. //depot/projects/smpng/sys/i386/conf/.cvsignore#1 branch
.. //depot/projects/smpng/sys/i386/conf/NOTES#102 integrate
.. //depot/projects/smpng/sys/i386/i386/local_apic.c#31 integrate
.. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#43 integrate
.. //depot/projects/smpng/sys/i386/i386/trap.c#78 integrate
.. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#69 integrate
.. //depot/projects/smpng/sys/i4b/driver/i4b_ipr.c#22 integrate
.. //depot/projects/smpng/sys/i4b/driver/i4b_isppp.c#14 integrate
.. //depot/projects/smpng/sys/ia64/conf/.cvsignore#1 branch
.. //depot/projects/smpng/sys/kern/imgact_shell.c#11 integrate
.. //depot/projects/smpng/sys/kern/kern_clock.c#40 integrate
.. //depot/projects/smpng/sys/kern/kern_exec.c#86 integrate
.. //depot/projects/smpng/sys/kern/kern_intr.c#68 integrate
.. //depot/projects/smpng/sys/kern/kern_jail.c#40 integrate
.. //depot/projects/smpng/sys/kern/kern_kse.c#22 integrate
.. //depot/projects/smpng/sys/kern/kern_ktrace.c#45 integrate
.. //depot/projects/smpng/sys/kern/kern_malloc.c#36 integrate
.. //depot/projects/smpng/sys/kern/kern_mbuf.c#6 integrate
.. //depot/projects/smpng/sys/kern/sched_4bsd.c#52 integrate
.. //depot/projects/smpng/sys/kern/sched_ule.c#58 integrate
.. //depot/projects/smpng/sys/kern/subr_disk.c#26 integrate
.. //depot/projects/smpng/sys/kern/vfs_cache.c#29 integrate
.. //depot/projects/smpng/sys/kern/vfs_subr.c#104 integrate
.. //depot/projects/smpng/sys/kern/vfs_syscalls.c#91 integrate
.. //depot/projects/smpng/sys/modules/Makefile#98 integrate
.. //depot/projects/smpng/sys/modules/libalias/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/reiserfs/Makefile#2 integrate
.. //depot/projects/smpng/sys/net/if.c#67 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c#10 integrate
.. //depot/projects/smpng/sys/netinet/in_gif.c#15 integrate
.. //depot/projects/smpng/sys/netinet/ip_fw2.c#54 integrate
.. //depot/projects/smpng/sys/netinet/ip_mroute.c#40 integrate
.. //depot/projects/smpng/sys/netinet/libalias/alias_util.c#2 integrate
.. //depot/projects/smpng/sys/netinet/tcp_sack.c#12 integrate
.. //depot/projects/smpng/sys/netinet6/in6_gif.c#10 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#42 integrate
.. //depot/projects/smpng/sys/pc98/conf/.cvsignore#1 branch
.. //depot/projects/smpng/sys/pc98/conf/NOTES#39 integrate
.. //depot/projects/smpng/sys/powerpc/conf/.cvsignore#1 branch
.. //depot/projects/smpng/sys/sparc64/conf/.cvsignore#1 branch
.. //depot/projects/smpng/sys/sys/mutex.h#57 integrate
.. //depot/projects/smpng/sys/vm/uma_int.h#27 integrate
Differences ...
==== //depot/projects/smpng/sys/amd64/amd64/exception.S#13 (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.123 2005/05/22 23:28:17 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.124 2005/06/24 00:38:36 peter Exp $
*/
#include "opt_atpic.h"
@@ -119,7 +119,7 @@
subq $TF_ERR,%rsp; \
movq $(a),TF_TRAPNO(%rsp) ; \
movq $0,TF_ADDR(%rsp) ; \
- jmp alltraps_noen
+ jmp alltraps
IDTVEC(tss)
TRAP_ERR(T_TSSFLT)
IDTVEC(missing)
==== //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#12 (text+ko) ====
@@ -26,11 +26,11 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.14 2005/04/12 23:18:53 jhb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.15 2005/06/24 00:45:01 peter Exp $
*/
/*
- * Machine dependent interrupt code for i386. For the i386, we have to
+ * Machine dependent interrupt code for amd64. For amd64, we have to
* deal with different PICs. Thus, we use the passed in vector to lookup
* an interrupt source associated with that vector. The interrupt source
* describes which PIC the source belongs to and includes methods to handle
==== //depot/projects/smpng/sys/amd64/amd64/local_apic.c#15 (text+ko) ====
@@ -32,7 +32,9 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.15 2005/05/22 16:32:02 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.17 2005/06/24 00:45:01 peter Exp $");
+
+#include "opt_hwpmc_hooks.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -837,7 +839,7 @@
#ifdef SMP
/*
* Inter Processor Interrupt functions. The lapic_ipi_*() functions are
- * private to the sys/i386 code. The public interface for the rest of the
+ * private to the sys/amd64 code. The public interface for the rest of the
* kernel is defined in mp_machdep.c.
*/
int
==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#41 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.636 2005/05/05 18:19:53 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.637 2005/06/24 00:45:01 peter Exp $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -661,7 +661,7 @@
CTLFLAG_RW, &wall_cmos_clock, 0, "");
/*
- * Initialize 386 and configure to run kernel
+ * Initialize amd64 and configure to run kernel
*/
/*
==== //depot/projects/smpng/sys/amd64/amd64/support.S#13 (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/support.S,v 1.114 2005/04/10 18:12:07 alc Exp $
+ * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.115 2005/06/24 00:45:01 peter Exp $
*/
#include "opt_ddb.h"
@@ -201,14 +201,8 @@
/* copyout and fubyte family */
/*****************************************************************************/
/*
- * Access user memory from inside the kernel. These routines and possibly
- * the math- and DOS emulators should be the only places that do this.
- *
- * We have to access the memory with user's permissions, so use a segment
- * selector with RPL 3. For writes to user space we have to additionally
- * check the PTE for write permission, because the 386 does not check
- * write permissions when we are executing with EPL 0. The 486 does check
- * this if the WP bit is set in CR0, so we can use a simpler version here.
+ * Access user memory from inside the kernel. These routines should be
+ * the only places that do this.
*
* These routines set curpcb->onfault for the time they execute. When a
* protection violation occurs inside the functions, the trap handler
@@ -592,7 +586,7 @@
ret
/*
- * Handling of special 386 registers and descriptor tables etc
+ * Handling of special amd64 registers and descriptor tables etc
* %rdi
*/
/* void lgdt(struct region_descriptor *rdp); */
==== //depot/projects/smpng/sys/amd64/amd64/trap.c#27 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.286 2005/05/30 06:29:28 jkoshy Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.287 2005/06/24 00:16:56 peter Exp $");
/*
* AMD64 Trap and System call handling
@@ -46,6 +46,7 @@
#include "opt_clock.h"
#include "opt_cpu.h"
+#include "opt_hwpmc_hooks.h"
#include "opt_isa.h"
#include "opt_ktrace.h"
==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#27 (text+ko) ====
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.246 2005/04/23 02:32:30 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.247 2005/06/24 00:29:53 peter Exp $");
#include "opt_isa.h"
#include "opt_cpu.h"
@@ -206,14 +206,14 @@
void
cpu_thread_exit(struct thread *td)
{
- struct pcb *pcb = td->td_pcb;
if (td == PCPU_GET(fpcurthread))
fpudrop();
- if (pcb->pcb_flags & PCB_DBREGS) {
- /* disable all hardware breakpoints */
+
+ /* Disable any hardware breakpoints. */
+ if (td->td_pcb->pcb_flags & PCB_DBREGS) {
reset_dbregs();
- pcb->pcb_flags &= ~PCB_DBREGS;
+ td->td_pcb->pcb_flags &= ~PCB_DBREGS;
}
}
==== //depot/projects/smpng/sys/amd64/linux32/linux32_machdep.c#8 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.9 2005/04/05 15:28:06 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.10 2005/06/24 17:41:27 jhb Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -113,7 +113,8 @@
* Allocate temporary demand zeroed space for argument and
* environment strings
*/
- args->buf = (char *) kmem_alloc_wait(exec_map, PATH_MAX + ARG_MAX);
+ args->buf = (char *) kmem_alloc_wait(exec_map,
+ PATH_MAX + ARG_MAX + MAXSHELLCMDLEN);
if (args->buf == NULL)
return (ENOMEM);
args->begin_argv = args->buf;
==== //depot/projects/smpng/sys/arm/arm/db_interface.c#5 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/db_interface.c,v 1.4 2005/01/05 21:58:47 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/db_interface.c,v 1.5 2005/06/23 11:38:47 cognet Exp $");
#include "opt_ddb.h"
#include <sys/param.h>
@@ -71,27 +71,29 @@
int db_access_abt_sp (struct db_variable *, db_expr_t *, int);
int db_access_irq_sp (struct db_variable *, db_expr_t *, int);
+static db_varfcn_t db_frame;
+
#define DB_OFFSET(x) (db_expr_t *)offsetof(struct trapframe, x)
struct db_variable db_regs[] = {
- { "spsr", DB_OFFSET(tf_spsr), FCN_NULL, },
- { "r0", DB_OFFSET(tf_r0), FCN_NULL, },
- { "r1", DB_OFFSET(tf_r1), FCN_NULL, },
- { "r2", DB_OFFSET(tf_r2), FCN_NULL, },
- { "r3", DB_OFFSET(tf_r3), FCN_NULL, },
- { "r4", DB_OFFSET(tf_r4), FCN_NULL, },
- { "r5", DB_OFFSET(tf_r5), FCN_NULL, },
- { "r6", DB_OFFSET(tf_r6), FCN_NULL, },
- { "r7", DB_OFFSET(tf_r7), FCN_NULL, },
- { "r8", DB_OFFSET(tf_r8), FCN_NULL, },
- { "r9", DB_OFFSET(tf_r9), FCN_NULL, },
- { "r10", DB_OFFSET(tf_r10), FCN_NULL, },
- { "r11", DB_OFFSET(tf_r11), FCN_NULL, },
- { "r12", DB_OFFSET(tf_r12), FCN_NULL, },
- { "usr_sp", DB_OFFSET(tf_usr_sp), FCN_NULL, },
- { "usr_lr", DB_OFFSET(tf_usr_lr), FCN_NULL, },
- { "svc_sp", DB_OFFSET(tf_svc_sp), FCN_NULL, },
- { "svc_lr", DB_OFFSET(tf_svc_lr), FCN_NULL, },
- { "pc", DB_OFFSET(tf_pc), FCN_NULL, },
+ { "spsr", DB_OFFSET(tf_spsr), db_frame },
+ { "r0", DB_OFFSET(tf_r0), db_frame },
+ { "r1", DB_OFFSET(tf_r1), db_frame },
+ { "r2", DB_OFFSET(tf_r2), db_frame },
+ { "r3", DB_OFFSET(tf_r3), db_frame },
+ { "r4", DB_OFFSET(tf_r4), db_frame },
+ { "r5", DB_OFFSET(tf_r5), db_frame },
+ { "r6", DB_OFFSET(tf_r6), db_frame },
+ { "r7", DB_OFFSET(tf_r7), db_frame },
+ { "r8", DB_OFFSET(tf_r8), db_frame },
+ { "r9", DB_OFFSET(tf_r9), db_frame },
+ { "r10", DB_OFFSET(tf_r10), db_frame },
+ { "r11", DB_OFFSET(tf_r11), db_frame },
+ { "r12", DB_OFFSET(tf_r12), db_frame },
+ { "usr_sp", DB_OFFSET(tf_usr_sp), db_frame },
+ { "usr_lr", DB_OFFSET(tf_usr_lr), db_frame },
+ { "svc_sp", DB_OFFSET(tf_svc_sp), db_frame },
+ { "svc_lr", DB_OFFSET(tf_svc_lr), db_frame },
+ { "pc", DB_OFFSET(tf_pc), db_frame },
{ "und_sp", &nil, db_access_und_sp, },
{ "abt_sp", &nil, db_access_abt_sp, },
{ "irq_sp", &nil, db_access_irq_sp, },
@@ -103,8 +105,10 @@
db_access_und_sp(struct db_variable *vp, db_expr_t *valp, int rw)
{
- if (rw == DB_VAR_GET)
+ if (rw == DB_VAR_GET) {
*valp = get_stackptr(PSR_UND32_MODE);
+ return (1);
+ }
return(0);
}
@@ -112,8 +116,10 @@
db_access_abt_sp(struct db_variable *vp, db_expr_t *valp, int rw)
{
- if (rw == DB_VAR_GET)
+ if (rw == DB_VAR_GET) {
*valp = get_stackptr(PSR_ABT32_MODE);
+ return (1);
+ }
return(0);
}
@@ -121,11 +127,28 @@
db_access_irq_sp(struct db_variable *vp, db_expr_t *valp, int rw)
{
- if (rw == DB_VAR_GET)
+ if (rw == DB_VAR_GET) {
*valp = get_stackptr(PSR_IRQ32_MODE);
+ return (1);
+ }
return(0);
}
+int db_frame(struct db_variable *vp, db_expr_t *valp, int rw)
+{
+ int *reg;
+
+ if (kdb_frame == NULL)
+ return (0);
+
+ reg = (int *)((uintptr_t)kdb_frame + (db_expr_t)vp->valuep);
+ if (rw == DB_VAR_GET)
+ *valp = *reg;
+ else
+ *reg = *valp;
+ return(1);
+}
+
void
db_show_mdpcpu(struct pcpu *pc)
{
==== //depot/projects/smpng/sys/arm/arm/pmap.c#18 (text+ko) ====
@@ -147,7 +147,7 @@
#include "opt_vm.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.34 2005/06/10 13:31:30 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.36 2005/06/23 11:37:41 cognet Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -1089,6 +1089,9 @@
#ifndef PMAP_INCLUDE_PTE_SYNC
struct l2_bucket *l2b;
pt_entry_t *ptep, pte;
+#ifdef ARM_USE_SMALL_ALLOC
+ pd_entry_t *pde;
+#endif
vm_offset_t va = (vm_offset_t)mem & ~PAGE_MASK;
/*
@@ -1100,7 +1103,8 @@
* correct.
*/
#ifdef ARM_USE_SMALL_ALLOC
- if (flags & UMA_SLAB_KMEM) {
+ pde = &kernel_pmap->pm_l1->l1_kva[L1_IDX(va)];
+ if (!l1pte_section_p(*pde)) {
#endif
l2b = pmap_get_l2_bucket(pmap_kernel(), va);
ptep = &l2b->l2b_kva[l2pte_index(va)];
@@ -2406,6 +2410,7 @@
#ifdef ARM_USE_SMALL_ALLOC
extern struct mtx smallalloc_mtx;
extern vm_offset_t alloc_curaddr;
+extern vm_offset_t alloc_firstaddr;
#endif
void
@@ -2561,7 +2566,7 @@
kernel_vm_end = pmap_curmaxkvaddr;
#ifdef ARM_USE_SMALL_ALLOC
mtx_init(&smallalloc_mtx, "Small alloc page list", NULL, MTX_DEF);
- alloc_curaddr = lastaddr;
+ alloc_firstaddr = alloc_curaddr = lastaddr;
#endif
}
==== //depot/projects/smpng/sys/arm/arm/trap.c#12 (text+ko) ====
@@ -82,7 +82,7 @@
#include "opt_ktrace.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/trap.c,v 1.15 2005/05/25 13:46:32 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/trap.c,v 1.17 2005/06/23 11:39:18 cognet Exp $");
#include <sys/types.h>
@@ -118,12 +118,12 @@
#include <machine/pcb.h>
#include <machine/proc.h>
#include <machine/swi.h>
-#if !defined(DDB)
-#define kdb_trap kgdb_trap
+
+#ifdef KDB
+#include <sys/kdb.h>
#endif
-
void swi_handler(trapframe_t *);
void undefinedinstruction(trapframe_t *);
@@ -406,8 +406,8 @@
#ifdef DEBUG
last_fault_code = fsr;
#endif
- if (pmap_fault_fixup(user ? vmspace_pmap(td->td_proc->p_vmspace) :
- kernel_pmap, va, ftype, user)) {
+ if (pmap_fault_fixup(vmspace_pmap(td->td_proc->p_vmspace), va, ftype,
+ user)) {
goto out;
}
@@ -512,8 +512,8 @@
tf->tf_svc_sp, tf->tf_svc_lr);
printf(", pc =%08x\n\n", tf->tf_pc);
-#if defined(DDB) || defined(KGDB)
- kdb_trap(T_FAULT, tf);
+#ifdef KDB
+ kdb_trap(fsr, 0, tf);
#endif
panic("Fatal abort");
/*NOTREACHED*/
==== //depot/projects/smpng/sys/arm/arm/vm_machdep.c#13 (text+ko) ====
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.15 2005/06/07 23:04:24 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.16 2005/06/23 11:37:41 cognet Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -380,6 +380,7 @@
MALLOC_DEFINE(M_VMSMALLALLOC, "VM Small alloc", "VM Small alloc data");
vm_offset_t alloc_curaddr;
+vm_offset_t alloc_firstaddr;
extern int doverbose;
@@ -463,15 +464,12 @@
/* No more free pages, need to alloc more. */
mtx_unlock(&smallalloc_mtx);
if (!(wait & M_WAITOK)) {
- *flags = UMA_SLAB_KMEM;
ret = (void *)kmem_malloc(kmem_map, bytes, wait);
return (ret);
}
/* Try to alloc 1MB of contiguous memory. */
ret = arm_uma_do_alloc(&sp, bytes, zone == l2zone ?
SECTION_PT : SECTION_CACHE);
- if (!sp)
- *flags = UMA_SLAB_KMEM;
mtx_lock(&smallalloc_mtx);
if (sp) {
for (int i = 0; i < (0x100000 / PAGE_SIZE) - 1;
@@ -490,10 +488,6 @@
TAILQ_REMOVE(head, sp, pg_list);
TAILQ_INSERT_HEAD(&free_pgdesc, sp, pg_list);
ret = sp->addr;
- if (ret == NULL)
- panic("NULL");
- if (ret < (void *)0xa0000000)
- panic("BLA %p", ret);
}
mtx_unlock(&smallalloc_mtx);
if ((wait & M_ZERO))
@@ -507,7 +501,7 @@
pd_entry_t *pd;
pt_entry_t *pt;
- if (flags & UMA_SLAB_KMEM)
+ if (mem < (void *)alloc_firstaddr)
kmem_free(kmem_map, (vm_offset_t)mem, size);
else {
struct arm_small_page *sp;
==== //depot/projects/smpng/sys/arm/include/atomic.h#13 (text+ko) ====
@@ -33,7 +33,7 @@
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/arm/include/atomic.h,v 1.7 2005/05/24 21:42:31 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/atomic.h,v 1.8 2005/06/23 21:54:17 jhb Exp $
*/
#ifndef _MACHINE_ATOMIC_H_
==== //depot/projects/smpng/sys/arm/xscale/i80321/iq31244_machdep.c#12 (text+ko) ====
@@ -48,7 +48,7 @@
#include "opt_msgbuf.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq31244_machdep.c,v 1.12 2005/06/07 23:04:24 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq31244_machdep.c,v 1.13 2005/06/23 11:40:45 cognet Exp $");
#define _ARM32_BUS_DMA_PRIVATE
#include <sys/param.h>
@@ -101,8 +101,7 @@
#define KERNEL_PT_SYS 0 /* Page table for mapping proc0 zero page */
#define KERNEL_PT_IOPXS 1
#define KERNEL_PT_BEFOREKERN 2
-#define KERNEL_PT_PHYS 3
-#define KERNEL_PT_AFKERNEL 4 /* L2 table for mapping after kernel */
+#define KERNEL_PT_AFKERNEL 3 /* L2 table for mapping after kernel */
#define KERNEL_PT_AFKERNEL_NUM 9
/* this should be evenly divisable by PAGE_SIZE / L2_TABLE_SIZE_REAL (or 4) */
@@ -319,18 +318,13 @@
&kernel_pt_table[KERNEL_PT_IOPXS]);
pmap_link_l2pt(l1pagetable, KERNBASE,
&kernel_pt_table[KERNEL_PT_BEFOREKERN]);
- pmap_link_l2pt(l1pagetable, SDRAM_START,
- &kernel_pt_table[KERNEL_PT_PHYS]);
- pmap_map_chunk(l1pagetable, KERNBASE, SDRAM_START,
- 0x100000,
+ pmap_map_chunk(l1pagetable, KERNBASE, SDRAM_START, 0x100000,
VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
pmap_map_chunk(l1pagetable, KERNBASE + 0x100000, SDRAM_START + 0x100000,
0x100000, VM_PROT_READ|VM_PROT_WRITE, PTE_PAGETABLE);
pmap_map_chunk(l1pagetable, KERNBASE + 0x200000, SDRAM_START + 0x200000,
(((uint32_t)(&end) - KERNBASE - 0x200000) + L1_S_SIZE) & ~(L1_S_SIZE - 1),
VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
- pmap_map_entry(l1pagetable, minidataclean.pv_pa, minidataclean.pv_pa,
- VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
freemem_after = ((int)&end + PAGE_SIZE) & ~(PAGE_SIZE - 1);
afterkern = round_page(((vm_offset_t)&end + L1_S_SIZE) & ~(L1_S_SIZE
- 1));
@@ -338,6 +332,9 @@
pmap_link_l2pt(l1pagetable, afterkern + i * 0x00100000,
&kernel_pt_table[KERNEL_PT_AFKERNEL + i]);
}
+ pmap_map_entry(l1pagetable, afterkern, minidataclean.pv_pa,
+ VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
+
#ifdef ARM_USE_SMALL_ALLOC
if ((freemem_after + 2 * PAGE_SIZE) <= afterkern) {
@@ -349,7 +346,7 @@
#endif
/* Map the Mini-Data cache clean area. */
- xscale_setup_minidata(l1pagetable, minidataclean.pv_pa,
+ xscale_setup_minidata(l1pagetable, afterkern,
minidataclean.pv_pa);
/* Map the vector page. */
@@ -428,7 +425,7 @@
- pmap_curmaxkvaddr = afterkern;
+ pmap_curmaxkvaddr = afterkern + PAGE_SIZE;
pmap_bootstrap(pmap_curmaxkvaddr,
0xd0000000, &kernel_l1pt);
msgbufp = (void*)msgbufpv.pv_va;
==== //depot/projects/smpng/sys/cam/cam_xpt.c#30 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.153 2005/05/11 17:39:33 kan Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.154 2005/06/24 08:09:05 avatar Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -5107,6 +5107,8 @@
devq = bus->sim->devq;
cam_devq_resize(devq, devq->alloc_queue.array_size - 1);
splx(s);
+ camq_fini(&device->drvq);
+ camq_fini(&device->ccbq.queue);
free(device, M_DEVBUF);
xpt_release_target(bus, target);
} else
==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#20 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.35 2005/06/11 14:58:20 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.36 2005/06/24 17:41:28 jhb Exp $");
#include "opt_compat.h"
@@ -237,7 +237,8 @@
* Allocate temporary demand zeroed space for argument and
* environment strings
*/
- args->buf = (char *) kmem_alloc_wait(exec_map, PATH_MAX + ARG_MAX);
+ args->buf = (char *) kmem_alloc_wait(exec_map,
+ PATH_MAX + ARG_MAX + MAXSHELLCMDLEN);
if (args->buf == NULL)
return (ENOMEM);
args->begin_argv = args->buf;
==== //depot/projects/smpng/sys/compat/linux/linux_stats.c#28 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_stats.c,v 1.71 2005/06/09 18:49:19 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_stats.c,v 1.72 2005/06/23 22:13:29 pjd Exp $");
#include "opt_mac.h"
@@ -331,9 +331,6 @@
if (dev != NULL && vfinddev(dev, &vp)) {
if (vp->v_mount == NULL)
return (EINVAL);
- error = prison_canseemount(td->td_ucred, vp->v_mount);
- if (error)
- return (error);
#ifdef MAC
error = mac_check_mount_stat(td->td_ucred, vp->v_mount);
if (error)
==== //depot/projects/smpng/sys/conf/NOTES#99 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1324 2005/06/14 14:21:24 ups Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1325 2005/06/21 10:17:54 dumbbell Exp $
#
# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
#
@@ -918,6 +918,12 @@
#
options EXT2FS
+#
+# Add support for the ReiserFS filesystem (used in Linux). Currently,
+# this is limited to read-only access.
+#
+options REISERFS
+
# Use real implementations of the aio_* system calls. There are numerous
# stability and security issues in the current aio code that make it
# unsuitable for inclusion on machines with untrusted local users.
==== //depot/projects/smpng/sys/conf/files#142 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1027 2005/06/15 02:36:11 rodrigc Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1030 2005/06/21 10:17:54 dumbbell Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -583,6 +583,8 @@
dev/hme/if_hme.c optional hme
dev/hme/if_hme_pci.c optional hme pci
dev/hme/if_hme_sbus.c optional hme sbus
+dev/hwpmc/hwpmc_logging.c optional hwpmc
+dev/hwpmc/hwpmc_mod.c optional hwpmc
dev/ichsmb/ichsmb.c optional ichsmb
dev/ichsmb/ichsmb_pci.c optional ichsmb pci
dev/ida/ida.c optional ida
@@ -1068,12 +1070,16 @@
gnu/fs/ext2fs/ext2_subr.c optional ext2fs
gnu/fs/ext2fs/ext2_vfsops.c optional ext2fs
gnu/fs/ext2fs/ext2_vnops.c optional ext2fs
-#
-# Support for hardware performance monitoring counters
+gnu/fs/reiserfs/reiserfs_hashes.c optional reiserfs \
+ warning "kernel contains GPL contaminated ReiserFS filesystem"
+gnu/fs/reiserfs/reiserfs_inode.c optional reiserfs
+gnu/fs/reiserfs/reiserfs_item_ops.c optional reiserfs
+gnu/fs/reiserfs/reiserfs_namei.c optional reiserfs
+gnu/fs/reiserfs/reiserfs_prints.c optional reiserfs
+gnu/fs/reiserfs/reiserfs_stree.c optional reiserfs
+gnu/fs/reiserfs/reiserfs_vfsops.c optional reiserfs
+gnu/fs/reiserfs/reiserfs_vnops.c optional reiserfs
#
-dev/hwpmc/hwpmc_mod.c optional hwpmc
-dev/hwpmc/hwpmc_logging.c optional hwpmc
-#
# isdn4bsd device drivers
#
i4b/driver/i4b_trace.c optional i4btrc
@@ -1591,7 +1597,6 @@
netinet/libalias/alias_ftp.c optional libalias
netinet/libalias/alias_irc.c optional libalias
netinet/libalias/alias_nbt.c optional libalias
-netinet/libalias/alias_old.c optional libalias
netinet/libalias/alias_pptp.c optional libalias
netinet/libalias/alias_proxy.c optional libalias
netinet/libalias/alias_skinny.c optional libalias
==== //depot/projects/smpng/sys/conf/files.i386#84 (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.i386,v 1.536 2005/06/12 00:47:21 marcel Exp $
+# $FreeBSD: src/sys/conf/files.i386,v 1.538 2005/06/21 10:17:54 dumbbell Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -224,15 +224,6 @@
geom/geom_bsd_enc.c standard
geom/geom_mbr.c standard
geom/geom_mbr_enc.c standard
-gnu/reiserfs/reiserfs_hashes.c optional reiserfs \
- warning "kernel contains GPL contaminated ReiserFS filesystem"
-gnu/reiserfs/reiserfs_inode.c optional reiserfs
-gnu/reiserfs/reiserfs_item_ops.c optional reiserfs
-gnu/reiserfs/reiserfs_namei.c optional reiserfs
-gnu/reiserfs/reiserfs_prints.c optional reiserfs
-gnu/reiserfs/reiserfs_stree.c optional reiserfs
-gnu/reiserfs/reiserfs_vfsops.c optional reiserfs
-gnu/reiserfs/reiserfs_vnops.c optional reiserfs
dev/acpica/acpi_if.m standard
i386/acpica/OsdEnvironment.c optional acpi
i386/acpica/acpi_machdep.c optional acpi
==== //depot/projects/smpng/sys/conf/files.pc98#75 (text+ko) ====
@@ -3,7 +3,7 @@
#
# modified for PC-9801/PC-9821
#
-# $FreeBSD: src/sys/conf/files.pc98,v 1.326 2005/06/12 00:47:21 marcel Exp $
+# $FreeBSD: src/sys/conf/files.pc98,v 1.327 2005/06/21 10:17:54 dumbbell Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -157,15 +157,6 @@
geom/geom_bsd_enc.c standard
geom/geom_pc98.c standard
geom/geom_pc98_enc.c standard
-gnu/reiserfs/reiserfs_hashes.c optional reiserfs \
- warning "kernel contains GPL contaminated ReiserFS filesystem"
-gnu/reiserfs/reiserfs_inode.c optional reiserfs
-gnu/reiserfs/reiserfs_item_ops.c optional reiserfs
-gnu/reiserfs/reiserfs_namei.c optional reiserfs
-gnu/reiserfs/reiserfs_prints.c optional reiserfs
-gnu/reiserfs/reiserfs_stree.c optional reiserfs
-gnu/reiserfs/reiserfs_vfsops.c optional reiserfs
-gnu/reiserfs/reiserfs_vnops.c optional reiserfs
i386/bios/apm.c optional apm
#i386/i386/apic_vector.s optional apic
i386/i386/atomic.c standard \
==== //depot/projects/smpng/sys/conf/options#100 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.506 2005/06/10 08:05:12 glebius Exp $
+# $FreeBSD: src/sys/conf/options,v 1.508 2005/06/24 00:16:57 peter Exp $
#
# On the handling of kernel options
#
@@ -177,6 +177,7 @@
PORTALFS opt_dontuse.h
PROCFS opt_dontuse.h
PSEUDOFS opt_dontuse.h
+REISERFS opt_dontuse.h
SMBFS opt_dontuse.h
UDF opt_dontuse.h
UMAPFS opt_dontuse.h
@@ -706,4 +707,4 @@
LOOKUP_SHARED opt_vfs.h
# HWPMC options
-HWPMC_HOOKS opt_global.h
+HWPMC_HOOKS
==== //depot/projects/smpng/sys/conf/options.i386#48 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.i386,v 1.222 2005/05/24 12:28:21 dumbbell Exp $
+# $FreeBSD: src/sys/conf/options.i386,v 1.223 2005/06/21 10:17:54 dumbbell Exp $
# Options specific to the i386 platform kernels
AUTO_EOI_1 opt_auto_eoi.h
@@ -120,9 +120,6 @@
# Enables NETGRAPH support for Cronyx adapters
NETGRAPH_CRONYX opt_ng_cronyx.h
-# ReiserFS
-REISERFS opt_dontuse.h
-
# -------------------------------
# isdn4bsd: passive ISA cards
# -------------------------------
==== //depot/projects/smpng/sys/conf/options.pc98#47 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.pc98,v 1.186 2005/05/25 12:32:06 nyan Exp $
+# $FreeBSD: src/sys/conf/options.pc98,v 1.187 2005/06/24 13:19:09 des Exp $
# Options specific to the pc98 platform kernels
AUTO_EOI_1 opt_auto_eoi.h
@@ -72,9 +72,6 @@
# Enables NETGRAPH support for Cronyx adapters
NETGRAPH_CRONYX opt_ng_cronyx.h
-# ReiserFS
-REISERFS opt_dontuse.h
-
# -------------------------------
# isdn4bsd: passive PCI cards
# -------------------------------
==== //depot/projects/smpng/sys/contrib/ipfilter/netinet/fil.c#18 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.45 2005/04/27 03:48:09 darrenr Exp $ */
+/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.46 2005/06/23 14:19:02 darrenr Exp $ */
/*
* Copyright (C) 1993-2003 by Darren Reed.
@@ -136,7 +136,7 @@
#if !defined(lint)
static const char sccsid[] = "@(#)fil.c 1.36 6/5/96 (C) 1993-2000 Darren Reed";
-static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.45 2005/04/27 03:48:09 darrenr Exp $";
+static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.46 2005/06/23 14:19:02 darrenr Exp $";
/* static const char rcsid[] = "@(#)Id: fil.c,v 2.243.2.57 2005/03/28 10:47:50 darrenr Exp"; */
#endif
@@ -3998,10 +3998,15 @@
fprev = &fg->fg_start;
}
- for (f = *fprev; (f = *fprev) != NULL; fprev = &f->fr_next)
- if (fp->fr_collect <= f->fr_collect)
+ ftail = fprev;
+ for (f = *ftail; (f = *ftail) != NULL; ftail = &f->fr_next) {
+ if (fp->fr_collect <= f->fr_collect) {
+ ftail = fprev;
+ f = NULL;
break;
- ftail = fprev;
+ }
+ fprev = ftail;
+ }
/*
* Copy in extra data for the rule.
@@ -4140,14 +4145,17 @@
WRITE_ENTER(&ipf_mutex);
bzero((char *)frcache, sizeof(frcache));
- for (; (f = *ftail) != NULL; ftail = &f->fr_next)
- if ((fp->fr_cksum == f->fr_cksum) &&
- (f->fr_dsize == fp->fr_dsize) &&
- !bcmp((char *)&f->fr_func,
- (char *)&fp->fr_func, FR_CMPSIZ) &&
- (!ptr || !f->fr_data ||
+ for (; (f = *ftail) != NULL; ftail = &f->fr_next) {
+ if ((fp->fr_cksum != f->fr_cksum) ||
+ (f->fr_dsize != fp->fr_dsize))
+ continue;
+ if (bcmp((char *)&f->fr_func, (char *)&fp->fr_func, FR_CMPSIZ))
+ continue;
+ if ((!ptr && !f->fr_data) ||
+ (ptr && f->fr_data &&
!bcmp((char *)ptr, (char *)f->fr_data, f->fr_dsize)))
break;
+ }
/*
* If zero'ing statistics, copy current to caller and zero.
@@ -4193,12 +4201,40 @@
}
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list