Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Sep 2008 16:07:49 GMT
From:      Marko Zec <zec@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 150024 for review
Message-ID:  <200809181607.m8IG7nEp073352@repoman.freebsd.org>

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

Change 150024 by zec@zec_tca51 on 2008/09/18 16:07:48

	IFC @ 150022

Affected files ...

.. //depot/projects/vimage-commit2/src/sys/boot/Makefile#3 integrate
.. //depot/projects/vimage-commit2/src/sys/cam/cam.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ata/ata-chipset.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ata/ata-pci.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ata/ata-pci.h#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#9 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/sbni/if_sbni.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/sbni/if_sbni_isa.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/sbni/if_sbni_pci.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/sbni/if_sbnireg.h#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/sbni/if_sbnivar.h#4 integrate
.. //depot/projects/vimage-commit2/src/sys/geom/geom_io.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/i386/identcpu.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/i386/intr_machdep.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/include/specialreg.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/xen/mp_machdep.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/xen/xen_machdep.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_priv.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/malta/gt_pci.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/mips/intr_machdep.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/modules/sbni/Makefile#4 integrate
.. //depot/projects/vimage-commit2/src/sys/net/if_lagg.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/netipx/ipx.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/nfsserver/nfs.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/nfsserver/nfs_serv.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/nfsserver/nfs_srvsock.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/nfsserver/nfs_srvsubs.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/nfsserver/nfs_syscalls.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/security/mac_bsdextended/mac_bsdextended.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/include/smp.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/genassym.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/intr_machdep.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/mp_machdep.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/param.h#12 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/priv.h#4 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/ttydisc.h#3 integrate

Differences ...

==== //depot/projects/vimage-commit2/src/sys/boot/Makefile#3 (text+ko) ====

@@ -1,7 +1,11 @@
-# $FreeBSD: src/sys/boot/Makefile,v 1.34 2008/07/23 07:23:33 imp Exp $
+# $FreeBSD: src/sys/boot/Makefile,v 1.35 2008/09/18 15:25:35 obrien Exp $
 
 .include <bsd.own.mk>
 
+.if ${MACHINE_ARCH} == "mips"
+MK_FORTH=no	# not yet
+.endif
+
 .if ${MK_FORTH} != "no"
 # Build the add-in FORTH interpreter.
 SUBDIR+=		ficl

==== //depot/projects/vimage-commit2/src/sys/cam/cam.h#2 (text+ko) ====

@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/cam/cam.h,v 1.11 2005/01/05 22:34:34 imp Exp $
+ * $FreeBSD: src/sys/cam/cam.h,v 1.12 2008/09/18 14:48:46 sbruno Exp $
  */
 
 #ifndef _CAM_CAM_H
@@ -129,6 +129,7 @@
 				 * requests for the target at the sim level
 				 * back into the XPT queue.
 				 */
+	CAM_SCSI_IT_NEXUS_LOST,	/* Initiator/Target Nexus lost. */
 	CAM_IDE = 0x33,		/* Initiator Detected Error */
 	CAM_RESRC_UNAVAIL,	/* Resource Unavailable */
 	CAM_UNACKED_EVENT,	/* Unacknowledged Event by Host */

==== //depot/projects/vimage-commit2/src/sys/dev/ata/ata-chipset.c#6 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.226 2008/09/04 10:27:58 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.227 2008/09/18 12:12:34 sos Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -62,6 +62,8 @@
 static void ata_sata_setmode(device_t dev, int mode);
 static int ata_request2fis_h2d(struct ata_request *request, u_int8_t *fis);
 static int ata_ahci_chipinit(device_t dev);
+static int ata_ahci_ctlr_reset(device_t dev);
+static int ata_ahci_suspend(device_t dev);
 static int ata_ahci_allocate(device_t dev);
 static int ata_ahci_status(device_t dev);
 static int ata_ahci_begin_transaction(struct ata_request *request);
@@ -602,6 +604,42 @@
     else
 	device_printf(dev, "AHCI called from vendor specific driver\n");
 
