PERFORCE change 121093 for review
Warner Losh
imp at FreeBSD.org
Wed Jun 6 18:50:03 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=121093
Change 121093 by imp at 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 <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <term.h>
#include <termios.h>
#include <unistd.h>
==== //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 <machine/asmacros.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/cdefs.h>
-__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 <sys/cdefs.h>
-__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 <sys/cdefs.h>
-__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 <sys/cdefs.h>
-__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 <sys/sysctl.h>
#include <sys/kthread.h>
+#include <sys/kdb.h>
+
#if defined(__DragonFly__) || __FreeBSD_version < 500000
#include <machine/clock.h> /* 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) <<<
More information about the p4-projects
mailing list