PERFORCE change 166416 for review

Hans Petter Selasky hselasky at FreeBSD.org
Wed Jul 22 20:12:25 UTC 2009


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

Change 166416 by hselasky at hselasky_laptop001 on 2009/07/22 20:11:51

	
	IFC @ 166413

Affected files ...

.. //depot/projects/usb/src/lib/libusb/Makefile#6 integrate
.. //depot/projects/usb/src/lib/libusbhid/Makefile#5 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/initcpu.c#6 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#26 integrate
.. //depot/projects/usb/src/sys/amd64/include/cpufunc.h#6 integrate
.. //depot/projects/usb/src/sys/amd64/include/md_var.h#9 integrate
.. //depot/projects/usb/src/sys/arm/arm/busdma_machdep.c#19 integrate
.. //depot/projects/usb/src/sys/arm/arm/cpufunc.c#10 integrate
.. //depot/projects/usb/src/sys/arm/arm/pmap.c#18 integrate
.. //depot/projects/usb/src/sys/arm/arm/vm_machdep.c#10 integrate
.. //depot/projects/usb/src/sys/arm/conf/AVILA#17 integrate
.. //depot/projects/usb/src/sys/arm/conf/CAMBRIA#8 integrate
.. //depot/projects/usb/src/sys/bsm/audit.h#12 integrate
.. //depot/projects/usb/src/sys/bsm/audit_kevents.h#14 integrate
.. //depot/projects/usb/src/sys/cam/ata/ata_da.c#2 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#5 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#4 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#12 integrate
.. //depot/projects/usb/src/sys/conf/files#74 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-all.c#16 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#3 integrate
.. //depot/projects/usb/src/sys/dev/ath/if_ath.c#30 integrate
.. //depot/projects/usb/src/sys/dev/ath/if_athvar.h#22 integrate
.. //depot/projects/usb/src/sys/dev/ciss/ciss.c#16 integrate
.. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#31 integrate
.. //depot/projects/usb/src/sys/dev/mxge/if_mxge.c#15 integrate
.. //depot/projects/usb/src/sys/dev/pci/pci.c#25 integrate
.. //depot/projects/usb/src/sys/dev/siis/siis.c#1 branch
.. //depot/projects/usb/src/sys/dev/siis/siis.h#1 branch
.. //depot/projects/usb/src/sys/fs/nfs/nfsport.h#7 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clbio.c#7 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clrpcops.c#4 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clstate.c#7 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvfsops.c#6 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#9 integrate
.. //depot/projects/usb/src/sys/geom/vinum/geom_vinum.c#7 integrate
.. //depot/projects/usb/src/sys/i386/i386/pmap.c#21 integrate
.. //depot/projects/usb/src/sys/i386/xen/pmap.c#10 integrate
.. //depot/projects/usb/src/sys/kern/init_main.c#15 integrate
.. //depot/projects/usb/src/sys/kern/kern_exit.c#22 integrate
.. //depot/projects/usb/src/sys/kern/kern_fork.c#19 integrate
.. //depot/projects/usb/src/sys/kern/kern_jail.c#25 integrate
.. //depot/projects/usb/src/sys/kern/kern_linker.c#19 integrate
.. //depot/projects/usb/src/sys/kern/kern_prot.c#18 integrate
.. //depot/projects/usb/src/sys/kern/kern_sysctl.c#18 integrate
.. //depot/projects/usb/src/sys/kern/kern_vimage.c#11 integrate
.. //depot/projects/usb/src/sys/kern/link_elf_obj.c#16 integrate
.. //depot/projects/usb/src/sys/kern/uipc_socket.c#24 integrate
.. //depot/projects/usb/src/sys/kern/vfs_bio.c#25 integrate
.. //depot/projects/usb/src/sys/modules/Makefile#40 integrate
.. //depot/projects/usb/src/sys/modules/siis/Makefile#1 branch
.. //depot/projects/usb/src/sys/modules/wlan/Makefile#12 integrate
.. //depot/projects/usb/src/sys/net/flowtable.c#6 integrate
.. //depot/projects/usb/src/sys/net/flowtable.h#6 integrate
.. //depot/projects/usb/src/sys/net/if.c#35 integrate
.. //depot/projects/usb/src/sys/net/if_clone.c#7 integrate
.. //depot/projects/usb/src/sys/net/if_ethersubr.c#21 integrate
.. //depot/projects/usb/src/sys/net/if_gif.c#16 integrate
.. //depot/projects/usb/src/sys/net/if_gif.h#10 integrate
.. //depot/projects/usb/src/sys/net/if_loop.c#22 integrate
.. //depot/projects/usb/src/sys/net/if_var.h#25 integrate
.. //depot/projects/usb/src/sys/net/raw_cb.h#6 integrate
.. //depot/projects/usb/src/sys/net/route.c#22 integrate
.. //depot/projects/usb/src/sys/net/vnet.h#14 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_crypto.c#8 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_crypto.h#10 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_freebsd.c#20 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_hwmp.c#2 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_input.c#19 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_input.h#4 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.h#15 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_mesh.c#2 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_mesh.h#2 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_output.c#26 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_base.c#19 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_eiface.c#13 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_gif.c#8 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_iface.c#16 integrate
.. //depot/projects/usb/src/sys/netinet/icmp6.h#7 integrate
.. //depot/projects/usb/src/sys/netinet/icmp_var.h#6 integrate
.. //depot/projects/usb/src/sys/netinet/if_ether.c#25 integrate
.. //depot/projects/usb/src/sys/netinet/igmp.c#21 integrate
.. //depot/projects/usb/src/sys/netinet/in.c#31 integrate
.. //depot/projects/usb/src/sys/netinet/in_pcb.c#30 integrate
.. //depot/projects/usb/src/sys/netinet/in_pcb.h#23 integrate
.. //depot/projects/usb/src/sys/netinet/in_rmx.c#20 integrate
.. //depot/projects/usb/src/sys/netinet/in_var.h#16 integrate
.. //depot/projects/usb/src/sys/netinet/ip_divert.c#22 integrate
.. //depot/projects/usb/src/sys/netinet/ip_fastfwd.c#12 integrate
.. //depot/projects/usb/src/sys/netinet/ip_fw.h#18 integrate
.. //depot/projects/usb/src/sys/netinet/ip_icmp.c#18 integrate
.. //depot/projects/usb/src/sys/netinet/ip_input.c#29 integrate
.. //depot/projects/usb/src/sys/netinet/ip_ipsec.c#16 integrate
.. //depot/projects/usb/src/sys/netinet/ip_var.h#13 integrate
.. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#5 integrate
.. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_nat.c#4 integrate
.. //depot/projects/usb/src/sys/netinet/raw_ip.c#27 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_hostcache.c#15 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_reass.c#11 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_sack.c#11 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_subr.c#27 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_syncache.c#24 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_timer.c#17 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_timewait.c#15 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_var.h#21 integrate
.. //depot/projects/usb/src/sys/netinet/udp_usrreq.c#25 integrate
.. //depot/projects/usb/src/sys/netinet/udp_var.h#11 integrate
.. //depot/projects/usb/src/sys/netinet6/frag6.c#17 integrate
.. //depot/projects/usb/src/sys/netinet6/icmp6.c#24 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_ifattach.c#27 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_mcast.c#6 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_proto.c#17 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_rmx.c#19 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_src.c#20 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_var.h#13 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_input.c#27 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_ipsec.c#11 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_mroute.c#20 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_var.h#16 integrate
.. //depot/projects/usb/src/sys/netinet6/mld6.c#20 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6.c#23 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6.h#9 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6_nbr.c#18 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6_rtr.c#21 integrate
.. //depot/projects/usb/src/sys/netinet6/raw_ip6.c#24 integrate
.. //depot/projects/usb/src/sys/netinet6/raw_ip6.h#5 integrate
.. //depot/projects/usb/src/sys/netinet6/scope6.c#14 integrate
.. //depot/projects/usb/src/sys/netinet6/tcp6_var.h#5 integrate
.. //depot/projects/usb/src/sys/netipsec/ah_var.h#3 integrate
.. //depot/projects/usb/src/sys/netipsec/esp_var.h#3 integrate
.. //depot/projects/usb/src/sys/netipsec/ipcomp_var.h#3 integrate
.. //depot/projects/usb/src/sys/netipsec/ipip_var.h#4 integrate
.. //depot/projects/usb/src/sys/netipsec/ipsec.c#21 integrate
.. //depot/projects/usb/src/sys/netipsec/ipsec.h#15 integrate
.. //depot/projects/usb/src/sys/netipsec/ipsec6.h#9 integrate
.. //depot/projects/usb/src/sys/netipsec/key.c#23 integrate
.. //depot/projects/usb/src/sys/netipsec/key_debug.h#4 integrate
.. //depot/projects/usb/src/sys/netipsec/keysock.c#13 integrate
.. //depot/projects/usb/src/sys/netipsec/keysock.h#4 integrate
.. //depot/projects/usb/src/sys/netipsec/xform_esp.c#10 integrate
.. //depot/projects/usb/src/sys/netipsec/xform_ipcomp.c#9 integrate
.. //depot/projects/usb/src/sys/netipsec/xform_ipip.c#15 integrate
.. //depot/projects/usb/src/sys/nfsclient/nfs_vnops.c#28 integrate
.. //depot/projects/usb/src/sys/powerpc/mpc85xx/lbc.h#3 integrate
.. //depot/projects/usb/src/sys/security/audit/audit_bsm_errno.c#4 integrate
.. //depot/projects/usb/src/sys/security/audit/audit_bsm_token.c#14 integrate
.. //depot/projects/usb/src/sys/sparc64/include/param.h#6 integrate
.. //depot/projects/usb/src/sys/sys/kernel.h#15 integrate
.. //depot/projects/usb/src/sys/sys/param.h#41 integrate
.. //depot/projects/usb/src/sys/sys/sockio.h#6 integrate
.. //depot/projects/usb/src/sys/sys/ucred.h#8 integrate
.. //depot/projects/usb/src/sys/sys/vimage.h#18 integrate
.. //depot/projects/usb/src/sys/vm/device_pager.c#10 integrate
.. //depot/projects/usb/src/sys/vm/vm_page.c#18 integrate
.. //depot/projects/usb/src/sys/xen/evtchn/evtchn.c#8 integrate

