Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 May 2003 22:36:51 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 31682 for review
Message-ID:  <200305230536.h4N5apur014683@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=31682

Change 31682 by peter@peter_daintree on 2003/05/22 22:35:59

	IFC @31681

Affected files ...

.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#21 integrate
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/ia64/proc-ia64.sgml#4 integrate
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#26 integrate
.. //depot/projects/hammer/share/man/man4/acpi.4#7 integrate
.. //depot/projects/hammer/sys/amd64/amd64/genassym.c#19 integrate
.. //depot/projects/hammer/sys/amd64/amd64/locore.S#5 integrate
.. //depot/projects/hammer/sys/amd64/amd64/machdep.c#40 integrate
.. //depot/projects/hammer/sys/amd64/amd64/mem.c#7 integrate
.. //depot/projects/hammer/sys/amd64/amd64/nexus.c#8 integrate
.. //depot/projects/hammer/sys/amd64/amd64/pmap.c#15 integrate
.. //depot/projects/hammer/sys/amd64/amd64/trap.c#19 integrate
.. //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#9 integrate
.. //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#5 integrate
.. //depot/projects/hammer/sys/amd64/ia32/ia32_sysvec.c#10 integrate
.. //depot/projects/hammer/sys/amd64/ia32/ia32_util.h#5 integrate
.. //depot/projects/hammer/sys/amd64/include/bus_amd64.h#4 integrate
.. //depot/projects/hammer/sys/amd64/include/param.h#5 integrate
.. //depot/projects/hammer/sys/amd64/include/pmap.h#12 integrate
.. //depot/projects/hammer/sys/amd64/include/vmparam.h#9 integrate
.. //depot/projects/hammer/sys/conf/kern.mk#10 integrate
.. //depot/projects/hammer/sys/dev/fb/vga.c#13 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinum.c#5 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumconfig.c#6 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumext.h#6 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumioctl.c#8 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumlock.c#4 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinummemory.c#4 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumobj.h#3 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumvar.h#3 integrate

Differences ...

==== //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#21 (text+ko) ====

@@ -31,7 +31,7 @@
 
 <sect1 id="support">
   <sect1info>
-    <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.151 2003/05/22 17:25:24 bmah Exp $</pubdate>
+    <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.154 2003/05/22 23:22:59 bmah Exp $</pubdate>
   </sect1info>
 
   <title>Supported Devices</title>
@@ -836,10 +836,10 @@
 
     <para arch="i386">IBM / Adaptec ServeRAID series (ips driver)</para>
 
-    <para arch="i386,alpha,pc98,sparc64">LSI Logic Fusion/MP
+    <para arch="i386,alpha,pc98,sparc64,ia64">LSI Logic Fusion/MP
 	architecture Fiber Channel controllers (mpt driver)
       <itemizedlist>
-	<listitem>
+	<listitem arch="i386,alpha,pc98,sparc64">
 	  <para>LSI FC909, FC929</para>
 	</listitem>
 	<listitem>
@@ -1874,7 +1874,7 @@
         <listitem>
           <para>Intel Pro/100 S Desktop, Server and Dual-Port Server Adapters</para>
         </listitem>
-        <listitem>
+        <listitem arch="i386,ia64">
           <para>On-board Ethernet NICs on many Intel motherboards.</para>
         </listitem>
         <listitem arch="pc98">
@@ -1977,16 +1977,16 @@
         <listitem arch="i386,alpha">
 	  <para>3C575TX/575B/XFE575BT/575C/656/656B/656C (Cardbus)</para>
         </listitem>
-        <listitem arch="i386,alpha">
+        <listitem arch="i386">
 	  <para>Dell Optiplex GX1 on-board 3C918</para>
         </listitem>
-        <listitem arch="i386,alpha">
+        <listitem arch="i386">
 	  <para>Dell On-board 3C920</para>
         </listitem>
-        <listitem arch="i386,alpha">
+        <listitem arch="i386">
 	  <para>Dell Precision on-board 3C905B</para>
         </listitem>
-        <listitem arch="i386,alpha">
+        <listitem arch="i386">
 	  <para>Dell Latitude laptop docking station embedded 3C905-TX</para>
         </listitem>
       </itemizedlist>
@@ -2640,73 +2640,76 @@
       </itemizedlist>
     </para>
 