+    /* reset controller */
+    ata_ahci_ctlr_reset(dev);
+
+    /* get the number of HW channels */
+    ctlr->channels =
+	MAX(flsl(ATA_INL(ctlr->r_res2, ATA_AHCI_PI)), 
+	    (ATA_INL(ctlr->r_res2, ATA_AHCI_CAP) & ATA_AHCI_NPMASK) + 1);
+
+    ctlr->reset = ata_ahci_reset;
+    ctlr->dmainit = ata_ahci_dmainit;
+    ctlr->allocate = ata_ahci_allocate;
+    ctlr->setmode = ata_sata_setmode;
+    ctlr->suspend = ata_ahci_suspend;
+    ctlr->resume = ata_ahci_ctlr_reset;
+
+    /* enable PCI interrupt */
+    pci_write_config(dev, PCIR_COMMAND,
+		     pci_read_config(dev, PCIR_COMMAND, 2) & ~0x0400, 2);
+
+    /* announce we support the HW */
+    version = ATA_INL(ctlr->r_res2, ATA_AHCI_VS);
+    device_printf(dev,
+		  "AHCI Version %x%x.%x%x controller with %d ports PM %s\n",
+		  (version >> 24) & 0xff, (version >> 16) & 0xff,
+		  (version >> 8) & 0xff, version & 0xff,
+		  (ATA_INL(ctlr->r_res2, ATA_AHCI_CAP) & ATA_AHCI_NPMASK) + 1,
+		  (ATA_INL(ctlr->r_res2, ATA_AHCI_CAP) & ATA_AHCI_CAP_SPM) ?
+		  "supported" : "not supported");
+    return 0;
+}
+
+static int
+ata_ahci_ctlr_reset(device_t dev)
+{
+    struct ata_pci_controller *ctlr = device_get_softc(dev);
+
     /* enable AHCI mode */
     ATA_OUTL(ctlr->r_res2, ATA_AHCI_GHC, ATA_AHCI_GHC_AE);
 
@@ -617,11 +655,6 @@
     /* reenable AHCI mode */
     ATA_OUTL(ctlr->r_res2, ATA_AHCI_GHC, ATA_AHCI_GHC_AE);
 
-    /* get the number of HW channels */
-    ctlr->channels =
-	MAX(flsl(ATA_INL(ctlr->r_res2, ATA_AHCI_PI)), 
-	    (ATA_INL(ctlr->r_res2, ATA_AHCI_CAP) & ATA_AHCI_NPMASK) + 1);
-
     /* clear interrupts */
     ATA_OUTL(ctlr->r_res2, ATA_AHCI_IS, ATA_INL(ctlr->r_res2, ATA_AHCI_IS));
 
@@ -629,33 +662,26 @@
     ATA_OUTL(ctlr->r_res2, ATA_AHCI_GHC,
 	     ATA_INL(ctlr->r_res2, ATA_AHCI_GHC) | ATA_AHCI_GHC_IE);
 
-    ctlr->reset = ata_ahci_reset;
-    ctlr->dmainit = ata_ahci_dmainit;
-    ctlr->allocate = ata_ahci_allocate;
-    ctlr->setmode = ata_sata_setmode;
+    return 0;
+}
 
-    /* enable PCI interrupt */
-    pci_write_config(dev, PCIR_COMMAND,
-		     pci_read_config(dev, PCIR_COMMAND, 2) & ~0x0400, 2);
+static int
+ata_ahci_suspend(device_t dev)
+{
+    struct ata_pci_controller *ctlr = device_get_softc(dev);
 
-    /* announce we support the HW */
-    version = ATA_INL(ctlr->r_res2, ATA_AHCI_VS);
-    device_printf(dev,
-		  "AHCI Version %x%x.%x%x controller with %d ports PM %s\n",
-		  (version >> 24) & 0xff, (version >> 16) & 0xff,
-		  (version >> 8) & 0xff, version & 0xff,
-		  (ATA_INL(ctlr->r_res2, ATA_AHCI_CAP) & ATA_AHCI_NPMASK) + 1,
-		  (ATA_INL(ctlr->r_res2, ATA_AHCI_CAP) & ATA_AHCI_CAP_SPM) ?
-		  "supported" : "not supported");
+    /* disable interupts so the state change(s) doesn't trigger */
+    ATA_OUTL(ctlr->r_res2, ATA_AHCI_GHC,
+             ATA_INL(ctlr->r_res2, ATA_AHCI_GHC) & (~ATA_AHCI_GHC_IE));
     return 0;
 }
 
+
 static int
 ata_ahci_allocate(device_t dev)
 {
     struct ata_pci_controller *ctlr = device_get_softc(device_get_parent(dev));
     struct ata_channel *ch = device_get_softc(dev);
-    u_int64_t work;
     int offset = ch->unit << 7;
 
     /* set the SATA resources */
@@ -676,30 +702,6 @@
     ch->hw.pm_read = ata_ahci_pm_read;
     ch->hw.pm_write = ata_ahci_pm_write;
 
-    /* setup work areas */
-    work = ch->dma.work_bus + ATA_AHCI_CL_OFFSET;
-    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CLB + offset, work & 0xffffffff);
-    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CLBU + offset, work >> 32);
-
-    work = ch->dma.work_bus + ATA_AHCI_FB_OFFSET;
-    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_FB + offset, work & 0xffffffff); 
-    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_FBU + offset, work >> 32);
-
-    /* enable wanted port interrupts */
-    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_IE + offset,
-	     (ATA_AHCI_P_IX_CPD | ATA_AHCI_P_IX_TFE | ATA_AHCI_P_IX_HBF |
-	      ATA_AHCI_P_IX_HBD | ATA_AHCI_P_IX_IF | ATA_AHCI_P_IX_OF |
-	      ATA_AHCI_P_IX_PRC | ATA_AHCI_P_IX_PC | ATA_AHCI_P_IX_DP |
-	      ATA_AHCI_P_IX_UF | ATA_AHCI_P_IX_SDB | ATA_AHCI_P_IX_DS |
-	      ATA_AHCI_P_IX_PS | ATA_AHCI_P_IX_DHR));
-
-    /* enable FIS based switching */
-    //ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_FBS + offset, 0x00000003);
-
-    /* start operations on this channel */
-    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CMD + offset,
-	     (ATA_AHCI_P_CMD_ACTIVE | ATA_AHCI_P_CMD_FRE |
-	      ATA_AHCI_P_CMD_POD | ATA_AHCI_P_CMD_SUD | ATA_AHCI_P_CMD_ST));
     return 0;
 }
 
@@ -711,21 +713,24 @@
     u_int32_t action = ATA_INL(ctlr->r_res2, ATA_AHCI_IS);
     int offset = ch->unit << 7;
 