Differences ...

==== //depot/projects/usb/src/lib/libusb/Makefile#6 (text+ko) ====

@@ -1,11 +1,11 @@
 #
-# $FreeBSD: src/lib/libusb/Makefile,v 1.6 2009/06/23 01:00:26 thompsa Exp $
+# $FreeBSD: src/lib/libusb/Makefile,v 1.7 2009/07/19 17:25:24 kensmith Exp $
 #
 # Makefile for the FreeBSD specific LibUSB 2.0
 #
 
 LIB=		usb
-SHLIB_MAJOR=	1
+SHLIB_MAJOR=	2
 SHLIB_MINOR=	0
 SRCS=		libusb20.c
 SRCS+=		libusb20_desc.c

==== //depot/projects/usb/src/lib/libusbhid/Makefile#5 (text+ko) ====

@@ -1,10 +1,10 @@
 #	$NetBSD: Makefile,v 1.5 1999/07/23 09:44:38 mrg Exp $
-#	$FreeBSD: src/lib/libusbhid/Makefile,v 1.12 2009/02/02 00:49:39 alfred Exp $
+#	$FreeBSD: src/lib/libusbhid/Makefile,v 1.13 2009/07/19 17:25:24 kensmith Exp $
 
 LIB=	usbhid
 MAN=	usbhid.3
 
