PERFORCE change 167641 for review

Marko Zec zec at FreeBSD.org
Sun Aug 23 08:50:14 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=167641

Change 167641 by zec at zec_tpx32 on 2009/08/23 08:50:03

	IFC @ 167626

Affected files ...

.. //depot/projects/vimage-commit2/src/sys/amd64/amd64/local_apic.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/amd64/amd64/machdep.c#16 integrate
.. //depot/projects/vimage-commit2/src/sys/amd64/amd64/pmap.c#19 integrate
.. //depot/projects/vimage-commit2/src/sys/amd64/include/apicvar.h#7 integrate
.. //depot/projects/vimage-commit2/src/sys/amd64/include/pmc_mdep.h#6 integrate
.. //depot/projects/vimage-commit2/src/sys/arm/at91/uart_dev_at91usart.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/boot/i386/gptboot/gptboot.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/cam/ata/ata_xpt.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/cam/cam_ccb.h#4 integrate
.. //depot/projects/vimage-commit2/src/sys/cam/cam_xpt.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#1 branch
.. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/rpc/xdr.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/taskq.h#2 delete
.. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#2 delete
.. //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/vnode.h#8 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#15 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c#3 delete
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c#2 delete
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c#2 delete
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c#2 delete
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#4 delete
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h#1 branch
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/conf/options#38 integrate
.. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf.c#19 integrate
.. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pfvar.h#6 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/aac/aac.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_battery.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_cpu.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_dock.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi_thermal.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/adb/adb_bus.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/amdtemp/amdtemp.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/amr/amr.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ata/ata-all.c#10 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/atkbdc/psm.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/bge/if_bge.c#12 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/bktr/bktr_os.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_drv.c#14 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/e1000/if_em.c#15 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/e1000/if_igb.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/hptrr/hptrr_osm_bsd.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/hwpmc/hwpmc_core.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/hwpmc/hwpmc_piv.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/hwpmc/hwpmc_ppro.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/hwpmc/hwpmc_x86.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ips/ips_pci.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/iscsi/initiator/isc_cam.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/mfi/mfi.c#10 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/mfi/mfi_ioctl.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/mfi/mfireg.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/mii/e1000phy.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/mlx/mlx.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/mmc/mmc.c#11 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/pccbb/pccbb.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppbus/vpo.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/pst/pst-iop.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/rp/rp.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/hda/hdac.c#20 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/twe/twe.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/controller/usb_controller.c#14 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/input/ukbd.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/net/usb_ethernet.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_busdma.c#9 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_compat_linux.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_dev.c#14 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_handle_request.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_hub.c#17 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_process.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_process.h#6 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/wlan/if_upgt.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/xen/blkback/blkback.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/xen/netback/netback.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/fs/nfsclient/nfs_clsubs.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/geom/part/g_part_gpt.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/acpica/acpi_machdep.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/bios/smapi.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/bios/smbios.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/bios/vpd.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/i386/local_apic.c#14 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/i386/machdep.c#16 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/include/apicvar.h#9 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/include/pmc_mdep.h#6 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/xen/mp_machdep.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/ia64/ia64/genassym.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/ia64/ia64/machdep.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/ia64/ia64/mp_machdep.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_lock.c#12 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_mutex.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_poll.c#21 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_rwlock.c#9 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_sx.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/subr_bus.c#12 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/subr_sglist.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/subr_taskqueue.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/tty_pty.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/vfs_cache.c#22 integrate
.. //depot/projects/vimage-commit2/src/sys/modules/zfs/Makefile#7 integrate
.. //depot/projects/vimage-commit2/src/sys/net/flowtable.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/net/flowtable.h#10 integrate
.. //depot/projects/vimage-commit2/src/sys/net/if.c#84 integrate
.. //depot/projects/vimage-commit2/src/sys/net/if_var.h#37 integrate
.. //depot/projects/vimage-commit2/src/sys/net/vnet.h#33 integrate
.. //depot/projects/vimage-commit2/src/sys/net80211/ieee80211_input.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/ip_carp.c#20 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/ip_fw.h#30 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/ip_output.c#37 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw2.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/ipfw/ip_fw_pfil.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/sctp_indata.c#15 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/sctp_input.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/sctp_os_bsd.h#29 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/sctp_output.c#18 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/sctp_pcb.c#21 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/sctp_timer.c#11 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/sctputil.c#16 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/sctputil.h#7 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/tcp_timewait.c#32 integrate
.. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_subs.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/pc98/cbus/fdc.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/bus.h#5 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/lock.h#7 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/sglist.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/systm.h#12 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/taskqueue.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ffs/ffs_softdep.c#9 integrate
.. //depot/projects/vimage-commit2/src/sys/xen/xenbus/xenbus_probe.c#8 integrate

