From owner-p4-projects@FreeBSD.ORG Mon Jun 11 04:17:39 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A9F9516A46B; Mon, 11 Jun 2007 04:17:39 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5551C16A400 for ; Mon, 11 Jun 2007 04:17:39 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 41DC813C447 for ; Mon, 11 Jun 2007 04:17:39 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l5B4HdCn071730 for ; Mon, 11 Jun 2007 04:17:39 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l5B4HZaF071720 for perforce@freebsd.org; Mon, 11 Jun 2007 04:17:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 11 Jun 2007 04:17:35 GMT Message-Id: <200706110417.l5B4HZaF071720@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 121384 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2007 04:17:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=121384 Change 121384 by rwatson@rwatson_zoo on 2007/06/11 04:17:06 Integrate TrustedBSD priv branch. Affected files ... .. //depot/projects/trustedbsd/priv/sys/amd64/amd64/trap.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/conf/DEFAULTS#4 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/ia32/ia32_syscall.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/include/kdb.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/arm/arm/busdma_machdep.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/arm/include/kdb.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/cam/README.quirks#2 integrate .. //depot/projects/trustedbsd/priv/sys/compat/linux/linux_file.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/compat/linux/linux_misc.c#16 integrate .. //depot/projects/trustedbsd/priv/sys/compat/ndis/kern_ndis.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/compat/svr4/svr4_misc.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/conf/NOTES#16 integrate .. //depot/projects/trustedbsd/priv/sys/conf/files#17 integrate .. //depot/projects/trustedbsd/priv/sys/conf/files.amd64#10 integrate .. //depot/projects/trustedbsd/priv/sys/conf/files.i386#9 integrate .. //depot/projects/trustedbsd/priv/sys/conf/files.pc98#8 integrate .. //depot/projects/trustedbsd/priv/sys/conf/files.sparc64#7 integrate .. //depot/projects/trustedbsd/priv/sys/conf/files.sun4v#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/ath_rate/amrr/amrr.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/ath_rate/onoe/onoe.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/ath_rate/sample/sample.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/if_ath.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/if_athioctl.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/if_athvar.h#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/awi/awi.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/awi/awivar.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/if_ndis/if_ndis.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ipw/if_ipw.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/iwi/if_iwi.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/dev/iwi/if_iwireg.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/iwi/if_iwivar.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mii/icsphy.c#1 branch .. //depot/projects/trustedbsd/priv/sys/dev/mii/icsphyreg.h#1 branch .. //depot/projects/trustedbsd/priv/sys/dev/mii/miidevs#8 integrate .. //depot/projects/trustedbsd/priv/sys/dev/msk/if_msk.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/msk/if_mskreg.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ral/if_ral_pci.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ral/rt2560.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ral/rt2560reg.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ral/rt2560var.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ral/rt2661.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ral/rt2661reg.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ral/rt2661var.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/isa/ad1816.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/isa/ess.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/isa/mss.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/isa/sb16.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/isa/sb8.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/als4000.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/atiixp.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/aureal.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/cmi.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/cs4281.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/csapcm.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/ds1.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/emu10k1.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/emu10kx-pcm.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/es137x.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/fm801.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/hda/hdac.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/ich.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/maestro3.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/neomagic.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/solo.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/t4dwave.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/via8233.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/via82c686.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/vibes.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/channel.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/channel.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/dsp.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/vchan.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/usb/uaudio.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/usb/uaudio_pcm.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_axe.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_axereg.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_cdce.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_cdcereg.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_rum.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_rumreg.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_rumvar.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_ural.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_uralreg.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_uralvar.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/ufoma.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/umct.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/usb_subr.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/dev/wi/if_wi.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/wi/if_wivar.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/fs/procfs/procfs_status.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/gdb/gdb_packet.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/gnu/fs/reiserfs/reiserfs_namei.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/gnu/fs/reiserfs/reiserfs_stree.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/i386/conf/DEFAULTS#4 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/trap.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/i386/include/kdb.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/ia64/ia64/db_machdep.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/ia64/ia64/machdep.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/ia64/include/cpufunc.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/ia64/include/kdb.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/ia64/include/vmparam.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/kern/init_main.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_acct.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_clock.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_exit.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_fork.c#13 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_mutex.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_proc.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_resource.c#14 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_sig.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_thread.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_time.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/kern/subr_witness.c#13 integrate .. //depot/projects/trustedbsd/priv/sys/kern/tty.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/kern/vfs_aio.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/kern/vfs_bio.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/modules/Makefile#12 integrate .. //depot/projects/trustedbsd/priv/sys/modules/bge/Makefile#3 integrate .. //depot/projects/trustedbsd/priv/sys/modules/mii/Makefile#2 integrate .. //depot/projects/trustedbsd/priv/sys/modules/wlan_scan_ap/Makefile#1 branch .. //depot/projects/trustedbsd/priv/sys/modules/wlan_scan_sta/Makefile#1 branch .. //depot/projects/trustedbsd/priv/sys/net/if_media.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/net/if_spppsubr.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/_ieee80211.h#6 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_acl.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_amrr.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto_ccmp.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto_none.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto_tkip.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_crypto_wep.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_freebsd.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_freebsd.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_ht.c#1 branch .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_ht.h#1 branch .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_input.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_ioctl.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_ioctl.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_node.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_node.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_output.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_power.c#1 branch .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_power.h#1 branch .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_proto.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_proto.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_radiotap.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_regdomain.c#1 branch .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_regdomain.h#1 branch .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_scan.c#1 branch .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_scan.h#1 branch .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_scan_ap.c#1 branch .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_scan_sta.c#1 branch .. //depot/projects/trustedbsd/priv/sys/net80211/ieee80211_var.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_auth.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_auth.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_input.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_output.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_uio.h#9 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctputil.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp_input.c#13 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp_output.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp_timer.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/nfsserver/nfs_serv.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/pc98/conf/DEFAULTS#4 integrate .. //depot/projects/trustedbsd/priv/sys/powerpc/include/cpu.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/powerpc/include/kdb.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/powerpc/include/md_var.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/db_interface.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/syncicache.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/uio_machdep.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/sparc64/conf/DEFAULTS#4 integrate .. //depot/projects/trustedbsd/priv/sys/sparc64/include/kdb.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/sun4v/conf/DEFAULTS#5 integrate .. //depot/projects/trustedbsd/priv/sys/sun4v/include/kdb.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/sys/param.h#12 integrate .. //depot/projects/trustedbsd/priv/sys/sys/proc.h#11 integrate .. //depot/projects/trustedbsd/priv/sys/sys/resourcevar.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/sys/systm.h#14 integrate .. //depot/projects/trustedbsd/priv/sys/sys/vmmeter.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/vm/vm_contig.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/vm/vm_object.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/vm/vm_page.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/vm/vm_pageout.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/vm/vm_pageq.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/vm/vm_phys.c#1 branch .. //depot/projects/trustedbsd/priv/sys/vm/vm_phys.h#1 branch Differences ... ==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/trap.c#7 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.317 2007/06/04 21:38:44 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.318 2007/06/10 21:59:12 attilio Exp $"); /* * AMD64 Trap and System call handling @@ -736,10 +736,6 @@ int reg, regcnt; ksiginfo_t ksi; - /* - * note: PCPU_INC() can only be used if we can afford - * occassional inaccuracy in the count. - */ PCPU_INC(cnt.v_syscall); #ifdef DIAGNOSTIC ==== //depot/projects/trustedbsd/priv/sys/amd64/conf/DEFAULTS#4 (text+ko) ==== @@ -1,7 +1,7 @@ # # DEFAULTS -- Default kernel configuration file for FreeBSD/amd64 # -# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.9 2006/11/04 23:50:11 jb Exp $ +# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.10 2007/06/11 00:38:05 marcel Exp $ machine amd64 @@ -15,5 +15,9 @@ # UART chips on this platform device uart_ns8250 +# Default partitioning schemes +options GEOM_BSD +options GEOM_MBR + # KSE support went from being default to a kernel option options KSE ==== //depot/projects/trustedbsd/priv/sys/amd64/ia32/ia32_syscall.c#4 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_syscall.c,v 1.18 2007/06/04 21:38:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_syscall.c,v 1.19 2007/06/10 21:59:12 attilio Exp $"); /* * 386 Trap and System call handling @@ -104,12 +104,7 @@ u_int code; ksiginfo_t ksi; - /* - * note: PCPU_INC() can only be used if we can afford - * occassional inaccuracy in the count. - */ PCPU_INC(cnt.v_syscall); - td->td_pticks = 0; td->td_frame = frame; if (td->td_ucred != p->p_ucred) ==== //depot/projects/trustedbsd/priv/sys/amd64/include/kdb.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/kdb.h,v 1.3 2006/04/03 22:51:46 marcel Exp $ + * $FreeBSD: src/sys/amd64/include/kdb.h,v 1.4 2007/06/09 21:55:16 marcel Exp $ */ #ifndef _MACHINE_KDB_H_ @@ -47,6 +47,11 @@ } static __inline void +kdb_cpu_sync_icache(unsigned char *addr, size_t size) +{ +} + +static __inline void kdb_cpu_trap(int type, int code) { } ==== //depot/projects/trustedbsd/priv/sys/arm/arm/busdma_machdep.c#7 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.32 2007/06/07 21:51:09 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.33 2007/06/10 12:33:01 cognet Exp $"); /* * ARM bus dma support routines @@ -427,7 +427,8 @@ } /* Performed initial allocation */ newtag->flags |= BUS_DMA_MIN_ALLOC_COMP; - } + } else + newtag->bounce_zone = NULL; if (error != 0) free(newtag, M_DEVBUF); else ==== //depot/projects/trustedbsd/priv/sys/arm/include/kdb.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/include/kdb.h,v 1.3 2005/01/05 21:58:48 imp Exp $ + * $FreeBSD: src/sys/arm/include/kdb.h,v 1.4 2007/06/09 21:55:16 marcel Exp $ */ #ifndef _MACHINE_KDB_H_ @@ -44,6 +44,11 @@ } static __inline void +kdb_cpu_sync_icache(unsigned char *addr, size_t size) +{ +} + +static __inline void kdb_cpu_trap(int type, int code) { cpu_idcache_wbinv_all(); ==== //depot/projects/trustedbsd/priv/sys/cam/README.quirks#2 (text+ko) ==== @@ -1,4 +1,212 @@ -/* $FreeBSD: src/sys/cam/README.quirks,v 1.1 2007/05/29 20:07:22 mjacob Exp $ */ +/* $FreeBSD: src/sys/cam/README.quirks,v 1.2 2007/06/10 04:31:55 mjacob Exp $ */ + + FreeBSD Quirk Guidelines + + Nate Lawson - njl at freebsd org + +0. Introduction + +FreeBSD drivers make every attempt possible to support the standards +behind hardware. Where possible and not in conflict with the standard, +they also attempt to work around hardware which doesn't strictly +conform. However, some devices have flaws which can't be worked +around while keeping the driver compatible with the standard. For +these devices, we have created a quirks mechanism to indicate to +the driver that it must avoid certain commands or use them differently +with a specific model and/or version of hardware. This document +focuses on identifying and committing quirks for storage hardware +involving CAM and UMASS but is applicable to other areas. + +CAM provides a generic transport for SCSI-like devices. Many different +transports use SCSI command sets including parallel SCSI, firewire +(1394), USB UMASS, fibre channel, and ATAPI. For block devices (i.e. +hard drives, flash adapters, cameras) there are two standards, SBC +and RBC. SCSI hard drives are usually SBC-compliant and smaller +devices like flash drives are usually RBC-compliant. Multimedia +devices including CDROMs and DVD-RW are usually MMC-compliant. + +Please follow these guidelines to get your device working as soon +as possible. If you are a committer, please do NOT commit quirks +directly but follow this process also. + +1. Determing the problem + +The first step is to determine what's wrong. If the device should +be supported but hangs while attaching, it's possible a quirk can +help. The types of things a quirk can fix are: +` + * cam/cam_xpt.c quirks + + o CAM_QUIRK_NOLUNS - do not probe luns other than 0 since device + responds to all inquiries with "lun present". + + o CAM_QUIRK_NOSERIAL - do not send an inquiry for serial number. + + o CAM_QUIRK_HILUNS - probe all luns even if some respond "not present" + since device has a sparse lun space. + + * cam/scsi/scsi_da.c quirks + + o DA_Q_NO_SYNC_CACHE - The sync cache command is used to force a + drive to write out all changes to disk before shutting down. Some + drives hang when receiving this command even though it is required + by all SBC and RBC standards. Note that a warning message on + console is NOT sufficient to add this quirk. The warning messages + are harmless and only a device or system hang is cause for adding + this quirk. + + o DA_Q_NO_6_BYTE - The RBC spec (see Links below) does not allow + for 6-byte READ/WRITE commands. Some manufacturers took that too + literally and crash when receiving 6-byte commands. This quirk + causes FreeBSD to only send 10-byte commands. Since the CAM subsystem + has been modified to not send 6-byte commands to USB, 1394, and + other transports that don't support SBC, this quirk should be very + rare. + + o DA_Q_NO_PREVENT - Don't use the prevent/allow commands to keep a + removable medium from being ejected. Some systems can't handle these + commands (rare). + + * cam/scsi/scsi_cd.c quirks + + o CD_Q_NO_TOUCH - not implemented + + o CD_Q_BCD_TRACKS - convert start/end track to BCD + + o CD_Q_NO_CHANGER - never treat as a changer + + o CD_Q_CHANGER - always treat as a changer + + * cam/scsi/scsi_ch.c quirks + o CH_Q_NO_DBD - disable block descriptors in mode sense + + * cam/scsi/scsi_sa.c quirks + + o SA_QUIRK_NOCOMP - Can't deal with compression at all + + o SA_QUIRK_FIXED - Force fixed mode + + o SA_QUIRK_VARIABLE - Force variable mode + + o SA_QUIRK_2FM - Needs Two File Marks at EOD + + o SA_QUIRK_1FM - No more than 1 File Mark at EOD + + o SA_QUIRK_NODREAD - Don't try and dummy read density + + o SA_QUIRK_NO_MODESEL - Don't do mode select at all + + o SA_QUIRK_NO_CPAGE - Don't use DEVICE COMPRESSION page + + * dev/usb/umass.c quirks + + o NO_TEST_UNIT_READY - The drive does not support Test Unit Ready. + Convert to Start Unit. This command is a simple no-op for most + firmware but some of them hang when this command is sent. + + o RS_NO_CLEAR_UA - The drive does not reset the Unit Attention state + after REQUEST SENSE has been sent. The INQUIRY command does not + reset the UA either, and so CAM runs in circles trying to retrieve + the initial INQUIRY data. This quirk signifies that after a unit + attention condition, don't try to clear the condition with a request + sense command. + + o NO_START_STOP - Like test unit ready, don't send this command if it hangs the device. + + o FORCE_SHORT_INQUIRY - Don't ask for full inquiry data (256 + bytes). Some drives can only handle the shorter inquiry length + (36 bytes). + + o SHUTTLE_INIT - Needs to be initialised the Shuttle way. Haven't + looked into what this does but apparently it's mostly Shuttle + devices. + + o ALT_IFACE_1 - Drive needs to be switched to alternate interface 1. Rare. + + o FLOPPY_SPEED - Drive does not do 1Mb/s, but just floppy speeds (20kb/s). + + o IGNORE_RESIDUE - The device can't count and gets the residue + of transfers wrong. This is sometimes needed for devices where + large transfers cause stalls. + + o NO_GETMAXLUN - Get maximum LUN is a command to identify multiple + devices sharing the same ID. For instance, a multislot compact + flash reader might be on two LUNS. Some non-standard devices hang + when receiving this command so this quirk disables it. + + o WRONG_CSWSIG - The device uses a weird CSWSIGNATURE. Rare. + + o NO_INQUIRY - Device cannot handle INQUIRY so fake a generic + response. INQUIRY is one of the most basic commands but some + drives can't even handle it. (No idea how such devices even work + at all on other OS's.) This quirk fakes up a valid but generic + response for devices that can't handle INQUIRY. + + o NO_INQUIRY_EVPD - Device cannot handle an extended INQUIRY + asking for vital product data (EVPD) so just return a "no data" + response (check condition) without sending the command to the + device. + +2. Testing a Quirk + +After you have an idea what you want to try, edit the proper file +above, using wildcarding to be sure your device is matched. Here +is a list of the common things to try. Note that some devices require +multiple quirks or quirks in different drivers. For example, some +USB pen drives or flash readers require quirks in both da(4) and +umass(4). + +* umass(4) device (sys/dev/usb/umass.c) -- this quirk matches an Asahi Optical device with any product ID or revision ID. +* +* { USB_VENDOR_ASAHIOPTICAL, PID_WILDCARD, RID_WILDCARD, +* UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I, +* RS_NO_CLEAR_UA +* }, +* da(4) device (sys/cam/scsi/scsi_da.c) -- this quirk matches a Creative device with a name of "NOMAD_MUVO" and any revision. +* +* { +* /* +* * Creative Nomad MUVO mp3 player (USB) +* * PR: kern/53094 +* */ +* {T_DIRECT, SIP_MEDIA_REMOVABLE, "CREATIVE", "NOMAD_MUVO", "*"}, +* /*quirks*/ DA_Q_NO_SYNC_CACHE|DA_Q_NO_PREVENT +* }, + +3. Filing a PR + +All quirk submissions MUST go through GNATS. For information on how +to submit a PR, see this page. + +Please include the following in your PR: + + * Subject: QUIRK: FooCo USB DVD-RAM drive + * Output of "camcontrol inquiry yourdevice" + * Manufacturer name, model number, etc. + * Transport type (FC, SCSI, USB, Firewire) + * Output from dmesg for failed attach attempts + * Output from dmesg for successful attach attempts (after quirk added) + * Output of "usbdevs -v" with device attached + * Valid email address + +Here are some examples of well-formed PRs: + + * kern/43580 + * kern/49054 + +4. What happens next + +I will review your submission, respond with comments, and once the +quirk is deemed necessary and ready for committing, I'll commit it, +referencing the PR. (Again, all quirks must be submitted as PRs). +Questions? Email njl AT freebsd.org. + +5. Note to Committers -This is a place holder for instructions about how both committers -and non-committers should submit device quirks. +Please insert quirks in the right section in scsi_da.c, sorted by +PR number. Always include the name and PR number for scsi_da.c (see +above for an example.) Please sort quirks alphabetically in umass.c. +Follow the surrounding style in all drivers. Be sure to correspond +with the submitter to be sure the quirk you are adding is the minimum +necessary, not quirking other useful features and not overly broad +(i.e., too many wildcards). ==== //depot/projects/trustedbsd/priv/sys/compat/linux/linux_file.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_file.c,v 1.103 2007/04/04 09:11:31 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_file.c,v 1.104 2007/06/10 04:37:22 mjacob Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -239,6 +239,8 @@ *newpath = malloc(strlen(fullpath) + strlen(filename) + 2, M_TEMP, M_WAITOK | M_ZERO); *freebuf = freepath; sprintf(*newpath, "%s/%s", fullpath, filename); + } else { + *newpath = NULL; } vfslocked = VFS_LOCK_GIANT(dvp->v_mount); vrele(dvp); ==== //depot/projects/trustedbsd/priv/sys/compat/linux/linux_misc.c#16 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.211 2007/05/31 22:52:11 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.212 2007/06/09 21:48:43 attilio Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -670,7 +670,9 @@ if (args->buf != NULL) { p = td->td_proc; PROC_LOCK(p); + PROC_SLOCK(p); calcru(p, &utime, &stime); + PROC_SUNLOCK(p); calccru(p, &cutime, &cstime); PROC_UNLOCK(p); ==== //depot/projects/trustedbsd/priv/sys/compat/ndis/kern_ndis.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.95 2007/04/06 11:18:57 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.96 2007/06/10 04:40:13 mjacob Exp $"); #include #include @@ -945,7 +945,7 @@ ndis_senddone_func senddonefunc; int i; ndis_packet *p; - uint8_t irql; + uint8_t irql = 0; sc = arg; adapter = sc->ndis_block->nmb_miniportadapterctx; @@ -988,7 +988,7 @@ ndis_status status; ndis_sendsingle_handler sendfunc; ndis_senddone_func senddonefunc; - uint8_t irql; + uint8_t irql = 0; sc = arg; adapter = sc->ndis_block->nmb_miniportadapterctx; @@ -1081,7 +1081,7 @@ ndis_reset_handler resetfunc; uint8_t addressing_reset; int rval; - uint8_t irql; + uint8_t irql = 0; sc = arg; ==== //depot/projects/trustedbsd/priv/sys/compat/svr4/svr4_misc.c#9 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.94 2007/06/05 00:00:50 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.96 2007/06/09 21:48:43 attilio Exp $"); #include "opt_mac.h" @@ -827,7 +827,9 @@ p = td->td_proc; PROC_LOCK(p); + PROC_SLOCK(p); calcru(p, &utime, &stime); + PROC_SUNLOCK(p); calccru(p, &cutime, &cstime); PROC_UNLOCK(p); @@ -1225,20 +1227,24 @@ nfound++; + PROC_SLOCK(p); /* * See if we have a zombie. If so, WNOWAIT should be set, * as otherwise we should have called kern_wait() up above. */ if ((p->p_state == PRS_ZOMBIE) && ((uap->options & (SVR4_WEXITED|SVR4_WTRAPPED)))) { + PROC_SUNLOCK(p); KASSERT(uap->options & SVR4_WNOWAIT, ("WNOWAIT is clear")); /* Found a zombie, so cache info in local variables. */ pid = p->p_pid; status = p->p_xstat; - ru = *p->p_ru; + ru = p->p_ru; + PROC_SLOCK(p); calcru(p, &ru.ru_utime, &ru.ru_stime); + PROC_SUNLOCK(p); PROC_UNLOCK(p); sx_sunlock(&proctree_lock); @@ -1252,7 +1258,6 @@ * See if we have a stopped or continued process. * XXX: This duplicates the same code in kern_wait(). */ - PROC_SLOCK(p); if ((p->p_flag & P_STOPPED_SIG) && (p->p_suspcount == p->p_numthreads) && (p->p_flag & P_WAITED) == 0 && @@ -1263,8 +1268,10 @@ sx_sunlock(&proctree_lock); pid = p->p_pid; status = W_STOPCODE(p->p_xstat); - ru = *p->p_ru; + ru = p->p_ru; + PROC_SLOCK(p); calcru(p, &ru.ru_utime, &ru.ru_stime); + PROC_SUNLOCK(p); PROC_UNLOCK(p); if (((uap->options & SVR4_WNOWAIT)) == 0) { @@ -1284,9 +1291,11 @@ if (((uap->options & SVR4_WNOWAIT)) == 0) p->p_flag &= ~P_CONTINUED; pid = p->p_pid; - ru = *p->p_ru; + ru = p->p_ru; status = SIGCONT; + PROC_SLOCK(p); calcru(p, &ru.ru_utime, &ru.ru_stime); + PROC_SUNLOCK(p); PROC_UNLOCK(p); if (((uap->options & SVR4_WNOWAIT)) == 0) { ==== //depot/projects/trustedbsd/priv/sys/conf/NOTES#16 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1429 2007/06/08 21:36:52 attilio Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1430 2007/06/11 03:36:48 sam Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -786,6 +786,8 @@ device wlan_xauth #802.11 external authenticator support device wlan_acl #802.11 MAC ACL support device wlan_amrr #AMRR transmit rate control algorithm +device wlan_scan_ap #802.11 AP mode scanning +device wlan_scan_sta #802.11 STA mode scanning device token #Generic TokenRing device fddi #Generic FDDI device arcnet #Generic Arcnet ==== //depot/projects/trustedbsd/priv/sys/conf/files#17 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1214 2007/06/05 00:12:36 jeff Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1216 2007/06/11 03:36:48 sam Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -768,6 +768,7 @@ # XXX only xl cards? dev/mii/exphy.c optional miibus | exphy dev/mii/gentbi.c optional miibus | gentbi +dev/mii/icsphy.c optional miibus | icsphy # XXX only fxp cards? dev/mii/inphy.c optional miibus | inphy dev/mii/ip1000phy.c optional miibus | ip1000phy @@ -1612,11 +1613,17 @@ net80211/ieee80211_crypto_tkip.c optional wlan_tkip net80211/ieee80211_crypto_wep.c optional wlan_wep net80211/ieee80211_freebsd.c optional wlan +net80211/ieee80211_ht.c optional wlan net80211/ieee80211_input.c optional wlan net80211/ieee80211_ioctl.c optional wlan net80211/ieee80211_node.c optional wlan net80211/ieee80211_output.c optional wlan +net80211/ieee80211_power.c optional wlan net80211/ieee80211_proto.c optional wlan +net80211/ieee80211_regdomain.c optional wlan +net80211/ieee80211_scan.c optional wlan +net80211/ieee80211_scan_ap.c optional wlan_scan_ap +net80211/ieee80211_scan_sta.c optional wlan_scan_sta net80211/ieee80211_xauth.c optional wlan_xauth netatalk/aarp.c optional netatalk netatalk/at_control.c optional netatalk ==== //depot/projects/trustedbsd/priv/sys/conf/files.amd64#10 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.amd64,v 1.103 2007/05/23 15:45:51 kib Exp $ +# $FreeBSD: src/sys/conf/files.amd64,v 1.104 2007/06/11 00:38:05 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -199,10 +199,6 @@ dev/syscons/scvgarndr.c optional sc vga dev/syscons/scvtb.c optional sc dev/uart/uart_cpu_amd64.c optional uart -geom/geom_bsd.c standard -geom/geom_bsd_enc.c standard -geom/geom_mbr.c standard -geom/geom_mbr_enc.c standard isa/syscons_isa.c optional sc isa/vga_isa.c optional vga kern/link_elf_obj.c standard ==== //depot/projects/trustedbsd/priv/sys/conf/files.i386#9 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.576 2007/05/23 15:45:51 kib Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.577 2007/06/11 00:38:05 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -231,10 +231,6 @@ dev/syscons/scvgarndr.c optional sc vga dev/syscons/scvtb.c optional sc dev/uart/uart_cpu_i386.c optional uart -geom/geom_bsd.c standard -geom/geom_bsd_enc.c standard -geom/geom_mbr.c standard -geom/geom_mbr_enc.c standard dev/acpica/acpi_if.m standard i386/acpica/OsdEnvironment.c optional acpi i386/acpica/acpi_machdep.c optional acpi ==== //depot/projects/trustedbsd/priv/sys/conf/files.pc98#8 (text+ko) ==== @@ -3,7 +3,7 @@ # # modified for PC-9801/PC-9821 # -# $FreeBSD: src/sys/conf/files.pc98,v 1.354 2007/05/23 15:45:51 kib Exp $ +# $FreeBSD: src/sys/conf/files.pc98,v 1.355 2007/06/11 00:38:06 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -137,10 +137,6 @@ dev/speaker/spkr.c optional speaker dev/syscons/apm/apm_saver.c optional apm_saver apm dev/uart/uart_cpu_pc98.c optional uart -geom/geom_bsd.c standard -geom/geom_bsd_enc.c standard -geom/geom_pc98.c standard -geom/geom_pc98_enc.c standard i386/bios/apm.c optional apm #i386/i386/apic_vector.s optional apic i386/i386/atomic.c standard \ ==== //depot/projects/trustedbsd/priv/sys/conf/files.sparc64#7 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.sparc64,v 1.88 2007/03/07 21:13:49 marius Exp $ +# $FreeBSD: src/sys/conf/files.sparc64,v 1.89 2007/06/11 00:38:06 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -67,10 +67,6 @@ dev/syscons/scvtb.c optional sc dev/uart/uart_cpu_sparc64.c optional uart dev/uart/uart_kbd_sun.c optional uart sc -geom/geom_bsd.c standard -geom/geom_bsd_enc.c standard -geom/geom_sunlabel.c standard -geom/geom_sunlabel_enc.c standard kern/syscalls.c optional ktr libkern/ffs.c standard libkern/ffsl.c standard ==== //depot/projects/trustedbsd/priv/sys/conf/files.sun4v#3 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.sun4v,v 1.8 2006/12/18 07:26:35 kmacy Exp $ +# $FreeBSD: src/sys/conf/files.sun4v,v 1.9 2007/06/11 00:38:06 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -28,10 +28,6 @@ dev/ofw/openfirmio.c standard dev/ofw/openpromio.c standard dev/uart/uart_cpu_sparc64.c optional uart -geom/geom_bsd.c standard -geom/geom_bsd_enc.c standard -geom/geom_sunlabel.c standard -geom/geom_sunlabel_enc.c standard kern/syscalls.c optional ktr libkern/ffs.c standard libkern/ffsl.c standard ==== //depot/projects/trustedbsd/priv/sys/dev/ath/ath_rate/amrr/amrr.c#3 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/amrr/amrr.c,v 1.12 2006/12/13 19:34:34 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/amrr/amrr.c,v 1.13 2007/06/11 03:36:50 sam Exp $"); /* * AMRR rate control. See: @@ -297,27 +297,27 @@ /* NB: the rate set is assumed sorted */ for (; srate >= 0 && RATE(srate) > 72; srate--) ; - KASSERT(srate >= 0, ("bogus rate set")); } } else { /* - * A fixed rate is to be used; ic_fixed_rate is an - * index into the supported rate set. Convert this + * A fixed rate is to be used; ic_fixed_rate is the + * IEEE code for this rate (sans basic bit). Convert this * to the index into the negotiated rate set for * the node. We know the rate is there because the * rate set is checked when the station associates. */ - const struct ieee80211_rateset *rs = - &ic->ic_sup_rates[ic->ic_curmode]; - int r = rs->rs_rates[ic->ic_fixed_rate] & IEEE80211_RATE_VAL; /* NB: the rate set is assumed sorted */ srate = ni->ni_rates.rs_nrates - 1; - for (; srate >= 0 && RATE(srate) != r; srate--) + for (; srate >= 0 && RATE(srate) != ic->ic_fixed_rate; srate--) ; - KASSERT(srate >= 0, - ("fixed rate %d not in rate set", ic->ic_fixed_rate)); } - ath_rate_update(sc, ni, srate); + /* + * The selected rate may not be available due to races + * and mode settings. Also orphaned nodes created in + * adhoc mode may not have any rate set so this lookup + * can fail. This is not fatal. + */ + ath_rate_update(sc, ni, srate < 0 ? 0 : srate); #undef RATE } ==== //depot/projects/trustedbsd/priv/sys/dev/ath/ath_rate/onoe/onoe.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/onoe/onoe.c,v 1.13 2007/06/06 15:49:16 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/onoe/onoe.c,v 1.14 2007/06/11 03:36:50 sam Exp $"); /* * Atsushi Onoe's rate control algorithm. @@ -274,27 +274,27 @@ /* NB: the rate set is assumed sorted */ for (; srate >= 0 && RATE(srate) > 72; srate--) ; - KASSERT(srate >= 0, ("bogus rate set")); } } else { /* - * A fixed rate is to be used; ic_fixed_rate is an - * index into the supported rate set. Convert this + * A fixed rate is to be used; ic_fixed_rate is the + * IEEE code for this rate (sans basic bit). Convert this * to the index into the negotiated rate set for * the node. We know the rate is there because the * rate set is checked when the station associates. */ - const struct ieee80211_rateset *rs = - &ic->ic_sup_rates[ic->ic_curmode]; - int r = rs->rs_rates[ic->ic_fixed_rate] & IEEE80211_RATE_VAL; /* NB: the rate set is assumed sorted */ srate = ni->ni_rates.rs_nrates - 1; - for (; srate >= 0 && RATE(srate) != r; srate--) + for (; srate >= 0 && RATE(srate) != ic->ic_fixed_rate; srate--) ; - KASSERT(srate >= 0, - ("fixed rate %d not in rate set", ic->ic_fixed_rate)); } - ath_rate_update(sc, ni, srate); + /* + * The selected rate may not be available due to races + * and mode settings. Also orphaned nodes created in + * adhoc mode may not have any rate set so this lookup + * can fail. This is not fatal. + */ + ath_rate_update(sc, ni, srate < 0 ? 0 : srate); #undef RATE } ==== //depot/projects/trustedbsd/priv/sys/dev/ath/ath_rate/sample/sample.c#4 (text+ko) ==== @@ -32,10 +32,11 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. + * */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/sample/sample.c,v 1.16 2007/01/15 01:17:44 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/sample/sample.c,v 1.17 2007/06/11 03:36:50 sam Exp $"); >>> TRUNCATED FOR MAIL (1000 lines) <<<