-SHLIB_MAJOR= 3
+SHLIB_MAJOR= 4
 
 MLINKS=	usbhid.3 libusbhid.3 usbhid.3 hid_get_report_desc.3 \
 	usbhid.3 hid_dispose_report_desc.3 \

==== //depot/projects/usb/src/sys/amd64/amd64/initcpu.c#6 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.53 2009/01/12 19:17:35 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.54 2009/07/22 14:32:38 kib Exp $");
 
 #include "opt_cpu.h"
 
@@ -65,6 +65,7 @@
 u_int	cpu_vendor_id;		/* CPU vendor ID */
 u_int	cpu_fxsr;		/* SSE enabled */
 u_int	cpu_mxcsr_mask;		/* Valid bits in mxcsr */
+u_int	cpu_clflush_line_size = 32;
 
 SYSCTL_UINT(_hw, OID_AUTO, via_feature_rng, CTLFLAG_RD,
 	&via_feature_rng, 0, "VIA C3/C7 RNG feature available in CPU");
@@ -156,4 +157,12 @@
 	    AMD64_CPU_FAMILY(cpu_id) == 0x6 &&
 	    AMD64_CPU_MODEL(cpu_id) >= 0xf)
 		init_via();
+
+	/*
+	 * CPUID with %eax = 1, %ebx returns
+	 * Bits 15-8: CLFLUSH line size
+	 * 	(Value * 8 = cache line size in bytes)
+	 */
+	if ((cpu_feature & CPUID_CLFSH) != 0)
+		cpu_clflush_line_size = ((cpu_procinfo >> 8) & 0xff) * 8;
 }

==== //depot/projects/usb/src/sys/amd64/amd64/pmap.c#26 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.663 2009/07/12 23:31:20 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.666 2009/07/22 14:32:38 kib Exp $");
 
 /*
  *	Manages physical address maps.
@@ -231,6 +231,7 @@
     vm_page_t m, vm_prot_t prot, vm_page_t mpte);
 static void pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte);
 static void pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte);
+static void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva);
 static boolean_t pmap_is_modified_pvh(struct md_page *pvh);
 static void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode);
 static vm_page_t pmap_lookup_pt_page(pmap_t pmap, vm_offset_t va);
@@ -752,21 +753,6 @@
 	/* The PAT bit is different for PTE's and PDE's. */
 	pat_flag = is_pde ? PG_PDE_PAT : PG_PTE_PAT;
 
-	/* If we don't support PAT, map extended modes to older ones. */
-	if (!(cpu_feature & CPUID_PAT)) {
-		switch (mode) {
-		case PAT_UNCACHEABLE:
-		case PAT_WRITE_THROUGH:
-		case PAT_WRITE_BACK:
-			break;
-		case PAT_UNCACHED:
-		case PAT_WRITE_COMBINING:
-		case PAT_WRITE_PROTECTED:
-			mode = PAT_UNCACHEABLE;
-			break;
-		}
-	}
-
 	/* Map the caching mode to a PAT index. */
 	switch (mode) {
 	case PAT_UNCACHEABLE:
@@ -936,6 +922,40 @@
 }
 #endif /* !SMP */
 
