Date: Wed, 25 Sep 2013 17:16:22 +0000 (UTC) From: Scott Long <scottl@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r255871 - in head/sys/dev: asr firewire hpt27xx hptiop hptmv hptnr hptrr iir tws Message-ID: <201309251716.r8PHGMWb011009@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: scottl Date: Wed Sep 25 17:16:21 2013 New Revision: 255871 URL: http://svnweb.freebsd.org/changeset/base/255871 Log: Re-do r255853. Along with adding back the API/ABI changes from the original, this hides the contents of cam_compat.h from ktrace/kdump/truss, avoiding problems there. There are no user-servicable parts in there, so no need for those tools to be groping around in there. Approved by: re Modified: head/sys/dev/asr/asr.c head/sys/dev/firewire/sbp.c head/sys/dev/hpt27xx/hpt27xx_osm_bsd.c head/sys/dev/hpt27xx/os_bsd.h head/sys/dev/hptiop/hptiop.c head/sys/dev/hptiop/hptiop.h head/sys/dev/hptmv/entry.c head/sys/dev/hptmv/osbsd.h head/sys/dev/hptnr/hptnr_osm_bsd.c head/sys/dev/hptnr/os_bsd.h head/sys/dev/hptrr/hptrr_osm_bsd.c head/sys/dev/hptrr/os_bsd.h head/sys/dev/iir/iir.c head/sys/dev/iir/iir.h head/sys/dev/tws/tws.c head/sys/dev/tws/tws_cam.c Modified: head/sys/dev/asr/asr.c ============================================================================== --- head/sys/dev/asr/asr.c Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/asr/asr.c Wed Sep 25 17:16:21 2013 (r255871) @@ -385,6 +385,21 @@ typedef struct Asr_softc { static STAILQ_HEAD(, Asr_softc) Asr_softc_list = STAILQ_HEAD_INITIALIZER(Asr_softc_list); +static __inline void +set_ccb_timeout_ch(union asr_ccb *ccb, struct callout_handle ch) +{ + ccb->ccb_h.sim_priv.entries[0].ptr = ch.callout; +} + +static __inline struct callout_handle +get_ccb_timeout_ch(union asr_ccb *ccb) +{ + struct callout_handle ch; + + ch.callout = ccb->ccb_h.sim_priv.entries[0].ptr; + return ch; +} + /* * Prototypes of the routines we have in this object. */ @@ -797,8 +812,8 @@ ASR_ccbAdd(Asr_softc_t *sc, union asr_cc */ ccb->ccb_h.timeout = 6 * 60 * 1000; } - ccb->ccb_h.timeout_ch = timeout(asr_timeout, (caddr_t)ccb, - (ccb->ccb_h.timeout * hz) / 1000); + set_ccb_timeout_ch(ccb, timeout(asr_timeout, (caddr_t)ccb, + (ccb->ccb_h.timeout * hz) / 1000)); } splx(s); } /* ASR_ccbAdd */ @@ -812,7 +827,7 @@ ASR_ccbRemove(Asr_softc_t *sc, union asr int s; s = splcam(); - untimeout(asr_timeout, (caddr_t)ccb, ccb->ccb_h.timeout_ch); + untimeout(asr_timeout, (caddr_t)ccb, get_ccb_timeout_ch(ccb)); LIST_REMOVE(&(ccb->ccb_h), sim_links.le); splx(s); } /* ASR_ccbRemove */ @@ -1322,9 +1337,9 @@ asr_timeout(void *arg) cam_sim_unit(xpt_path_sim(ccb->ccb_h.path)), s); if (ASR_reset (sc) == ENXIO) { /* Try again later */ - ccb->ccb_h.timeout_ch = timeout(asr_timeout, + set_ccb_timeout_ch(ccb, timeout(asr_timeout, (caddr_t)ccb, - (ccb->ccb_h.timeout * hz) / 1000); + (ccb->ccb_h.timeout * hz) / 1000)); } return; } @@ -1338,9 +1353,9 @@ asr_timeout(void *arg) if ((ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_CMD_TIMEOUT) { debug_asr_printf (" AGAIN\nreinitializing adapter\n"); if (ASR_reset (sc) == ENXIO) { - ccb->ccb_h.timeout_ch = timeout(asr_timeout, + set_ccb_timeout_ch(ccb, timeout(asr_timeout, (caddr_t)ccb, - (ccb->ccb_h.timeout * hz) / 1000); + (ccb->ccb_h.timeout * hz) / 1000)); } splx(s); return; @@ -1349,8 +1364,8 @@ asr_timeout(void *arg) /* If the BUS reset does not take, then an adapter reset is next! */ ccb->ccb_h.status &= ~CAM_STATUS_MASK; ccb->ccb_h.status |= CAM_CMD_TIMEOUT; - ccb->ccb_h.timeout_ch = timeout(asr_timeout, (caddr_t)ccb, - (ccb->ccb_h.timeout * hz) / 1000); + set_ccb_timeout_ch(ccb, timeout(asr_timeout, (caddr_t)ccb, + (ccb->ccb_h.timeout * hz) / 1000)); ASR_resetBus (sc, cam_sim_bus(xpt_path_sim(ccb->ccb_h.path))); xpt_async (AC_BUS_RESET, ccb->ccb_h.path, NULL); splx(s); Modified: head/sys/dev/firewire/sbp.c ============================================================================== --- head/sys/dev/firewire/sbp.c Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/firewire/sbp.c Wed Sep 25 17:16:21 2013 (r255871) @@ -177,6 +177,7 @@ struct sbp_ocb { struct sbp_dev *sdev; int flags; /* XXX should be removed */ bus_dmamap_t dmamap; + struct callout_handle timeout_ch; }; #define OCB_ACT_MGM 0 @@ -591,6 +592,7 @@ END_DEBUG /* XXX */ goto next; } + callout_handle_init(&ocb->timeout_ch); sbp_free_ocb(sdev, ocb); } next: @@ -2763,7 +2765,7 @@ END_DEBUG STAILQ_REMOVE(&sdev->ocbs, ocb, sbp_ocb, ocb); if (ocb->ccb != NULL) untimeout(sbp_timeout, (caddr_t)ocb, - ocb->ccb->ccb_h.timeout_ch); + ocb->timeout_ch); if (ntohl(ocb->orb[4]) & 0xffff) { bus_dmamap_sync(sdev->target->sbp->dmat, ocb->dmamap, @@ -2836,7 +2838,7 @@ END_DEBUG STAILQ_INSERT_TAIL(&sdev->ocbs, ocb, ocb); if (ocb->ccb != NULL) - ocb->ccb->ccb_h.timeout_ch = timeout(sbp_timeout, (caddr_t)ocb, + ocb->timeout_ch = timeout(sbp_timeout, (caddr_t)ocb, (ocb->ccb->ccb_h.timeout * hz) / 1000); if (use_doorbell && prev == NULL) @@ -2930,7 +2932,7 @@ END_DEBUG } if (ocb->ccb != NULL) { untimeout(sbp_timeout, (caddr_t)ocb, - ocb->ccb->ccb_h.timeout_ch); + ocb->timeout_ch); ocb->ccb->ccb_h.status = status; SBP_LOCK(sdev->target->sbp); xpt_done(ocb->ccb); Modified: head/sys/dev/hpt27xx/hpt27xx_osm_bsd.c ============================================================================== --- head/sys/dev/hpt27xx/hpt27xx_osm_bsd.c Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/hpt27xx/hpt27xx_osm_bsd.c Wed Sep 25 17:16:21 2013 (r255871) @@ -432,7 +432,7 @@ static void os_cmddone(PCOMMAND pCmd) KdPrint(("os_cmddone(%p, %d)", pCmd, pCmd->Result)); - untimeout(hpt_timeout, pCmd, ccb->ccb_h.timeout_ch); + untimeout(hpt_timeout, pCmd, ext->timeout_ch); switch(pCmd->Result) { case RETURN_SUCCESS: @@ -510,8 +510,7 @@ static void hpt_io_dmamap_callback(void BUS_DMASYNC_PREWRITE); } } - - ext->ccb->ccb_h.timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT); + ext->timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT); ldm_queue_cmd(pCmd); } @@ -1048,6 +1047,7 @@ static void hpt_final_init(void *dummy) os_printk("Can't create dma map(%d)", i); return ; } + callout_handle_init(&ext->timeout_ch); } if ((devq = cam_simq_alloc(os_max_queue_comm)) == NULL) { Modified: head/sys/dev/hpt27xx/os_bsd.h ============================================================================== --- head/sys/dev/hpt27xx/os_bsd.h Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/hpt27xx/os_bsd.h Wed Sep 25 17:16:21 2013 (r255871) @@ -174,6 +174,7 @@ typedef struct _os_cmdext { struct _os_cmdext *next; union ccb *ccb; bus_dmamap_t dma_map; + struct callout_handle timeout_ch; SG psg[os_max_sg_descriptors]; } OS_CMDEXT, *POS_CMDEXT; Modified: head/sys/dev/hptiop/hptiop.c ============================================================================== --- head/sys/dev/hptiop/hptiop.c Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/hptiop/hptiop.c Wed Sep 25 17:16:21 2013 (r255871) @@ -643,7 +643,7 @@ static void hptiop_request_callback_mvfr ccb = (union ccb *)srb->ccb; - untimeout(hptiop_reset_adapter, hba, ccb->ccb_h.timeout_ch); + untimeout(hptiop_reset_adapter, hba, srb->timeout_ch); if (ccb->ccb_h.flags & CAM_CDB_POINTER) cdb = ccb->csio.cdb_io.cdb_ptr; @@ -2629,7 +2629,7 @@ static void hptiop_post_req_mvfrey(struc BUS_SPACE_RD4_MVFREY2(inbound_write_ptr); if (req->header.type == IOP_REQUEST_TYPE_SCSI_COMMAND) { - ccb->ccb_h.timeout_ch = timeout(hptiop_reset_adapter, hba, 20*hz); + srb->timeout_ch = timeout(hptiop_reset_adapter, hba, 20*hz); } } @@ -2741,6 +2741,7 @@ static void hptiop_map_srb(void *arg, bu tmp_srb->phy_addr = phy_addr; } + callout_handle_init(&tmp_srb->timeout_ch); hptiop_free_srb(hba, tmp_srb); hba->srb[i] = tmp_srb; phy_addr += HPT_SRB_MAX_SIZE; Modified: head/sys/dev/hptiop/hptiop.h ============================================================================== --- head/sys/dev/hptiop/hptiop.h Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/hptiop/hptiop.h Wed Sep 25 17:16:21 2013 (r255871) @@ -460,6 +460,7 @@ struct hpt_iop_srb { u_int64_t phy_addr; u_int32_t srb_flag; int index; + struct callout_handle timeout_ch; }; #define hptiop_lock_adapter(hba) mtx_lock(&(hba)->lock) Modified: head/sys/dev/hptmv/entry.c ============================================================================== --- head/sys/dev/hptmv/entry.c Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/hptmv/entry.c Wed Sep 25 17:16:21 2013 (r255871) @@ -1438,6 +1438,7 @@ unregister: free(pAdapter->pbus_dmamap, M_DEVBUF); goto unregister; } + callout_handle_init(&pmap->timeout_ch); } /* setup PRD Tables */ KdPrint(("Allocate PRD Tables\n")); @@ -2758,7 +2759,7 @@ hpt_io_dmamap_callback(void *arg, bus_dm } } - ccb->ccb_h.timeout_ch = timeout(hpt_timeout, (caddr_t)ccb, 20*hz); + pmap->timeout_ch = timeout(hpt_timeout, (caddr_t)ccb, 20*hz); pVDev->pfnSendCommand(_VBUS_P pCmd); CheckPendingCall(_VBUS_P0); } @@ -2980,7 +2981,7 @@ fOsCommandDone(_VBUS_ARG PCommand pCmd) KdPrint(("fOsCommandDone(pcmd=%p, result=%d)\n", pCmd, pCmd->Result)); - untimeout(hpt_timeout, (caddr_t)ccb, ccb->ccb_h.timeout_ch); + untimeout(hpt_timeout, (caddr_t)ccb, pmap->timeout_ch); switch(pCmd->Result) { case RETURN_SUCCESS: Modified: head/sys/dev/hptmv/osbsd.h ============================================================================== --- head/sys/dev/hptmv/osbsd.h Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/hptmv/osbsd.h Wed Sep 25 17:16:21 2013 (r255871) @@ -153,6 +153,7 @@ typedef struct _BUS_DMAMAP { struct _BUS_DMAMAP *next; struct IALAdapter *pAdapter; bus_dmamap_t dma_map; + struct callout_handle timeout_ch; SCAT_GATH psg[MAX_SG_DESCRIPTORS]; } BUS_DMAMAP, *PBUS_DMAMAP; Modified: head/sys/dev/hptnr/hptnr_osm_bsd.c ============================================================================== --- head/sys/dev/hptnr/hptnr_osm_bsd.c Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/hptnr/hptnr_osm_bsd.c Wed Sep 25 17:16:21 2013 (r255871) @@ -432,7 +432,7 @@ static void os_cmddone(PCOMMAND pCmd) KdPrint(("os_cmddone(%p, %d)", pCmd, pCmd->Result)); - untimeout(hpt_timeout, pCmd, ccb->ccb_h.timeout_ch); + untimeout(hpt_timeout, pCmd, ext->timeout_ch); switch(pCmd->Result) { case RETURN_SUCCESS: @@ -511,7 +511,7 @@ static void hpt_io_dmamap_callback(void } } - ext->ccb->ccb_h.timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT); + ext->timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT); ldm_queue_cmd(pCmd); } @@ -1048,6 +1048,7 @@ static void hpt_final_init(void *dummy) os_printk("Can't create dma map(%d)", i); return ; } + callout_handle_init(&ext->timeout_ch); } if ((devq = cam_simq_alloc(os_max_queue_comm)) == NULL) { Modified: head/sys/dev/hptnr/os_bsd.h ============================================================================== --- head/sys/dev/hptnr/os_bsd.h Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/hptnr/os_bsd.h Wed Sep 25 17:16:21 2013 (r255871) @@ -176,6 +176,7 @@ typedef struct _os_cmdext { struct _os_cmdext *next; union ccb *ccb; bus_dmamap_t dma_map; + struct callout_handle timeout_ch; SG psg[os_max_sg_descriptors]; } OS_CMDEXT, *POS_CMDEXT; Modified: head/sys/dev/hptrr/hptrr_osm_bsd.c ============================================================================== --- head/sys/dev/hptrr/hptrr_osm_bsd.c Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/hptrr/hptrr_osm_bsd.c Wed Sep 25 17:16:21 2013 (r255871) @@ -440,7 +440,7 @@ static void os_cmddone(PCOMMAND pCmd) KdPrint(("os_cmddone(%p, %d)", pCmd, pCmd->Result)); - untimeout(hpt_timeout, pCmd, ccb->ccb_h.timeout_ch); + untimeout(hpt_timeout, pCmd, ext->timeout_ch); switch(pCmd->Result) { case RETURN_SUCCESS: @@ -519,7 +519,7 @@ static void hpt_io_dmamap_callback(void BUS_DMASYNC_PREWRITE); } } - ext->ccb->ccb_h.timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT); + ext->timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT); ldm_queue_cmd(pCmd); } @@ -1058,6 +1058,7 @@ static void hpt_final_init(void *dummy) os_printk("Can't create dma map(%d)", i); return ; } + callout_handle_init(&ext->timeout_ch); } if ((devq = cam_simq_alloc(os_max_queue_comm)) == NULL) { Modified: head/sys/dev/hptrr/os_bsd.h ============================================================================== --- head/sys/dev/hptrr/os_bsd.h Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/hptrr/os_bsd.h Wed Sep 25 17:16:21 2013 (r255871) @@ -174,6 +174,7 @@ typedef struct _os_cmdext { struct _os_cmdext *next; union ccb *ccb; bus_dmamap_t dma_map; + struct callout_handle timeout_ch; SG psg[os_max_sg_descriptors]; } OS_CMDEXT, *POS_CMDEXT; Modified: head/sys/dev/iir/iir.c ============================================================================== --- head/sys/dev/iir/iir.c Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/iir/iir.c Wed Sep 25 17:16:21 2013 (r255871) @@ -270,6 +270,7 @@ iir_init(struct gdt_softc *gdt) gccb->gc_map_flag = TRUE; gccb->gc_scratch = &gdt->sc_gcscratch[GDT_SCRATCH_SZ * i]; gccb->gc_scratch_busbase = gdt->sc_gcscratch_busbase + GDT_SCRATCH_SZ * i; + callout_handle_init(&gccb->gc_timeout_ch); SLIST_INSERT_HEAD(&gdt->sc_free_gccb, gccb, sle); } gdt->sc_init_level++; @@ -1239,7 +1240,7 @@ gdtexecuteccb(void *arg, bus_dma_segment ccb->ccb_h.status |= CAM_SIM_QUEUED; /* timeout handling */ - ccb->ccb_h.timeout_ch = + gccb->gc_timeout_ch = timeout(iir_timeout, (caddr_t)gccb, (ccb->ccb_h.timeout * hz) / 1000); @@ -1747,7 +1748,7 @@ gdt_sync_event(struct gdt_softc *gdt, in printf("\n"); return (0); } else { - untimeout(iir_timeout, gccb, ccb->ccb_h.timeout_ch); + untimeout(iir_timeout, gccb, gccb->gc_timeout_ch); if (gdt->sc_status == GDT_S_BSY) { GDT_DPRINTF(GDT_D_DEBUG, ("gdt_sync_event(%p) gccb %p busy\n", gdt, gccb)); Modified: head/sys/dev/iir/iir.h ============================================================================== --- head/sys/dev/iir/iir.h Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/iir/iir.h Wed Sep 25 17:16:21 2013 (r255871) @@ -684,6 +684,7 @@ struct gdt_ccb { union ccb *gc_ccb; gdt_ucmd_t *gc_ucmd; bus_dmamap_t gc_dmamap; + struct callout_handle gc_timeout_ch; int gc_map_flag; int gc_timeout; u_int8_t gc_service; Modified: head/sys/dev/tws/tws.c ============================================================================== --- head/sys/dev/tws/tws.c Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/tws/tws.c Wed Sep 25 17:16:21 2013 (r255871) @@ -696,6 +696,7 @@ tws_init_reqs(struct tws_softc *sc, u_in sc->reqs[i].cmd_pkt->hdr.header_desc.size_header = 128; + callout_handle_init(&sc->reqs[i].thandle); sc->reqs[i].state = TWS_REQ_STATE_FREE; if ( i >= TWS_RESERVED_REQS ) tws_q_insert_tail(sc, &sc->reqs[i], TWS_FREE_Q); Modified: head/sys/dev/tws/tws_cam.c ============================================================================== --- head/sys/dev/tws/tws_cam.c Wed Sep 25 15:55:56 2013 (r255870) +++ head/sys/dev/tws/tws_cam.c Wed Sep 25 17:16:21 2013 (r255871) @@ -341,7 +341,7 @@ tws_scsi_complete(struct tws_request *re tws_q_remove_request(sc, req, TWS_BUSY_Q); mtx_unlock(&sc->q_lock); - untimeout(tws_timeout, req, req->ccb_ptr->ccb_h.timeout_ch); + untimeout(tws_timeout, req, req->thandle); tws_unmap_request(req->sc, req); @@ -454,7 +454,7 @@ tws_cmd_complete(struct tws_request *req { struct tws_softc *sc = req->sc; - untimeout(tws_timeout, req, req->ccb_ptr->ccb_h.timeout_ch); + untimeout(tws_timeout, req, req->thandle); tws_unmap_request(sc, req); } @@ -561,7 +561,7 @@ tws_scsi_err_complete(struct tws_request xpt_done(ccb); mtx_unlock(&sc->sim_lock); - untimeout(tws_timeout, req, req->ccb_ptr->ccb_h.timeout_ch); + untimeout(tws_timeout, req, req->thandle); tws_unmap_request(req->sc, req); mtx_lock(&sc->q_lock); tws_q_remove_request(sc, req, TWS_BUSY_Q); @@ -591,7 +591,7 @@ tws_drain_busy_queue(struct tws_softc *s mtx_unlock(&sc->q_lock); while ( req ) { TWS_TRACE_DEBUG(sc, "moved to TWS_COMPLETE_Q", 0, req->request_id); - untimeout(tws_timeout, req, req->ccb_ptr->ccb_h.timeout_ch); + untimeout(tws_timeout, req, req->thandle); req->error_code = TWS_REQ_RET_RESET; ccb = (union ccb *)(req->ccb_ptr); @@ -747,7 +747,7 @@ tws_execute_scsi(struct tws_softc *sc, u * and submit the I/O. */ sc->stats.scsi_ios++; - ccb_h->timeout_ch = timeout(tws_timeout, req, (ccb_h->timeout * hz)/1000); + req->thandle = timeout(tws_timeout, req, (ccb_h->timeout * hz)/1000); error = tws_map_request(sc, req); return(error); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201309251716.r8PHGMWb011009>