Differences ...

==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/local_apic.c#13 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.59 2009/08/13 17:09:45 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.60 2009/08/14 21:05:08 jhb Exp $");
 
 #include "opt_hwpmc_hooks.h"
 #include "opt_kdtrace.h"
@@ -123,7 +123,7 @@
 	{ 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 },	/* LINT1: NMI */
 	{ 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_TIMER_INT },	/* Timer */
 	{ 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_ERROR_INT },	/* Error */
-	{ 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 },	/* PMC */
+	{ 1, 1, 1, 1, APIC_LVT_DM_NMI, 0 },	/* PMC */
 	{ 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_THERMAL_INT },	/* Thermal */
 };
 
@@ -305,11 +305,9 @@
 	lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0);
 	lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1);
 
-#ifdef	HWPMC_HOOKS
 	/* Program the PMC LVT entry if present. */
 	if (maxlvt >= LVT_PMC)
 		lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint);
-#endif
 
 	/* Program timer LVT and setup handler. */
 	lapic->lvt_timer = lvt_mode(la, LVT_TIMER, lapic->lvt_timer);
@@ -332,6 +330,88 @@
 	intr_restore(eflags);
 }
 
+void
+lapic_reenable_pmc(void)
+{
+#ifdef HWPMC_HOOKS
+	uint32_t value;
+
+	value =  lapic->lvt_pcint;
+	value &= ~APIC_LVT_M;
+	lapic->lvt_pcint = value;
+#endif
+}
+
+#ifdef HWPMC_HOOKS
+static void
+lapic_update_pmc(void *dummy)
+{
+	struct lapic *la;
+
+	la = &lapics[lapic_id()];
+	lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint);
+}
+#endif
+
+int
+lapic_enable_pmc(void)
+{
+#ifdef HWPMC_HOOKS
+	u_int32_t maxlvt;
+
+	/* Fail if the local APIC is not present. */
+	if (lapic == NULL)
+		return (0);
+
+	/* Fail if the PMC LVT is not present. */
+	maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT;
+	if (maxlvt < LVT_PMC)
+		return (0);
+
+	lvts[LVT_PMC].lvt_masked = 0;
+
+#ifdef SMP
+	/*
+	 * If hwpmc was loaded at boot time then the APs may not be
+	 * started yet.  In that case, don't forward the request to
+	 * them as they will program the lvt when they start.
+	 */
+	if (smp_started)
+		smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL);
+	else
+#endif
+		lapic_update_pmc(NULL);
+	return (1);
+#else
+	return (0);
+#endif
+}
+
+void
+lapic_disable_pmc(void)
+{
+#ifdef HWPMC_HOOKS
+	u_int32_t maxlvt;
+
+	/* Fail if the local APIC is not present. */
+	if (lapic == NULL)
+		return;
+
+	/* Fail if the PMC LVT is not present. */
+	maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT;
+	if (maxlvt < LVT_PMC)
+		return;
+
+	lvts[LVT_PMC].lvt_masked = 1;
+
+#ifdef SMP
+	/* The APs should always be started when hwpmc is unloaded. */
+	KASSERT(mp_ncpus == 1 || smp_started, ("hwpmc unloaded too early"));
+#endif
+	smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL);
+#endif
+}
+
 /*
  * Called by cpu_initclocks() on the BSP to setup the local APIC timer so
  * that it can drive hardclock, statclock, and profclock.  This function

==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/machdep.c#16 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.707 2009/08/02 11:26:23 ed Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.709 2009/08/20 22:58:05 jkim Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -217,6 +217,7 @@
 		    strncmp(sysenv, "MacBook3,1", 10) == 0 ||
 		    strncmp(sysenv, "MacBookPro1,1", 13) == 0 ||
 		    strncmp(sysenv, "MacBookPro1,2", 13) == 0 ||
+		    strncmp(sysenv, "MacBookPro3,1", 13) == 0 ||
 		    strncmp(sysenv, "Macmini1,1", 10) == 0) {
 			if (bootverbose)
 				printf("Disabling LEGACY_USB_EN bit on "
@@ -235,19 +236,21 @@
 #ifdef PERFMON
 	perfmon_init();
 #endif
+	realmem = Maxmem;
+
+	/*
+	 * Display physical memory if SMBIOS reports reasonable amount.
+	 */
+	memsize = 0;
 	sysenv = getenv("smbios.memory.enabled");
 	if (sysenv != NULL) {
-		memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10);
+		memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10) << 10;
 		freeenv(sysenv);