+static void
+pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva)
+{
+
+	KASSERT((sva & PAGE_MASK) == 0,
+	    ("pmap_invalidate_cache_range: sva not page-aligned"));
+	KASSERT((eva & PAGE_MASK) == 0,
+	    ("pmap_invalidate_cache_range: eva not page-aligned"));
+
+	if (cpu_feature & CPUID_SS)
+		; /* If "Self Snoop" is supported, do nothing. */
+	else if (cpu_feature & CPUID_CLFSH) {
+
+		/*
+		 * Otherwise, do per-cache line flush.  Use the mfence
+		 * instruction to insure that previous stores are
+		 * included in the write-back.  The processor
+		 * propagates flush to other processors in the cache
+		 * coherence domain.
+		 */
+		mfence();
+		for (; eva < sva; eva += cpu_clflush_line_size)
+			clflush(eva);
+		mfence();
+	} else {
+
+		/*
+		 * No targeted cache flush methods are supported by CPU,
+		 * globally invalidate cache as a last resort.
+		 */
+		pmap_invalidate_cache();
+	}
+}
+
 /*
  * Are we current address space or kernel?
  */
@@ -4271,7 +4291,8 @@
 void *
 pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, int mode)
 {
-	vm_offset_t va, tmpva, offset;
+	vm_offset_t va, offset;
+	vm_size_t tmpsize;
 
 	/*
 	 * If the specified range of physical addresses fits within the direct
@@ -4288,14 +4309,10 @@
 	if (!va)
 		panic("pmap_mapdev: Couldn't alloc kernel virtual memory");
 	pa = trunc_page(pa);
-	for (tmpva = va; size > 0; ) {
-		pmap_kenter_attr(tmpva, pa, mode);
-		size -= PAGE_SIZE;
-		tmpva += PAGE_SIZE;
-		pa += PAGE_SIZE;
-	}
-	pmap_invalidate_range(kernel_pmap, va, tmpva);
-	pmap_invalidate_cache();
+	for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE)
+		pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode);
+	pmap_invalidate_range(kernel_pmap, va, va + tmpsize);
+	pmap_invalidate_cache_range(va, va + tmpsize);
 	return ((void *)(va + offset));
 }
 
@@ -4394,9 +4411,12 @@
 	m->md.pat_mode = ma;
 
 	/*
-	 * Update the direct mapping and flush the cache.
+	 * If "m" is a normal page, update its direct mapping.  This update
+	 * can be relied upon to perform any cache operations that are
+	 * required for data coherence.
 	 */
-	if (pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE,
+	if ((m->flags & PG_FICTITIOUS) == 0 &&
+	    pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE,
 	    m->md.pat_mode))
 		panic("memory attribute change on the direct map failed");
 }
@@ -4634,7 +4654,7 @@
 	 */
 	if (changed) {
 		pmap_invalidate_range(kernel_pmap, base, tmpva);
-		pmap_invalidate_cache();
+		pmap_invalidate_cache_range(base, tmpva);
 	}
 	return (error);
 }

==== //depot/projects/usb/src/sys/amd64/include/cpufunc.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/cpufunc.h,v 1.153 2009/04/11 14:01:01 ed Exp $
+ * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.154 2009/07/22 14:32:38 kib Exp $
  */
 
 /*
@@ -100,6 +100,13 @@
 }
 
 static __inline void
+clflush(u_long addr)
+{
+
+	__asm __volatile("clflush %0" : : "m" (*(char *)addr));
+}
+
+static __inline void
 disable_intr(void)
 {
 	__asm __volatile("cli" : : : "memory");
@@ -267,6 +274,13 @@
 }
 
 static __inline void
+mfence(void)
+{
+
+	__asm__ __volatile("mfence" : : : "memory");
+}
+
+static __inline void
 ia32_pause(void)
 {
 	__asm __volatile("pause");

==== //depot/projects/usb/src/sys/amd64/include/md_var.h#9 (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/md_var.h,v 1.85 2009/04/01 13:09:26 kib Exp $
+ * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.86 2009/07/22 14:32:38 kib Exp $
  */
 
 #ifndef _MACHINE_MD_VAR_H_
@@ -47,6 +47,7 @@
 extern	u_int	amd_pminfo;
 extern	u_int	via_feature_rng;
 extern	u_int	via_feature_xcrypt;
+extern	u_int	cpu_clflush_line_size;
 extern	u_int	cpu_fxsr;
 extern	u_int	cpu_high;
 extern	u_int	cpu_id;

==== //depot/projects/usb/src/sys/arm/arm/busdma_machdep.c#19 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.47 2009/04/23 20:24:19 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.48 2009/07/20 07:53:07 raj Exp $");
 
 /*
  * ARM bus dma support routines
@@ -630,10 +630,6 @@
 			    ((vm_offset_t)*vaddr & PAGE_MASK));
 			newmap->origbuffer = *vaddr;
 			newmap->allocbuffer = tmpaddr;
-			cpu_idcache_wbinv_range((vm_offset_t)*vaddr, 
-			    dmat->maxsize);
-			cpu_l2cache_wbinv_range((vm_offset_t)*vaddr,
-			    dmat->maxsize);
 			*vaddr = tmpaddr;
 		} else
 			newmap->origbuffer = newmap->allocbuffer = NULL;

==== //depot/projects/usb/src/sys/arm/arm/cpufunc.c#10 (text+ko) ====

@@ -45,7 +45,7 @@
  * Created      : 30/01/97
  */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.26 2009/05/05 12:57:16 stas Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.27 2009/07/21 08:29:19 raj Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -265,7 +265,7 @@
 
 	arm9_dcache_wbinv_all,		/* dcache_wbinv_all	*/
 	arm9_dcache_wbinv_range,	/* dcache_wbinv_range	*/
