PERFORCE change 51204 for review
John Baldwin
jhb at FreeBSD.org
Fri Apr 16 14:10:39 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=51204
Change 51204 by jhb at 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) <<<
More information about the p4-projects
mailing list