-	} else
-		memsize = 0;
-	if (memsize > 0)
-		printf("real memory  = %ju (%ju MB)\n", memsize << 10,
-		    memsize >> 10);
-	else
-		printf("real memory  = %ju (%ju MB)\n", ptoa((uintmax_t)Maxmem),
-		    ptoa((uintmax_t)Maxmem) / 1048576);
-	realmem = Maxmem;
+	}
+	if (memsize < ptoa((uintmax_t)cnt.v_free_count))
+		memsize = ptoa((uintmax_t)Maxmem);
+	printf("real memory  = %ju (%ju MB)\n", memsize, memsize >> 20);
+
 	/*
 	 * Display any holes after the first chunk of extended memory.
 	 */

==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/pmap.c#19 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.668 2009/08/17 13:27:55 kib Exp $");
 
 /*
  *	Manages physical address maps.
@@ -2261,6 +2261,8 @@
 			    " in pmap %p", va, pmap);
 			return (FALSE);
 		}
+		if (va < VM_MAXUSER_ADDRESS)
+			pmap->pm_stats.resident_count++;
 	}
 	mptepa = VM_PAGE_TO_PHYS(mpte);
 	firstpte = (pt_entry_t *)PHYS_TO_DMAP(mptepa);

==== //depot/projects/vimage-commit2/src/sys/amd64/include/apicvar.h#7 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.30 2009/08/13 17:09:45 attilio Exp $
+ * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.31 2009/08/14 21:05:08 jhb Exp $
  */
 
 #ifndef _MACHINE_APICVAR_H_
@@ -201,7 +201,9 @@
 int	ioapic_set_smi(void *cookie, u_int pin);
 void	lapic_create(u_int apic_id, int boot_cpu);
 void	lapic_disable(void);
+void	lapic_disable_pmc(void);
 void	lapic_dump(const char *str);
+int	lapic_enable_pmc(void);
 void	lapic_eoi(void);
 u_int	lapic_error(void);
 int	lapic_id(void);
@@ -212,6 +214,7 @@
 int	lapic_ipi_wait(int delay);
 void	lapic_handle_intr(int vector, struct trapframe *frame);
 void	lapic_handle_timer(struct trapframe *frame);
+void	lapic_reenable_pmc(void);
 void	lapic_set_logical_id(u_int apic_id, u_int cluster, u_int cluster_id);
 int	lapic_set_lvt_mask(u_int apic_id, u_int lvt, u_char masked);
 int	lapic_set_lvt_mode(u_int apic_id, u_int lvt, u_int32_t mode);

==== //depot/projects/vimage-commit2/src/sys/amd64/include/pmc_mdep.h#6 (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/include/pmc_mdep.h,v 1.8 2008/11/27 09:00:47 jkoshy Exp $
+ * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.9 2009/08/14 21:05:08 jhb Exp $
  */
 
 /* Machine dependent interfaces */
@@ -115,7 +115,6 @@
  */
 
 void	start_exceptions(void), end_exceptions(void);
-void	pmc_x86_lapic_enable_pmc_interrupt(void);
 
 struct pmc_mdep *pmc_amd_initialize(void);
 void	pmc_amd_finalize(struct pmc_mdep *_md);

==== //depot/projects/vimage-commit2/src/sys/arm/at91/uart_dev_at91usart.c#7 (text) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.19 2009/01/22 21:56:41 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.20 2009/08/15 15:15:20 stas Exp $");
 
 #include "opt_comconsole.h"
 