-/*XXX*/	arm9_dcache_wbinv_range,	/* dcache_inv_range	*/
+	arm9_dcache_inv_range,		/* dcache_inv_range	*/
 	arm9_dcache_wb_range,		/* dcache_wb_range	*/
 
 	arm9_idcache_wbinv_all,		/* idcache_wbinv_all	*/
@@ -327,7 +327,7 @@
 
 	armv5_ec_dcache_wbinv_all,	/* dcache_wbinv_all	*/
 	armv5_ec_dcache_wbinv_range,	/* dcache_wbinv_range	*/
-/*XXX*/	armv5_ec_dcache_wbinv_range,	/* dcache_inv_range	*/
+	armv5_ec_dcache_inv_range,	/* dcache_inv_range	*/
 	armv5_ec_dcache_wb_range,	/* dcache_wb_range	*/
 
 	armv5_ec_idcache_wbinv_all,	/* idcache_wbinv_all	*/

==== //depot/projects/usb/src/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.111 2009/06/24 21:03:59 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.112 2009/07/20 07:53:07 raj Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
@@ -2984,6 +2984,7 @@
 			pmap_free_pv_entry(pve); 
 		PMAP_UNLOCK(pmap_kernel());
 		vm_page_unlock_queues();
+		va = va & ~PAGE_MASK;
 		cpu_dcache_wbinv_range(va, PAGE_SIZE);
 		cpu_l2cache_wbinv_range(va, PAGE_SIZE);
 		cpu_tlb_flushD_SE(va);

==== //depot/projects/usb/src/sys/arm/arm/vm_machdep.c#10 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.39 2009/06/24 21:00:13 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.40 2009/07/20 07:53:07 raj Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -426,10 +426,15 @@
 		vm_offset_t tomap = arm_nocache_startaddr + i * PAGE_SIZE;
 		void *ret = (void *)tomap;
 		vm_paddr_t physaddr = vtophys((vm_offset_t)addr);
+		vm_offset_t vaddr = (vm_offset_t) addr;
 		
+		vaddr = vaddr & ~PAGE_MASK;
 		for (; tomap < (vm_offset_t)ret + size; tomap += PAGE_SIZE,
-		    physaddr += PAGE_SIZE, i++) {
+		    vaddr += PAGE_SIZE, physaddr += PAGE_SIZE, i++) {
+			cpu_idcache_wbinv_range(vaddr, PAGE_SIZE);
+			cpu_l2cache_wbinv_range(vaddr, PAGE_SIZE);
 			pmap_kenter_nocache(tomap, physaddr);
+			cpu_tlb_flushID_SE(vaddr);
 			arm_nocache_allocated[i / BITS_PER_INT] |= 1 << (i % 
 			    BITS_PER_INT);
 		}

==== //depot/projects/usb/src/sys/arm/conf/AVILA#17 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first 
 # in NOTES.
 #
-# $FreeBSD: src/sys/arm/conf/AVILA,v 1.32 2009/05/27 16:16:56 thompsa Exp $
+# $FreeBSD: src/sys/arm/conf/AVILA,v 1.33 2009/07/17 18:35:45 rpaulo Exp $
 
 ident		AVILA
 
@@ -105,6 +105,7 @@
 device		wlan		# 802.11 support
 options 	IEEE80211_DEBUG
 options 	IEEE80211_SUPPORT_TDMA
+options 	IEEE80211_SUPPORT_MESH
 device		wlan_wep	# 802.11 WEP support
 device		wlan_ccmp	# 802.11 CCMP support
 device		wlan_tkip	# 802.11 TKIP support

==== //depot/projects/usb/src/sys/arm/conf/CAMBRIA#8 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first 
 # in NOTES.
 #
-# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.11 2009/05/10 00:00:25 kuriyama Exp $
+# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.12 2009/07/17 18:35:45 rpaulo Exp $
 
 ident		CAMBRIA
 
@@ -108,6 +108,7 @@
 device		wlan		# 802.11 support
 options 	IEEE80211_DEBUG
 options 	IEEE80211_SUPPORT_TDMA
+options 	IEEE80211_SUPPORT_MESH
 device		wlan_wep	# 802.11 WEP support
 device		wlan_ccmp	# 802.11 CCMP support
 device		wlan_tkip	# 802.11 TKIP support

==== //depot/projects/usb/src/sys/bsm/audit.h#12 (text) ====

@@ -26,8 +26,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#9
- * $FreeBSD: src/sys/bsm/audit.h,v 1.16 2009/04/19 14:53:17 rwatson Exp $
+ * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#10
+ * $FreeBSD: src/sys/bsm/audit.h,v 1.17 2009/07/17 14:02:20 rwatson Exp $
  */
 
 #ifndef	_BSM_AUDIT_H
@@ -173,6 +173,7 @@
 typedef	u_int16_t	au_event_t;
 typedef	u_int16_t	au_emod_t;
 typedef	u_int32_t	au_class_t;
