From owner-p4-projects@FreeBSD.ORG Wed Jun 6 18:50:03 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 CA93916A421; Wed, 6 Jun 2007 18:50:02 +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 5A28716A41F for ; Wed, 6 Jun 2007 18:50:02 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 44A8713C458 for ; Wed, 6 Jun 2007 18:50:02 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l56Io2oj091938 for ; Wed, 6 Jun 2007 18:50:02 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l56Io1NS091905 for perforce@freebsd.org; Wed, 6 Jun 2007 18:50:01 GMT (envelope-from imp@freebsd.org) Date: Wed, 6 Jun 2007 18:50:01 GMT Message-Id: <200706061850.l56Io1NS091905@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 121093 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: Wed, 06 Jun 2007 18:50:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=121093 Change 121093 by imp@imp_paco-paco on 2007/06/06 18:49:48 IFC @121090 Affected files ... .. //depot/projects/arm/src/contrib/nvi/cl/cl_screen.c#2 integrate .. //depot/projects/arm/src/games/fortune/datfiles/fortunes#13 integrate .. //depot/projects/arm/src/share/man/man4/wlan.4#2 integrate .. //depot/projects/arm/src/sys/amd64/amd64/cpu_switch.S#6 integrate .. //depot/projects/arm/src/sys/amd64/amd64/genassym.c#8 integrate .. //depot/projects/arm/src/sys/amd64/amd64/machdep.c#24 integrate .. //depot/projects/arm/src/sys/dev/ath/ah_osdep.c#3 integrate .. //depot/projects/arm/src/sys/dev/ath/ah_osdep.h#2 integrate .. //depot/projects/arm/src/sys/dev/ath/ath_rate/onoe/onoe.c#5 integrate .. //depot/projects/arm/src/sys/dev/ath/ath_rate/onoe/onoe.h#2 integrate .. //depot/projects/arm/src/sys/dev/ath/if_ath.c#29 integrate .. //depot/projects/arm/src/sys/dev/ath/if_ath_pci.c#8 integrate .. //depot/projects/arm/src/sys/dev/ath/if_athioctl.h#8 integrate .. //depot/projects/arm/src/sys/dev/ath/if_athrate.h#4 integrate .. //depot/projects/arm/src/sys/dev/ath/if_athvar.h#17 integrate .. //depot/projects/arm/src/sys/dev/firewire/firewire.c#7 integrate .. //depot/projects/arm/src/sys/dev/firewire/firewirereg.h#6 integrate .. //depot/projects/arm/src/sys/dev/firewire/fwdev.c#7 integrate .. //depot/projects/arm/src/sys/dev/firewire/fwdma.c#3 integrate .. //depot/projects/arm/src/sys/dev/firewire/fwmem.c#3 integrate .. //depot/projects/arm/src/sys/dev/firewire/fwohci.c#6 integrate .. //depot/projects/arm/src/sys/dev/firewire/fwohci_pci.c#9 integrate .. //depot/projects/arm/src/sys/dev/firewire/fwohcivar.h#3 integrate .. //depot/projects/arm/src/sys/dev/firewire/if_fwe.c#4 integrate .. //depot/projects/arm/src/sys/dev/firewire/if_fwevar.h#3 integrate .. //depot/projects/arm/src/sys/dev/firewire/if_fwip.c#6 integrate .. //depot/projects/arm/src/sys/dev/firewire/if_fwipvar.h#3 integrate .. //depot/projects/arm/src/sys/dev/firewire/sbp.c#8 integrate .. //depot/projects/arm/src/sys/dev/firewire/sbp_targ.c#6 integrate .. //depot/projects/arm/src/sys/dev/mii/ciphy.c#6 integrate .. //depot/projects/arm/src/sys/dev/mii/ciphyreg.h#2 integrate .. //depot/projects/arm/src/sys/dev/mii/miidevs#16 integrate .. //depot/projects/arm/src/sys/dev/mii/rlphy.c#8 integrate .. //depot/projects/arm/src/sys/geom/part/g_part.c#5 integrate .. //depot/projects/arm/src/sys/geom/part/g_part_apm.c#3 integrate .. //depot/projects/arm/src/sys/geom/part/g_part_gpt.c#3 integrate .. //depot/projects/arm/src/sys/i386/i386/genassym.c#8 integrate .. //depot/projects/arm/src/sys/i386/i386/machdep.c#29 integrate .. //depot/projects/arm/src/sys/i386/i386/swtch.s#7 integrate .. //depot/projects/arm/src/sys/ia64/ia64/mp_machdep.c#8 integrate .. //depot/projects/arm/src/sys/kern/kern_mutex.c#18 integrate .. //depot/projects/arm/src/sys/kern/kern_umtx.c#18 integrate .. //depot/projects/arm/src/sys/kern/sched_4bsd.c#18 integrate .. //depot/projects/arm/src/sys/kern/sched_ule.c#19 integrate .. //depot/projects/arm/src/sys/net80211/_ieee80211.h#7 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211.c#14 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211.h#5 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_acl.c#3 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_crypto.c#4 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_crypto.h#4 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_crypto_ccmp.c#4 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_crypto_none.c#3 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_crypto_tkip.c#4 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_crypto_wep.c#4 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_freebsd.c#8 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_freebsd.h#6 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_input.c#17 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_ioctl.c#16 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_ioctl.h#8 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_node.c#16 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_node.h#6 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_output.c#14 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_proto.c#13 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_proto.h#9 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_var.h#15 integrate .. //depot/projects/arm/src/sys/net80211/ieee80211_xauth.c#2 integrate .. //depot/projects/arm/src/sys/netinet/ip_carp.c#12 integrate .. //depot/projects/arm/src/sys/pc98/pc98/machdep.c#18 integrate .. //depot/projects/arm/src/sys/powerpc/powerpc/vm_machdep.c#7 integrate .. //depot/projects/arm/src/sys/sys/mutex.h#15 integrate .. //depot/projects/arm/src/sys/sys/pcpu.h#8 integrate .. //depot/projects/arm/src/sys/sys/proc.h#26 integrate .. //depot/projects/arm/src/sys/sys/umtx.h#11 integrate .. //depot/projects/arm/src/usr.bin/gzip/gzip.1#4 integrate Differences ... ==== //depot/projects/arm/src/contrib/nvi/cl/cl_screen.c#2 (text+ko) ==== @@ -6,7 +6,7 @@ * * See the LICENSE file for redistribution information. * - * $FreeBSD: src/contrib/nvi/cl/cl_screen.c,v 1.2 2001/11/09 02:23:05 rwatson Exp $ + * $FreeBSD: src/contrib/nvi/cl/cl_screen.c,v 1.4 2007/06/06 11:14:30 rafan Exp $ */ #include "config.h" @@ -25,6 +25,7 @@ #include #include #include +#include #include #include ==== //depot/projects/arm/src/games/fortune/datfiles/fortunes#13 (text+ko) ==== @@ -1,5 +1,5 @@ This fortune brought to you by: -$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.239 2007/05/31 20:16:46 dougb Exp $ +$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.240 2007/06/06 11:12:56 ceri Exp $ % ======================================================================= @@ -27058,7 +27058,7 @@ have let me in on it by now. I contribute enough to the shule. -- Saul Goodman % -If there was in justice in the world, "trust" would be a four-letter word. +If there was any justice in the world, "trust" would be a four-letter word. % If there were a school for, say, sheet metal workers, that after three years left its graduates as unprepared for their careers as does law ==== //depot/projects/arm/src/share/man/man4/wlan.4#2 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/wlan.4,v 1.10 2005/11/26 00:47:07 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/wlan.4,v 1.11 2007/06/06 07:58:03 kevlo Exp $ .\" .Dd November 26, 2005 .Dt WLAN 4 @@ -48,6 +48,7 @@ .Xr ipw 4 , .Xr iwi 4 , .Xr ral 4 , +.Xr rum 4 , .Xr ural 4 , and .Xr wi 4 @@ -125,6 +126,7 @@ .Xr iwi 4 , .Xr netintro 4 , .Xr ral 4 , +.Xr rum 4 , .Xr ural 4 , .Xr wi 4 , .Xr wlan_acl 4 , ==== //depot/projects/arm/src/sys/amd64/amd64/cpu_switch.S#6 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.157 2007/06/05 00:16:43 jeff Exp $ + * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.158 2007/06/06 07:35:07 davidxu Exp $ */ #include @@ -203,9 +203,7 @@ movq %rbx, (%rax) movq %rbx, PCPU(RSP0) - movl TD_TID(%rsi), %eax movq %r8, PCPU(CURPCB) - movl %eax, PCPU(CURTID) movq %rsi, PCPU(CURTHREAD) /* into next thread */ testl $PCB_32BIT,PCB_FLAGS(%r8) ==== //depot/projects/arm/src/sys/amd64/amd64/genassym.c#8 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.162 2007/06/05 00:13:49 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.163 2007/06/06 07:35:07 davidxu Exp $"); #include "opt_compat.h" #include "opt_kstack_pages.h" @@ -194,7 +194,6 @@ ASSYM(PC_CURPMAP, offsetof(struct pcpu, pc_curpmap)); ASSYM(PC_TSSP, offsetof(struct pcpu, pc_tssp)); ASSYM(PC_RSP0, offsetof(struct pcpu, pc_rsp0)); -ASSYM(PC_CURTID, offsetof(struct pcpu, pc_curtid)); ASSYM(LA_VER, offsetof(struct LAPIC, version)); ASSYM(LA_TPR, offsetof(struct LAPIC, tpr)); ==== //depot/projects/arm/src/sys/amd64/amd64/machdep.c#24 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.674 2007/06/05 00:00:49 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.675 2007/06/06 07:35:07 davidxu Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -1179,7 +1179,6 @@ PCPU_SET(prvspace, pc); PCPU_SET(curthread, &thread0); PCPU_SET(curpcb, thread0.td_pcb); - PCPU_SET(curtid, thread0.td_tid); PCPU_SET(tssp, &common_tss[0]); /* ==== //depot/projects/arm/src/sys/dev/ath/ah_osdep.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -12,14 +12,7 @@ * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any * redistribution must be conditioned upon including a substantially * similar Disclaimer requirement for further binary redistribution. - * 3. Neither the names of the above-listed copyright holders nor the names - * of any contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -33,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/ah_osdep.c,v 1.2 2007/04/10 15:48:45 rwatson Exp $ + * $FreeBSD: src/sys/dev/ath/ah_osdep.c,v 1.3 2007/06/06 15:49:15 sam Exp $ */ #include "opt_ah.h" ==== //depot/projects/arm/src/sys/dev/ath/ah_osdep.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -12,14 +12,7 @@ * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any * redistribution must be conditioned upon including a substantially * similar Disclaimer requirement for further binary redistribution. - * 3. Neither the names of the above-listed copyright holders nor the names - * of any contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -33,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/ah_osdep.h,v 1.1 2006/09/18 16:49:14 sam Exp $ + * $FreeBSD: src/sys/dev/ath/ah_osdep.h,v 1.2 2007/06/06 15:49:15 sam Exp $ */ #ifndef _ATH_AH_OSDEP_H_ #define _ATH_AH_OSDEP_H_ ==== //depot/projects/arm/src/sys/dev/ath/ath_rate/onoe/onoe.c#5 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -12,14 +12,7 @@ * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any * redistribution must be conditioned upon including a substantially * similar Disclaimer requirement for further binary redistribution. - * 3. Neither the names of the above-listed copyright holders nor the names - * of any contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -35,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/onoe/onoe.c,v 1.12 2006/12/13 19:34:35 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/onoe/onoe.c,v 1.13 2007/06/06 15:49:16 sam Exp $"); /* * Atsushi Onoe's rate control algorithm. ==== //depot/projects/arm/src/sys/dev/ath/ath_rate/onoe/onoe.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -7,19 +7,12 @@ * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer, - without modification. + * without modification. * 2. Redistributions in binary form must reproduce at minimum a disclaimer * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any * redistribution must be conditioned upon including a substantially * similar Disclaimer requirement for further binary redistribution. - * 3. Neither the names of the above-listed copyright holders nor the names - * of any contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -33,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/ath_rate/onoe/onoe.h,v 1.2 2004/12/31 22:41:45 sam Exp $ + * $FreeBSD: src/sys/dev/ath/ath_rate/onoe/onoe.h,v 1.3 2007/06/06 15:49:16 sam Exp $ */ /* ==== //depot/projects/arm/src/sys/dev/ath/if_ath.c#29 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -12,14 +12,7 @@ * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any * redistribution must be conditioned upon including a substantially * similar Disclaimer requirement for further binary redistribution. - * 3. Neither the names of the above-listed copyright holders nor the names - * of any contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -35,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.169 2007/06/03 02:16:48 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.170 2007/06/06 15:49:15 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. ==== //depot/projects/arm/src/sys/dev/ath/if_ath_pci.c#8 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -12,14 +12,7 @@ * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any * redistribution must be conditioned upon including a substantially * similar Disclaimer requirement for further binary redistribution. - * 3. Neither the names of the above-listed copyright holders nor the names - * of any contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -35,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath_pci.c,v 1.18 2007/02/23 12:18:33 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath_pci.c,v 1.19 2007/06/06 15:49:15 sam Exp $"); /* * PCI/Cardbus front-end for the Atheros Wireless LAN controller driver. ==== //depot/projects/arm/src/sys/dev/ath/if_athioctl.h#8 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -12,14 +12,7 @@ * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any * redistribution must be conditioned upon including a substantially * similar Disclaimer requirement for further binary redistribution. - * 3. Neither the names of the above-listed copyright holders nor the names - * of any contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -33,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_athioctl.h,v 1.17 2006/08/10 16:31:37 sam Exp $ + * $FreeBSD: src/sys/dev/ath/if_athioctl.h,v 1.18 2007/06/06 15:49:15 sam Exp $ */ /* ==== //depot/projects/arm/src/sys/dev/ath/if_athrate.h#4 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2004-2005 Sam Leffler, Errno Consulting + * Copyright (c) 2004-2007 Sam Leffler, Errno Consulting * Copyright (c) 2004 Video54 Technologies, Inc. * All rights reserved. * @@ -8,19 +8,12 @@ * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer, - without modification. + * without modification. * 2. Redistributions in binary form must reproduce at minimum a disclaimer * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any * redistribution must be conditioned upon including a substantially * similar Disclaimer requirement for further binary redistribution. - * 3. Neither the names of the above-listed copyright holders nor the names - * of any contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -34,7 +27,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_athrate.h,v 1.5 2006/12/13 19:34:34 sam Exp $ + * $FreeBSD: src/sys/dev/ath/if_athrate.h,v 1.6 2007/06/06 15:49:15 sam Exp $ */ #ifndef _ATH_RATECTRL_H_ #define _ATH_RATECTRL_H_ ==== //depot/projects/arm/src/sys/dev/ath/if_athvar.h#17 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -12,14 +12,7 @@ * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any * redistribution must be conditioned upon including a substantially * similar Disclaimer requirement for further binary redistribution. - * 3. Neither the names of the above-listed copyright holders nor the names - * of any contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * - * Alternatively, this software may be distributed under the terms of the - * GNU General Public License ("GPL") version 2 as published by the Free - * Software Foundation. - * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -33,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.60 2007/03/05 21:56:33 sam Exp $ + * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.61 2007/06/06 15:49:15 sam Exp $ */ /* ==== //depot/projects/arm/src/sys/dev/firewire/firewire.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.94 2007/05/21 12:17:54 simokawa Exp $ + * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.95 2007/06/06 14:31:36 simokawa Exp $ * */ @@ -46,6 +46,8 @@ #include #include +#include + #if defined(__DragonFly__) || __FreeBSD_version < 500000 #include /* for DELAY() */ #endif @@ -95,6 +97,7 @@ static int firewire_attach (device_t); static int firewire_detach (device_t); static int firewire_resume (device_t); +static void firewire_xfer_timeout(void *, int); #if 0 static int firewire_shutdown (device_t); #endif @@ -110,6 +113,7 @@ static void fw_vmaccess (struct fw_xfer *); #endif static int fw_bmr (struct firewire_comm *); +static void fw_dump_hdr(struct fw_pkt *, char *); static device_method_t firewire_methods[] = { /* Device interface */ @@ -178,9 +182,11 @@ int s; s = splfw(); + FW_GLOCK(fc); STAILQ_FOREACH(fwdev, &fc->devices, link) if (FW_EUI64_EQUAL(fwdev->eui, *eui)) break; + FW_GUNLOCK(fc); splx(s); if(fwdev == NULL) return NULL; @@ -196,7 +202,7 @@ { int err = 0; struct fw_xferq *xferq; - int tl = -1, len; + int len; struct fw_pkt *fp; int tcode; struct tcode_info *info; @@ -242,16 +248,15 @@ if(!(xferq->queued < xferq->maxq)){ device_printf(fc->bdev, "Discard a packet (queued=%d)\n", xferq->queued); - return EINVAL; + return EAGAIN; } + xfer->tl = -1; if (info->flag & FWTI_TLABEL) { - if ((tl = fw_get_tlabel(fc, xfer)) == -1) + if (fw_get_tlabel(fc, xfer) < 0) return EAGAIN; - fp->mode.hdr.tlrt = tl << 2; } - xfer->tl = tl; xfer->resp = 0; xfer->fc = fc; xfer->q = xferq; @@ -263,11 +268,32 @@ * Wakeup blocked process. */ void -fw_asy_callback(struct fw_xfer *xfer){ +fw_xferwake(struct fw_xfer *xfer) +{ + struct mtx *lock = &xfer->fc->wait_lock; + + mtx_lock(lock); + xfer->flag |= FWXF_WAKE; + mtx_unlock(lock); + wakeup(xfer); return; } +int +fw_xferwait(struct fw_xfer *xfer) +{ + struct mtx *lock = &xfer->fc->wait_lock; + int err = 0; + + mtx_lock(lock); + if ((xfer->flag & FWXF_WAKE) == 0) + err = msleep((void *)xfer, lock, PWAIT|PCATCH, "fw_xferwait", 0); + mtx_unlock(lock); + + return (err); +} + /* * Async. request with given xfer structure. */ @@ -279,17 +305,22 @@ #if 0 /* XXX allow bus explore packets only after bus rest */ if (fc->status < FWBUSEXPLORE) { xfer->resp = EAGAIN; - xfer->state = FWXF_BUSY; + xfer->flag = FWXF_BUSY; if (xfer->hand != NULL) xfer->hand(xfer); return; } #endif + s = splfw(); + /* Protect from interrupt/timeout */ + FW_GLOCK(fc); microtime(&xfer->tv); - s = splfw(); - xfer->state = FWXF_INQ; + xfer->flag = FWXF_INQ; STAILQ_INSERT_TAIL(&xfer->q->q, xfer, link); +#if 0 xfer->q->queued ++; +#endif + FW_GUNLOCK(fc); splx(s); /* XXX just queue for mbuf */ if (xfer->mbuf == NULL) @@ -311,11 +342,13 @@ } static void -firewire_xfer_timeout(struct firewire_comm *fc) +firewire_xfer_timeout(void *arg, int pending) { - struct fw_xfer *xfer; + struct firewire_comm *fc = (struct firewire_comm *)arg; + struct fw_xfer *xfer, *txfer; struct timeval tv; struct timeval split_timeout; + STAILQ_HEAD(, fw_xfer) xfer_timeout; int i, s; split_timeout.tv_sec = 0; @@ -323,32 +356,41 @@ microtime(&tv); timevalsub(&tv, &split_timeout); + STAILQ_INIT(&xfer_timeout); s = splfw(); + FW_GLOCK(fc); for (i = 0; i < 0x40; i ++) { while ((xfer = STAILQ_FIRST(&fc->tlabels[i])) != NULL) { if (timevalcmp(&xfer->tv, &tv, >)) /* the rests are newer than this */ break; - if (xfer->state == FWXF_START) + if ((xfer->flag & FWXF_SENT) == 0) /* not sent yet */ break; device_printf(fc->bdev, - "split transaction timeout dst=0x%x tl=0x%x state=%d\n", - xfer->send.hdr.mode.hdr.dst, i, xfer->state); + "split transaction timeout: " + "tl=0x%x flag=0x%02x\n", i, xfer->flag); + fw_dump_hdr(&xfer->send.hdr, "send"); xfer->resp = ETIMEDOUT; - fw_xfer_done(xfer); + STAILQ_REMOVE_HEAD(&fc->tlabels[i], tlabel); + STAILQ_INSERT_TAIL(&xfer_timeout, xfer, tlabel); } } + FW_GUNLOCK(fc); splx(s); + fc->timeout(fc); + + STAILQ_FOREACH_SAFE(xfer, &xfer_timeout, tlabel, txfer) + xfer->hand(xfer); } -#define WATCHDOC_HZ 10 +#define WATCHDOG_HZ 10 static void firewire_watchdog(void *arg) { struct firewire_comm *fc; - static int watchdoc_clock = 0; + static int watchdog_clock = 0; fc = (struct firewire_comm *)arg; @@ -357,13 +399,12 @@ * We encounter a timeout easily. To avoid this, * ignore clock interrupt for a while. */ - if (watchdoc_clock > WATCHDOC_HZ * 15) { - firewire_xfer_timeout(fc); - fc->timeout(fc); - } else - watchdoc_clock ++; + if (watchdog_clock > WATCHDOG_HZ * 15) + taskqueue_enqueue(fc->taskqueue, &fc->task_timeout); + else + watchdog_clock ++; - callout_reset(&fc->timeout_callout, hz / WATCHDOC_HZ, + callout_reset(&fc->timeout_callout, hz / WATCHDOG_HZ, (void *)firewire_watchdog, (void *)fc); } @@ -377,7 +418,6 @@ struct firewire_softc *sc = device_get_softc(dev); device_t pa = device_get_parent(dev); struct firewire_comm *fc; - struct proc *p; fc = (struct firewire_comm *)device_get_softc(pa); sc->fc = fc; @@ -388,15 +428,17 @@ fwdev_makedev(sc); - CALLOUT_INIT(&sc->fc->timeout_callout); - CALLOUT_INIT(&sc->fc->bmr_callout); - CALLOUT_INIT(&sc->fc->busprobe_callout); + mtx_init(&fc->wait_lock, "fwwait", NULL, MTX_DEF); + CALLOUT_INIT(&fc->timeout_callout); + CALLOUT_INIT(&fc->bmr_callout); + CALLOUT_INIT(&fc->busprobe_callout); + TASK_INIT(&fc->task_timeout, 0, firewire_xfer_timeout, (void *)fc); callout_reset(&sc->fc->timeout_callout, hz, (void *)firewire_watchdog, (void *)sc->fc); /* create thread */ - kthread_create(fw_bus_probe_thread, (void *)fc, &p, + kthread_create(fw_bus_probe_thread, (void *)fc, &fc->probe_thread, 0, 0, "fw%d_probe", unit); /* Locate our children */ @@ -457,7 +499,12 @@ sc = (struct firewire_softc *)device_get_softc(dev); fc = sc->fc; + mtx_lock(&fc->wait_lock); fc->status = FWBUSDETACH; + wakeup(fc); + if (msleep(fc->probe_thread, &fc->wait_lock, PWAIT, "fwthr", hz * 60)) + printf("firewire probe thread didn't die\n"); + mtx_unlock(&fc->wait_lock); if ((err = fwdev_destroydev(sc)) != 0) return err; @@ -479,10 +526,7 @@ free(fc->speed_map, M_FW); free(fc->crom_src_buf, M_FW); - wakeup(fc); - if (tsleep(fc, PWAIT, "fwthr", hz * 60)) - printf("firewire task thread didn't die\n"); - + mtx_destroy(&fc->wait_lock); return(0); } #if 0 @@ -501,9 +545,11 @@ while ((xfer = STAILQ_FIRST(&xferq->q)) != NULL) { STAILQ_REMOVE_HEAD(&xferq->q, link); +#if 0 xferq->queued --; +#endif xfer->resp = EAGAIN; - xfer->state = FWXF_SENTERR; + xfer->flag = FWXF_SENTERR; fw_xfer_done(xfer); } } @@ -511,12 +557,30 @@ void fw_drain_txq(struct firewire_comm *fc) { + struct fw_xfer *xfer, *txfer; + STAILQ_HEAD(, fw_xfer) xfer_drain; int i; + STAILQ_INIT(&xfer_drain); + + FW_GLOCK(fc); fw_xferq_drain(fc->atq); fw_xferq_drain(fc->ats); for(i = 0; i < fc->nisodma; i++) fw_xferq_drain(fc->it[i]); + + for (i = 0; i < 0x40; i ++) + while ((xfer = STAILQ_FIRST(&fc->tlabels[i])) != NULL) { + if (firewire_debug) + printf("tl=%d flag=%d\n", i, xfer->flag); + xfer->resp = EAGAIN; + STAILQ_REMOVE_HEAD(&fc->tlabels[i], tlabel); + STAILQ_INSERT_TAIL(&xfer_drain, xfer, tlabel); + } + FW_GUNLOCK(fc); + + STAILQ_FOREACH_SAFE(xfer, &xfer_drain, tlabel, txfer) + xfer->hand(xfer); } static void @@ -802,13 +866,17 @@ fw_bindlookup(struct firewire_comm *fc, uint16_t dest_hi, uint32_t dest_lo) { u_int64_t addr; - struct fw_bind *tfw; + struct fw_bind *tfw, *r = NULL; addr = ((u_int64_t)dest_hi << 32) | dest_lo; + FW_GLOCK(fc); STAILQ_FOREACH(tfw, &fc->binds, fclist) - if (BIND_CMP(addr, tfw) == 0) - return(tfw); - return(NULL); + if (BIND_CMP(addr, tfw) == 0) { + r = tfw; + break; + } + FW_GUNLOCK(fc); + return(r); } /* @@ -818,28 +886,29 @@ fw_bindadd(struct firewire_comm *fc, struct fw_bind *fwb) { struct fw_bind *tfw, *prev = NULL; + int r = 0; if (fwb->start > fwb->end) { printf("%s: invalid range\n", __func__); return EINVAL; } + FW_GLOCK(fc); STAILQ_FOREACH(tfw, &fc->binds, fclist) { if (fwb->end < tfw->start) break; prev = tfw; } - if (prev == NULL) { + if (prev == NULL) STAILQ_INSERT_HEAD(&fc->binds, fwb, fclist); - return (0); - } - if (prev->end < fwb->start) { + else if (prev->end < fwb->start) STAILQ_INSERT_AFTER(&fc->binds, prev, fwb, fclist); - return (0); + else { + printf("%s: bind failed\n", __func__); + r = EBUSY; } - - printf("%s: bind failed\n", __func__); - return (EBUSY); + FW_GUNLOCK(fc); + return (r); } /* @@ -855,6 +924,7 @@ int s; s = splfw(); + FW_GLOCK(fc); STAILQ_FOREACH(tfw, &fc->binds, fclist) if (tfw == fwb) { STAILQ_REMOVE(&fc->binds, fwb, fw_bind, fclist); @@ -862,6 +932,7 @@ } printf("%s: no such binding\n", __func__); + FW_GUNLOCK(fc); splx(s); return (1); found: @@ -873,6 +944,7 @@ } STAILQ_INIT(&fwb->xferlist); #endif + FW_GUNLOCK(fc); splx(s); return 0; @@ -911,6 +983,19 @@ } STAILQ_INIT(q); } +/* + * dump packet header + */ +static void +fw_dump_hdr(struct fw_pkt *fp, char *prefix) +{ + printf("%s: dst=0x%02x tl=0x%02x rt=%d tcode=0x%x pri=0x%x " + "src=0x%03x\n", prefix, + fp->mode.hdr.dst & 0x3f, + fp->mode.hdr.tlrt >> 2, fp->mode.hdr.tlrt & 3, + fp->mode.hdr.tcode, fp->mode.hdr.pri, + fp->mode.hdr.src); +} /* * To free transaction label. @@ -925,19 +1010,26 @@ return; s = splfw(); + FW_GLOCK(fc); #if 1 /* make sure the label is allocated */ STAILQ_FOREACH(txfer, &fc->tlabels[xfer->tl], tlabel) if(txfer == xfer) break; if (txfer == NULL) { - printf("%s: the xfer is not in the tlabel(%d)\n", - __FUNCTION__, xfer->tl); + printf("%s: the xfer is not in the queue " + "(tlabel=%d, flag=0x%x)\n", + __FUNCTION__, xfer->tl, xfer->flag); + fw_dump_hdr(&xfer->send.hdr, "send"); + fw_dump_hdr(&xfer->recv.hdr, "recv"); + kdb_backtrace(); + FW_GUNLOCK(fc); splx(s); return; } #endif STAILQ_REMOVE(&fc->tlabels[xfer->tl], xfer, fw_xfer, tlabel); + FW_GUNLOCK(fc); splx(s); return; } @@ -946,18 +1038,33 @@ * To obtain XFER structure by transaction label. */ static struct fw_xfer * -fw_tl2xfer(struct firewire_comm *fc, int node, int tlabel) +fw_tl2xfer(struct firewire_comm *fc, int node, int tlabel, int tcode) { struct fw_xfer *xfer; int s = splfw(); + int req; + FW_GLOCK(fc); STAILQ_FOREACH(xfer, &fc->tlabels[tlabel], tlabel) if(xfer->send.hdr.mode.hdr.dst == node) { + FW_GUNLOCK(fc); splx(s); + KASSERT(xfer->tl == tlabel, + ("xfer->tl 0x%x != 0x%x", xfer->tl, tlabel)); >>> TRUNCATED FOR MAIL (1000 lines) <<<