@@ -307,6 +307,10 @@
 int
 at91_usart_bus_probe(struct uart_softc *sc)
 {
+
+	sc->sc_txfifosz = USART_BUFFER_SIZE;
+	sc->sc_rxfifosz = USART_BUFFER_SIZE;
+	sc->sc_hwiflow = 0;
 	return (0);
 }
 
@@ -344,10 +348,6 @@
 		atsc->flags |= HAS_TIMEOUT;
 	WR4(&sc->sc_bas, USART_IDR, 0xffffffff);
 
-	sc->sc_txfifosz = USART_BUFFER_SIZE;
-	sc->sc_rxfifosz = USART_BUFFER_SIZE;
-	sc->sc_hwiflow = 0;
-
 #ifndef SKYEYE_WORKAROUNDS
 	/*
 	 * Allocate DMA tags and maps

==== //depot/projects/vimage-commit2/src/sys/boot/i386/gptboot/gptboot.c#3 (text+ko) ====

@@ -14,7 +14,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/i386/gptboot/gptboot.c,v 1.88 2008/08/08 19:41:20 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/gptboot/gptboot.c,v 1.89 2009/08/17 15:19:03 jhay Exp $");
 
 #include <sys/param.h>
 #include <sys/gpt.h>
@@ -466,16 +466,13 @@
 		dsk.type = i;
 		arg += 3;
 		dsk.unit = *arg - '0';
-		if (arg[1] != ',' || dsk.unit > 9)
+		if (arg[1] != 'p' || dsk.unit > 9)
 		    return -1;
 		arg += 2;
-		dsk.part = -1;
-		if (arg[1] == ',') {
-		    dsk.part = *arg - '0';
-		    if (dsk.part < 1 || dsk.part > 9)
-			return -1;
-		    arg += 2;
-		}
+		dsk.part = *arg - '0';
+		if (dsk.part < 1 || dsk.part > 9)
+		    return -1;
+		arg++;
 		if (arg[0] != ')')
 		    return -1;
 		arg++;

==== //depot/projects/vimage-commit2/src/sys/cam/ata/ata_xpt.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.3 2009/07/13 21:21:30 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.4 2009/08/18 09:27:17 mav Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -370,10 +370,10 @@
 		cam_fill_ataio(ataio,
 		      1,
 		      probedone,
-		      /*flags*/CAM_DIR_IN,
-		      MSG_SIMPLE_Q_TAG,
-		      /*data_ptr*/(u_int8_t *)ident_buf,
-		      /*dxfer_len*/sizeof(struct ata_params),
+		      /*flags*/CAM_DIR_NONE,
+		      0,
+		      /*data_ptr*/NULL,
+		      /*dxfer_len*/0,
 		      30 * 1000);
 		ata_36bit_cmd(ataio, ATA_SETFEATURES, ATA_SF_SETXFER, 0,
 		    ata_max_mode(ident_buf, ATA_UDMA6, ATA_UDMA6));

==== //depot/projects/vimage-commit2/src/sys/cam/cam_ccb.h#4 (text+ko) ====

@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.37 2009/08/01 01:04:26 mjacob Exp $
+ * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.38 2009/08/18 08:46:54 mav Exp $
  */
 
 #ifndef _CAM_CAM_CCB_H
@@ -243,6 +243,7 @@
 	XPORT_ATA,	/* AT Attachment */
 	XPORT_SAS,	/* Serial Attached SCSI */
 	XPORT_SATA,	/* Serial AT Attachment */
+	XPORT_ISCSI,	/* iSCSI */
 } cam_xport;
 
 #define PROTO_VERSION_UNKNOWN (UINT_MAX - 1)

==== //depot/projects/vimage-commit2/src/sys/cam/cam_xpt.c#8 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.217 2009/08/01 01:04:26 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.218 2009/08/18 08:46:54 mav Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -3803,6 +3803,8 @@
 		case XPORT_SAS:
 		case XPORT_FC:
 		case XPORT_USB:
+		case XPORT_ISCSI:
+		case XPORT_PPB:
 			new_bus->xport = scsi_get_xport();
 			break;
 		case XPORT_ATA:

