From owner-p4-projects@FreeBSD.ORG Fri Apr 16 14:10:38 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4FB1016A4D0; Fri, 16 Apr 2004 14:10:38 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0904416A4CE for ; Fri, 16 Apr 2004 14:10:38 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0131343D3F for ; Fri, 16 Apr 2004 14:10:38 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i3GLAbGe054622 for ; Fri, 16 Apr 2004 14:10:37 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i3GLAb6U054619 for perforce@freebsd.org; Fri, 16 Apr 2004 14:10:37 -0700 (PDT) (envelope-from jhb@freebsd.org) Date: Fri, 16 Apr 2004 14:10:37 -0700 (PDT) Message-Id: <200404162110.i3GLAb6U054619@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 51204 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2004 21:10:39 -0000 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 /* 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 #include ==== //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 -__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 #include @@ -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 -__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 #include @@ -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) <<<