-    <para arch="i386">PCI-Based multi-port serial boards (&man.puc.4;
+    <para arch="i386,ia64">PCI-Based multi-port serial boards (&man.puc.4;
     driver)
       <itemizedlist>
-	<listitem>
+	<listitem arch="i386">
 	  <para>Actiontech 56K PCI</para>
 	</listitem>
-        <listitem>
+        <listitem arch="i386">
 	  <para>Avlab Technology, PCI IO 2S and PCI IO 4S</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>Comtrol RocketPort 550</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>Decision Computers PCCOM 4-port serial and dual port RS232/422/485</para>
 	</listitem>
-	<listitem>
+	<listitem arch="ia64">
+	  <para>Diva Serial (GSP) Multiport UART (development branch only)</para>
+	</listitem>
+	<listitem arch="i386">
 	  <para>Dolphin Peripherals 4025/4035/4036</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>IC Book Labs Dreadnought 16x Lite and Pro</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>Lava Computers 2SP-PCI/DSerial-PCI/Quattro-PCI/Octopus-550</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>Middle Digital, Weasle serial port</para>
 	</listitem>
-        <listitem>
+        <listitem arch="i386">
 	  <para>Moxa Industio CP-114, Smartio C104H-PCI and C168H/PCI</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>NEC PK-UG-X001 and PK-UG-X008</para>
 	</listitem>
-        <listitem>
+        <listitem arch="i386">
 	  <para>Netmos NM9835 PCI-2S-550</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>Oxford Semiconductor OX16PCI954 PCI UART</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>Syba Tech SD-LAB PCI-4S2P-550-ECP</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>SIIG Cyber I/O PCI 16C550/16C650/16C850</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>SIIG Cyber 2P1S PCI 16C550/16C650/16C850</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>SIIG Cyber 2S1P PCI 16C550/16C650/16C850</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>SIIG Cyber 4S PCI 16C550/16C650/16C850</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>SIIG Cyber Serial (Single and Dual) PCI 16C550/16C650/16C850</para>
 	</listitem>
-        <listitem>
+        <listitem arch="i386">
 	  <para>Syba Tech Ltd. PCI-4S2P-550-ECP</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>Titan PCI-200H and PCI-800H</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>US Robotics (3Com) 3CP5609 modem</para>
 	</listitem>
-	<listitem>
+	<listitem arch="i386">
 	  <para>VScom PCI-400 and PCI-800</para>
 	</listitem>
       </itemizedlist>
@@ -3012,7 +3015,7 @@
       linkend="bluetooth">Bluetooth</link> section.</para>
     </note>
 
-    <para arch="i386,pc98,alpha">Host Controllers (&man.ohci.4; and &man.uhci.4; drivers)
+    <para arch="i386,pc98,alpha,ia64">Host Controllers (&man.ohci.4; and &man.uhci.4; drivers)
       <itemizedlist>
         <listitem arch="i386,alpha">
 	  <para>ALi Aladdin-V</para>
@@ -3053,7 +3056,7 @@
         <listitem arch="i386,alpha">
 	  <para>VIA 83C572 USB</para>
 	</listitem>
-        <listitem arch="i386,alpha">
+        <listitem arch="i386,alpha,ia64">
 	  <para>UHCI or OHCI compliant motherboard chipsets (no
 	  exceptions known)</para>
 	</listitem>

==== //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/ia64/proc-ia64.sgml#4 (text+ko) ====

@@ -1,5 +1,5 @@
 <!--
-	$FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/ia64/proc-ia64.sgml,v 1.6 2003/05/19 22:15:17 bmah Exp $
+	$FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/ia64/proc-ia64.sgml,v 1.7 2003/05/22 23:14:52 bmah Exp $
 -->
 <sect1 id="proc-ia64">
   <title>Supported Processors and Motherboards</title>
@@ -29,4 +29,55 @@
     configurations are under active development.  At this time,
     SMP-enabled systems are considered less stable.  The current
     priorities are UP fixes to improve stability.</para>
+
+  <sect2>
+    <title>Supported Devices Overview</title>
+
+    <para>This section contains additional information about what
+      devices may or may not be supported by &os;/&arch;.</para>
+
+    <para>Except for the PC chipset embedded &man.ata.4; controllers,
+      most should work out of the box.  Eventually, all
+      &arch;-compatible ATA controllers are expected to be fully
+      supported.  Refer to the following sections for various disk
+      controllers and their current status.</para>
+    
+    <para>In general, <quote>PC standard</quote> serial ports
+      supported by the &man.sio.4; driver are expected to work on
+      Intel legacy machines, but not PA legacy machines.  The reason
+      is that all devices on HP machines are memory-mapped and there
+      is <emphasis>no</emphasis> ISA device support other than the PCI
+      dictated VGA legacy.</para>
+
+    <para>In addition to &man.sio.4; devices, the following devices
+      fail on non-Intel legacy machines (but should work on boxes with
+      an Intel legacy) because their drivers make ISA-specific
+      assumptions that do not hold:</para>
+
+    <informaltable frame="none">
+      <tgroup cols="2">
+	<tbody>
+	  <row>
+            <entry>&man.sio.4;</entry>
+            <entry>No support for memory-mapped I/O</entry>
+	  </row>
+
+	  <row>
+            <entry>&man.syscons.4;</entry>
+            <entry>Expect BIOS, VGA probes, etc.</entry>
+	  </row>
+
+	  <row>
+            <entry>&man.pcm.4;</entry>
+            <entry>Probes MSS ISA ports <emphasis>ad nauseum</emphasis></entry>
+	  </row>
+
+	  <row>
+            <entry>&man.atkbd.4;, &man.psm.4;</entry>
+            <entry>Fixed ISA port locations</entry>
+	  </row>
+	</tbody>
+      </tgroup>
+    </informaltable>
+  </sect2>
 </sect1>

==== //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#26 (text+ko) ====

@@ -3,7 +3,7 @@
 
   <corpauthor>The FreeBSD Project</corpauthor>
 
-  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.569 2003/05/20 04:03:29 bmah Exp $</pubdate>
+  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.570 2003/05/23 00:02:10 bmah Exp $</pubdate>
 
   <copyright>
     <year>2000</year>
@@ -897,7 +897,19 @@
       3.41. &merged;</para>
 
     <para><application>GCC</application> has been updated to
-      3.2.2 (release version).</para>
+      3.2.2 (release version).
+
+      <note arch="i386">
+	<para><application>GCC</application> is known to produce
+	  broken code with the <option>-march=pentium4</option> option
+	  set.  As a workaround to avoid this problem, setting the
+	  <varname>CPUTYPE=p4</varname> Makefile variable (for example, in
+	  &man.make.conf.5;) enables GCC's
+	  <option>-march=pentium3</option> option instead.  This
+	  situation is expected to be resolved when GCC 3.3 is
+	  imported.</para>
+      </note>
+      </para>
 
     <para>The <application>gdtoa</application> library, for
       conversions between strings and floating point, has been imported.  These sources

==== //depot/projects/hammer/share/man/man4/acpi.4#7 (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/acpi.4,v 1.9 2003/05/18 04:21:38 imp Exp $
+.\" $FreeBSD: src/share/man/man4/acpi.4,v 1.10 2003/05/22 23:58:50 imp Exp $
 .\"
 .Dd July 2, 2001
 .Dt ACPI 4
@@ -294,8 +294,32 @@
 utilities from the
 .Pa devel/acpicatools
 port, and some ACPI knowledge.
+.Sh TUNABLES
+.Bl -tag -width children
+.It Li acpi_dsdt_load
+Enables loading of a custom acpi DSDT.
+.It Li acpi_dsdt_name
+Name of the DSTS table to load, if loading is enabled.
+.It Li debug.acpi.disable
+Selectively disables portions of ACPI for debugging purposes.
+.It Li hint.acpi.0.disabled
+Disables all of ACPI
+.It Li hw.acpi.cpu.performance_speed
+Sets the speed of the CPU, if it supports multiple speeds, while in
+the performance power profile.
+.It Li hw.acpi.cpu.economy_speed
+Sets the speed of the CPU, if it supports multiple speeds, while in
+the economy power profile.
+.It Li hw.acpi.ec.event_driven
+Enables or disables the event driven model for the embedded controller
+driver.
+.It Li hw.acpi.pci.link.%d.%d.%d.irq
+Override the interrupt to use.
+.It Li hw.acpi.verbose
+Turn on verbose debugging information about what ACPI is doing.
+.El
 .Sh COMPATIBILITY
-ACPI is only found/supported on Intel platforms (i386/IA32 and IA64).
+ACPI is only found/supported on i386/ia32, ia64 and amd64.
 .Sh SEE ALSO
 .Xr loader.conf 5 ,
 .Xr acpiconf 8 ,

==== //depot/projects/hammer/sys/amd64/amd64/genassym.c#19 (text+ko) ====

@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)genassym.c	5.11 (Berkeley) 5/10/91
- * $FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.146 2003/05/15 00:23:39 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.147 2003/05/23 05:04:53 peter Exp $
  */
 
 #include "opt_compat.h"