==== //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/rpc/xdr.h#2 (text+ko) ====


==== //depot/projects/vimage-commit2/src/sys/cddl/compat/opensolaris/sys/vnode.h#8 (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/cddl/compat/opensolaris/sys/vnode.h,v 1.12 2009/06/21 13:41:32 kib Exp $
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/vnode.h,v 1.13 2009/08/17 09:48:34 pjd Exp $
  */
 
 #ifndef _OPENSOLARIS_SYS_VNODE_H_
@@ -75,7 +75,6 @@
 #define	VN_HOLD(v)	vref(v)
 #define	VN_RELE(v)	vrele(v)
 #define	VN_URELE(v)	vput(v)
-#define	VN_RELE_ASYNC(v, tq)	vn_rele_async(v, tq); 
 
 #define	VOP_REALVP(vp, vpp, ct)	(*(vpp) = (vp), 0)
 

==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#4 (text+ko) ====

@@ -2523,14 +2523,15 @@
 {
 	if (nvs->nvs_op == NVS_OP_ENCODE) {
 		nvs_native_t *native = (nvs_native_t *)nvs->nvs_private;
-		nvlist_t *packed = (void *)
+		char *packed = (void *)
 		    (native->n_curr - nvp->nvp_size + NVP_VALOFF(nvp));
 		/*
 		 * Null out the pointer that is meaningless in the packed
 		 * structure. The address may not be aligned, so we have
 		 * to use bzero.
 		 */
-		bzero(&packed->nvl_priv, sizeof (packed->nvl_priv));
+		bzero(packed + offsetof(nvlist_t, nvl_priv),
+		    sizeof(((nvlist_t *)NULL)->nvl_priv));
 	}
 
 	return (nvs_embedded(nvs, EMBEDDED_NVL(nvp)));

==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 (text+ko) ====

@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -36,12 +36,10 @@
  * contributors.
  */
 
-
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/proc.h>
+#include <sys/taskq.h>
 #include <sys/vnode.h>
 
 /* Extensible attribute (xva) routines. */
@@ -74,15 +72,12 @@
 	return (xoap);
 }
 
-static STAILQ_HEAD(, vnode) vn_rele_async_list;
-static struct mtx vn_rele_async_lock;
-static struct cv vn_rele_async_cv;
-static int vn_rele_list_length;
-static int vn_rele_async_thread_exit;
+static void
+vn_rele_inactive(vnode_t *vp)
+{
 
-typedef struct  {
-	struct vnode *stqe_next;
-} vnode_link_t;
+	vrele(vp);
+}
 
 /*
  * Like vn_rele() except if we are going to call VOP_INACTIVE() then do it
@@ -95,117 +90,16 @@
  * This is because taskqs throttle back allocation if too many are created.
  */
 void
