Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Apr 2004 14:10:37 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 51204 for review
Message-ID:  <200404162110.i3GLAb6U054619@repoman.freebsd.org>

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

Change 51204 by jhb@jhb_slimer on 2004/04/16 14:10:27

	IFC @51203 (loop back some commits).

Affected files ...

.. //depot/projects/smpng/sys/alpha/alpha/interrupt.c#27 integrate
.. //depot/projects/smpng/sys/dev/ciss/ciss.c#30 integrate
.. //depot/projects/smpng/sys/dev/ciss/cissreg.h#5 integrate
.. //depot/projects/smpng/sys/dev/ciss/cissvar.h#6 integrate
.. //depot/projects/smpng/sys/i386/acpica/madt.c#7 integrate
.. //depot/projects/smpng/sys/i386/i386/apic_vector.s#8 integrate
.. //depot/projects/smpng/sys/i386/i386/exception.s#18 integrate
.. //depot/projects/smpng/sys/i386/i386/support.s#15 integrate
.. //depot/projects/smpng/sys/i386/isa/atpic_vector.s#9 integrate
.. //depot/projects/smpng/sys/i386/pci/pci_pir.c#2 integrate
.. //depot/projects/smpng/sys/kern/kern_intr.c#44 integrate

Differences ...

==== //depot/projects/smpng/sys/alpha/alpha/interrupt.c#27 (text+ko) ====

@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 /* __KERNEL_RCSID(0, "$NetBSD: interrupt.c,v 1.23 1998/02/24 07:38:01 thorpej Exp $");*/
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/interrupt.c,v 1.77 2004/03/23 22:28:16 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/interrupt.c,v 1.78 2004/04/16 20:09:53 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/smpng/sys/dev/ciss/ciss.c#30 (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/dev/ciss/ciss.c,v 1.39 2004/04/14 19:45:07 ps Exp $
+ *	$FreeBSD: src/sys/dev/ciss/ciss.c,v 1.40 2004/04/16 21:03:38 ps Exp $
  */
 
 /*
@@ -57,7 +57,7 @@
  * are available, but we aren't supposed to know about them, and it is
  * dubious whether they would provide major performance improvements
  * except under extreme load.
- * 
+ *
  * Currently the only supported CISS adapters are the Compaq Smart
  * Array 5* series (5300, 5i, 532).  Even with only three adapters,
  * Compaq still manage to have interface variations.
@@ -280,7 +280,7 @@
 	return(-10);
     }
     return(ENOENT);
-}	
+}
 
 /************************************************************************
  * Attach the driver to this adapter.
@@ -350,7 +350,7 @@
 	error = ENXIO;
 	goto out;
     }
-	
+
     /*
      * Do PCI-specific init.
      */
@@ -375,7 +375,7 @@
      */
     if ((error = ciss_identify_adapter(sc)) != 0)
 	goto out;
-    
+
     /*
      * Build our private table of logical devices.
      */
@@ -441,7 +441,6 @@
     ciss_free(sc);
 
     return(0);
-    
 }
 
 /************************************************************************
@@ -478,7 +477,7 @@
     error = ENXIO;
     sc->ciss_regs_rid = CISS_TL_SIMPLE_BAR_REGS;
     if ((sc->ciss_regs_resource =
-	 bus_alloc_resource_any(sc->ciss_dev, SYS_RES_MEMORY, 
+	 bus_alloc_resource_any(sc->ciss_dev, SYS_RES_MEMORY,
 				&sc->ciss_regs_rid, RF_ACTIVE)) == NULL) {
 	ciss_printf(sc, "can't allocate register window\n");
 	return(ENXIO);
@@ -493,7 +492,7 @@
     sc->ciss_cfg_rid = CISS_TL_SIMPLE_READ(sc, CISS_TL_SIMPLE_CFG_BAR) & 0xffff;
     if (sc->ciss_cfg_rid != sc->ciss_regs_rid) {
 	if ((sc->ciss_cfg_resource =
-	     bus_alloc_resource_any(sc->ciss_dev, SYS_RES_MEMORY, 
+	     bus_alloc_resource_any(sc->ciss_dev, SYS_RES_MEMORY,
 				    &sc->ciss_cfg_rid, RF_ACTIVE)) == NULL) {
 	    ciss_printf(sc, "can't allocate config window\n");
 	    return(ENXIO);
@@ -507,7 +506,7 @@
 	    rman_get_start(sc->ciss_regs_resource) + 1;
     }
     cofs = CISS_TL_SIMPLE_READ(sc, CISS_TL_SIMPLE_CFG_OFF);
-    
+
     /*
      * Use the base/size/offset values we just calculated to
      * sanity-check the config structure.  If it's OK, point to it.
@@ -518,7 +517,7 @@
     }
     sc->ciss_cfg = (struct ciss_config_table *)(cbase + cofs);
     debug(1, "config struct at %p", sc->ciss_cfg);
-    
+
     /*
      * Validate the config structure.  If we supported other transport
      * methods, we could select amongst them at this point in time.
@@ -531,7 +530,7 @@
     }
     if ((sc->ciss_cfg->valence < CISS_MIN_VALENCE) ||
 	(sc->ciss_cfg->valence > CISS_MAX_VALENCE)) {
-	ciss_printf(sc, "adapter interface specification (%d) unsupported\n", 
+	ciss_printf(sc, "adapter interface specification (%d) unsupported\n",
 		    sc->ciss_cfg->valence);
 	return(ENXIO);
     }
@@ -571,13 +570,13 @@
      * Turn off interrupts before we go routing anything.
      */
     CISS_TL_SIMPLE_DISABLE_INTERRUPTS(sc);