==== //depot/projects/hammer/sys/amd64/amd64/locore.S#5 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/locore.S,v 1.173 2003/05/15 00:20:17 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/locore.S,v 1.174 2003/05/23 05:04:53 peter Exp $
  */
 
 #include <machine/asmacros.h>

==== //depot/projects/hammer/sys/amd64/amd64/machdep.c#40 (text+ko) ====

@@ -35,7 +35,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)machdep.c	7.4 (Berkeley) 6/3/91
- * $FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.579 2003/05/17 02:05:10 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.580 2003/05/23 05:04:53 peter Exp $
  */
 
 #include "opt_atalk.h"

==== //depot/projects/hammer/sys/amd64/amd64/mem.c#7 (text+ko) ====

@@ -38,7 +38,7 @@
  *
  *	from: Utah $Hdr: mem.c 1.13 89/10/08$
  *	from: @(#)mem.c	7.2 (Berkeley) 5/9/91
- * $FreeBSD: src/sys/amd64/amd64/mem.c,v 1.107 2003/05/01 01:05:21 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/mem.c,v 1.108 2003/05/23 05:04:53 peter Exp $
  */
 
 /*

==== //depot/projects/hammer/sys/amd64/amd64/nexus.c#8 (text+ko) ====

@@ -26,7 +26,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.51 2003/05/12 02:44:37 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.52 2003/05/23 05:04:53 peter Exp $
  */
 
 /*

==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#15 (text+ko) ====

@@ -39,7 +39,7 @@
  * SUCH DAMAGE.
  *
  *	from:	@(#)pmap.c	7.7 (Berkeley)	5/12/91
- * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.407 2003/05/11 22:40:24 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.408 2003/05/23 05:04:53 peter Exp $
  */
 /*-
  * Copyright (c) 2003 Networks Associates Technology, Inc.

==== //depot/projects/hammer/sys/amd64/amd64/trap.c#19 (text+ko) ====

@@ -35,7 +35,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)trap.c	7.4 (Berkeley) 5/13/91
- * $FreeBSD: src/sys/amd64/amd64/trap.c,v 1.258 2003/05/22 20:09:50 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/trap.c,v 1.259 2003/05/23 05:04:53 peter Exp $
  */
 
 /*

==== //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#9 (text+ko) ====

@@ -38,7 +38,7 @@
  *
  *	from: @(#)vm_machdep.c	7.3 (Berkeley) 5/13/91
  *	Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
- * $FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.208 2003/05/14 04:10:48 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.209 2003/05/23 05:04:54 peter Exp $
  */
 
 #include "opt_isa.h"

==== //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#5 (text+ko) ====

@@ -34,7 +34,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.1 2003/05/14 04:10:48 peter Exp $
+ * $FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.2 2003/05/23 05:07:33 peter Exp $
  */
 
 #include "opt_compat.h"

==== //depot/projects/hammer/sys/amd64/ia32/ia32_sysvec.c#10 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/ia32/ia32_sysvec.c,v 1.4 2003/05/15 00:23:39 peter Exp $
+ * $FreeBSD: src/sys/amd64/ia32/ia32_sysvec.c,v 1.5 2003/05/23 05:07:33 peter Exp $
  */
 
 #include "opt_compat.h"

==== //depot/projects/hammer/sys/amd64/ia32/ia32_util.h#5 (text+ko) ====

@@ -25,7 +25,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/ia32/ia32_util.h,v 1.5 2003/05/14 04:10:49 peter Exp $
+ * $FreeBSD: src/sys/amd64/ia32/ia32_util.h,v 1.6 2003/05/23 05:07:33 peter Exp $
  */
 
 #include <vm/vm.h>

==== //depot/projects/hammer/sys/amd64/include/bus_amd64.h#4 (text+ko) ====

@@ -67,7 +67,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/bus_amd64.h,v 1.24 2003/05/12 02:44:37 peter Exp $ */
+/* $FreeBSD: src/sys/amd64/include/bus_amd64.h,v 1.25 2003/05/23 05:04:54 peter Exp $ */
 
 #ifndef _AMD64_BUS_AMD64_H_
 #define _AMD64_BUS_AMD64_H_

==== //depot/projects/hammer/sys/amd64/include/param.h#5 (text+ko) ====

@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)param.h	8.1 (Berkeley) 6/10/93
- * $FreeBSD: src/sys/amd64/include/param.h,v 1.4 2003/05/01 01:05:23 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/param.h,v 1.5 2003/05/23 05:04:54 peter Exp $
  */
 
 /*

==== //depot/projects/hammer/sys/amd64/include/pmap.h#12 (text+ko) ====

@@ -42,7 +42,7 @@
  *
  *	from: hp300: @(#)pmap.h	7.2 (Berkeley) 12/16/90
  *	from: @(#)pmap.h	7.4 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.101 2003/05/15 00:20:17 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.102 2003/05/23 05:04:54 peter Exp $
  */
 
 #ifndef _MACHINE_PMAP_H_