-vn_rele_async(vnode_t *vp, taskq_t *taskq /* unused */)
+vn_rele_async(vnode_t *vp, taskq_t *taskq)
 {
-	
-	KASSERT(vp != NULL, ("vrele: null vp"));
-	VFS_ASSERT_GIANT(vp->v_mount);
+	VERIFY(vp->v_count > 0);
 	VI_LOCK(vp);
-
-	if (vp->v_usecount > 1 || ((vp->v_iflag & VI_DOINGINACT) &&
-	    vp->v_usecount == 1)) {
-		vp->v_usecount--;
-		vdropl(vp);
-		return;
-	}	
-	if (vp->v_usecount != 1) {
-#ifdef DIAGNOSTIC
-		vprint("vrele: negative ref count", vp);
-#endif
+	if (vp->v_count == 1 && !(vp->v_iflag & VI_DOINGINACT)) {
 		VI_UNLOCK(vp);
-		panic("vrele: negative ref cnt");
-	}
-	/*
-	 * We are exiting
-	 */
-	if (vn_rele_async_thread_exit != 0) {
-		vrele(vp);
+		VERIFY(taskq_dispatch((taskq_t *)taskq,
+		    (task_func_t *)vn_rele_inactive, vp, TQ_SLEEP) != 0);
 		return;
 	}
-	
-	mtx_lock(&vn_rele_async_lock);
-
-	/*  STAILQ_INSERT_TAIL 			*/
-	(*(vnode_link_t *)&vp->v_cstart).stqe_next = NULL;
-	*vn_rele_async_list.stqh_last = vp;
-	vn_rele_async_list.stqh_last =
-	    &((vnode_link_t *)&vp->v_cstart)->stqe_next;
-
-	/****************************************/
-	vn_rele_list_length++;
-	if ((vn_rele_list_length % 100) == 0)
-		cv_signal(&vn_rele_async_cv);
-	mtx_unlock(&vn_rele_async_lock);
-	VI_UNLOCK(vp);
-}
-
-static void
-vn_rele_async_init(void *arg)
-{
-
-	mtx_init(&vn_rele_async_lock, "valock", NULL, MTX_DEF);
-	STAILQ_INIT(&vn_rele_async_list);
-
-	/* cv_init(&vn_rele_async_cv, "vacv"); */
-	vn_rele_async_cv.cv_description = "vacv";
-	vn_rele_async_cv.cv_waiters = 0;
-}
-
-void
-vn_rele_async_fini(void)
-{
-
-	mtx_lock(&vn_rele_async_lock);
-	vn_rele_async_thread_exit = 1;
-	cv_signal(&vn_rele_async_cv);
-	while (vn_rele_async_thread_exit != 0)
-		cv_wait(&vn_rele_async_cv, &vn_rele_async_lock);
-	mtx_unlock(&vn_rele_async_lock);
-	mtx_destroy(&vn_rele_async_lock);
+	vp->v_usecount--;
+	vdropl(vp);
 }
-
-
-static void
-vn_rele_async_cleaner(void)
-{
-	STAILQ_HEAD(, vnode) vn_tmp_list;
-	struct vnode *curvnode;
-
-	STAILQ_INIT(&vn_tmp_list);
-	mtx_lock(&vn_rele_async_lock);
-	while (vn_rele_async_thread_exit == 0) {
-		STAILQ_CONCAT(&vn_tmp_list, &vn_rele_async_list);
-		vn_rele_list_length = 0;
-		mtx_unlock(&vn_rele_async_lock);
-		
-		while (!STAILQ_EMPTY(&vn_tmp_list)) {
-			curvnode = STAILQ_FIRST(&vn_tmp_list);
-
-			/*   STAILQ_REMOVE_HEAD */
-			STAILQ_FIRST(&vn_tmp_list) =
-			    ((vnode_link_t *)&curvnode->v_cstart)->stqe_next;
-			if (STAILQ_FIRST(&vn_tmp_list) == NULL)
-				         vn_tmp_list.stqh_last = &STAILQ_FIRST(&vn_tmp_list);
-			/***********************/
-			vrele(curvnode);
-		}
-		mtx_lock(&vn_rele_async_lock);
-		if (vn_rele_list_length == 0)
-			cv_timedwait(&vn_rele_async_cv, &vn_rele_async_lock,
-			    hz/10);
-	}
-
-	vn_rele_async_thread_exit = 0;
-	cv_broadcast(&vn_rele_async_cv);
-	mtx_unlock(&vn_rele_async_lock);
-	thread_exit();
-}
-
-static struct proc *vn_rele_async_proc;
-static struct kproc_desc up_kp = {
-	"vaclean",
-	vn_rele_async_cleaner,
-	&vn_rele_async_proc
-};
-SYSINIT(vaclean, SI_SUB_KTHREAD_UPDATE, SI_ORDER_FIRST, kproc_start, &up_kp);
-SYSINIT(vn_rele_async_setup, SI_SUB_VFS, SI_ORDER_FIRST, vn_rele_async_init, NULL);

==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#6 (text+ko) ====

@@ -1199,9 +1199,6 @@
 void
 dmu_fini(void)
 {
-#ifdef _KERNEL
-	vn_rele_async_fini();
-#endif
 	arc_fini();
 	dnode_fini();
 	dbuf_fini();

==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#3 (text+ko) ====

@@ -91,6 +91,9 @@
 	mutex_init(&dp->dp_lock, NULL, MUTEX_DEFAULT, NULL);
 	mutex_init(&dp->dp_scrub_cancel_lock, NULL, MUTEX_DEFAULT, NULL);
 
+	dp->dp_vnrele_taskq = taskq_create("zfs_vn_rele_taskq", 1, minclsyspri,
+	    1, 4, 0);
+
 	return (dp);
 }
 
@@ -228,6 +231,7 @@
 	rw_destroy(&dp->dp_config_rwlock);
 	mutex_destroy(&dp->dp_lock);
 	mutex_destroy(&dp->dp_scrub_cancel_lock);
+	taskq_destroy(dp->dp_vnrele_taskq);
 	kmem_free(dp, sizeof (dsl_pool_t));
 }
 