+typedef	u_int64_t	au_asflgs_t __attribute__ ((aligned (8)));
 
 struct au_tid {
 	dev_t		port;
@@ -206,7 +207,7 @@
 	au_mask_t	ai_mask;	/* Audit masks. */
 	au_tid_addr_t	ai_termid;	/* Terminal ID. */
 	au_asid_t	ai_asid;	/* Audit session ID. */
-	u_int64_t	ai_flags;	/* Audit session flags. */
+	au_asflgs_t	ai_flags;	/* Audit session flags. */
 };
 typedef	struct auditinfo_addr	auditinfo_addr_t;
 
@@ -225,7 +226,7 @@
 	au_mask_t	ap_mask;	/* Audit masks. */
 	au_tid_addr_t	ap_termid;	/* Terminal ID. */
 	au_asid_t	ap_asid;	/* Audit session ID. */
-	u_int64_t	ap_flags;	/* Audit session flags. */
+	au_asflgs_t	ap_flags;	/* Audit session flags. */
 };
 typedef	struct auditpinfo_addr	auditpinfo_addr_t;
 

==== //depot/projects/usb/src/sys/bsm/audit_kevents.h#14 (text) ====

@@ -26,8 +26,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_kevents.h#6
- * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.21 2009/07/08 15:23:18 trasz Exp $
+ * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_kevents.h#7
+ * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.22 2009/07/17 14:02:20 rwatson Exp $
  */
 
 #ifndef _BSM_AUDIT_KEVENTS_H_

==== //depot/projects/usb/src/sys/cam/ata/ata_da.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.1 2009/07/10 08:18:08 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.2 2009/07/17 21:48:08 mav Exp $");
 
 #include <sys/param.h>
 
@@ -275,7 +275,6 @@
 	if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) {
 
 		ccb = cam_periph_getccb(periph, /*priority*/1);
-		ccb->ccb_h.ccb_state = ADA_CCB_DUMP;
 		cam_fill_ataio(&ccb->ataio,
 				    1,
 				    adadone,
@@ -289,7 +288,9 @@
 			ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE48, 0, 0, 0);
 		else
 			ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0);
-		xpt_polled_action(ccb);
+		cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0,
+		    /*sense_flags*/SF_RETRY_UA,
+		    softc->disk->d_devstat);
 
 		if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP)
 			xpt_print(periph->path, "Synchronize cache failed\n");

==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#5 (text+ko) ====

@@ -2360,6 +2360,15 @@
 	is_attr = ((zp->z_phys->zp_flags & ZFS_XATTR) &&
 	    (ZTOV(zp)->v_type == VDIR));
 
+#ifdef __FreeBSD__
+	/*
+	 * In FreeBSD, we don't care about permissions of individual ADS.
+	 * Note that not checking them is not just an optimization - without
+	 * this shortcut, EA operations may bogusly fail with EACCES.
+	 */
+	if (zp->z_phys->zp_flags & ZFS_XATTR)
+		return (0);
+#else
 	/*
 	 * If attribute then validate against base file
 	 */
@@ -2385,6 +2394,7 @@
 			mode |= ACE_READ_NAMED_ATTRS;
 		}
 	}