==== //depot/projects/hammer/sys/amd64/include/vmparam.h#9 (text+ko) ====

@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)vmparam.h	5.9 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.36 2003/05/01 01:05:23 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.37 2003/05/23 05:04:54 peter Exp $
  */
 
 

==== //depot/projects/hammer/sys/conf/kern.mk#10 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/kern.mk,v 1.34 2003/05/03 18:05:56 obrien Exp $
+# $FreeBSD: src/sys/conf/kern.mk,v 1.35 2003/05/23 05:04:54 peter Exp $
 
 #
 # Warning flags for compiling the kernel and components of the kernel.

==== //depot/projects/hammer/sys/dev/fb/vga.c#13 (text+ko) ====

@@ -26,7 +26,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/dev/fb/vga.c,v 1.26 2003/05/02 01:36:27 marcel Exp $
+ * $FreeBSD: src/sys/dev/fb/vga.c,v 1.27 2003/05/23 05:10:49 peter Exp $
  */
 
 #include "opt_vga.h"

==== //depot/projects/hammer/sys/dev/vinum/vinum.c#5 (text+ko) ====

@@ -35,17 +35,17 @@
  * otherwise) arising in any way out of the use of this software, even if
  * advised of the possibility of such damage.
  *
- * $Id: vinum.c,v 1.42 2003/05/04 05:25:14 grog Exp grog $
- * $FreeBSD: src/sys/dev/vinum/vinum.c,v 1.58 2003/05/05 05:28:15 grog Exp $
+ * $Id: vinum.c,v 1.44 2003/05/23 00:50:55 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinum.c,v 1.59 2003/05/23 01:12:16 grog Exp $
  */
 