@@ -611,3 +615,9 @@
 	dsl_dataset_rele(ds, FTAG);
 	rw_exit(&dp->dp_config_rwlock);
 }
+
+taskq_t *
+dsl_pool_vnrele_taskq(dsl_pool_t *dp)
+{
+	return (dp->dp_vnrele_taskq);
+}

==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#3 (text+ko) ====

@@ -57,6 +57,7 @@
 	struct dsl_dir *dp_mos_dir;
 	struct dsl_dataset *dp_origin_snap;
 	uint64_t dp_root_dir_obj;
+	struct taskq *dp_vnrele_taskq;
 
 	/* No lock needed - sync context only */
 	blkptr_t dp_meta_rootbp;
@@ -119,6 +120,8 @@
 void dsl_pool_scrub_sync(dsl_pool_t *dp, dmu_tx_t *tx);
 void dsl_pool_scrub_restart(dsl_pool_t *dp);
 
+taskq_t *dsl_pool_vnrele_taskq(dsl_pool_t *dp);
+
 #ifdef	__cplusplus
 }
 #endif

==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#3 (text+ko) ====

@@ -49,6 +49,7 @@
 #include <sys/conf.h>
 #include <sys/mutex.h>
 #include <sys/rwlock.h>
+#include <sys/kcondvar.h>
 #include <sys/random.h>
 #include <sys/byteorder.h>
 #include <sys/systm.h>

==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#8 (text+ko) ====

@@ -1195,6 +1195,48 @@
 	return (error);
 }
 