+#endif
 
 	if ((error = zfs_zaccess_common(check_zp, mode, &working_mode,
 	    &check_privs, skipaclchk, cr)) == 0) {

==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#4 (text+ko) ====

@@ -831,8 +831,14 @@
 
 	*xvpp = NULL;
 
+	/*
+	 * In FreeBSD, access checking for creating an EA is being done
+	 * in zfs_setextattr(),
+	 */
+#ifndef __FreeBSD__
 	if (error = zfs_zaccess(zp, ACE_WRITE_NAMED_ATTRS, 0, B_FALSE, cr))
 		return (error);
+#endif
 
 	tx = dmu_tx_create(zfsvfs->z_os);
 	dmu_tx_hold_bonus(tx, zp->z_id);
@@ -906,12 +912,14 @@
 
 	ASSERT(zp->z_phys->zp_xattr == 0);
 
-#ifdef TODO
 	if (!(flags & CREATE_XATTR_DIR)) {
 		zfs_dirent_unlock(dl);
+#ifdef __FreeBSD__
+		return (ENOATTR);
+#else
 		return (ENOENT);
+#endif
 	}
-#endif
 
 	if (zfsvfs->z_vfs->vfs_flag & VFS_RDONLY) {
 		zfs_dirent_unlock(dl);

==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#12 (text+ko) ====

@@ -4502,6 +4502,11 @@
 	vnode_t *xvp = NULL, *vp;
 	int error, flags;
 
+	error = extattr_check_cred(ap->a_vp, ap->a_attrnamespace,
+	    ap->a_cred, ap->a_td, VREAD);
+	if (error != 0)
+		return (error);
+
 	error = zfs_create_attrname(ap->a_attrnamespace, ap->a_name, attrname,
 	    sizeof(attrname));
 	if (error != 0)
@@ -4523,6 +4528,8 @@
 	vp = nd.ni_vp;
 	NDFREE(&nd, NDF_ONLY_PNBUF);
 	if (error != 0) {
+		if (error == ENOENT)
+			error = ENOATTR;
 		ZFS_EXIT(zfsvfs);
 		return (error);
 	}
@@ -4564,6 +4571,11 @@
 	vnode_t *xvp = NULL, *vp;
 	int error, flags;
 
+	error = extattr_check_cred(ap->a_vp, ap->a_attrnamespace,
+	    ap->a_cred, ap->a_td, VWRITE);
+	if (error != 0)
+		return (error);
+
 	error = zfs_create_attrname(ap->a_attrnamespace, ap->a_name, attrname,
 	    sizeof(attrname));
 	if (error != 0)
@@ -4584,6 +4596,8 @@
 	vp = nd.ni_vp;
 	NDFREE(&nd, NDF_ONLY_PNBUF);
 	if (error != 0) {
+		if (error == ENOENT)
+			error = ENOATTR;
 		ZFS_EXIT(zfsvfs);
 		return (error);
 	}
@@ -4623,6 +4637,11 @@
 	vnode_t *xvp = NULL, *vp;
 	int error, flags;
 
+	error = extattr_check_cred(ap->a_vp, ap->a_attrnamespace,
+	    ap->a_cred, ap->a_td, VWRITE);
+	if (error != 0)
+		return (error);
+
 	error = zfs_create_attrname(ap->a_attrnamespace, ap->a_name, attrname,
 	    sizeof(attrname));
 	if (error != 0)
@@ -4631,7 +4650,7 @@
 	ZFS_ENTER(zfsvfs);
 
 	error = zfs_lookup(ap->a_vp, NULL, &xvp, NULL, 0, ap->a_cred, td,
-	    LOOKUP_XATTR);
+	    LOOKUP_XATTR | CREATE_XATTR_DIR);
 	if (error != 0) {
 		ZFS_EXIT(zfsvfs);
 		return (error);
@@ -4690,6 +4709,11 @@
 	vnode_t *xvp = NULL, *vp;
 	int done, error, eof, pos;
 
+	error = extattr_check_cred(ap->a_vp, ap->a_attrnamespace,
+	    ap->a_cred, ap->a_td, VREAD);
+	if (error)
+		return (error);
+
 	error = zfs_create_attrname(ap->a_attrnamespace, "", attrprefix,
 	    sizeof(attrprefix));
 	if (error != 0)
@@ -4698,9 +4722,18 @@
 
 	ZFS_ENTER(zfsvfs);
 
+	if (sizep != NULL)
+		*sizep = 0;
+
 	error = zfs_lookup(ap->a_vp, NULL, &xvp, NULL, 0, ap->a_cred, td,
 	    LOOKUP_XATTR);
 	if (error != 0) {
+		/*
+		 * ENOATTR means that the EA directory does not yet exist,
+		 * i.e. there are no extended attributes there.
+		 */
+		if (error == ENOATTR)
+			error = 0;
 		ZFS_EXIT(zfsvfs);
 		return (error);
 	}
@@ -4722,9 +4755,6 @@
 	auio.uio_rw = UIO_READ;
 	auio.uio_offset = 0;
 
-	if (sizep != NULL)
-		*sizep = 0;
-
 	do {
 		u_char nlen;
 

==== //depot/projects/usb/src/sys/conf/files#74 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1453 2009/07/14 22:48:30 rwatson Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1455 2009/07/21 12:32:46 mav Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1391,6 +1391,7 @@
 dev/si/si_eisa.c		optional si eisa
 dev/si/si_isa.c			optional si isa
 dev/si/si_pci.c			optional si pci
+dev/siis/siis.c			optional siis pci
 dev/sis/if_sis.c		optional sis pci
 dev/sk/if_sk.c			optional sk pci inet
 dev/smbus/smb.c			optional smb
@@ -1627,6 +1628,7 @@
 dev/usb/wlan/if_rum.c		optional rum
 dev/usb/wlan/if_uath.c		optional uath
 dev/usb/wlan/if_ural.c		optional ural
+dev/usb/wlan/if_urtw.c		optional urtw
 dev/usb/wlan/if_zyd.c		optional zyd
 #
 # USB serial and parallel port drivers

==== //depot/projects/usb/src/sys/dev/ata/ata-all.c#16 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.305 2009/05/20 21:31:47 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.306 2009/07/16 19:48:39 mav Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -472,6 +472,7 @@
 ata_device_ioctl(device_t dev, u_long cmd, caddr_t data)
 {
     struct ata_device *atadev = device_get_softc(dev);
+    struct ata_channel *ch = device_get_softc(device_get_parent(dev));
     struct ata_ioc_request *ioc_request = (struct ata_ioc_request *)data;
     struct ata_params *params = (struct ata_params *)data;
     int *mode = (int *)data;
@@ -481,6 +482,10 @@
 
     switch (cmd) {
     case IOCATAREQUEST:
+	if (ioc_request->count >
+	    (ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS)) {
+		return (EFBIG);
+	}
 	if (!(buf = malloc(ioc_request->count, M_ATA, M_NOWAIT))) {
 	    return ENOMEM;
 	}

==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#3 (text+ko) ====

@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c,v 1.2 2009/06/27 20:06:56 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c,v 1.3 2009/07/21 19:23:34 sam Exp $
  */
 #include "opt_ah.h"
 
@@ -164,7 +164,7 @@
 	if (phybits & (AR_PHY_ERR_OFDM_TIMING|AR_PHY_ERR_CCK_TIMING))
 		bits |= HAL_RX_FILTER_PHYERR;
 	if (AH_PRIVATE(ah)->ah_caps.halBssidMatchSupport &&
-	    (OS_REG_READ(ah, AR_MISC_MODE) & AR_MISC_MODE_BSSID_MATCH_FORCE))
+	    (AH5212(ah)->ah_miscMode & AR_MISC_MODE_BSSID_MATCH_FORCE))
 		bits |= HAL_RX_FILTER_BSSID;
 	return bits;
 }
@@ -175,6 +175,7 @@
 void
 ar5212SetRxFilter(struct ath_hal *ah, uint32_t bits)
 {
+	struct ath_hal_5212 *ahp = AH5212(ah);
 	uint32_t phybits;
 
 	OS_REG_WRITE(ah, AR_RX_FILTER,
@@ -194,12 +195,11 @@
 			OS_REG_READ(ah, AR_RXCFG) &~ AR_RXCFG_ZLFDMA);
 	}
 	if (AH_PRIVATE(ah)->ah_caps.halBssidMatchSupport) {
-		uint32_t miscbits = OS_REG_READ(ah, AR_MISC_MODE);
 		if (bits & HAL_RX_FILTER_BSSID)
-			miscbits |= AR_MISC_MODE_BSSID_MATCH_FORCE;
+			ahp->ah_miscMode |= AR_MISC_MODE_BSSID_MATCH_FORCE;
 		else
-			miscbits &= ~AR_MISC_MODE_BSSID_MATCH_FORCE;
-		OS_REG_WRITE(ah, AR_MISC_MODE, miscbits);
+			ahp->ah_miscMode &= ~AR_MISC_MODE_BSSID_MATCH_FORCE;
+		OS_REG_WRITE(ah, AR_MISC_MODE, ahp->ah_miscMode);
 	}
 }
 

==== //depot/projects/usb/src/sys/dev/ath/if_ath.c#30 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.261 2009/07/11 16:02:06 rpaulo Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.262 2009/07/21 19:01:04 sam Exp $");
 
 /*
  * Driver for the Atheros Wireless LAN controller.
@@ -1023,6 +1023,8 @@
 		sc->sc_nvaps++;
 		if (opmode == IEEE80211_M_STA)
 			sc->sc_nstavaps++;
+		if (opmode == IEEE80211_M_MBSS)
+			sc->sc_nmeshvaps++;
 	}
 	switch (ic_opmode) {
 	case IEEE80211_M_IBSS:
@@ -1137,6 +1139,8 @@
 	    vap->iv_opmode == IEEE80211_M_MBSS) {
 		reclaim_address(sc, vap->iv_myaddr);
 		ath_hal_setbssidmask(ah, sc->sc_hwbssidmask);
+		if (vap->iv_opmode == IEEE80211_M_MBSS)
+			sc->sc_nmeshvaps--;
 	}
 	if (vap->iv_opmode != IEEE80211_M_WDS)
 		sc->sc_nvaps--;
@@ -2381,7 +2385,7 @@
 	if (ic->ic_opmode == IEEE80211_M_HOSTAP &&
 	    IEEE80211_IS_CHAN_ANYG(ic->ic_curchan))
 		rfilt |= HAL_RX_FILTER_BEACON;
-	if (ic->ic_opmode == IEEE80211_M_MBSS) {
+	if (sc->sc_nmeshvaps) {
 		rfilt |= HAL_RX_FILTER_BEACON;
 		if (sc->sc_hasbmatch)
 			rfilt |= HAL_RX_FILTER_BSSID;

==== //depot/projects/usb/src/sys/dev/ath/if_athvar.h#22 (text+ko) ====

@@ -26,7 +26,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGES.
  *
- * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.89 2009/07/11 15:02:45 rpaulo Exp $
+ * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.90 2009/07/21 19:01:04 sam Exp $
  */
 
 /*
@@ -203,6 +203,7 @@
 	int			sc_debug;
 	int			sc_nvaps;	/* # vaps */
 	int			sc_nstavaps;	/* # station vaps */
+	int			sc_nmeshvaps;	/* # mbss vaps */
 	u_int8_t		sc_hwbssidmask[IEEE80211_ADDR_LEN];
 	u_int8_t		sc_nbssid0;	/* # vap's using base mac */
 	uint32_t		sc_bssidmask;	/* bssid mask */

==== //depot/projects/usb/src/sys/dev/ciss/ciss.c#16 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/dev/ciss/ciss.c,v 1.96 2009/07/10 08:18:08 scottl Exp $
+ *	$FreeBSD: src/sys/dev/ciss/ciss.c,v 1.97 2009/07/20 03:59:00 scottl Exp $
  */
 
 /*
@@ -2687,7 +2687,7 @@
     if (cr->cr_flags & CISS_REQ_DATAOUT)
 	bus_dmamap_sync(sc->ciss_buffer_dmat, cr->cr_datamap, BUS_DMASYNC_PREWRITE);
 
-    if (nseg == 1)
+    if (nseg == 0)

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


More information about the p4-projects mailing list