-#define STATIC static					    /* nothing while we're testing XXX */
+#define STATIC static					    /* nothing while we're testing */
 
 #include <dev/vinum/vinumhdr.h>
 #include <sys/sysproto.h>				    /* for sync(2) */
 #ifdef VINUMDEBUG
 #include <sys/reboot.h>
-int debug = 0;
+int debug = 0;						    /* debug flags */
 extern int total_malloced;
 extern int malloccount;
 extern struct mc malloced[];
@@ -78,6 +78,15 @@
 static eventhandler_tag dev_clone_tag;
 
 /*
+ * Mutexes for plex synchronization.  Ideally each plex
+ * should have its own mutex, but the fact that the plex
+ * struct can move makes that very complicated.  Instead,
+ * have plexes use share these mutexes based on modulo plex
+ * number.
+ */
+struct mtx plexmutex[PLEXMUTEXES];
+
+/*
  * Called by main() during pseudo-device attachment.  All we need
  * to do is allocate enough space for devices to be configured later, and
  * add devsw entries.
@@ -86,6 +95,12 @@
 vinumattach(void *dummy)
 {
     char *envp;
+    int i;
+#define MUTEXNAMELEN 16
+    char mutexname[MUTEXNAMELEN];
+#if PLEXMUTEXES > 10000
+#error Increase size of MUTEXNAMELEN
+#endif
 /* modload should prevent multiple loads, so this is worth a panic */
     if ((vinum_conf.flags & VF_LOADED) != 0)
 	panic("vinum: already loaded");
@@ -136,6 +151,11 @@
     vinum_conf.plexes_allocated = INITIAL_PLEXES;	    /* number of plex slots allocated */
     vinum_conf.plexes_used = 0;				    /* and number in use */
 
+    for (i = 0; i < PLEXMUTEXES; i++) {
+	snprintf(mutexname, MUTEXNAMELEN, "vinumplex%d", i);
+	mtx_init(&plexmutex[i], mutexname, "plex", MTX_DEF);
+    }
+
     /* and subdisks */
     SD = (struct sd *) Malloc(sizeof(struct sd) * INITIAL_SUBDISKS);
     CHECKALLOC(SD, "vinum: no memory\n");
@@ -250,6 +270,7 @@
 {
     struct sync_args dummyarg =
     {0};
+    int i;
 
     switch (type) {
     case MOD_LOAD:
@@ -291,6 +312,8 @@
 #endif
 	destroy_dev(vinum_daemon_dev);			    /* daemon device */
 	destroy_dev(vinum_super_dev);
+	for (i = 0; i < PLEXMUTEXES; i++)
+	    mtx_destroy(&plexmutex[i]);
 	log(LOG_INFO, "vinum: unloaded\n");		    /* tell the world */
 	return 0;
     default:

==== //depot/projects/hammer/sys/dev/vinum/vinumconfig.c#6 (text+ko) ====

@@ -33,8 +33,8 @@
  * otherwise) arising in any way out of the use of this software, even if
  * advised of the possibility of such damage.
  *
- * $Id: vinumconfig.c,v 1.39 2003/05/04 05:22:46 grog Exp grog $
- * $FreeBSD: src/sys/dev/vinum/vinumconfig.c,v 1.57 2003/05/05 08:42:42 grog Exp $
+ * $Id: vinumconfig.c,v 1.41 2003/05/23 00:57:34 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinumconfig.c,v 1.58 2003/05/23 01:13:10 grog Exp $
  */
 
 #define STATIC static
@@ -106,7 +106,7 @@
 	} else {
 	    retval = kvprintf(msg, NULL, (void *) text, 10, ap);
 	    text[retval] = '\0';			    /* delimit */
-	    strcpy(ioctl_reply->msg, text);
+	    strlcpy(ioctl_reply->msg, text, sizeof(ioctl_reply->msg));
 	    ioctl_reply->error = error;			    /* first byte is the error number */
 	    Free(text);
 	}