+#define ATA_AHCI_STATBITS \
+	(ATA_AHCI_P_IX_IF|ATA_AHCI_P_IX_HBD|ATA_AHCI_P_IX_HBF|ATA_AHCI_P_IX_TFE)
+
     if (action & (1 << ch->unit)) {
 	u_int32_t istatus = ATA_INL(ctlr->r_res2, ATA_AHCI_P_IS + offset);
 	u_int32_t cstatus = ATA_INL(ctlr->r_res2, ATA_AHCI_P_CI + offset);
 
 	/* clear interrupt(s) */
+	ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_IS + offset, istatus);
 	ATA_OUTL(ctlr->r_res2, ATA_AHCI_IS, action & (1 << ch->unit));
-	ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_IS + offset, istatus);
 
 	/* do we have any PHY events ? */
-	/* XXX SOS check istatus phy bits */
-	ata_sata_phy_check_events(dev);
+	if (istatus & (ATA_AHCI_P_IX_PRC | ATA_AHCI_P_IX_PC))
+	    ata_sata_phy_check_events(dev);
 
 	/* do we have a potentially hanging engine to take care of? */
 	/* XXX SOS what todo on NCQ */
-	if ((istatus & 0x78400050) && (cstatus & 1)) {
+	if ((istatus & ATA_AHCI_STATBITS) && (cstatus & 1)) {
 
 	    u_int32_t cmd = ATA_INL(ctlr->r_res2, ATA_AHCI_P_CMD + offset);
 	    int timeout = 0;
@@ -1047,10 +1052,10 @@
 	     ATA_INL(ctlr->r_res2, ATA_AHCI_P_IS + offset));
 
     /* start operations on this channel */
+    cmd = ATA_INL(ctlr->r_res2, ATA_AHCI_P_CMD + offset);
     ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CMD + offset,
-	     (ATA_AHCI_P_CMD_ACTIVE | ATA_AHCI_P_CMD_FRE |
-	      ATA_AHCI_P_CMD_POD | ATA_AHCI_P_CMD_SUD | ATA_AHCI_P_CMD_ST)
-	     | (ch->devices & ATA_PORTMULTIPLIER ? ATA_AHCI_P_CMD_PMA : 0));
+	     cmd | (ATA_AHCI_P_CMD_FRE | ATA_AHCI_P_CMD_ST) |
+	     (ch->devices & ATA_PORTMULTIPLIER ? ATA_AHCI_P_CMD_PMA : 0));
 }
 
 static u_int32_t
@@ -1110,19 +1115,50 @@
 {
     struct ata_pci_controller *ctlr = device_get_softc(device_get_parent(dev));
     struct ata_channel *ch = device_get_softc(dev);
-    u_int32_t signature;
+    u_int64_t work;
+    u_int32_t cmd, signature;
+    int offset = ch->unit << 7;
 
     if (!(ATA_INL(ctlr->r_res2, ATA_AHCI_PI) & (1 << ch->unit))) {
 	device_printf(dev, "port not implemented\n");
 	return;
     }
 
+    /* setup work areas */
+    work = ch->dma.work_bus + ATA_AHCI_CL_OFFSET;
+    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CLB + offset, work & 0xffffffff);
+    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CLBU + offset, work >> 32);
+
+    work = ch->dma.work_bus + ATA_AHCI_FB_OFFSET;
+    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_FB + offset, work & 0xffffffff); 
+    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_FBU + offset, work >> 32);
+
+    /* enable wanted port interrupts */
+    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_IE + offset,
+	     (ATA_AHCI_P_IX_CPD | ATA_AHCI_P_IX_TFE | ATA_AHCI_P_IX_HBF |
+	      ATA_AHCI_P_IX_HBD | ATA_AHCI_P_IX_IF | ATA_AHCI_P_IX_OF |
+	      ATA_AHCI_P_IX_PRC | ATA_AHCI_P_IX_PC | ATA_AHCI_P_IX_DP |
+	      ATA_AHCI_P_IX_UF | ATA_AHCI_P_IX_SDB | ATA_AHCI_P_IX_DS |
+	      ATA_AHCI_P_IX_PS | ATA_AHCI_P_IX_DHR));
+
+    /* activate the channel and power/spin up device */
+    ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CMD + offset,
+	     (ATA_AHCI_P_CMD_ACTIVE | ATA_AHCI_P_CMD_POD | ATA_AHCI_P_CMD_SUD));
+
     ata_ahci_restart(dev);
 
+    /* enable FIS based switching */
+    //ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_FBS + offset, 0x00000003);
+
     if (!ata_sata_phy_reset(dev)) {
 	if (bootverbose)
 	    device_printf(dev, "phy reset found no device\n");
 	ch->devices = 0;
+
+	/* kill off all activity on this channel */
+	cmd = ATA_INL(ctlr->r_res2, ATA_AHCI_P_CMD + offset);
+	ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CMD + offset,
+		 cmd & ~(ATA_AHCI_P_CMD_FRE | ATA_AHCI_P_CMD_ST));
 	return;
     }
 

==== //depot/projects/vimage-commit2/src/sys/dev/ata/ata-pci.c#3 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.128 2008/06/11 06:44:58 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.129 2008/09/18 12:12:34 sos Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -262,6 +262,31 @@
     return 0;
 }
 
+int
+ata_pci_suspend(device_t dev)
+{
+    struct ata_pci_controller *ctlr = device_get_softc(dev);
+    int error = 0;
+ 
+    bus_generic_suspend(dev);
+    if (ctlr->suspend)
+	error = ctlr->suspend(dev);
+    return error;
+}
+  
+int
+ata_pci_resume(device_t dev)
+{
+    struct ata_pci_controller *ctlr = device_get_softc(dev);
+    int error = 0;
+ 
+    if (ctlr->resume)
+	error = ctlr->resume(dev);
+    bus_generic_resume(dev);
+    return error;
+}
+
+
 struct resource *
 ata_pci_alloc_resource(device_t dev, device_t child, int type, int *rid,
 		       u_long start, u_long end, u_long count, u_int flags)