+static int
+zfsctl_snapshot_vptocnp(struct vop_vptocnp_args *ap)
+{
+	zfsvfs_t *zfsvfs = ap->a_vp->v_vfsp->vfs_data;
+	vnode_t *dvp, *vp;
+	zfsctl_snapdir_t *sdp;
+	zfs_snapentry_t *sep;
+	int error;
+
+	ASSERT(zfsvfs->z_ctldir != NULL);
+	error = zfsctl_root_lookup(zfsvfs->z_ctldir, "snapshot", &dvp,
+	    NULL, 0, NULL, kcred, NULL, NULL, NULL);
+	if (error != 0)
+		return (error);
+	sdp = dvp->v_data;
+
+	mutex_enter(&sdp->sd_lock);
+	sep = avl_first(&sdp->sd_snaps);
+	while (sep != NULL) {
+		vp = sep->se_root;
+		if (vp == ap->a_vp)
+			break;
+		sep = AVL_NEXT(&sdp->sd_snaps, sep);
+	}
+	if (sep == NULL) {
+		mutex_exit(&sdp->sd_lock);
+		error = ENOENT;
+	} else {
+		size_t len;
+
+		len = strlen(sep->se_name);
+		*ap->a_buflen -= len;
+		bcopy(sep->se_name, ap->a_buf + *ap->a_buflen, len);
+		mutex_exit(&sdp->sd_lock);
+		vhold(dvp);
+		*ap->a_vpp = dvp;
+	}
+	VN_RELE(dvp);
+
+	return (error);
+}
+
 /*
  * These VP's should never see the light of day.  They should always
  * be covered.
@@ -1206,6 +1248,7 @@
 	.vop_reclaim =	zfsctl_common_reclaim,
 	.vop_getattr =	zfsctl_snapshot_getattr,
 	.vop_fid =	zfsctl_snapshot_fid,
+	.vop_vptocnp =	zfsctl_snapshot_vptocnp,
 };
 
 int

==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#6 (text+ko) ====

@@ -3056,44 +3056,35 @@
 		destroy_dev(zfsdev);
 }
 
-static struct task zfs_start_task;
 static struct root_hold_token *zfs_root_token;
 
-
 uint_t zfs_fsyncer_key;
 extern uint_t rrw_tsd_key;
 
-static void
-zfs_start(void *context __unused, int pending __unused)
-{
-
-	zfsdev_init();
-	spa_init(FREAD | FWRITE);
-	zfs_init();
-	zvol_init();
-
-	tsd_create(&zfs_fsyncer_key, NULL);
-	tsd_create(&rrw_tsd_key, NULL);
-
-	printf("ZFS storage pool version " SPA_VERSION_STRING "\n");
-	root_mount_rel(zfs_root_token);
-}
-
 static int
 zfs_modevent(module_t mod, int type, void *unused __unused)
 {
-	int error;
+	int error = 0;
 
-	error = EOPNOTSUPP;
 	switch (type) {
 	case MOD_LOAD:
 		zfs_root_token = root_mount_hold("ZFS");
 		printf("WARNING: ZFS is considered to be an experimental "
 		    "feature in FreeBSD.\n");
-		TASK_INIT(&zfs_start_task, 0, zfs_start, NULL);
-		taskqueue_enqueue(taskqueue_thread, &zfs_start_task);
+
 		mutex_init(&zfs_share_lock, NULL, MUTEX_DEFAULT, NULL);
-		error = 0;
+
+		spa_init(FREAD | FWRITE);
+		zfs_init();
+		zvol_init();
+
+		tsd_create(&zfs_fsyncer_key, NULL);
+		tsd_create(&rrw_tsd_key, NULL);
+
+		printf("ZFS storage pool version " SPA_VERSION_STRING "\n");
+		root_mount_rel(zfs_root_token);
+
+		zfsdev_init();
 		break;
 	case MOD_UNLOAD:
 		if (spa_busy() || zfs_busy() || zvol_busy() ||
@@ -3101,14 +3092,19 @@
 			error = EBUSY;
 			break;
 		}
+
+		zfsdev_fini();
 		zvol_fini();
 		zfs_fini();
 		spa_fini();
-		zfsdev_fini();
+
 		tsd_destroy(&zfs_fsyncer_key);
 		tsd_destroy(&rrw_tsd_key);
+
 		mutex_destroy(&zfs_share_lock);
-		error = 0;
+		break;
+	default:
+		error = EOPNOTSUPP;
 		break;
 	}
 	return (error);

==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#6 (text+ko) ====

@@ -917,7 +917,7 @@
 	for (zp = list_head(&zfsvfs->z_all_znodes); zp != NULL;
 	    zp = list_next(&zfsvfs->z_all_znodes, zp))
 		if (zp->z_dbuf) {
-			ASSERT(ZTOV(zp)->v_count > 0);
+			ASSERT(ZTOV(zp)->v_count >= 0);
 			zfs_znode_dmu_fini(zp);
 		}
 	mutex_exit(&zfsvfs->z_znodes_lock);

==== //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#15 (text+ko) ====

@@ -924,6 +924,7 @@
 	zgd_t *zgd = (zgd_t *)vzgd;
 	rl_t *rl = zgd->zgd_rl;
 	vnode_t *vp = ZTOV(rl->r_zp);
+	objset_t *os = rl->r_zp->z_zfsvfs->z_os;
 	int vfslocked;
 
 	vfslocked = VFS_LOCK_GIANT(vp->v_vfsp);
@@ -933,7 +934,7 @@
 	 * Release the vnode asynchronously as we currently have the
 	 * txg stopped from syncing.
 	 */
-	VN_RELE_ASYNC(vp, NULL);
+	VN_RELE_ASYNC(vp, dsl_pool_vnrele_taskq(dmu_objset_pool(os)));
 	zil_add_block(zgd->zgd_zilog, zgd->zgd_bp);
 	kmem_free(zgd, sizeof (zgd_t));
 	VFS_UNLOCK_GIANT(vfslocked);
@@ -968,8 +969,8 @@
 		 * Release the vnode asynchronously as we currently have the
 		 * txg stopped from syncing.
 		 */
-		VN_RELE_ASYNC(ZTOV(zp), NULL);
-
+		VN_RELE_ASYNC(ZTOV(zp),

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list