@@ -477,7 +477,7 @@
 }
 
 /*
- * Find the named drive in vinum_conf.drive, return a pointer
+ * Find the named drive in vinum_conf.drive,
  * return the index in vinum_conf.drive.
  * Don't mark the drive as allocated (XXX SMP)
  * If create != 0, create an entry if it doesn't exist
@@ -505,10 +505,9 @@
     driveno = get_empty_drive();
     drive = &DRIVE[driveno];
     if (name != NULL)
-	bcopy(name,					    /* put in its name */
-	    drive->label.name,
-	    min(sizeof(drive->label.name),
-		strlen(name)));
+	strlcpy(drive->label.name,			    /* put in its name */
+	    name,
+	    sizeof(drive->label.name));
     drive->state = drive_referenced;			    /* in use, nothing worthwhile there */
     return driveno;					    /* return the index */
 }
@@ -819,8 +818,6 @@
 	Free(plex->sdnos);
     if (plex->lock)
 	Free(plex->lock);
-    if (isstriped(plex))
-	mtx_destroy(&plex->lockmtx);
     destroy_dev(plex->dev);
     bzero(plex, sizeof(struct plex));			    /* and clear it out */
     plex->state = plex_unallocated;
@@ -1042,10 +1039,11 @@
 }
 
 /*
- * Handle a subdisk definition.  We store the information in the global variable
- * sd, so we don't need to allocate.
+ * Handle a subdisk definition.  We store the
+ * information in the global variable sd, so we
+ * don't need to allocate.
  *
- * If we find an error, print a message and return
+ * On error throw a message back to the caller.
  */
 void
 config_subdisk(int update)
@@ -1201,6 +1199,9 @@
 	if (sd->driveno < 0)				    /* no current drive? */
 	    throw_rude_remark(EINVAL, "Subdisk %s is not associated with a drive", sd->name);
     }
+    if (DRIVE[sd->driveno].state != drive_up)
+	sd->state = sd_crashed;
+
     /*
      * This is tacky.  If something goes wrong
      * with the checks, we may end up losing drive
@@ -1225,11 +1226,13 @@
 
 	/* Do we have a plex name? */
 	if (sdindex >= 0)				    /* we have a plex */
-	    strcpy(sd->name, PLEX[sd->plexno].name);	    /* take it from there */
+	    strlcpy(sd->name,				    /* take it from there */
+		PLEX[sd->plexno].name,
+		sizeof(sd->name));
 	else						    /* no way */
 	    throw_rude_remark(EINVAL, "Unnamed sd is not associated with a plex");
 	sprintf(sdsuffix, ".s%d", sdindex);		    /* form the suffix */
-	strcat(sd->name, sdsuffix);			    /* and add it to the name */
+	strlcat(sd->name, sdsuffix, sizeof(sd->name));	    /* and add it to the name */
     }
     /* do we have complete info for this subdisk? */
     if (sd->sectors < 0)
@@ -1434,19 +1437,20 @@
 	char plexsuffix[8];				    /* form plex name suffix here */
 	/* Do we have a volume name? */
 	if (plex->volno >= 0)				    /* we have a volume */
-	    strcpy(plex->name,				    /* take it from there */
-		VOL[plex->volno].name);
+	    strlcpy(plex->name,				    /* take it from there */
+		VOL[plex->volno].name,
+		sizeof(plex->name));
 	else						    /* no way */
 	    throw_rude_remark(EINVAL, "Unnamed plex is not associated with a volume");
 	sprintf(plexsuffix, ".p%d", pindex);		    /* form the suffix */
-	strcat(plex->name, plexsuffix);			    /* and add it to the name */
+	strlcat(plex->name, plexsuffix, sizeof(plex->name)); /* and add it to the name */
     }
     if (isstriped(plex)) {
 	plex->lock = (struct rangelock *)
 	    Malloc(PLEX_LOCKS * sizeof(struct rangelock));
 	CHECKALLOC(plex->lock, "vinum: Can't allocate lock table\n");
 	bzero((char *) plex->lock, PLEX_LOCKS * sizeof(struct rangelock));
-	mtx_init(&plex->lockmtx, plex->name, "plex", MTX_DEF);
+	plex->lockmtx = &plexmutex[plexno % PLEXMUTEXES];   /* use this mutex for locking */
     }
     /* Note the last plex we configured */
     current_plex = plexno;
@@ -2025,7 +2029,7 @@
 }
 
 void
-update_volume_config(int volno, int diskconfig)
+update_volume_config(int volno)
 {
     struct volume *vol = &VOL[volno];
     struct plex *plex;
@@ -2082,7 +2086,7 @@
 	if (VOL[volno].state > volume_uninit) {
 	    VOL[volno].flags &= ~VF_CONFIG_SETUPSTATE;	    /* no more setupstate */
 	    update_volume_state(volno);
-	    update_volume_config(volno, diskconfig);
+	    update_volume_config(volno);
 	}
     }
     save_config();