@@ -555,9 +580,9 @@
     DEVMETHOD(device_probe,             ata_pci_probe),
     DEVMETHOD(device_attach,            ata_pci_attach),
     DEVMETHOD(device_detach,            ata_pci_detach),
+    DEVMETHOD(device_suspend,           ata_pci_suspend),
+    DEVMETHOD(device_resume,            ata_pci_resume),
     DEVMETHOD(device_shutdown,          bus_generic_shutdown),
-    DEVMETHOD(device_suspend,           bus_generic_suspend),
-    DEVMETHOD(device_resume,            bus_generic_resume),
 
     /* bus methods */
     DEVMETHOD(bus_alloc_resource,       ata_pci_alloc_resource),

==== //depot/projects/vimage-commit2/src/sys/dev/ata/ata-pci.h#4 (text+ko) ====

@@ -23,7 +23,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ata/ata-pci.h,v 1.90 2008/09/04 10:27:58 mav Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-pci.h,v 1.91 2008/09/18 12:12:34 sos Exp $
  */
 
 /* structure holding chipset config info */
@@ -50,6 +50,8 @@
     struct ata_chip_id  *chip;
     int                 channels;
     int                 (*chipinit)(device_t);
+    int                 (*suspend)(device_t);
+    int                 (*resume)(device_t);
     int                 (*allocate)(device_t);
     int                 (*locking)(device_t, int);
     void                (*reset)(device_t);
@@ -461,6 +463,8 @@
 int ata_pci_probe(device_t dev);
 int ata_pci_attach(device_t dev);
 int ata_pci_detach(device_t dev);
+int ata_pci_suspend(device_t dev);
+int ata_pci_resume(device_t dev);
 struct resource * ata_pci_alloc_resource(device_t dev, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags);
 int ata_pci_release_resource(device_t dev, device_t child, int type, int rid, struct resource *r);
 int ata_pci_setup_intr(device_t dev, device_t child, struct resource *irq, int flags, driver_filter_t *filter, driver_intr_t *function, void *argument, void **cookiep);

==== //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#9 (text+ko) ====

@@ -28,7 +28,7 @@
 ***************************************************************************/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c,v 1.19 2008/09/16 01:02:17 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c,v 1.20 2008/09/17 15:49:44 attilio Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1663,8 +1663,8 @@
 	if (error)
 		return (error);
 
-	if (optval > IPTOS_PREC_CRITIC_ECP && !suser(curthread))
-		return (EPERM);
+	if (optval > IPTOS_PREC_CRITIC_ECP)
+		return (EINVAL);
 
 	inp = so_sotoinpcb(so);
 	inp_wlock(inp);

==== //depot/projects/vimage-commit2/src/sys/dev/sbni/if_sbni.c#4 (text+ko) ====


==== //depot/projects/vimage-commit2/src/sys/dev/sbni/if_sbni_isa.c#4 (text+ko) ====


==== //depot/projects/vimage-commit2/src/sys/dev/sbni/if_sbni_pci.c#4 (text+ko) ====


==== //depot/projects/vimage-commit2/src/sys/dev/sbni/if_sbnireg.h#4 (text+ko) ====


==== //depot/projects/vimage-commit2/src/sys/dev/sbni/if_sbnivar.h#4 (text+ko) ====


==== //depot/projects/vimage-commit2/src/sys/geom/geom_io.c#2 (text+ko) ====

@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/geom/geom_io.c,v 1.77 2007/12/16 18:03:31 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/geom/geom_io.c,v 1.78 2008/09/18 15:02:19 sbruno Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -582,7 +582,7 @@
 			g_bioq_unlock(&g_bio_run_up);
 			THREAD_NO_SLEEPING();
 			CTR4(KTR_GEOM, "g_up biodone bp %p provider %s off "
-			    "%ld len %ld", bp, bp->bio_to->name,
+			    "%jd len %ld", bp, bp->bio_to->name,
 			    bp->bio_offset, bp->bio_length);
 			biodone(bp);
 			THREAD_SLEEPING_OK();

==== //depot/projects/vimage-commit2/src/sys/i386/i386/identcpu.c#2 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.185 2008/05/23 04:03:53 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.186 2008/09/17 20:45:18 jhb Exp $");
 
 #include "opt_cpu.h"
 
@@ -719,7 +719,7 @@
 				"\020"
 				"\001SSE3"	/* SSE3 */
 				"\002<b1>"
-				"\003RSVD2"	/* "Reserved" bit 2 */
+				"\003DTES64"	/* 64-bit Debug Trace */
 				"\004MON"	/* MONITOR/MWAIT Instructions */
 				"\005DS_CPL"	/* CPL Qualified Debug Store */
 				"\006VMX"	/* Virtual Machine Extensions */
@@ -736,11 +736,11 @@
 				"\021<b16>"
 				"\022<b17>"
 				"\023DCA"	/* Direct Cache Access */
-				"\024<b19>"
-				"\025<b20>"
-				"\026<b21>"
+				"\024SSE4.1"
+				"\025SSE4.2"
+				"\026x2APIC"	/* xAPIC Extensions */
 				"\027<b22>"
-				"\030<b23>"
+				"\030POPCNT"
 				"\031<b24>"
 				"\032<b25>"
 				"\033<b26>"