-    
+
     /*
      * Allocate and set up our interrupt.
      */
     sc->ciss_irq_rid = 0;
     if ((sc->ciss_irq_resource =
-	 bus_alloc_resource_any(sc->ciss_dev, SYS_RES_IRQ, &sc->ciss_irq_rid, 
+	 bus_alloc_resource_any(sc->ciss_dev, SYS_RES_IRQ, &sc->ciss_irq_rid,
 				RF_ACTIVE | RF_SHAREABLE)) == NULL) {
 	ciss_printf(sc, "can't allocate interrupt\n");
 	return(ENXIO);
@@ -591,7 +590,7 @@
     /*
      * Allocate the parent bus DMA tag appropriate for our PCI
      * interface.
-     * 
+     *
      * Note that "simple" adapters can only address within a 32-bit
      * span.
      */
@@ -700,7 +699,7 @@
     case CISS_CMD_STATUS_SUCCESS:
 	break;
     default:
-	ciss_printf(sc, "error flushing cache (%s)\n",  
+	ciss_printf(sc, "error flushing cache (%s)\n",
 		    ciss_name_command_status(command_status));
 	error = EIO;
 	goto out;
@@ -747,7 +746,7 @@
 			   BUS_SPACE_MAXADDR_32BIT,	/* lowaddr */
 			   BUS_SPACE_MAXADDR, 		/* highaddr */
 			   NULL, NULL, 			/* filter, filterarg */
-			   CISS_COMMAND_ALLOC_SIZE * 
+			   CISS_COMMAND_ALLOC_SIZE *
 			   sc->ciss_max_requests, 1,	/* maxsize, nsegments */
 			   BUS_SPACE_MAXSIZE_32BIT,	/* maxsegsize */
 			   BUS_DMA_ALLOCNOW,		/* flags */
@@ -759,12 +758,12 @@
     /*
      * Allocate memory and make it available for DMA.
      */
-    if (bus_dmamem_alloc(sc->ciss_command_dmat, (void **)&sc->ciss_command, 
+    if (bus_dmamem_alloc(sc->ciss_command_dmat, (void **)&sc->ciss_command,
 			 BUS_DMA_NOWAIT, &sc->ciss_command_map)) {
 	ciss_printf(sc, "can't allocate command memory\n");
 	return(ENOMEM);
     }
-    bus_dmamap_load(sc->ciss_command_dmat, sc->ciss_command_map, sc->ciss_command, 
+    bus_dmamap_load(sc->ciss_command_dmat, sc->ciss_command_map, sc->ciss_command,
 		    CISS_COMMAND_ALLOC_SIZE * sc->ciss_max_requests,
 		    ciss_command_map_helper, sc, 0);
     bzero(sc->ciss_command, CISS_COMMAND_ALLOC_SIZE * sc->ciss_max_requests);
@@ -863,7 +862,7 @@
 	ciss_printf(sc, "  signature '%.4s'\n", sc->ciss_cfg->signature);
 	ciss_printf(sc, "  valence %d\n", sc->ciss_cfg->valence);
 	ciss_printf(sc, "  supported I/O methods 0x%b\n",
-		    sc->ciss_cfg->supported_methods, 
+		    sc->ciss_cfg->supported_methods,
 		    "\20\1READY\2simple\3performant\4MEMQ\n");
 	ciss_printf(sc, "  active I/O method 0x%b\n",
 		    sc->ciss_cfg->active_method, "\20\2simple\3performant\4MEMQ\n");
@@ -875,7 +874,7 @@
 		    sc->ciss_cfg->interrupt_coalesce_count);
 	ciss_printf(sc, "  max outstanding commands %d\n",
 		    sc->ciss_cfg->max_outstanding_commands);
-	ciss_printf(sc, "  bus types 0x%b\n", sc->ciss_cfg->bus_types, 
+	ciss_printf(sc, "  bus types 0x%b\n", sc->ciss_cfg->bus_types,
 		    "\20\1ultra2\2ultra3\10fibre1\11fibre2\n");
 	ciss_printf(sc, "  server name '%.16s'\n", sc->ciss_cfg->server_name);
 	ciss_printf(sc, "  heartbeat 0x%x\n", sc->ciss_cfg->heartbeat);
@@ -887,7 +886,7 @@
 	    free(sc->ciss_id, CISS_MALLOC_CLASS);
 	    sc->ciss_id = NULL;
 	}
-    }	
+    }
     if (cr != NULL)
 	ciss_release_request(cr);
     return(error);
@@ -1104,7 +1103,7 @@
      * Build a BMIC request to fetch the drive ID.
      */
     if ((error = ciss_get_bmic_request(sc, &cr, CISS_BMIC_ID_LDRIVE,
-				       (void **)&ld->cl_ldrive, 
+				       (void **)&ld->cl_ldrive,
 				       sizeof(*ld->cl_ldrive))) != 0)
 	goto out;
     cc = CISS_FIND_COMMAND(cr);
@@ -1118,7 +1117,7 @@
 	ciss_printf(sc, "error sending BMIC LDRIVE command (%d)\n", error);
 	goto out;
     }
-    
+
     /*
      * Check response.
      */
@@ -1198,7 +1197,7 @@
      * Build a CISS BMIC command to get the logical drive status.
      */
     if ((error = ciss_get_bmic_request(sc, &cr, CISS_BMIC_ID_LSTATUS,
-				       (void **)&ld->cl_lstatus, 
+				       (void **)&ld->cl_lstatus,
 				       sizeof(*ld->cl_lstatus))) != 0)
 	goto out;
     cc = CISS_FIND_COMMAND(cr);
@@ -1233,7 +1232,7 @@
     /*
      * Set the drive's summary status based on the returned status.
      *
-     * XXX testing shows that a failed JBOD drive comes back at next 
+     * XXX testing shows that a failed JBOD drive comes back at next
      * boot in "queued for expansion" mode.  WTF?
      */
     ld->cl_status = ciss_decode_ldrive_status(ld->cl_lstatus->status);
@@ -1279,7 +1278,7 @@
     struct ciss_bmic_cdb	*cbc;
     int				error;
 
-    debug(0, "bringing logical drive %d back online %ssynchronously", 
+    debug(0, "bringing logical drive %d back online %ssynchronously",
 	  ldrive, async ? "a" : "");
 
     /*
@@ -1316,7 +1315,7 @@
      */
     ciss_accept_media_complete(cr);
     return(0);
-    
+
 out:
     if (cr != NULL)
 	ciss_release_request(cr);
@@ -1480,7 +1479,7 @@
 	if (tag == CISS_TL_SIMPLE_OPQ_EMPTY)
 	    break;
 	index = tag >> 2;
-	debug(2, "completed command %d%s", index, 
+	debug(2, "completed command %d%s", index,
 	      (tag & CISS_HDR_HOST_TAG_ERROR) ? " with error" : "");
 	if (index >= sc->ciss_max_requests) {
 	    ciss_printf(sc, "completed invalid request %d (0x%x)\n", index, tag);
@@ -1497,7 +1496,7 @@
 	}
 	complete = 1;
     }
-    
+
     /*
      * Invoke completion processing.  If we can defer this out of
      * interrupt context, that'd be good.
@@ -1665,7 +1664,7 @@
 ciss_poll_request(struct ciss_request *cr, int timeout)
 {
     int		error;
- 
+
     debug_called(2);
 
     cr->cr_flags |= CISS_REQ_POLL;
@@ -1725,7 +1724,7 @@
     if ((error = ciss_get_request(ar->cr_sc, &cr)) != 0)
 	return(error);
 
-    /* build the abort command */	
+    /* build the abort command */
     cc = CISS_FIND_COMMAND(cr);
     cc->header.address.mode.mode = CISS_HDR_ADDRESS_MODE_PERIPHERAL;	/* addressing? */
     cc->header.address.physical.target = 0;
@@ -1802,7 +1801,6 @@
     cmdphys = CISS_FIND_COMMANDPHYS(cr);
     cc->error_info.error_info_address = cmdphys + sizeof(struct ciss_command);
     cc->error_info.error_info_length = CISS_COMMAND_ALLOC_SIZE - sizeof(struct ciss_command);
-    
 }
 
 /************************************************************************
@@ -1839,7 +1837,7 @@
     debug_called(2);
 
     cr = NULL;
-    buf = NULL;	
+    buf = NULL;
 
     /*
      * Get a request.
@@ -2141,7 +2139,7 @@
 
 /************************************************************************
  * Initiate a rescan of the 'logical devices' SIM
- */ 
+ */
 static void
 ciss_cam_rescan_target(struct ciss_softc *sc, int target)
 {
@@ -2418,12 +2416,12 @@
     u_int8_t	opcode;
 
     target = csio->ccb_h.target_id;
-    opcode = (csio->ccb_h.flags & CAM_CDB_POINTER) ? 
+    opcode = (csio->ccb_h.flags & CAM_CDB_POINTER) ?
 	*(u_int8_t *)csio->cdb_io.cdb_ptr : csio->cdb_io.cdb_bytes[0];
 
     /*
      * Handle requests for volumes that don't exist.  A selection timeout
-     * is slightly better than an illegal request.  Other errors might be 
+     * is slightly better than an illegal request.  Other errors might be
      * better.
      */
     if (sc->ciss_logical[target].cl_status == CISS_LD_NONEXISTENT) {
@@ -2457,7 +2455,7 @@
 	 * If this is a Synchronise Cache command, typically issued when
 	 * a device is closed, flush the adapter and complete now.
 	 */
-	if (((csio->ccb_h.flags & CAM_CDB_POINTER) ? 
+	if (((csio->ccb_h.flags & CAM_CDB_POINTER) ?
 	     *(u_int8_t *)csio->cdb_io.cdb_ptr : csio->cdb_io.cdb_bytes[0]) == SYNCHRONIZE_CACHE) {
 	    ciss_flush_adapter(sc);
 	    csio->ccb_h.status = CAM_REQ_CMP;
@@ -2513,7 +2511,7 @@
      */
     switch(scsi_status) {
 	/* no status due to adapter error */
-    case -1:				
+    case -1:
 	debug(0, "adapter error");
 	csio->ccb_h.status = CAM_REQ_CMP_ERR;
 	break;
@@ -2531,14 +2529,14 @@
 	bzero(&csio->sense_data, SSD_FULL_SIZE);
 	bcopy(&ce->sense_info[0], &csio->sense_data, ce->sense_length);
 	csio->sense_len = ce->sense_length;
-	csio->resid = ce->residual_count;	
+	csio->resid = ce->residual_count;
 	csio->ccb_h.status = CAM_SCSI_STATUS_ERROR | CAM_AUTOSNS_VALID;
 #ifdef CISS_DEBUG
 	{
 	    struct scsi_sense_data	*sns = (struct scsi_sense_data *)&ce->sense_info[0];
 	    debug(0, "sense key %x", sns->flags & SSD_KEY);
 	}
-#endif	    
+#endif
 	break;
 
     case SCSI_STATUS_BUSY:		/* CISS_SCSI_STATUS_BUSY */
@@ -2572,7 +2570,7 @@
     struct ciss_ldrive		*cl;
     int				target;
 
-    if (((csio->ccb_h.flags & CAM_CDB_POINTER) ? 
+    if (((csio->ccb_h.flags & CAM_CDB_POINTER) ?
 	 *(u_int8_t *)csio->cdb_io.cdb_ptr : csio->cdb_io.cdb_bytes[0]) == INQUIRY) {
 
 	inq = (struct scsi_inquiry_data *)csio->data_ptr;
@@ -2641,7 +2639,7 @@
      */
     if (sc->ciss_cfg->heartbeat == sc->ciss_heartbeat) {
 	sc->ciss_heart_attack++;
-	debug(0, "adapter heart attack in progress 0x%x/%d", 
+	debug(0, "adapter heart attack in progress 0x%x/%d",
 	      sc->ciss_heartbeat, sc->ciss_heart_attack);
 	if (sc->ciss_heart_attack == 3) {
 	    ciss_printf(sc, "ADAPTER HEARTBEAT FAILED\n");
@@ -2699,7 +2697,7 @@
 	debug(1, "acquired request %d", cr->cr_tag);
     }
 
-    /* 
+    /*
      * Get a databuffer if we don't already have one, note that the
      * adapter command wants a larger buffer than the actual
      * structure.
@@ -2793,7 +2791,7 @@
 	return;
     }
 
-    /* 
+    /*
      * If the adapter gave us a text message, print it.
      */
     if (cn->message[0] != 0)
@@ -3019,7 +3017,7 @@
     case CISS_CMD_STATUS_SUCCESS:
 	break;
     default:
-	ciss_printf(sc, "error cancelling Notify on Event (%s)\n",  
+	ciss_printf(sc, "error cancelling Notify on Event (%s)\n",
 		    ciss_name_command_status(command_status));
 	error = EIO;
 	goto out;
@@ -3121,7 +3119,7 @@
 static void
 ciss_notify_physical(struct ciss_softc *sc, struct ciss_notify *cn)
 {
- 
+
 }
 
 /************************************************************************
@@ -3153,7 +3151,7 @@
 	ciss_printf(sc, "  logical unit %d\n", cc->header.address.logical.lun);
 	break;
     }
-    ciss_printf(sc, "  %s cdb length %d type %s attribute %s\n", 
+    ciss_printf(sc, "  %s cdb length %d type %s attribute %s\n",
 		(cc->cdb.direction == CISS_CDB_DIRECTION_NONE) ? "no-I/O" :
 		(cc->cdb.direction == CISS_CDB_DIRECTION_READ) ? "READ" :
 		(cc->cdb.direction == CISS_CDB_DIRECTION_WRITE) ? "WRITE" : "??",
@@ -3238,7 +3236,7 @@
 	target = CISS_BIG_MAP_TARGET(sc, ld->cl_lstatus->drive_failure_map[i]);
 	if (bus == -1)
 	    continue;
-	ciss_printf(sc, "physical drive %d:%d (%x) failed\n", bus, target, 
+	ciss_printf(sc, "physical drive %d:%d (%x) failed\n", bus, target,
 		    ld->cl_lstatus->drive_failure_map[i]);
     }
 }
@@ -3280,7 +3278,7 @@
 ciss_print0(void)
 {
     struct ciss_softc	*sc;
-    
+
     sc = devclass_get_softc(devclass_find("ciss"), 0);
     if (sc == NULL) {
 	printf("no ciss controllers\n");

==== //depot/projects/smpng/sys/dev/ciss/cissreg.h#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/dev/ciss/cissreg.h,v 1.5 2003/12/08 23:12:57 ps Exp $
+ *	$FreeBSD: src/sys/dev/ciss/cissreg.h,v 1.6 2004/04/16 21:03:38 ps Exp $
  */
 
 /*
@@ -33,7 +33,7 @@
  * This header only supports little-endian hosts at this time.
  */
 
-union ciss_device_address 
+union ciss_device_address
 {
     struct 				/* MODE_PERIPHERAL and MODE_MASK_PERIPHERAL */
     {
@@ -58,8 +58,8 @@
 #define CISS_HDR_ADDRESS_MODE_PERIPHERAL	0x0
 #define CISS_HDR_ADDRESS_MODE_LOGICAL		0x1
 #define CISS_HDR_ADDRESS_MODE_MASK_PERIPHERAL	0x3
-    
-struct ciss_header 
+
+struct ciss_header
 {
     u_int8_t	:8;			/* reserved */
     u_int8_t	sg_in_list;		/* SG's in the command structure */
@@ -162,7 +162,7 @@
 #define CISS_OPCODE_REPORT_LOGICAL_LUNS		0xc2
 #define CISS_OPCODE_REPORT_PHYSICAL_LUNS	0xc3
 
-struct ciss_lun_report 
+struct ciss_lun_report
 {
     u_int32_t	list_size;		/* big-endian */
     u_int32_t	:32;
@@ -184,7 +184,7 @@
     u_int8_t	res2[3];
 } __attribute__ ((packed));
 
-struct ciss_report_cdb 
+struct ciss_report_cdb
 {
     u_int8_t	opcode;
     u_int8_t	reserved[5];
@@ -200,7 +200,7 @@
  */
 #define CISS_OPCODE_MESSAGE_ABORT		0x00
 #define CISS_MESSAGE_ABORT_TASK			0x00
-#define CISS_MESSAGE_ABORT_TASK_SET		0x01	
+#define CISS_MESSAGE_ABORT_TASK_SET		0x01
 #define CISS_MESSAGE_ABORT_CLEAR_ACA		0x02
 #define CISS_MESSAGE_ABORT_CLEAR_TASK_SET	0x03
 
@@ -218,7 +218,7 @@
 
 #define CISS_OPCODE_MESSAGE_NOP			0x03
 
-struct ciss_message_cdb 
+struct ciss_message_cdb
 {
     u_int8_t	opcode;
     u_int8_t	type;
@@ -240,7 +240,7 @@
 #define CISS_COMMAND_NOTIFY_ON_EVENT	0xd0
 #define CISS_COMMAND_ABORT_NOTIFY	0xd1
 
-struct ciss_notify_cdb 
+struct ciss_notify_cdb
 {
     u_int8_t	opcode;
     u_int8_t	command;
@@ -325,7 +325,7 @@
     u_int8_t	new_state;
     u_int8_t	spare_state;
 } __packed;
- 
+
 struct ciss_notify_rebuild_aborted
 {
     u_int16_t	logical_drive;
@@ -335,7 +335,7 @@
     u_int8_t	big_error_drive;
 } __packed;
 
-struct ciss_notify_io_error 
+struct ciss_notify_io_error
 {
     u_int16_t	logical_drive;
     u_int32_t	lba;
@@ -351,13 +351,13 @@
     u_int16_t	logical_drive;
 } __packed;
 
-struct ciss_notify 
+struct ciss_notify
 {
     u_int32_t	timestamp;		/* seconds since controller power-on */
     u_int16_t	class;
     u_int16_t	subclass;
     u_int16_t	detail;
-    union 
+    union
     {
 	struct ciss_notify_drive		drive;
 	struct ciss_notify_locator		location;
@@ -379,12 +379,12 @@
 } __packed;
 
 /*
- * CISS config table, which describes the controller's 
+ * CISS config table, which describes the controller's
  * supported interface(s) and capabilities.
  *
  * This is mapped directly via PCI.
  */
-struct ciss_config_table 
+struct ciss_config_table
 {
     char	signature[4];		/* "CISS" */
     u_int32_t	valence;
@@ -392,7 +392,7 @@
 #define CISS_MAX_VALENCE	1
     u_int32_t	supported_methods;
 #define CISS_TRANSPORT_METHOD_READY	(1<<0)
-#define CISS_TRANSPORT_METHOD_SIMPLE	(1<<1)    
+#define CISS_TRANSPORT_METHOD_SIMPLE	(1<<1)
     u_int32_t	active_method;
     u_int32_t	requested_method;
     u_int32_t	command_physlimit;
@@ -467,7 +467,7 @@
  *
  * Note that the phys_drive/res1 field is nominally the 32-bit
  * "block number" field, but the only BMIC command(s) of interest
- * implemented overload the MSB (note big-endian format here) 
+ * implemented overload the MSB (note big-endian format here)
  * to be the physical drive ID, so we define accordingly.
  */
 struct ciss_bmic_cdb {

==== //depot/projects/smpng/sys/dev/ciss/cissvar.h#6 (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/dev/ciss/cissvar.h,v 1.5 2003/02/05 08:43:46 ps Exp $
+ *	$FreeBSD: src/sys/dev/ciss/cissvar.h,v 1.6 2004/04/16 21:03:38 ps Exp $
  */
 
 /*
@@ -88,7 +88,7 @@
 #define CISSQ_COMPLETE	2
 #define CISSQ_COUNT	3
 
-struct ciss_qstat 
+struct ciss_qstat
 {
     u_int32_t	q_length;
     u_int32_t	q_max;
@@ -123,7 +123,7 @@
 #define CISS_REQ_POLL		(1<<2)		/* submitter polling */
 #define CISS_REQ_DATAOUT	(1<<3)		/* data host->adapter */
 #define CISS_REQ_DATAIN		(1<<4)		/* data adapter->host */
-    
+
     void			(* cr_complete)(struct ciss_request *);
     void			*cr_private;
 };
@@ -147,10 +147,10 @@
 /*
  * Per-logical-drive data.
  */
-struct ciss_ldrive 
+struct ciss_ldrive
 {
     union ciss_device_address	cl_address;
-    
+
     int				cl_status;
 #define CISS_LD_NONEXISTENT	0
 #define CISS_LD_ONLINE		1
@@ -166,7 +166,7 @@
 /*
  * Per-adapter data
  */
-struct ciss_softc 
+struct ciss_softc
 {
     /* bus connections */
     device_t			ciss_dev;		/* bus attachment */

==== //depot/projects/smpng/sys/i386/acpica/madt.c#7 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/acpica/madt.c,v 1.10 2004/01/26 19:34:24 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/acpica/madt.c,v 1.11 2004/04/16 19:46:30 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -69,6 +69,8 @@
 	u_int la_apic_id:8;
 } lapics[NLAPICS + 1];
 
+static int force_sci_lo;
+TUNABLE_INT("hw.acpi.force_sci_lo", &force_sci_lo);
 static MULTIPLE_APIC_TABLE *madt;
 static vm_paddr_t madt_physaddr;
 static vm_offset_t madt_length;
@@ -545,14 +547,13 @@
 	}
 
 	/*
-	 * If the SCI is remapped to a non-ISA global interrupt,
-	 * force it to level trigger and active-lo polarity.
 	 * If the SCI is identity mapped but has edge trigger and
-	 * active-hi polarity, also force it to use level/lo. 
+	 * active-hi polarity or the force_sci_lo tunable is set,
+	 * force it to use level/lo.
 	 */
 	force_lo = 0;
 	if (intr->Source == AcpiGbl_FADT->SciInt)
-		if (intr->Interrupt > 15 || (intr->Interrupt == intr->Source &&
+		if (force_sci_lo || (intr->Interrupt == intr->Source &&
 		    intr->TriggerMode == TRIGGER_EDGE &&
 		    intr->Polarity == POLARITY_ACTIVE_HIGH))
 			force_lo = 1;

==== //depot/projects/smpng/sys/i386/i386/apic_vector.s#8 (text+ko) ====

@@ -28,7 +28,7 @@
  * SUCH DAMAGE.
  *
  *	from: vector.s, 386BSD 0.1 unknown origin
- * $FreeBSD: src/sys/i386/i386/apic_vector.s,v 1.98 2004/04/07 20:46:04 imp Exp $
+ * $FreeBSD: src/sys/i386/i386/apic_vector.s,v 1.99 2004/04/16 19:26:36 jhb Exp $
  */
 
 /*
@@ -73,10 +73,10 @@
 IDTVEC(vec_name) ;							\
 	PUSH_FRAME ;							\
 	movl	$KDSEL, %eax ;	/* reload with kernel's data segment */	\
-	mov	%ax, %ds ;						\
-	mov	%ax, %es ;						\
+	movl	%eax, %ds ;						\
+	movl	%eax, %es ;						\
 	movl	$KPSEL, %eax ;	/* reload with per-CPU data segment */	\
-	mov	%ax, %fs ;						\
+	movl	%eax, %fs ;						\
 	FAKE_MCOUNT(13*4(%esp)) ;					\
 	movl	lapic, %edx ;	/* pointer to local APIC */		\
 	movl	LA_ISR + 16 * (index)(%edx), %eax ;	/* load ISR */	\
@@ -127,12 +127,12 @@
 	pushl	%eax
 	pushl	%ds
 	movl	$KDSEL, %eax		/* Kernel data selector */
-	mov	%ax, %ds
+	movl	%eax, %ds
 
 #ifdef COUNT_XINVLTLB_HITS
 	pushl	%fs
 	movl	$KPSEL, %eax		/* Private space selector */
-	mov	%ax, %fs
+	movl	%eax, %fs
 	movl	PCPU(CPUID), %eax
 	popl	%fs
 	incl	xhits_gbl(,%eax,4)
@@ -160,12 +160,12 @@
 	pushl	%eax
 	pushl	%ds
 	movl	$KDSEL, %eax		/* Kernel data selector */
-	mov	%ax, %ds
+	movl	%eax, %ds
 
 #ifdef COUNT_XINVLTLB_HITS
 	pushl	%fs
 	movl	$KPSEL, %eax		/* Private space selector */
-	mov	%ax, %fs
+	movl	%eax, %fs
 	movl	PCPU(CPUID), %eax
 	popl	%fs
 	incl	xhits_pg(,%eax,4)
@@ -194,12 +194,12 @@
 	pushl	%edx
 	pushl	%ds
 	movl	$KDSEL, %eax		/* Kernel data selector */
-	mov	%ax, %ds
+	movl	%eax, %ds
 
 #ifdef COUNT_XINVLTLB_HITS
 	pushl	%fs
 	movl	$KPSEL, %eax		/* Private space selector */
-	mov	%ax, %fs
+	movl	%eax, %fs
 	movl	PCPU(CPUID), %eax
 	popl	%fs
 	incl	xhits_rng(,%eax,4)
@@ -232,10 +232,10 @@
 IDTVEC(hardclock)
 	PUSH_FRAME
 	movl	$KDSEL, %eax	/* reload with kernel's data segment */
-	mov	%ax, %ds
-	mov	%ax, %es
+	movl	%eax, %ds
+	movl	%eax, %es
 	movl	$KPSEL, %eax
-	mov	%ax, %fs
+	movl	%eax, %fs
 
 	movl	lapic, %edx
 	movl	$0, LA_EOI(%edx)	/* End Of Interrupt to APIC */
@@ -255,10 +255,10 @@
 IDTVEC(statclock)
 	PUSH_FRAME
 	movl	$KDSEL, %eax	/* reload with kernel's data segment */
-	mov	%ax, %ds
-	mov	%ax, %es
+	movl	%eax, %ds
+	movl	%eax, %es
 	movl	$KPSEL, %eax
-	mov	%ax, %fs
+	movl	%eax, %fs
 
 	movl	lapic, %edx
 	movl	$0, LA_EOI(%edx)	/* End Of Interrupt to APIC */
@@ -284,10 +284,10 @@
 IDTVEC(cpuast)
 	PUSH_FRAME
 	movl	$KDSEL, %eax
-	mov	%ax, %ds		/* use KERNEL data segment */
-	mov	%ax, %es
+	movl	%eax, %ds		/* use KERNEL data segment */
+	movl	%eax, %es
 	movl	$KPSEL, %eax
-	mov	%ax, %fs
+	movl	%eax, %fs
 
 	movl	lapic, %edx
 	movl	$0, LA_EOI(%edx)	/* End Of Interrupt to APIC */
@@ -317,10 +317,10 @@
 	pushl	%fs
 
 	movl	$KDSEL, %eax
-	mov	%ax, %ds		/* use KERNEL data segment */
-	mov	%ax, %es
+	movl	%eax, %ds		/* use KERNEL data segment */
+	movl	%eax, %es
 	movl	$KPSEL, %eax
-	mov	%ax, %fs
+	movl	%eax, %fs
 
 	movl	lapic, %eax
 	movl	$0, LA_EOI(%eax)	/* End Of Interrupt to APIC */
@@ -375,10 +375,10 @@
 IDTVEC(rendezvous)
 	PUSH_FRAME
 	movl	$KDSEL, %eax
-	mov	%ax, %ds		/* use KERNEL data segment */
-	mov	%ax, %es
+	movl	%eax, %ds		/* use KERNEL data segment */
+	movl	%eax, %es
 	movl	$KPSEL, %eax
-	mov	%ax, %fs
+	movl	%eax, %fs
 
 	call	smp_rendezvous_action
 
@@ -395,10 +395,10 @@
 IDTVEC(lazypmap)
 	PUSH_FRAME
 	movl	$KDSEL, %eax
-	mov	%ax, %ds		/* use KERNEL data segment */
-	mov	%ax, %es
+	movl	%eax, %ds		/* use KERNEL data segment */
+	movl	%eax, %es
 	movl	$KPSEL, %eax
-	mov	%ax, %fs
+	movl	%eax, %fs
 
 	call	pmap_lazyfix_action
 

==== //depot/projects/smpng/sys/i386/i386/exception.s#18 (text+ko) ====

@@ -27,7 +27,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/i386/i386/exception.s,v 1.107 2004/04/07 20:46:04 imp Exp $
+ * $FreeBSD: src/sys/i386/i386/exception.s,v 1.108 2004/04/16 19:26:36 jhb Exp $
  */
 
 #include "opt_npx.h"
@@ -135,11 +135,11 @@
 	pushl	%es
 	pushl	%fs
 alltraps_with_regs_pushed:
-	mov	$KDSEL,%ax
-	mov	%ax,%ds
-	mov	%ax,%es
-	mov	$KPSEL,%ax
-	mov	%ax,%fs
+	movl	$KDSEL,%eax
+	movl	%eax,%ds
+	movl	%eax,%es
+	movl	$KPSEL,%eax
+	movl	%eax,%fs
 	FAKE_MCOUNT(13*4(%esp))
 calltrap:
 	FAKE_MCOUNT(btrap)		/* init "from" btrap -> calltrap */
@@ -173,11 +173,11 @@
 	pushl	%ds
 	pushl	%es
 	pushl	%fs
-	mov	$KDSEL,%ax		/* switch to kernel segments */
-	mov	%ax,%ds
-	mov	%ax,%es
-	mov	$KPSEL,%ax
-	mov	%ax,%fs
+	movl	$KDSEL,%eax		/* switch to kernel segments */
+	movl	%eax,%ds
+	movl	%eax,%es
+	movl	$KPSEL,%eax
+	movl	%eax,%fs
 	FAKE_MCOUNT(13*4(%esp))
 	call	syscall
 	MEXITCOUNT
@@ -198,11 +198,11 @@
 	pushl	%ds
 	pushl	%es
 	pushl	%fs
-	mov	$KDSEL,%ax		/* switch to kernel segments */
-	mov	%ax,%ds
-	mov	%ax,%es
-	mov	$KPSEL,%ax
-	mov	%ax,%fs
+	movl	$KDSEL,%eax		/* switch to kernel segments */
+	movl	%eax,%ds
+	movl	%eax,%es
+	movl	$KPSEL,%eax
+	movl	%eax,%fs
 	FAKE_MCOUNT(13*4(%esp))
 	call	syscall
 	MEXITCOUNT

==== //depot/projects/smpng/sys/i386/i386/support.s#15 (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/support.s,v 1.101 2004/04/07 20:46:04 imp Exp $
+ * $FreeBSD: src/sys/i386/i386/support.s,v 1.102 2004/04/16 19:26:36 jhb Exp $
  */
 
 #include "opt_npx.h"
@@ -1588,12 +1588,12 @@
 1:
 	/* reload "stale" selectors */
 	movl	$KDSEL,%eax
-	mov	%ax,%ds
-	mov	%ax,%es
-	mov	%ax,%gs
-	mov	%ax,%ss
+	movl	%eax,%ds
+	movl	%eax,%es
+	movl	%eax,%gs
+	movl	%eax,%ss
 	movl	$KPSEL,%eax
-	mov	%ax,%fs
+	movl	%eax,%fs
 
 	/* reload code selector by turning return into intersegmental return */
 	movl	(%esp),%eax

==== //depot/projects/smpng/sys/i386/isa/atpic_vector.s#9 (text+ko) ====

@@ -28,7 +28,7 @@
  * SUCH DAMAGE.
  *
  *	from: vector.s, 386BSD 0.1 unknown origin
- * $FreeBSD: src/sys/i386/isa/atpic_vector.s,v 1.43 2004/04/07 20:46:06 imp Exp $
+ * $FreeBSD: src/sys/i386/isa/atpic_vector.s,v 1.44 2004/04/16 19:26:37 jhb Exp $
  */
 
 /*
@@ -59,13 +59,13 @@
 	pushl	%ds ;		/* save data and extra segments ... */	\
 	pushl	%es ;							\
 	pushl	%fs ;							\
-	mov	$KDSEL,%ax ;	/* load kernel ds, es and fs */		\
-	mov	%ax,%ds ;						\
-	mov	%ax,%es ;						\
-	mov	$KPSEL,%ax ;						\
-	mov	%ax,%fs ;						\
+	movl	$KDSEL, %eax ;	/* reload with kernel's data segment */	\
+	movl	%eax, %ds ;						\
+	movl	%eax, %es ;						\
+	movl	$KPSEL, %eax ;	/* reload with per-CPU data segment */	\
+	movl	%eax, %fs ;						\
 ;									\
-	FAKE_MCOUNT(13*4(%esp)) ;	/* XXX late to avoid double count */ \
+	FAKE_MCOUNT(13*4(%esp)) ;					\
 	pushl	$irq_num; 	/* pass the IRQ */			\
 	call	atpic_handle_intr ;					\
 	addl	$4, %esp ;	/* discard the parameter */		\

==== //depot/projects/smpng/sys/i386/pci/pci_pir.c#2 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/pci/pci_pir.c,v 1.109 2004/02/18 22:40:23 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/pci/pci_pir.c,v 1.110 2004/04/16 18:54:05 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -315,9 +315,10 @@
 	if (irq == PCI_INVALID_IRQ)
 		return;
 	if (pci_pir_valid_irq(pci_link, irq)) {
-		if (pci_link->pl_irq == PCI_INVALID_IRQ)
+		if (pci_link->pl_irq == PCI_INVALID_IRQ) {
 			pci_link->pl_irq = irq;
-		else if (pci_link->pl_irq != irq)
+			pci_link->pl_routed = 1;

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



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