==== //depot/projects/hammer/sys/dev/vinum/vinumext.h#6 (text+ko) ====

@@ -33,8 +33,8 @@
  * otherwise) arising in any way out of the use of this software, even if
  * advised of the possibility of such damage.
  *
- * $Id: vinumext.h,v 1.31 2003/04/25 08:01:37 grog Exp $
- * $FreeBSD: src/sys/dev/vinum/vinumext.h,v 1.39 2003/05/05 07:50:15 grog Exp $
+ * $Id: vinumext.h,v 1.33 2003/05/23 00:57:48 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinumext.h,v 1.40 2003/05/23 01:13:43 grog Exp $
  */
 
 /* vinumext.h: external definitions */
@@ -42,6 +42,7 @@
 /* *sigh* We still need this at the moment. */
 #ifdef _KERNEL
 extern struct _vinum_conf vinum_conf;			    /* configuration information */
+extern struct mtx plexmutex[];				    /* mutexes for plexes to use */
 #else
 extern struct __vinum_conf vinum_conf;			    /* configuration information */
 #endif
@@ -102,7 +103,7 @@
 void updateconfig(int);
 void update_sd_config(int sdno, int kernelstate);
 void update_plex_config(int plexno, int kernelstate);
-void update_volume_config(int volno, int kernelstate);
+void update_volume_config(int volno);
 void update_config(void);
 void drive_io_done(struct buf *);
 void save_config(void);
@@ -159,7 +160,11 @@
 char *basename(char *);
 #endif
 
+#ifdef VINUMDEBUG
+void expand_table(void **, int, int, char *, int);
+#else
 void expand_table(void **, int, int);
+#endif
 
 struct disklabel;
 struct request;

==== //depot/projects/hammer/sys/dev/vinum/vinumioctl.c#8 (text+ko) ====

@@ -41,8 +41,8 @@
  * otherwise) arising in any way out of the use of this software, even if
  * advised of the possibility of such damage.
  *
- * $Id: vinumioctl.c,v 1.22 2003/05/07 03:31:45 grog Exp grog $
- * $FreeBSD: src/sys/dev/vinum/vinumioctl.c,v 1.46 2003/05/08 00:36:20 grog Exp $
+ * $Id: vinumioctl.c,v 1.23 2003/05/23 01:02:22 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinumioctl.c,v 1.47 2003/05/23 01:14:13 grog Exp $
  */
 
 #include <dev/vinum/vinumhdr.h>
@@ -721,6 +721,8 @@
 		set_plex_state(plex->plexno,
 		    plex_down,
 		    setstate_force | setstate_configuring);
+	    if (plex->volno >= 0)			    /* plex attached to volume, */
+		update_volume_config(plex->volno);
 	    save_config();
 	    reply->error = 0;
 	}
@@ -783,7 +785,7 @@
 		bcopy("ex-", plex->name, 3);
 		plex->name[MAXPLEXNAME - 1] = '\0';
 	    }
-	    update_volume_config(volno, 0);
+	    update_volume_config(volno);
 	    save_config();
 	    reply->error = 0;
 	} else {
@@ -856,7 +858,7 @@
 	vol = validvol(msg->index, reply);
 	if (vol) {
 	    bcopy(msg->newname, vol->name, MAXVOLNAME);
-	    update_volume_config(msg->index, 0);
+	    update_volume_config(msg->index);
 	    save_config();
 	    reply->error = 0;
 	}

==== //depot/projects/hammer/sys/dev/vinum/vinumlock.c#4 (text+ko) ====

@@ -37,8 +37,8 @@
  * otherwise) arising in any way out of the use of this software, even if
  * advised of the possibility of such damage.
  *
- * $Id: vinumlock.c,v 1.17 2003/02/02 05:07:51 grog Exp $
- * $FreeBSD: src/sys/dev/vinum/vinumlock.c,v 1.25 2003/05/05 05:35:52 grog Exp $
+ * $Id: vinumlock.c,v 1.19 2003/05/23 01:07:18 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinumlock.c,v 1.26 2003/05/23 01:14:35 grog Exp $
  */
 
 #include <dev/vinum/vinumhdr.h>
@@ -132,11 +132,11 @@
      * increment all addresses by 1.
      */
     stripe++;
-    mtx_lock(&plex->lockmtx);
+    mtx_lock(plex->lockmtx);
 
     /* Wait here if the table is full */
     while (plex->usedlocks == PLEX_LOCKS)		    /* all in use */