@@ -790,7 +790,7 @@
 				"\030<s23>"	/* Same */
 				"\031<s24>"	/* Same */
 				"\032FFXSR"	/* Fast FXSAVE/FXRSTOR */
-				"\033<b26>"	/* Undefined */
+				"\033Page1GB"	/* 1-GB large page support */
 				"\034RDTSCP"	/* RDTSCP */
 				"\035<b28>"	/* Undefined */
 				"\036LM"	/* 64 bit long mode */

==== //depot/projects/vimage-commit2/src/sys/i386/i386/intr_machdep.c#2 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/i386/i386/intr_machdep.c,v 1.36 2008/04/11 03:26:40 jeff Exp $
+ * $FreeBSD: src/sys/i386/i386/intr_machdep.c,v 1.37 2008/09/18 03:19:46 kmacy Exp $
  */
 
 /*
@@ -458,6 +458,13 @@
 	struct intsrc *isrc;
 	int i;
 
+#ifdef XEN
+	/*
+	 * Doesn't work yet
+	 */
+	return;
+#endif	
+	
 	/* Don't bother on UP. */
 	if (mp_ncpus == 1)
 		return;

==== //depot/projects/vimage-commit2/src/sys/i386/include/specialreg.h#3 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)specialreg.h	7.1 (Berkeley) 5/9/91
- * $FreeBSD: src/sys/i386/include/specialreg.h,v 1.45 2008/08/08 16:26:53 stas Exp $
+ * $FreeBSD: src/sys/i386/include/specialreg.h,v 1.46 2008/09/17 20:45:18 jhb Exp $
  */
 
 #ifndef _MACHINE_SPECIALREG_H_
@@ -110,6 +110,7 @@
 #define	CPUID_PBE	0x80000000
 
 #define	CPUID2_SSE3	0x00000001
+#define	CPUID2_DTES64	0x00000004
 #define	CPUID2_MON	0x00000008
 #define	CPUID2_DS_CPL	0x00000010
 #define	CPUID2_VMX	0x00000020
@@ -122,6 +123,10 @@
 #define	CPUID2_XTPR	0x00004000
 #define	CPUID2_PDCM	0x00008000
 #define	CPUID2_DCA	0x00040000
+#define	CPUID2_SSE41	0x00080000
+#define	CPUID2_SSE42	0x00100000
+#define	CPUID2_X2APIC	0x00200000
+#define	CPUID2_POPCNT	0x00800000
 
 /*
  * Important bits in the AMD extended cpuid flags
@@ -131,6 +136,7 @@
 #define	AMDID_NX	0x00100000
 #define	AMDID_EXT_MMX	0x00400000
 #define	AMDID_FFXSR	0x01000000
+#define	AMDID_PAGE1GB	0x04000000
 #define	AMDID_RDTSCP	0x08000000
 #define	AMDID_LM	0x20000000
 #define	AMDID_EXT_3DNOW	0x40000000

==== //depot/projects/vimage-commit2/src/sys/i386/xen/mp_machdep.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/xen/mp_machdep.c,v 1.1 2008/09/10 07:11:08 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/xen/mp_machdep.c,v 1.3 2008/09/18 02:59:19 kmacy Exp $");
 
 #include "opt_apic.h"
 #include "opt_cpu.h"
@@ -439,6 +439,8 @@
 	while (smp_started == 0)
 		ia32_pause();
 
+	
+	PCPU_SET(curthread, PCPU_GET(idlethread));
 	/* enter the scheduler */
 	sched_throw(NULL);
 
@@ -556,11 +558,11 @@
 
 		/* Get per-cpu data */
 		pc = &__pcpu[bootAP];
+		pcpu_init(pc, bootAP, sizeof(struct pcpu));
 		pc->pc_apic_id = cpu_apic_ids[bootAP];
 		pc->pc_prvspace = pc;
 		pc->pc_curthread = 0;
 
-		pcpu_init(pc, bootAP, sizeof(struct pcpu));
 		gdt_segs[GPRIV_SEL].ssd_base = (int) pc;
 		gdt_segs[GPROC0_SEL].ssd_base = (int) &pc->pc_common_tss;
 		
@@ -622,18 +624,19 @@
 	vm_page_t m[4];
 	static vcpu_guest_context_t ctxt;
 	vm_offset_t boot_stack;
-	vm_paddr_t *va = (vm_paddr_t *)PTOV(IdlePDPT);
-	vm_paddr_t ma[4];
+	vm_offset_t newPTD;
+	vm_paddr_t ma[NPGPTD];
 	static int color;
 	int i;
 
 	/*
-	 * Page 0: 	boot stack
-	 * Page 1: 	PDPT
-	 * Page 2-3:	PTD{2-3]	
+	 * Page 0,[0-3]	PTD
+	 * Page 1, [4]	boot stack
+	 * Page [5]	PDPT
+
 	 *
 	 */
