PERFORCE change 120926 for review
Matt Jacob
mjacob at FreeBSD.org
Mon Jun 4 19:06:12 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=120926
Change 120926 by mjacob at mjexp on 2007/06/04 19:05:38
IFC
Affected files ...
.. //depot/projects/mjexp/share/mk/Makefile#3 integrate
.. //depot/projects/mjexp/share/mk/bsd.port.options.mk#1 branch
.. //depot/projects/mjexp/sys/amd64/amd64/machdep.c#12 integrate
.. //depot/projects/mjexp/sys/amd64/amd64/tsc.c#3 integrate
.. //depot/projects/mjexp/sys/amd64/include/vmparam.h#4 integrate
.. //depot/projects/mjexp/sys/amd64/isa/clock.c#6 integrate
.. //depot/projects/mjexp/sys/arm/at91/uart_cpu_at91rm9200usart.c#3 integrate
.. //depot/projects/mjexp/sys/arm/include/vmparam.h#4 integrate
.. //depot/projects/mjexp/sys/cam/cam_xpt.c#13 integrate
.. //depot/projects/mjexp/sys/cam/scsi/scsi_all.c#3 integrate
.. //depot/projects/mjexp/sys/compat/opensolaris/kern/opensolaris_kstat.c#2 integrate
.. //depot/projects/mjexp/sys/compat/opensolaris/kern/opensolaris_vfs.c#5 integrate
.. //depot/projects/mjexp/sys/compat/opensolaris/sys/vfs.h#2 integrate
.. //depot/projects/mjexp/sys/conf/Makefile.ia64#4 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/fil.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_auth.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_auth.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_compat.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_fil.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#3 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_frag.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_frag.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_htable.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_htable.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_ipsec_pxy.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_irc_pxy.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_log.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_lookup.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_lookup.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_nat.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_nat.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_pool.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_pool.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_pptp_pxy.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_proxy.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_proxy.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_raudio_pxy.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_scan.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_scan.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_state.c#3 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_state.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_sync.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ip_sync.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/ipl.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/mlfk_ipl.c#2 integrate
.. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#4 integrate
.. //depot/projects/mjexp/sys/dev/acpi_support/acpi_asus.c#3 integrate
.. //depot/projects/mjexp/sys/dev/acpi_support/acpi_panasonic.c#2 integrate
.. //depot/projects/mjexp/sys/dev/acpica/acpi_cpu.c#5 integrate
.. //depot/projects/mjexp/sys/dev/acpica/acpi_ec.c#5 integrate
.. //depot/projects/mjexp/sys/dev/acpica/acpi_timer.c#3 integrate
.. //depot/projects/mjexp/sys/dev/ath/if_ath.c#12 integrate
.. //depot/projects/mjexp/sys/dev/bge/if_bge.c#17 integrate
.. //depot/projects/mjexp/sys/dev/cxgb/cxgb_main.c#7 integrate
.. //depot/projects/mjexp/sys/dev/gem/if_gem.c#4 integrate
.. //depot/projects/mjexp/sys/dev/gem/if_gemreg.h#2 integrate
.. //depot/projects/mjexp/sys/dev/gem/if_gemvar.h#4 integrate
.. //depot/projects/mjexp/sys/dev/mfi/mfi.c#10 integrate
.. //depot/projects/mjexp/sys/dev/mfi/mfivar.h#5 integrate
.. //depot/projects/mjexp/sys/dev/mpt/mpilib/mpi.h#2 integrate
.. //depot/projects/mjexp/sys/dev/mpt/mpilib/mpi_cnfg.h#2 integrate
.. //depot/projects/mjexp/sys/dev/mpt/mpilib/mpi_init.h#2 integrate
.. //depot/projects/mjexp/sys/dev/mpt/mpilib/mpi_ioc.h#2 integrate
.. //depot/projects/mjexp/sys/dev/mpt/mpilib/mpi_log_fc.h#2 delete
.. //depot/projects/mjexp/sys/dev/mpt/mpilib/mpi_log_sas.h#2 delete
.. //depot/projects/mjexp/sys/dev/mpt/mpilib/mpi_raid.h#2 integrate
.. //depot/projects/mjexp/sys/dev/mpt/mpilib/mpi_sas.h#2 integrate
.. //depot/projects/mjexp/sys/dev/mpt/mpilib/mpi_targ.h#2 integrate
.. //depot/projects/mjexp/sys/dev/mpt/mpt.c#10 integrate
.. //depot/projects/mjexp/sys/dev/mpt/mpt.h#14 integrate
.. //depot/projects/mjexp/sys/dev/mpt/mpt_cam.c#23 integrate
.. //depot/projects/mjexp/sys/dev/pccbb/pccbb.c#9 integrate
.. //depot/projects/mjexp/sys/dev/pccbb/pccbb_pci.c#4 integrate
.. //depot/projects/mjexp/sys/dev/pccbb/pccbbvar.h#4 integrate
.. //depot/projects/mjexp/sys/dev/sound/clone.c#2 integrate
.. //depot/projects/mjexp/sys/dev/sound/pci/atiixp.c#7 integrate
.. //depot/projects/mjexp/sys/dev/sound/pci/emu10kx.c#5 integrate
.. //depot/projects/mjexp/sys/dev/sound/pci/envy24ht.c#9 integrate
.. //depot/projects/mjexp/sys/dev/sound/pci/es137x.c#6 integrate
.. //depot/projects/mjexp/sys/dev/sound/pci/hda/hdac.c#13 integrate
.. //depot/projects/mjexp/sys/dev/sound/pci/via8233.c#8 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/ac97.c#8 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/channel.c#7 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/dsp.c#8 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/feeder.c#6 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/feeder_fmt.c#4 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/feeder_rate.c#4 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/feeder_volume.c#4 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/mixer.c#5 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/sndstat.c#5 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/sound.c#7 integrate
.. //depot/projects/mjexp/sys/dev/sound/pcm/vchan.c#6 integrate
.. //depot/projects/mjexp/sys/dev/sound/usb/uaudio_pcm.c#4 integrate
.. //depot/projects/mjexp/sys/dev/speaker/spkr.c#2 integrate
.. //depot/projects/mjexp/sys/dev/usb/uplcom.c#4 integrate
.. //depot/projects/mjexp/sys/dev/usb/uvscom.c#3 integrate
.. //depot/projects/mjexp/sys/geom/cache/g_cache.c#2 integrate
.. //depot/projects/mjexp/sys/geom/journal/g_journal.c#5 integrate
.. //depot/projects/mjexp/sys/geom/stripe/g_stripe.c#3 integrate
.. //depot/projects/mjexp/sys/i386/i386/elan-mmcr.c#4 integrate
.. //depot/projects/mjexp/sys/i386/i386/mp_clock.c#2 integrate
.. //depot/projects/mjexp/sys/i386/i386/tsc.c#3 integrate
.. //depot/projects/mjexp/sys/i386/isa/clock.c#8 integrate
.. //depot/projects/mjexp/sys/kern/kern_mbuf.c#5 integrate
.. //depot/projects/mjexp/sys/kern/kern_poll.c#4 integrate
.. //depot/projects/mjexp/sys/kern/kern_sysctl.c#6 integrate
.. //depot/projects/mjexp/sys/kern/kern_tc.c#2 integrate
.. //depot/projects/mjexp/sys/kern/subr_lock.c#7 integrate
.. //depot/projects/mjexp/sys/kern/uipc_socket.c#14 integrate
.. //depot/projects/mjexp/sys/netgraph/bluetooth/common/ng_bluetooth.c#2 integrate
.. //depot/projects/mjexp/sys/netgraph/ng_base.c#7 integrate
.. //depot/projects/mjexp/sys/netgraph/ng_ppp.c#6 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_indata.c#14 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_os_bsd.h#10 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_output.c#15 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_pcb.c#14 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_pcb.h#10 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_usrreq.c#14 integrate
.. //depot/projects/mjexp/sys/netinet/tcp_timewait.c#3 integrate
.. //depot/projects/mjexp/sys/netinet6/frag6.c#3 integrate
.. //depot/projects/mjexp/sys/netinet6/in6.c#6 integrate
.. //depot/projects/mjexp/sys/netinet6/in6_ifattach.c#3 integrate
.. //depot/projects/mjexp/sys/netinet6/in6_var.h#3 integrate
.. //depot/projects/mjexp/sys/netinet6/ip6_var.h#3 integrate
.. //depot/projects/mjexp/sys/netinet6/sctp6_usrreq.c#12 integrate
.. //depot/projects/mjexp/sys/pc98/cbus/clock.c#7 integrate
.. //depot/projects/mjexp/sys/security/audit/audit.c#9 integrate
.. //depot/projects/mjexp/sys/security/audit/audit.h#4 integrate
.. //depot/projects/mjexp/sys/security/audit/audit_arg.c#7 integrate
.. //depot/projects/mjexp/sys/security/audit/audit_bsm.c#4 integrate
.. //depot/projects/mjexp/sys/security/audit/audit_bsm_klib.c#4 integrate
.. //depot/projects/mjexp/sys/security/audit/audit_pipe.c#3 integrate
.. //depot/projects/mjexp/sys/security/audit/audit_private.h#5 integrate
.. //depot/projects/mjexp/sys/security/audit/audit_worker.c#5 integrate
.. //depot/projects/mjexp/sys/sparc64/include/vmparam.h#4 integrate
.. //depot/projects/mjexp/sys/sparc64/sparc64/pmap.c#6 integrate
.. //depot/projects/mjexp/sys/sparc64/sparc64/tsb.c#2 integrate
.. //depot/projects/mjexp/sys/sun4v/include/vmparam.h#4 integrate
.. //depot/projects/mjexp/sys/sys/sysctl.h#4 integrate
Differences ...
==== //depot/projects/mjexp/share/mk/Makefile#3 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/share/mk/Makefile,v 1.49 2007/04/03 20:15:59 kan Exp $
+# $FreeBSD: src/share/mk/Makefile,v 1.51 2007/06/01 15:32:23 pav Exp $
# @(#)Makefile 8.1 (Berkeley) 6/8/93
FILES= bsd.README
@@ -7,8 +7,9 @@
FILES+= bsd.kmod.mk
FILES+= bsd.lib.mk bsd.libnames.mk bsd.links.mk bsd.man.mk bsd.nls.mk
FILES+= bsd.obj.mk bsd.own.mk
-FILES+= bsd.port.mk bsd.port.post.mk bsd.port.pre.mk bsd.port.subdir.mk
-FILES+= bsd.prog.mk bsd.snmpmod.mk bsd.subdir.mk bsd.sys.mk bsd.symver.mk
+FILES+= bsd.port.mk bsd.port.options.mk bsd.port.post.mk
+FILES+= bsd.port.pre.mk bsd.port.subdir.mk bsd.prog.mk
+FILES+= bsd.snmpmod.mk bsd.subdir.mk bsd.sys.mk bsd.symver.mk
FILES+= sys.mk version_gen.awk
NO_OBJ=
FILESDIR= ${BINDIR}/mk
==== //depot/projects/mjexp/sys/amd64/amd64/machdep.c#12 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.672 2007/05/31 22:52:10 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.673 2007/06/03 23:18:29 alc Exp $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -163,7 +163,13 @@
long Maxmem = 0;
long realmem = 0;
-#define PHYSMAP_SIZE (2 * 30)
+/*
+ * The number of PHYSMAP entries must be one less than the number of
+ * PHYSSEG entries because the PHYSMAP entry that spans the largest
+ * physical address that is accessible by ISA DMA is split into two
+ * PHYSSEG entries.
+ */
+#define PHYSMAP_SIZE (2 * (VM_PHYSSEG_MAX - 1))
vm_paddr_t phys_avail[PHYSMAP_SIZE + 2];
vm_paddr_t dump_avail[PHYSMAP_SIZE + 2];
==== //depot/projects/mjexp/sys/amd64/amd64/tsc.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/tsc.c,v 1.207 2007/03/26 18:03:29 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/tsc.c,v 1.208 2007/06/04 18:25:01 dwmalone Exp $");
#include "opt_clock.h"
@@ -204,7 +204,7 @@
if (tsc_timecounter.tc_frequency == 0)
return (EOPNOTSUPP);
freq = tsc_freq;
- error = sysctl_handle_int(oidp, &freq, sizeof(freq), req);
+ error = sysctl_handle_quad(oidp, &freq, 0, req);
if (error == 0 && req->newptr != NULL) {
tsc_freq = freq;
tsc_timecounter.tc_frequency = tsc_freq;
@@ -212,8 +212,8 @@
return (error);
}
-SYSCTL_PROC(_machdep, OID_AUTO, tsc_freq, CTLTYPE_LONG | CTLFLAG_RW,
- 0, sizeof(u_int), sysctl_machdep_tsc_freq, "IU", "");
+SYSCTL_PROC(_machdep, OID_AUTO, tsc_freq, CTLTYPE_QUAD | CTLFLAG_RW,
+ 0, sizeof(u_int), sysctl_machdep_tsc_freq, "QU", "");
static unsigned
tsc_get_timecount(struct timecounter *tc)
==== //depot/projects/mjexp/sys/amd64/include/vmparam.h#4 (text+ko) ====
@@ -38,7 +38,7 @@
* SUCH DAMAGE.
*
* from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.47 2007/05/05 19:50:26 alc Exp $
+ * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.48 2007/06/03 23:18:29 alc Exp $
*/
@@ -93,6 +93,44 @@
#define VM_PHYSSEG_DENSE
/*
+ * The number of PHYSSEG entries must be one greater than the number
+ * of phys_avail entries because the phys_avail entry that spans the
+ * largest physical address that is accessible by ISA DMA is split
+ * into two PHYSSEG entries.
+ */
+#define VM_PHYSSEG_MAX 31
+
+/*
+ * Create two free page pools: VM_FREEPOOL_DEFAULT is the default pool
+ * from which physical pages are allocated and VM_FREEPOOL_DIRECT is
+ * the pool from which physical pages for page tables and small UMA
+ * objects are allocated.
+ */
+#define VM_NFREEPOOL 2
+#define VM_FREEPOOL_DEFAULT 0
+#define VM_FREEPOOL_DIRECT 1
+
+/*
+ * Create two free page lists: VM_FREELIST_DEFAULT is for physical
+ * pages that are above the largest physical address that is
+ * accessible by ISA DMA and VM_FREELIST_ISADMA is for physical pages
+ * that are below that address.
+ */
+#define VM_NFREELIST 2
+#define VM_FREELIST_DEFAULT 0
+#define VM_FREELIST_ISADMA 1
+
+/*
+ * An allocation size of 16MB is supported in order to optimize the
+ * use of the direct map by UMA. Specifically, a cache line contains
+ * at most 8 PDEs, collectively mapping 16MB of physical memory. By
+ * reducing the number of distinct 16MB "pages" that are used by UMA,
+ * the physical memory allocator reduces the likelihood of both 2MB
+ * page TLB misses and cache misses caused by 2MB page TLB misses.
+ */
+#define VM_NFREEORDER 13
+
+/*
* Virtual addresses of things. Derived from the page directory and
* page table indexes from pmap.h for precision.
* Because of the page that is both a PD and PT, it looks a little
==== //depot/projects/mjexp/sys/amd64/isa/clock.c#6 (text+ko) ====
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.230 2007/02/23 12:18:26 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.231 2007/06/04 18:25:02 dwmalone Exp $");
/*
* Routines to handle clock hardware.
@@ -839,7 +839,7 @@
* is is too generic. Should use it everywhere.
*/
freq = timer_freq;
- error = sysctl_handle_int(oidp, &freq, sizeof(freq), req);
+ error = sysctl_handle_int(oidp, &freq, 0, req);
if (error == 0 && req->newptr != NULL)
set_timer_freq(freq, hz);
return (error);
==== //depot/projects/mjexp/sys/arm/at91/uart_cpu_at91rm9200usart.c#3 (text) ====
@@ -27,7 +27,7 @@
#include "opt_uart.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/uart_cpu_at91rm9200usart.c,v 1.3 2007/04/02 22:00:21 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/uart_cpu_at91rm9200usart.c,v 1.4 2007/06/04 17:53:42 marcel Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -80,5 +80,6 @@
uart_bus_space_io = &at91_bs_tag;
uart_bus_space_mem = NULL;
/* Check the environment for overrides */
- return (uart_getenv(devtype, di, class));
+ uart_getenv(devtype, di, class);
+ return (0);
}
==== //depot/projects/mjexp/sys/arm/include/vmparam.h#4 (text+ko) ====
@@ -28,7 +28,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/arm/include/vmparam.h,v 1.9 2007/05/28 21:04:22 alc Exp $
+ * $FreeBSD: src/sys/arm/include/vmparam.h,v 1.10 2007/06/04 08:02:22 alc Exp $
*/
#ifndef _MACHINE_VMPARAM_H_
@@ -59,6 +59,16 @@
#define VM_PHYSSEG_DENSE
/*
+ * Create two free page pools: VM_FREEPOOL_DEFAULT is the default pool
+ * from which physical pages are allocated and VM_FREEPOOL_DIRECT is
+ * the pool from which physical pages for small UMA objects are
+ * allocated.
+ */
+#define VM_NFREEPOOL 2
+#define VM_FREEPOOL_DEFAULT 0
+#define VM_FREEPOOL_DIRECT 1
+
+/*
* we support 2 free lists:
*
* - DEFAULT for all systems
@@ -69,6 +79,11 @@
#define VM_FREELIST_DEFAULT 0
#define VM_FREELIST_ISADMA 1
+/*
+ * The largest allocation size is 1MB.
+ */
+#define VM_NFREEORDER 9
+
#define UPT_MAX_ADDRESS VADDR(UPTPTDI + 3, 0)
#define UPT_MIN_ADDRESS VADDR(UPTPTDI, 0)
==== //depot/projects/mjexp/sys/cam/cam_xpt.c#13 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.187 2007/05/16 16:57:21 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.188 2007/06/04 18:25:02 dwmalone Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -6355,7 +6355,7 @@
int error, bool;
bool = cam_srch_hi;
- error = sysctl_handle_int(oidp, &bool, sizeof(bool), req);
+ error = sysctl_handle_int(oidp, &bool, 0, req);
if (error != 0 || req->newptr == NULL)
return (error);
if (bool == 0 || bool == 1) {
==== //depot/projects/mjexp/sys/cam/scsi/scsi_all.c#3 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_all.c,v 1.50 2007/05/23 13:27:37 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_all.c,v 1.51 2007/06/04 18:25:03 dwmalone Exp $");
#include <sys/param.h>
@@ -3023,7 +3023,7 @@
int error, delay;
delay = scsi_delay;
- error = sysctl_handle_int(oidp, &delay, sizeof(delay), req);
+ error = sysctl_handle_int(oidp, &delay, 0, req);
if (error != 0 || req->newptr == NULL)
return (error);
return (set_scsi_delay(delay));
==== //depot/projects/mjexp/sys/compat/opensolaris/kern/opensolaris_kstat.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_kstat.c,v 1.1 2007/04/06 01:09:06 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_kstat.c,v 1.2 2007/06/04 18:25:03 dwmalone Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -102,7 +102,7 @@
uint64_t val;
val = ksent->value.ui64;
- return sysctl_handle_int(oidp, &val, sizeof(val), req);
+ return sysctl_handle_quad(oidp, &val, 0, req);
}
void
@@ -118,7 +118,7 @@
SYSCTL_ADD_PROC(&ksp->ks_sysctl_ctx,
SYSCTL_CHILDREN(ksp->ks_sysctl_root), OID_AUTO, ksent->name,
CTLTYPE_QUAD | CTLFLAG_RD, ksent, sizeof(*ksent),
- kstat_sysctl, "IU", "");
+ kstat_sysctl, "QU", "");
}
}
==== //depot/projects/mjexp/sys/compat/opensolaris/kern/opensolaris_vfs.c#5 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_vfs.c,v 1.5 2007/05/02 01:03:10 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_vfs.c,v 1.6 2007/06/04 11:31:45 pjd Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -110,7 +110,7 @@
}
int
-traverse(vnode_t **cvpp)
+traverse(vnode_t **cvpp, int lktype)
{
kthread_t *td = curthread;
vnode_t *cvp;
@@ -119,7 +119,7 @@
int error;
cvp = *cvpp;
- error = 0;
+ tvp = NULL;
/*
* If this vnode is mounted on, then we transparently indirect
@@ -135,22 +135,26 @@
vfsp = vn_mountedvfs(cvp);
if (vfsp == NULL)
break;
- VN_RELE(cvp);
+ /*
+ * tvp is NULL for *cvpp vnode, which we can't unlock.
+ */
+ if (tvp != NULL)
+ vput(cvp);
+ else
+ vrele(cvp);
/*
* The read lock must be held across the call to VFS_ROOT() to
* prevent a concurrent unmount from destroying the vfs.
*/
- error = VFS_ROOT(vfsp, 0, &tvp, td);
- if (error)
- break;
- VOP_UNLOCK(tvp, 0, td);
-
+ error = VFS_ROOT(vfsp, lktype, &tvp, td);
+ if (error != 0)
+ return (error);
cvp = tvp;
}
*cvpp = cvp;
- return (error);
+ return (0);
}
int
==== //depot/projects/mjexp/sys/compat/opensolaris/sys/vfs.h#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/compat/opensolaris/sys/vfs.h,v 1.1 2007/04/06 01:09:06 pjd Exp $
+ * $FreeBSD: src/sys/compat/opensolaris/sys/vfs.h,v 1.2 2007/06/04 11:31:45 pjd Exp $
*/
#ifndef _OPENSOLARIS_SYS_VFS_H_
@@ -107,7 +107,7 @@
int flags __unused);
void vfs_clearmntopt(vfs_t *vfsp, const char *name);
int vfs_optionisset(const vfs_t *vfsp, const char *opt, char **argp);
-int traverse(vnode_t **cvpp);
+int traverse(vnode_t **cvpp, int lktype);
int domount(kthread_t *td, vnode_t *vp, const char *fstype, char *fspath,
char *fspec, int fsflags);
==== //depot/projects/mjexp/sys/conf/Makefile.ia64#4 (text+ko) ====
@@ -1,7 +1,7 @@
# Makefile.ia64 -- with config changes.
# Copyright 1990 W. Jolitz
# from: src/sys/conf/Makefile.alpha,v 1.76
-# $FreeBSD: src/sys/conf/Makefile.ia64,v 1.69 2007/05/16 17:23:53 wkoszek Exp $
+# $FreeBSD: src/sys/conf/Makefile.ia64,v 1.70 2007/06/02 21:30:39 marcel Exp $
#
# Makefile for FreeBSD
#
@@ -16,8 +16,6 @@
# after which config should be rerun for all machines.
#
-GCC3= you bet
-
# Which version of config(8) is required.
%VERSREQ= 600004
==== //depot/projects/mjexp/sys/contrib/ipfilter/netinet/fil.c#2 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.50 2006/08/16 12:06:35 guido Exp $ */
+/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.51 2007/06/04 02:54:35 darrenr Exp $ */
/*
* Copyright (C) 1993-2003 by Darren Reed.
@@ -17,7 +17,11 @@
#include <sys/time.h>
#if defined(__NetBSD__)
# if (NetBSD >= 199905) && !defined(IPFILTER_LKM) && defined(_KERNEL)
-# include "opt_ipfilter_log.h"
+# if (__NetBSD_Version__ < 399001400)
+# include "opt_ipfilter_log.h"
+# else
+# include "opt_ipfilter.h"
+# endif
# endif
#endif
#if defined(_KERNEL) && defined(__FreeBSD_version) && \
@@ -34,6 +38,9 @@
#else
# include <sys/ioctl.h>
#endif
+#if (defined(__SVR4) || defined(__svr4__)) && defined(sun)
+# include <sys/filio.h>
+#endif
#if !defined(_AIX51)
# include <sys/fcntl.h>
#endif
@@ -81,7 +88,11 @@
# endif
# include "radix_ipf.h"
#endif
-#include <net/route.h>
+#ifdef __osf__
+# include "radix_ipf.h"
+#else
+# include <net/route.h>
+#endif
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
@@ -100,6 +111,9 @@
#ifdef __hpux
# undef _NET_ROUTE_INCLUDED
#endif
+#ifdef __osf__
+# undef _RADIX_H_
+#endif
#include "netinet/ip_compat.h"
#ifdef USE_INET6
# include <netinet/icmp6.h>
@@ -141,7 +155,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.50 2006/08/16 12:06:35 guido Exp $";
+static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.51 2007/06/04 02:54:35 darrenr Exp $";
/* static const char rcsid[] = "@(#)$Id: fil.c,v 2.243.2.78 2006/03/29 11:19:54 darrenr Exp $"; */
#endif
@@ -154,7 +168,7 @@
fr_info_t frcache[2][8];
-struct filterstats frstats[2] = { { 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0 } };
+struct filterstats frstats[2];
struct frentry *ipfilter[2][2] = { { NULL, NULL }, { NULL, NULL } },
*ipfilter6[2][2] = { { NULL, NULL }, { NULL, NULL } },
*ipacct6[2][2] = { { NULL, NULL }, { NULL, NULL } },
@@ -235,11 +249,14 @@
static int fr_updateipid __P((fr_info_t *));
#ifdef IPFILTER_LOOKUP
static int fr_grpmapinit __P((frentry_t *fr));
-static INLINE void *fr_resolvelookup __P((u_int, u_int, lookupfunc_t *));
+static INLINE void *fr_resolvelookup __P((u_int, u_int, i6addr_t *, lookupfunc_t *));
#endif
static void frsynclist __P((frentry_t *, void *));
static ipftuneable_t *fr_findtunebyname __P((const char *));
static ipftuneable_t *fr_findtunebycookie __P((void *, void **));
+static int ipf_geniter __P((ipftoken_t *, ipfgeniter_t *));
+static int ipf_frruleiter __P((void *, int, void *));
+static void ipf_unlinktoken __P((ipftoken_t *));
/*
@@ -319,7 +336,7 @@
{ "fr_srcgrpmap", fr_srcgrpmap, fr_grpmapinit },
{ "fr_dstgrpmap", fr_dstgrpmap, fr_grpmapinit },
#endif
- { "", NULL }
+ { "", NULL, NULL }
};
@@ -532,7 +549,16 @@
return IPPROTO_NONE;
hdr = fin->fin_dp;
- shift = 8 + (hdr->ip6e_len << 3);
+ switch (proto)
+ {
+ case IPPROTO_FRAGMENT :
+ shift = 8;
+ break;
+ default :
+ shift = 8 + (hdr->ip6e_len << 3);
+ break;
+ }
+
if (shift > fin->fin_dlen) { /* Nasty extension header length? */
fin->fin_flx |= FI_BAD;
return IPPROTO_NONE;
@@ -551,6 +577,7 @@
break;
}
+ fin->fin_exthdr = fin->fin_dp;
fin->fin_dp = (char *)fin->fin_dp + shift;
fin->fin_dlen -= shift;
@@ -600,24 +627,22 @@
fr_info_t *fin;
{
struct ip6_ext *hdr;
- int shift;
if (frpr_ipv6exthdr(fin, 0, IPPROTO_ROUTING) == IPPROTO_NONE)
return IPPROTO_NONE;
+ hdr = fin->fin_exthdr;
- hdr = fin->fin_dp;
- shift = 8 + (hdr->ip6e_len << 3);
- /*
- * Nasty extension header length?
- */
- if ((shift < sizeof(struct ip6_hdr)) ||
- ((shift - sizeof(struct ip6_hdr)) & 15)) {
+ if ((hdr->ip6e_len & 1) != 0) {
+ /*
+ * The routing header data is made up of 128 bit IPv6 addresses
+ * which means it must be a multiple of 2 lots of 8 in length.
+ */
fin->fin_flx |= FI_BAD;
/*
* Compensate for the changes made in frpr_ipv6exthdr()
*/
- fin->fin_dlen += shift;
- fin->fin_dp = (char *)fin->fin_dp - shift;
+ fin->fin_dlen += 8 + (hdr->ip6e_len << 3);
+ fin->fin_dp = hdr;
return IPPROTO_NONE;
}
@@ -643,16 +668,20 @@
fr_info_t *fin;
{
struct ip6_frag *frag;
+ int extoff;
fin->fin_flx |= FI_FRAG;
if (frpr_ipv6exthdr(fin, 0, IPPROTO_FRAGMENT) == IPPROTO_NONE)
return;
+ extoff = (char *)fin->fin_exthdr - (char *)fin->fin_dp;
+
if (frpr_pullup(fin, sizeof(*frag)) == -1)
return;
- frag = fin->fin_dp;
+ fin->fin_exthdr = (char *)fin->fin_dp + extoff;
+ frag = fin->fin_exthdr;
/*
* Fragment but no fragmentation info set? Bad packet...
*/
@@ -702,10 +731,12 @@
int minicmpsz = sizeof(struct icmp6_hdr);
struct icmp6_hdr *icmp6;
- if (frpr_pullup(fin, ICMP6ERR_MINPKTLEN + 8 - sizeof(ip6_t)) == -1)
+ if (frpr_pullup(fin, ICMP6ERR_MINPKTLEN - sizeof(ip6_t)) == -1)
return;
if (fin->fin_dlen > 1) {
+ ip6_t *ip6;
+
icmp6 = fin->fin_dp;
fin->fin_data[0] = *(u_short *)icmp6;
@@ -720,12 +751,26 @@
case ICMP6_PACKET_TOO_BIG :
case ICMP6_TIME_EXCEEDED :
case ICMP6_PARAM_PROB :
+ fin->fin_flx |= FI_ICMPERR;
if ((fin->fin_m != NULL) &&
(M_LEN(fin->fin_m) < fin->fin_plen)) {
if (fr_coalesce(fin) != 1)
return;
}
- fin->fin_flx |= FI_ICMPERR;
+
+ if (frpr_pullup(fin, ICMP6ERR_MINPKTLEN) == -1)
+ return;
+
+ /*
+ * If the destination of this packet doesn't match the
+ * source of the original packet then this packet is
+ * not correct.
+ */
+ ip6 = (ip6_t *)((char *)icmp6 + ICMPERR_ICMPHLEN);
+ if (IP6_NEQ(&fin->fin_fi.fi_dst,
+ (i6addr_t *)&ip6->ip6_src))
+ fin->fin_flx |= FI_BAD;
+
minicmpsz = ICMP6ERR_IPICMPHLEN - sizeof(ip6_t);
break;
default :
@@ -752,8 +797,13 @@
frpr_short6(fin, sizeof(struct udphdr));
- if (frpr_udpcommon(fin) == 0)
+ if (frpr_udpcommon(fin) == 0) {
+ u_char p = fin->fin_p;
+
+ fin->fin_p = IPPROTO_UDP;
fr_checkv6sum(fin);
+ fin->fin_p = p;
+ }
}
@@ -772,8 +822,13 @@
frpr_short6(fin, sizeof(struct tcphdr));
- if (frpr_tcpcommon(fin) == 0)
+ if (frpr_tcpcommon(fin) == 0) {
+ u_char p = fin->fin_p;
+
+ fin->fin_p = IPPROTO_TCP;
fr_checkv6sum(fin);
+ fin->fin_p = p;
+ }
}
@@ -862,18 +917,26 @@
fr_info_t *fin;
int plen;
{
-#if defined(_KERNEL)
if (fin->fin_m != NULL) {
if (fin->fin_dp != NULL)
plen += (char *)fin->fin_dp -
((char *)fin->fin_ip + fin->fin_hlen);
plen += fin->fin_hlen;
if (M_LEN(fin->fin_m) < plen) {
+#if defined(_KERNEL)
if (fr_pullup(fin->fin_m, fin, plen) == NULL)
return -1;
+#else
+ /*
+ * Fake fr_pullup failing
+ */
+ *fin->fin_mp = NULL;
+ fin->fin_m = NULL;
+ fin->fin_ip = NULL;
+ return -1;
+#endif
}
}
-#endif
return 0;
}
@@ -987,6 +1050,22 @@
oip = (ip_t *)((char *)fin->fin_dp + ICMPERR_ICMPHLEN);
if ((ntohs(oip->ip_off) & IP_OFFMASK) != 0)
fin->fin_flx |= FI_BAD;
+
+ /*
+ * If the destination of this packet doesn't match the
+ * source of the original packet then this packet is
+ * not correct.
+ */
+ if (oip->ip_src.s_addr != fin->fin_daddr)
+ fin->fin_flx |= FI_BAD;
+
+ /*
+ * If the destination of this packet doesn't match the
+ * source of the original packet then this packet is
+ * not correct.
+ */
+ if (oip->ip_src.s_addr != fin->fin_daddr)
+ fin->fin_flx |= FI_BAD;
break;
default :
break;
@@ -1054,14 +1133,27 @@
*/
if ((flags & TH_URG) != 0 && (tcp->th_urp == 0)) {
fin->fin_flx |= FI_BAD;
+#if 0
} else if ((flags & TH_URG) == 0 && (tcp->th_urp != 0)) {
- /* Ignore this case, it shows up in "real" traffic with */
- /* bogus values in the urgent pointer field. */
- ;
+ /*
+ * Ignore this case (#if 0) as it shows up in "real"
+ * traffic with bogus values in the urgent pointer field.
+ */
+ fin->fin_flx |= FI_BAD;
+#endif
} else if (((flags & (TH_SYN|TH_FIN)) != 0) &&
((flags & (TH_RST|TH_ACK)) == TH_RST)) {
/* TH_FIN|TH_RST|TH_ACK seems to appear "naturally" */
fin->fin_flx |= FI_BAD;
+#if 1
+ } else if (((flags & TH_SYN) != 0) &&
+ ((flags & (TH_URG|TH_PUSH)) != 0)) {
+ /*
+ * SYN with URG and PUSH set is not for normal TCP but it is
+ * possible(?) with T/TCP...but who uses T/TCP?
+ */
+ fin->fin_flx |= FI_BAD;
+#endif
} else if (!(flags & TH_ACK)) {
/*
* If the ack bit isn't set, then either the SYN or
@@ -1347,13 +1439,16 @@
*/
off &= IP_MF|IP_OFFMASK;
if (off != 0) {
+ int morefrag = off & IP_MF;
+
fi->fi_flx |= FI_FRAG;
off &= IP_OFFMASK;
if (off != 0) {
fin->fin_flx |= FI_FRAGBODY;
off <<= 3;
if ((off + fin->fin_dlen > 65535) ||
- (fin->fin_dlen == 0) || (fin->fin_dlen & 7)) {
+ (fin->fin_dlen == 0) ||
+ ((morefrag != 0) && ((fin->fin_dlen & 7) != 0))) {
/*
* The length of the packet, starting at its
* offset cannot exceed 65535 (0xffff) as the
@@ -1507,18 +1602,24 @@
fin->fin_rule = 0xffffffff;
fin->fin_group[0] = -1;
fin->fin_group[1] = '\0';
- fin->fin_dlen = fin->fin_plen - hlen;
fin->fin_dp = (char *)ip + hlen;
v = fin->fin_v;
- if (v == 4)
+ if (v == 4) {
+ fin->fin_plen = ip->ip_len;
+ fin->fin_dlen = fin->fin_plen - hlen;
+
frpr_ipv4hdr(fin);
#ifdef USE_INET6
- else if (v == 6) {
+ } else if (v == 6) {
+ fin->fin_plen = ntohs(((ip6_t *)ip)->ip6_plen);
+ fin->fin_dlen = fin->fin_plen;
+ fin->fin_plen += hlen;
+
if (frpr_ipv6hdr(fin) == -1)
return -1;
+#endif
}
-#endif
if (fin->fin_ip == NULL)
return -1;
return 0;
@@ -1680,7 +1781,7 @@
*/
i = ((*lip & *lm) != *ld);
FR_DEBUG(("0. %#08x & %#08x != %#08x\n",
- *lip, *lm, *ld));
+ ntohl(*lip), ntohl(*lm), ntohl(*ld)));
if (i)
return 1;
@@ -1691,7 +1792,7 @@
lip++, lm++, ld++;
i |= ((*lip & *lm) != *ld);
FR_DEBUG(("1. %#08x & %#08x != %#08x\n",
- *lip, *lm, *ld));
+ ntohl(*lip), ntohl(*lm), ntohl(*ld)));
if (i)
return 1;
@@ -1714,20 +1815,20 @@
#endif
i = ((*lip & *lm) != *ld);
FR_DEBUG(("2a. %#08x & %#08x != %#08x\n",
- *lip, *lm, *ld));
+ ntohl(*lip), ntohl(*lm), ntohl(*ld)));
if (fi->fi_v == 6) {
lip++, lm++, ld++;
i |= ((*lip & *lm) != *ld);
FR_DEBUG(("2b. %#08x & %#08x != %#08x\n",
- *lip, *lm, *ld));
+ ntohl(*lip), ntohl(*lm), ntohl(*ld)));
lip++, lm++, ld++;
i |= ((*lip & *lm) != *ld);
FR_DEBUG(("2c. %#08x & %#08x != %#08x\n",
- *lip, *lm, *ld));
+ ntohl(*lip), ntohl(*lm), ntohl(*ld)));
lip++, lm++, ld++;
i |= ((*lip & *lm) != *ld);
FR_DEBUG(("2d. %#08x & %#08x != %#08x\n",
- *lip, *lm, *ld));
+ ntohl(*lip), ntohl(*lm), ntohl(*ld)));
} else {
lip += 3;
lm += 3;
@@ -1756,20 +1857,20 @@
#endif
i = ((*lip & *lm) != *ld);
FR_DEBUG(("3a. %#08x & %#08x != %#08x\n",
- *lip, *lm, *ld));
+ ntohl(*lip), ntohl(*lm), ntohl(*ld)));
if (fi->fi_v == 6) {
lip++, lm++, ld++;
i |= ((*lip & *lm) != *ld);
FR_DEBUG(("3b. %#08x & %#08x != %#08x\n",
- *lip, *lm, *ld));
+ ntohl(*lip), ntohl(*lm), ntohl(*ld)));
lip++, lm++, ld++;
i |= ((*lip & *lm) != *ld);
FR_DEBUG(("3c. %#08x & %#08x != %#08x\n",
- *lip, *lm, *ld));
+ ntohl(*lip), ntohl(*lm), ntohl(*ld)));
lip++, lm++, ld++;
i |= ((*lip & *lm) != *ld);
FR_DEBUG(("3d. %#08x & %#08x != %#08x\n",
- *lip, *lm, *ld));
+ ntohl(*lip), ntohl(*lm), ntohl(*ld)));
} else {
lip += 3;
lm += 3;
@@ -2297,9 +2398,6 @@
int v = IP_V(ip);
mb_t *mc = NULL;
mb_t *m;
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list