-	msleep(&plex->usedlocks, &plex->lockmtx, PRIBIO, "vlock", 0);
+	msleep(&plex->usedlocks, plex->lockmtx, PRIBIO, "vlock", 0);
 
 #ifdef DIAGNOSTIC
     if (plex->usedlocks >= PLEX_LOCKS)
@@ -164,7 +164,7 @@
 		    }
 #endif
 		    plex->lockwaits++;			    /* waited one more time */
-		    msleep(lock, &plex->lockmtx, PRIBIO, "vrlock", 0);
+		    msleep(lock, plex->lockmtx, PRIBIO, "vrlock", 0);
 		    lock = &plex->lock[-1];		    /* start again */
 		    foundlocks = 0;
 		    pos = NULL;
@@ -188,7 +188,7 @@
     pos->stripe = stripe;
     pos->bp = bp;
     plex->usedlocks++;					    /* one more lock */
-    mtx_unlock(&plex->lockmtx);
+    mtx_unlock(plex->lockmtx);
 #ifdef VINUMDEBUG
     if (debug & DEBUG_LOCKREQS) {
 	struct rangelockinfo lockinfo;

==== //depot/projects/hammer/sys/dev/vinum/vinummemory.c#4 (text+ko) ====

@@ -33,8 +33,8 @@
  * otherwise) arising in any way out of the use of this software, even if
  * advised of the possibility of such damage.
  *
- * $Id: vinummemory.c,v 1.30 2003/04/28 02:54:43 grog Exp $
- * $FreeBSD: src/sys/dev/vinum/vinummemory.c,v 1.32 2003/05/01 01:32:08 grog Exp $
+ * $Id: vinummemory.c,v 1.31 2003/05/23 01:08:36 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinummemory.c,v 1.33 2003/05/23 01:15:01 grog Exp $
  */
 
 #include <dev/vinum/vinumhdr.h>
@@ -104,27 +104,40 @@
 	return ++f;					    /* skip the / */
 }
 
+#ifdef VINUMDEBUG
+void
+expand_table(void **table, int oldsize, int newsize, char *file, int line)
+#else
 void
 expand_table(void **table, int oldsize, int newsize)
+#endif
 {
     if (newsize > oldsize) {
 	int *temp;
 	int s;
 
 	s = splhigh();
+#ifdef VINUMDEBUG
+	temp = (int *) MMalloc(newsize, file, line);	    /* allocate a new table */
+#else
 	temp = (int *) Malloc(newsize);			    /* allocate a new table */
+#endif
 	CHECKALLOC(temp, "vinum: Can't expand table\n");
 	bzero((char *) temp, newsize);			    /* clean it all out */
 	if (*table != NULL) {				    /* already something there, */
 	    bcopy((char *) *table, (char *) temp, oldsize); /* copy it to the old table */
+#ifdef VINUMDEBUG
+	    FFree(*table, file, line);
+#else
 	    Free(*table);
+#endif
 	}
 	*table = temp;
 	splx(s);
     }
 }
 
-#ifdef VINUMDEBUG					    /* XXX debug */
+#ifdef VINUMDEBUG
 #define MALLOCENTRIES 16384
 int malloccount = 0;
 int highwater = 0;					    /* highest index ever allocated */
@@ -172,8 +185,7 @@
 	    malloced[i].size = size;
 	    malloced[i].line = line;
 	    malloced[i].address = result;
-	    bcopy(f, malloced[i].file, min(strlen(f), MCFILENAMELEN - 1));
-	    malloced[i].file[MCFILENAMELEN - 1] = '\0';
+	    strlcpy(malloced[i].file, f, MCFILENAMELEN);
 	}
 	if (malloccount > highwater)
 	    highwater = malloccount;
@@ -208,8 +220,7 @@
 		freeinfo[lastfree].size = malloced[i].size;
 		freeinfo[lastfree].line = line;
 		freeinfo[lastfree].address = mem;
-		bcopy(f, freeinfo[lastfree].file, min(strlen(f), MCFILENAMELEN - 1));
-		freeinfo[lastfree].file[MCFILENAMELEN - 1] = '\0';
+		bcopy(f, freeinfo[lastfree].file, MCFILENAMELEN);
 		if (++lastfree == FREECOUNT)
 		    lastfree = 0;
 	    }
@@ -251,7 +262,7 @@
     m->size = malloced[ent].size;
     m->line = malloced[ent].line;
     m->seq = malloced[ent].seq;
-    bcopy(malloced[ent].file, m->file, MCFILENAMELEN);
+    strlcpy(m->file, malloced[ent].file, MCFILENAMELEN);
     return 0;
 }
 

==== //depot/projects/hammer/sys/dev/vinum/vinumobj.h#3 (text+ko) ====

@@ -37,8 +37,8 @@
  * otherwise) arising in any way out of the use of this software, even if
  * advised of the possibility of such damage.
  *

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305230536.h4N5apur014683>