-	for (i = 0; i < 4; i++) {
+	for (i = 0; i < NPGPTD + 2; i++) {
 		m[i] = vm_page_alloc(NULL, color++,
 		    VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED |
 		    VM_ALLOC_ZERO);
@@ -641,45 +644,45 @@
 		pmap_zero_page(m[i]);
 
 	}
-	boot_stack = kmem_alloc_nofault(kernel_map, 1);	
+	boot_stack = kmem_alloc_nofault(kernel_map, 1);
+	newPTD = kmem_alloc_nofault(kernel_map, NPGPTD);
+	ma[0] = xpmap_ptom(VM_PAGE_TO_PHYS(m[0]))|PG_V;
 
-	/*
-	 * Initialize new IdlePDPT with dedicated page
-	 * for upper 1GB
-	 */
-	pmap_kenter(boot_stack, VM_PAGE_TO_PHYS(m[1]));	
-	for (i = 0; i < 4; i++) {
-		((vm_paddr_t *)boot_stack)[i] = va[i];
-		ma[i] = va[i];
+#ifdef PAE	
+	pmap_kenter(boot_stack, VM_PAGE_TO_PHYS(m[NPGPTD + 1]));
+	for (i = 0; i < NPGPTD; i++) {
+		((vm_paddr_t *)boot_stack)[i] =
+		ma[i] = 
+		    xpmap_ptom(VM_PAGE_TO_PHYS(m[i]))|PG_V;
 	}
-	
-	ma[2] = ((vm_paddr_t *)boot_stack)[2] =
-	    xpmap_ptom(VM_PAGE_TO_PHYS(m[2]))|PG_V;
-	ma[3] = ((vm_paddr_t *)boot_stack)[3] =
-	    xpmap_ptom(VM_PAGE_TO_PHYS(m[3]))|PG_V;
+#endif	
 
 	/*
 	 * Copy cpu0 IdlePTD to new IdlePTD - copying only
 	 * kernel mappings
 	 */
-	pmap_kenter(boot_stack, VM_PAGE_TO_PHYS(m[3]));
-	memcpy((uint8_t *)boot_stack, (uint8_t *)PTOV(IdlePTD) + 3*PAGE_SIZE,
+	pmap_qenter(newPTD, m, 4);
+	
+	memcpy((uint8_t *)newPTD + KPTDI*sizeof(vm_paddr_t),
+	    (uint8_t *)PTOV(IdlePTD) + KPTDI*sizeof(vm_paddr_t),
 	    nkpt*sizeof(vm_paddr_t));
-	
+
+	pmap_qremove(newPTD, 4);
+	kmem_free(kernel_map, newPTD, 4);
 	/*
 	 * map actual idle stack to boot_stack
 	 */
-	pmap_kenter(boot_stack, VM_PAGE_TO_PHYS(m[0]));	
+	pmap_kenter(boot_stack, VM_PAGE_TO_PHYS(m[NPGPTD]));
 
-	printf("pinning pgdpt=%llx\n",
-	    xpmap_ptom(VM_PAGE_TO_PHYS(m[1])));
 
-	xen_pgdpt_pin(xpmap_ptom(VM_PAGE_TO_PHYS(m[1])));
+	xen_pgdpt_pin(xpmap_ptom(VM_PAGE_TO_PHYS(m[NPGPTD + 1])));
 	vm_page_lock_queues();
 	for (i = 0; i < 4; i++) {
+		int pdir = (PTDPTDI + i) / NPDEPG;
+		int curoffset = (PTDPTDI + i) % NPDEPG;
+		
 		xen_queue_pt_update((vm_paddr_t)
-		    ((ma[2] & ~PG_V) +
-			(PTDPTDI - 1024 + i)*sizeof(vm_paddr_t)), 
+		    ((ma[pdir] & ~PG_V) + (curoffset*sizeof(vm_paddr_t))), 
 		    ma[i]);
 	}
 	PT_UPDATES_FLUSH();
@@ -715,12 +718,7 @@
 	ctxt.failsafe_callback_cs  = GSEL(GCODE_SEL, SEL_KPL);
 	ctxt.failsafe_callback_eip = (unsigned long)failsafe_callback;
 
-	ctxt.ctrlreg[3] =
-#if 1
-	    xpmap_ptom(VM_PAGE_TO_PHYS(m[1]));
-#else
-	    xpmap_ptom((unsigned long)IdlePDPT);
-#endif
+	ctxt.ctrlreg[3] = xpmap_ptom(VM_PAGE_TO_PHYS(m[NPGPTD + 1]));
 #else /* __x86_64__ */
 	ctxt.user_regs.esp = idle->thread.rsp0 - sizeof(struct pt_regs);
 	ctxt.kernel_ss = GSEL(GDATA_SEL, SEL_KPL);
@@ -751,11 +749,12 @@
  * of the different hardware we might encounter.  It isn't pretty,
  * but it seems to work.
  */
+
+int cpus;
 static int
 start_ap(int apic_id)
 {
 	int ms;
-	int cpus;
 
 	/* used as a watchpoint to signal AP startup */
 	cpus = mp_naps;

==== //depot/projects/vimage-commit2/src/sys/i386/xen/xen_machdep.c#7 (text+ko) ====

@@ -1,7 +1,7 @@
 /*
  *
  * Copyright (c) 2004 Christian Limpach.
- * Copyright (c) 2004-2006 Kip Macy
+ * Copyright (c) 2004-2006,2008 Kip Macy
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/xen/xen_machdep.c,v 1.9 2008/09/10 07:11:08 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/xen/xen_machdep.c,v 1.10 2008/09/17 19:11:37 kmacy Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -258,19 +258,26 @@
 	if (__predict_true(gdtset))
 	for (i = _xpq_idx; i > 0;) {
 		if (i >= 3) {
-			CTR6(KTR_PMAP, "mmu:val: %lx ptr: %lx val: %lx ptr: %lx val: %lx ptr: %lx",
-			    (XPQ_QUEUE[i-1].val & 0xffffffff), (XPQ_QUEUE[i-1].ptr & 0xffffffff),
-			    (XPQ_QUEUE[i-2].val & 0xffffffff), (XPQ_QUEUE[i-2].ptr & 0xffffffff),
-			    (XPQ_QUEUE[i-3].val & 0xffffffff), (XPQ_QUEUE[i-3].ptr & 0xffffffff));
+			CTR6(KTR_PMAP, "mmu:val: %lx ptr: %lx val: %lx "
+			    "ptr: %lx val: %lx ptr: %lx",
+			    (XPQ_QUEUE[i-1].val & 0xffffffff),
+			    (XPQ_QUEUE[i-1].ptr & 0xffffffff),
+			    (XPQ_QUEUE[i-2].val & 0xffffffff),
+			    (XPQ_QUEUE[i-2].ptr & 0xffffffff),
+			    (XPQ_QUEUE[i-3].val & 0xffffffff),
+			    (XPQ_QUEUE[i-3].ptr & 0xffffffff));
 			    i -= 3;
 		} else if (i == 2) {
 			CTR4(KTR_PMAP, "mmu: val: %lx ptr: %lx val: %lx ptr: %lx",
-			    (XPQ_QUEUE[i-1].val & 0xffffffff), (XPQ_QUEUE[i-1].ptr & 0xffffffff),
-			    (XPQ_QUEUE[i-2].val & 0xffffffff), (XPQ_QUEUE[i-2].ptr & 0xffffffff));
+			    (XPQ_QUEUE[i-1].val & 0xffffffff),
+			    (XPQ_QUEUE[i-1].ptr & 0xffffffff),
+			    (XPQ_QUEUE[i-2].val & 0xffffffff),
+			    (XPQ_QUEUE[i-2].ptr & 0xffffffff));
 			i = 0;
 		} else {
 			CTR2(KTR_PMAP, "mmu: val: %lx ptr: %lx", 
-			    (XPQ_QUEUE[i-1].val & 0xffffffff), (XPQ_QUEUE[i-1].ptr & 0xffffffff));
+			    (XPQ_QUEUE[i-1].val & 0xffffffff),
+			    (XPQ_QUEUE[i-1].ptr & 0xffffffff));
 			i = 0;
 		}
 	}
@@ -279,7 +286,8 @@
 		critical_exit();
 	if (__predict_false(error < 0)) {
 		for (i = 0; i < _xpq_idx; i++)
-			printf("val: %llx ptr: %llx\n", XPQ_QUEUE[i].val, XPQ_QUEUE[i].ptr);
+			printf("val: %llx ptr: %llx\n",
+			    XPQ_QUEUE[i].val, XPQ_QUEUE[i].ptr);
 		panic("Failed to execute MMU updates: %d", error);
 	}
 
@@ -389,8 +397,11 @@
 	if (__predict_true(gdtset))	
 		mtx_assert(&vm_page_queue_mtx, MA_OWNED);
 
+	KASSERT((ptr & 7) == 0, ("misaligned update"));
+	
 	if (__predict_true(gdtset))
 		critical_enter();
+	
 	XPQ_QUEUE[XPQ_IDX].ptr = ((uint64_t)ptr) | MMU_NORMAL_PT_UPDATE;
 	XPQ_QUEUE[XPQ_IDX].val = (uint64_t)val;
 #ifdef INVARIANTS
@@ -792,6 +803,10 @@
 #endif /* ADD_ISA_HOLE */
 
 extern unsigned long physfree;
+
+int pdir, curoffset;
+
+
 void
 initvalues(start_info_t *startinfo)
 { 
@@ -837,7 +852,9 @@
 	    ((xen_start_info->nr_pt_frames) + 3 )*PAGE_SIZE;
 	printk("initvalues(): wooh - availmem=%x,%x\n", avail_space, cur_space);
 
-	printk("KERNBASE=%x,pt_base=%x, VTOPFN(base)=%x, nr_pt_frames=%x\n", KERNBASE,xen_start_info->pt_base, VTOPFN(xen_start_info->pt_base), xen_start_info->nr_pt_frames);
+	printk("KERNBASE=%x,pt_base=%x, VTOPFN(base)=%x, nr_pt_frames=%x\n",
+	    KERNBASE,xen_start_info->pt_base, VTOPFN(xen_start_info->pt_base),
+	    xen_start_info->nr_pt_frames);
 	xendebug_flags = 0; /* 0xffffffff; */
 
 	/* allocate 4 pages for bootmem allocator */
@@ -851,13 +868,13 @@
 	/* 
 	 * pre-zero unused mapped pages - mapped on 4MB boundary
 	 */
-/*
-	bzero((char *)cur_space, (cur_space + 0x3fffff) % 0x400000);
- */
-
 #ifdef PAE
 	IdlePDPT = (pd_entry_t *)startinfo->pt_base;
 	IdlePDPTma = xpmap_ptom(VTOP(startinfo->pt_base));
+	/*
+	 * Note that only one page directory has been allocated at this point.
+	 * Thus, if KERNBASE
+	 */
 	IdlePTD = (pd_entry_t *)((uint8_t *)startinfo->pt_base + PAGE_SIZE);
 	IdlePTDma = xpmap_ptom(VTOP(IdlePTD));
 	l3_pages = 1;
@@ -931,14 +948,25 @@
 		PT_SET_MA(tmpva, (vm_paddr_t)0);
 	}
 	
-#ifdef PAE
-	offset = 0;
-#else	
-	offset = KPTDI;
-#endif	
+	PT_UPDATES_FLUSH();
+  
+	memcpy(((uint8_t *)IdlePTDnew) + ((unsigned int)(KERNBASE >> 18)),
+	    ((uint8_t *)IdlePTD) + ((KERNBASE >> 18) & PAGE_MASK),
+	    l1_pages*sizeof(pt_entry_t));
+
+	for (i = 0; i < 4; i++) {
+		PT_SET_MA((uint8_t *)IdlePTDnew + i*PAGE_SIZE,
+		    IdlePTDnewma[i] | PG_V);
+	}
+	xen_load_cr3(VTOP(IdlePDPTnew));
+	xen_pgdpt_pin(xpmap_ptom(VTOP(IdlePDPTnew)));
 
 	/* allocate remainder of NKPT pages */
-	for (i = l1_pages; i < NKPT; i++, cur_space += PAGE_SIZE) {
+	for (offset = (KERNBASE >> PDRSHIFT), i = l1_pages - 1; i < NKPT;
+	     i++, cur_space += PAGE_SIZE) {
+		pdir = (offset + i) / NPDEPG;
+		curoffset = ((offset + i) % NPDEPG);
+		
 		/*
 		 * make sure that all the initial page table pages
 		 * have been zeroed
@@ -947,31 +975,21 @@
 		bzero((char *)cur_space, PAGE_SIZE);
 		PT_SET_MA(cur_space, (vm_paddr_t)0);
 		xen_pt_pin(xpmap_ptom(VTOP(cur_space)));
-		xen_queue_pt_update((vm_paddr_t)(IdlePTDma + (offset + i)*sizeof(vm_paddr_t)), 
+		xen_queue_pt_update((vm_paddr_t)(IdlePTDnewma[pdir] +
+			curoffset*sizeof(vm_paddr_t)), 
 		    xpmap_ptom(VTOP(cur_space)) | PG_KERNEL);
+		PT_UPDATES_FLUSH();
 	}
 	
-	PT_UPDATES_FLUSH();
-	memcpy((uint8_t *)IdlePTDnew + 3*PAGE_SIZE, IdlePTD, PAGE_SIZE/2);
-	printk("do remapping\n");
 	for (i = 0; i < 4; i++) {
-		PT_SET_MA((uint8_t *)IdlePTDnew + i*PAGE_SIZE,
-		    IdlePTDnewma[i] | PG_V);
-	}
-	xen_load_cr3(VTOP(IdlePDPTnew));
-	xen_pgdpt_pin(xpmap_ptom(VTOP(IdlePDPTnew)));
+		pdir = (PTDPTDI + i) / NPDEPG;
+		curoffset = (PTDPTDI + i) % NPDEPG;
 
-	for (i = 0; i < 4; i++) {
-		xen_queue_pt_update((vm_paddr_t)(IdlePTDnewma[2] + (PTDPTDI - 1024 + i)*sizeof(vm_paddr_t)), 
+		xen_queue_pt_update((vm_paddr_t)(IdlePTDnewma[pdir] +
+			curoffset*sizeof(vm_paddr_t)), 
 		    IdlePTDnewma[i] | PG_V);
 	}
 
-	/* copy	NKPT pages */
-	for (i = 0; i < NKPT; i++) {
-		xen_queue_pt_update(
-			(vm_paddr_t)(IdlePTDnewma[3] + (i)*sizeof(vm_paddr_t)), 
-			    IdlePTD[i]);
-	}
 	PT_UPDATES_FLUSH();
 	
 	IdlePTD = IdlePTDnew;

==== //depot/projects/vimage-commit2/src/sys/kern/kern_priv.c#2 (text+ko) ====

@@ -30,7 +30,7 @@
 #include "opt_mac.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_priv.c,v 1.5 2008/03/07 15:27:08 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_priv.c,v 1.6 2008/09/17 15:49:44 attilio Exp $");
 
 #include <sys/param.h>
 #include <sys/jail.h>
@@ -133,24 +133,3 @@
 
 	return (priv_check_cred(td->td_ucred, priv, 0));
 }
-
-/*
- * Historical suser() wrapper functions, which now simply request PRIV_ROOT.
- * These will be removed in the near future, and exist solely because
- * the kernel and modules are not yet fully adapted to the new model.
- */
-int
-suser_cred(struct ucred *cred, int flags)
-{
-
-	return (priv_check_cred(cred, PRIV_ROOT, flags));
-}
-
-int
-suser(struct thread *td)
-{
-
-	KASSERT(td == curthread, ("suser: td != curthread"));
-
-	return (suser_cred(td->td_ucred, 0));
-}

==== //depot/projects/vimage-commit2/src/sys/mips/malta/gt_pci.c#3 (text+ko) ====

@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/mips/malta/gt_pci.c,v 1.2 2008/09/10 03:49:08 gonzo Exp $");
+__FBSDID("$FreeBSD: src/sys/mips/malta/gt_pci.c,v 1.3 2008/09/18 15:15:42 obrien Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -657,7 +657,7 @@
 
 	event = sc->sc_eventstab[irq];
 	if (event == NULL) {
-                error = intr_event_create(&event, (void *)irq, 0,
+                error = intr_event_create(&event, (void *)irq, 0, 0,
 		    (mask_fn)mips_mask_irq, (mask_fn)mips_unmask_irq,
 		    (mask_fn)mips_unmask_irq, NULL, "gt_pci intr%d:", irq);
 		if (error)

==== //depot/projects/vimage-commit2/src/sys/mips/mips/intr_machdep.c#3 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/mips/mips/intr_machdep.c,v 1.2 2008/09/04 17:10:52 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/mips/mips/intr_machdep.c,v 1.3 2008/09/18 15:24:49 obrien Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -84,7 +84,7 @@
 
 	event = hardintr_events[irq];

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



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