Date: Sun, 23 Apr 2006 21:19:07 GMT From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 95954 for review Message-ID: <200604232119.k3NLJ7gv086941@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=95954 Change 95954 by marcel@marcel_nfs on 2006/04/23 21:19:06 IFC @95953 Affected files ... .. //depot/projects/uart/alpha/pci/pcibus.c#7 integrate .. //depot/projects/uart/arm/arm/pmap.c#14 integrate .. //depot/projects/uart/ddb/db_command.c#10 integrate .. //depot/projects/uart/dev/acpica/acpi_powerres.c#7 integrate .. //depot/projects/uart/dev/isp/isp.c#12 integrate .. //depot/projects/uart/dev/isp/isp_freebsd.c#14 integrate .. //depot/projects/uart/dev/isp/isp_freebsd.h#10 integrate .. //depot/projects/uart/dev/isp/isp_ioctl.h#7 integrate .. //depot/projects/uart/dev/isp/isp_library.c#3 integrate .. //depot/projects/uart/dev/isp/isp_pci.c#12 integrate .. //depot/projects/uart/dev/isp/isp_sbus.c#10 integrate .. //depot/projects/uart/dev/isp/isp_target.c#8 integrate .. //depot/projects/uart/dev/isp/isp_target.h#7 integrate .. //depot/projects/uart/dev/isp/isp_tpublic.h#6 integrate .. //depot/projects/uart/dev/isp/ispmbox.h#7 integrate .. //depot/projects/uart/dev/mpt/mpt_cam.c#12 integrate .. //depot/projects/uart/dev/pci/pci_pci.c#9 integrate .. //depot/projects/uart/dev/sound/pci/via8233.c#10 integrate .. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#42 integrate .. //depot/projects/uart/kern/kern_sig.c#28 integrate .. //depot/projects/uart/kern/subr_sleepqueue.c#11 integrate .. //depot/projects/uart/kern/subr_turnstile.c#8 integrate .. //depot/projects/uart/kern/uipc_socket.c#18 integrate .. //depot/projects/uart/netinet/in_pcb.c#15 integrate .. //depot/projects/uart/netinet/tcp_subr.c#20 integrate .. //depot/projects/uart/netinet6/in6_ifattach.c#10 integrate .. //depot/projects/uart/netinet6/in6_pcb.c#12 integrate .. //depot/projects/uart/netinet6/in6_pcb.h#5 integrate .. //depot/projects/uart/netnatm/natm.c#11 integrate .. //depot/projects/uart/netnatm/natm_pcb.c#5 integrate .. //depot/projects/uart/security/mac_bsdextended/mac_bsdextended.c#9 integrate .. //depot/projects/uart/security/mac_bsdextended/mac_bsdextended.h#3 integrate .. //depot/projects/uart/sys/param.h#24 integrate .. //depot/projects/uart/ufs/ffs/ffs_vfsops.c#21 integrate Differences ... ==== //depot/projects/uart/alpha/pci/pcibus.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/alpha/pci/pcibus.c,v 1.38 2006/04/20 04:16:02 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/pci/pcibus.c,v 1.39 2006/04/22 19:04:21 marcel Exp $"); #include "opt_isa.h" @@ -96,12 +96,7 @@ alpha_platform_alloc_ide_intr(int chan) { int irqs[2] = { 14, 15 }; - struct resource *rv; - - rv = isa_alloc_intr(0, 0, irqs[chan]); - if (rv != NULL) - rman_set_rid(rv, *rid); - return (rv); + return (isa_alloc_intr(0, 0, irqs[chan])); } int ==== //depot/projects/uart/arm/arm/pmap.c#14 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.46 2006/04/03 21:16:07 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.47 2006/04/22 22:51:32 cognet Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> @@ -1204,18 +1204,6 @@ } /* - * this routine defines the region(s) of memory that should - * not be tested for the modified bit. - */ -static PMAP_INLINE int -pmap_track_modified(vm_offset_t va) -{ - if ((va < kmi.clean_sva) || (va >= kmi.clean_eva)) - return 1; - else - return 0; -} -/* * PTE_SYNC_CURRENT: * * Make sure the pte is written out to RAM. @@ -1559,8 +1547,7 @@ ptep = &l2b->l2b_kva[l2pte_index(va)]; npte = opte = *ptep; - if (maskbits & (PVF_WRITE|PVF_MOD) && - !pmap_track_modified(pv->pv_va)) { + if (maskbits & (PVF_WRITE|PVF_MOD)) { if ((pv->pv_flags & PVF_NC)) { /* * Entry is not cacheable: @@ -1618,7 +1605,7 @@ } } - if (maskbits & PVF_REF && !pmap_track_modified(pv->pv_va)) { + if (maskbits & PVF_REF) { if ((pv->pv_flags & PVF_NC) == 0 && (maskbits & (PVF_WRITE|PVF_MOD)) == 0) { /* @@ -2056,10 +2043,8 @@ goto out; } - if (pmap_track_modified(pv->pv_va)) { - pg->md.pvh_attrs |= PVF_REF | PVF_MOD; - vm_page_dirty(pg); - } + pg->md.pvh_attrs |= PVF_REF | PVF_MOD; + vm_page_dirty(pg); pv->pv_flags |= PVF_REF | PVF_MOD; /* @@ -3267,8 +3252,7 @@ f = pmap_modify_pv(pg, pm, sva, PVF_WRITE, 0); pmap_vac_me_harder(pg, pm, sva); - if (pmap_track_modified(sva)) - vm_page_dirty(pg); + vm_page_dirty(pg); } else f = PVF_REF | PVF_EXEC; @@ -3391,8 +3375,7 @@ * writable from the outset. */ nflags |= PVF_MOD; - if (!(m->md.pvh_attrs & PVF_MOD) && - pmap_track_modified(va)) + if (!(m->md.pvh_attrs & PVF_MOD)) vm_page_dirty(m); } if (m && opte) @@ -3477,8 +3460,11 @@ if ((pve = pmap_get_pv_entry()) == NULL) { panic("pmap_enter: no pv entries"); } - if (m && !(m->flags & (PG_UNMANAGED | PG_FICTITIOUS))) + if (m && !(m->flags & (PG_UNMANAGED | PG_FICTITIOUS))) { + KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva, + ("pmap_enter: managed mapping within the clean submap")); pmap_enter_pv(m, pve, pmap, va, nflags); + } } /* * Make sure userland mappings get the right permissions ==== //depot/projects/uart/ddb/db_command.c#10 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/ddb/db_command.c,v 1.65 2006/03/07 22:17:05 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/ddb/db_command.c,v 1.66 2006/04/21 20:39:51 jhb Exp $"); #include <sys/param.h> #include <sys/linker_set.h> @@ -679,7 +679,7 @@ quit = 0; db_setup_paging(db_simple_pager, &quit, db_lines_per_page); - for (p = LIST_FIRST(&allproc); p != NULL; p = LIST_NEXT(p, p_list)) { + LIST_FOREACH(p, &allproc, p_list) { FOREACH_THREAD_IN_PROC(p, td) { db_printf("\nTracing command %s pid %d tid %ld td %p\n", p->p_comm, p->p_pid, (long)td->td_tid, td); ==== //depot/projects/uart/dev/acpica/acpi_powerres.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_powerres.c,v 1.29 2005/09/11 18:39:01 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_powerres.c,v 1.30 2006/04/21 19:06:29 jkim Exp $"); #include "opt_acpi.h" #include <sys/param.h> @@ -247,7 +247,7 @@ ACPI_SERIAL_ASSERT(powerres); /* Check to see whether we know about this consumer already */ - if ((pc = acpi_pwr_find_consumer(consumer)) != NULL) + if (acpi_pwr_find_consumer(consumer) != NULL) return_ACPI_STATUS (AE_OK); /* Allocate a new power consumer */ ==== //depot/projects/uart/dev/isp/isp.c#12 (text+ko) ==== @@ -34,7 +34,7 @@ */ #ifdef __FreeBSD__ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/isp/isp.c,v 1.117 2006/02/15 00:31:48 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/isp/isp.c,v 1.119 2006/04/21 18:46:35 mjacob Exp $"); #endif /* @@ -114,40 +114,40 @@ /* * Local function prototypes. */ -static int isp_parse_async(struct ispsoftc *, uint16_t); -static int isp_handle_other_response(struct ispsoftc *, int, isphdr_t *, +static int isp_parse_async(ispsoftc_t *, uint16_t); +static int isp_handle_other_response(ispsoftc_t *, int, isphdr_t *, uint16_t *); static void -isp_parse_status(struct ispsoftc *, ispstatusreq_t *, XS_T *); -static void isp_fastpost_complete(struct ispsoftc *, uint16_t); -static int isp_mbox_continue(struct ispsoftc *); -static void isp_scsi_init(struct ispsoftc *); -static void isp_scsi_channel_init(struct ispsoftc *, int); -static void isp_fibre_init(struct ispsoftc *); -static void isp_mark_getpdb_all(struct ispsoftc *); -static int isp_getmap(struct ispsoftc *, fcpos_map_t *); -static int isp_getpdb(struct ispsoftc *, int, isp_pdb_t *); -static uint64_t isp_get_portname(struct ispsoftc *, int, int); -static int isp_fclink_test(struct ispsoftc *, int); +isp_parse_status(ispsoftc_t *, ispstatusreq_t *, XS_T *); +static void isp_fastpost_complete(ispsoftc_t *, uint16_t); +static int isp_mbox_continue(ispsoftc_t *); +static void isp_scsi_init(ispsoftc_t *); +static void isp_scsi_channel_init(ispsoftc_t *, int); +static void isp_fibre_init(ispsoftc_t *); +static void isp_mark_getpdb_all(ispsoftc_t *); +static int isp_getmap(ispsoftc_t *, fcpos_map_t *); +static int isp_getpdb(ispsoftc_t *, int, isp_pdb_t *); +static uint64_t isp_get_portname(ispsoftc_t *, int, int); +static int isp_fclink_test(ispsoftc_t *, int); static char *isp2100_fw_statename(int); -static int isp_pdb_sync(struct ispsoftc *); -static int isp_scan_loop(struct ispsoftc *); -static int isp_fabric_mbox_cmd(struct ispsoftc *, mbreg_t *); -static int isp_scan_fabric(struct ispsoftc *, int); -static void isp_register_fc4_type(struct ispsoftc *); -static void isp_fw_state(struct ispsoftc *); -static void isp_mboxcmd_qnw(struct ispsoftc *, mbreg_t *, int); -static void isp_mboxcmd(struct ispsoftc *, mbreg_t *, int); +static int isp_pdb_sync(ispsoftc_t *); +static int isp_scan_loop(ispsoftc_t *); +static int isp_fabric_mbox_cmd(ispsoftc_t *, mbreg_t *); +static int isp_scan_fabric(ispsoftc_t *, int); +static void isp_register_fc4_type(ispsoftc_t *); +static void isp_fw_state(ispsoftc_t *); +static void isp_mboxcmd_qnw(ispsoftc_t *, mbreg_t *, int); +static void isp_mboxcmd(ispsoftc_t *, mbreg_t *, int); -static void isp_update(struct ispsoftc *); -static void isp_update_bus(struct ispsoftc *, int); -static void isp_setdfltparm(struct ispsoftc *, int); -static int isp_read_nvram(struct ispsoftc *); -static void isp_rdnvram_word(struct ispsoftc *, int, uint16_t *); -static void isp_parse_nvram_1020(struct ispsoftc *, uint8_t *); -static void isp_parse_nvram_1080(struct ispsoftc *, int, uint8_t *); -static void isp_parse_nvram_12160(struct ispsoftc *, int, uint8_t *); -static void isp_parse_nvram_2100(struct ispsoftc *, uint8_t *); +static void isp_update(ispsoftc_t *); +static void isp_update_bus(ispsoftc_t *, int); +static void isp_setdfltparm(ispsoftc_t *, int); +static int isp_read_nvram(ispsoftc_t *); +static void isp_rdnvram_word(ispsoftc_t *, int, uint16_t *); +static void isp_parse_nvram_1020(ispsoftc_t *, uint8_t *); +static void isp_parse_nvram_1080(ispsoftc_t *, int, uint8_t *); +static void isp_parse_nvram_12160(ispsoftc_t *, int, uint8_t *); +static void isp_parse_nvram_2100(ispsoftc_t *, uint8_t *); /* * Reset Hardware. @@ -158,7 +158,7 @@ */ void -isp_reset(struct ispsoftc *isp) +isp_reset(ispsoftc_t *isp) { mbreg_t mbs; uint16_t code_org; @@ -837,7 +837,7 @@ */ void -isp_init(struct ispsoftc *isp) +isp_init(ispsoftc_t *isp) { /* * Must do this first to get defaults established. @@ -854,7 +854,7 @@ } static void -isp_scsi_init(struct ispsoftc *isp) +isp_scsi_init(ispsoftc_t *isp) { sdparam *sdp_chan0, *sdp_chan1; mbreg_t mbs; @@ -1053,7 +1053,7 @@ } static void -isp_scsi_channel_init(struct ispsoftc *isp, int channel) +isp_scsi_channel_init(ispsoftc_t *isp, int channel) { sdparam *sdp; mbreg_t mbs; @@ -1174,7 +1174,7 @@ * Locks are held before coming here. */ static void -isp_fibre_init(struct ispsoftc *isp) +isp_fibre_init(ispsoftc_t *isp) { fcparam *fcp; isp_icb_t local, *icbp = &local; @@ -1277,7 +1277,7 @@ /* * We end up with these Loop IDs for F-Port topologies */ - if (icbp->icb_hardaddr != 0xff || icbp->icb_hardaddr != 0x800) { + if (icbp->icb_hardaddr != 0xff && icbp->icb_hardaddr != 0x800) { isp_prt(isp, ISP_LOGERR, "bad hard address %u- resetting to zero", icbp->icb_hardaddr); @@ -1390,7 +1390,8 @@ mbs.param[3] = 0; isp_mboxcmd(isp, &mbs, MBLOGALL); } - icbp->icb_logintime = 30; /* 30 second login timeout */ + icbp->icb_logintime = ICB_LOGIN_TOV; + icbp->icb_lunetimeout = ICB_LUN_ENABLE_TOV; if (IS_23XX(isp)) { ISP_WRITE(isp, isp->isp_rqstinrp, 0); @@ -1472,7 +1473,7 @@ */ static int -isp_getmap(struct ispsoftc *isp, fcpos_map_t *map) +isp_getmap(ispsoftc_t *isp, fcpos_map_t *map) { fcparam *fcp = (fcparam *) isp->isp_param; mbreg_t mbs; @@ -1504,7 +1505,7 @@ } static void -isp_mark_getpdb_all(struct ispsoftc *isp) +isp_mark_getpdb_all(ispsoftc_t *isp) { fcparam *fcp = (fcparam *) isp->isp_param; int i; @@ -1514,7 +1515,7 @@ } static int -isp_getpdb(struct ispsoftc *isp, int id, isp_pdb_t *pdbp) +isp_getpdb(ispsoftc_t *isp, int id, isp_pdb_t *pdbp) { fcparam *fcp = (fcparam *) isp->isp_param; mbreg_t mbs; @@ -1550,7 +1551,7 @@ } static uint64_t -isp_get_portname(struct ispsoftc *isp, int loopid, int nodename) +isp_get_portname(ispsoftc_t *isp, int loopid, int nodename) { uint64_t wwn = 0; mbreg_t mbs; @@ -1587,7 +1588,7 @@ */ static int -isp_fclink_test(struct ispsoftc *isp, int usdelay) +isp_fclink_test(ispsoftc_t *isp, int usdelay) { static char *toponames[] = { "Private Loop", @@ -1864,7 +1865,7 @@ */ static int -isp_pdb_sync(struct ispsoftc *isp) +isp_pdb_sync(ispsoftc_t *isp) { struct lportdb *lp; fcparam *fcp = isp->isp_param; @@ -2190,7 +2191,7 @@ } static int -isp_scan_loop(struct ispsoftc *isp) +isp_scan_loop(ispsoftc_t *isp) { struct lportdb *lp; fcparam *fcp = isp->isp_param; @@ -2462,7 +2463,7 @@ static int -isp_fabric_mbox_cmd(struct ispsoftc *isp, mbreg_t *mbp) +isp_fabric_mbox_cmd(ispsoftc_t *isp, mbreg_t *mbp) { isp_mboxcmd(isp, mbp, MBLOGNONE); if (mbp->param[0] != MBOX_COMMAND_COMPLETE) { @@ -2511,7 +2512,7 @@ #ifdef ISP_USE_GA_NXT static int -isp_scan_fabric(struct ispsoftc *isp, int ftype) +isp_scan_fabric(ispsoftc_t *isp, int ftype) { fcparam *fcp = isp->isp_param; uint32_t portid, first_portid, last_portid; @@ -2675,7 +2676,7 @@ #define GXOFF (256) static int -isp_scan_fabric(struct ispsoftc *isp, int ftype) +isp_scan_fabric(ispsoftc_t *isp, int ftype) { fcparam *fcp = FCPARAM(isp); mbreg_t mbs; @@ -2981,7 +2982,7 @@ #endif static void -isp_register_fc4_type(struct ispsoftc *isp) +isp_register_fc4_type(ispsoftc_t *isp) { fcparam *fcp = isp->isp_param; uint8_t local[SNS_RFT_ID_REQ_SIZE]; @@ -3028,7 +3029,7 @@ int isp_start(XS_T *xs) { - struct ispsoftc *isp; + ispsoftc_t *isp; uint16_t nxti, optr, handle; uint8_t local[QENTRY_LEN]; ispreq_t *reqp, *qep; @@ -3401,7 +3402,7 @@ */ int -isp_control(struct ispsoftc *isp, ispctl_t ctl, void *arg) +isp_control(ispsoftc_t *isp, ispctl_t ctl, void *arg) { XS_T *xs; mbreg_t mbs; @@ -3514,7 +3515,10 @@ case ISPCTL_FCLINK_TEST: if (IS_FC(isp)) { - int usdelay = (arg)? *((int *) arg) : 250000; + int usdelay = *((int *) arg); + if (usdelay == 0) { + usdelay = 250000; + } return (isp_fclink_test(isp, usdelay)); } break; @@ -3614,7 +3618,7 @@ #endif void -isp_intr(struct ispsoftc *isp, uint16_t isr, uint16_t sema, uint16_t mbox) +isp_intr(ispsoftc_t *isp, uint16_t isr, uint16_t sema, uint16_t mbox) { XS_T *complist[MAX_REQUESTQ_COMPLETIONS], *xs; uint16_t iptr, optr, junk; @@ -4059,7 +4063,7 @@ */ static int -isp_parse_async(struct ispsoftc *isp, uint16_t mbox) +isp_parse_async(ispsoftc_t *isp, uint16_t mbox) { int rval = 0; int bus; @@ -4414,7 +4418,7 @@ */ static int -isp_handle_other_response(struct ispsoftc *isp, int type, +isp_handle_other_response(ispsoftc_t *isp, int type, isphdr_t *hp, uint16_t *optrp) { switch (type) { @@ -4464,7 +4468,7 @@ } static void -isp_parse_status(struct ispsoftc *isp, ispstatusreq_t *sp, XS_T *xs) +isp_parse_status(ispsoftc_t *isp, ispstatusreq_t *sp, XS_T *xs) { switch (sp->req_completion_status & 0xff) { case RQCS_COMPLETE: @@ -4848,7 +4852,7 @@ } static void -isp_fastpost_complete(struct ispsoftc *isp, uint16_t fph) +isp_fastpost_complete(ispsoftc_t *isp, uint16_t fph) { XS_T *xs; @@ -4881,7 +4885,7 @@ } static int -isp_mbox_continue(struct ispsoftc *isp) +isp_mbox_continue(ispsoftc_t *isp) { mbreg_t mbs; uint16_t *ptr; @@ -5398,7 +5402,7 @@ #endif static void -isp_mboxcmd_qnw(struct ispsoftc *isp, mbreg_t *mbp, int nodelay) +isp_mboxcmd_qnw(ispsoftc_t *isp, mbreg_t *mbp, int nodelay) { unsigned int ibits, obits, box, opcode; const uint32_t *mcp; @@ -5438,7 +5442,7 @@ } static void -isp_mboxcmd(struct ispsoftc *isp, mbreg_t *mbp, int logmask) +isp_mboxcmd(ispsoftc_t *isp, mbreg_t *mbp, int logmask) { char *cname, *xname, tname[16], mname[16]; unsigned int lim, ibits, obits, box, opcode; @@ -5586,7 +5590,7 @@ } static void -isp_fw_state(struct ispsoftc *isp) +isp_fw_state(ispsoftc_t *isp) { if (IS_FC(isp)) { mbreg_t mbs; @@ -5602,7 +5606,7 @@ } static void -isp_update(struct ispsoftc *isp) +isp_update(ispsoftc_t *isp) { int bus, upmask; @@ -5615,7 +5619,7 @@ } static void -isp_update_bus(struct ispsoftc *isp, int bus) +isp_update_bus(ispsoftc_t *isp, int bus) { int tgt; mbreg_t mbs; @@ -5740,7 +5744,7 @@ #endif static void -isp_setdfltparm(struct ispsoftc *isp, int channel) +isp_setdfltparm(ispsoftc_t *isp, int channel) { int tgt; mbreg_t mbs; @@ -5967,7 +5971,7 @@ */ void -isp_reinit(struct ispsoftc *isp) +isp_reinit(ispsoftc_t *isp) { XS_T *xs; int i; @@ -6013,7 +6017,7 @@ * NVRAM Routines */ static int -isp_read_nvram(struct ispsoftc *isp) +isp_read_nvram(ispsoftc_t *isp) { int i, amt; uint8_t csum, minversion; @@ -6087,7 +6091,7 @@ } static void -isp_rdnvram_word(struct ispsoftc *isp, int wo, uint16_t *rp) +isp_rdnvram_word(ispsoftc_t *isp, int wo, uint16_t *rp) { int i, cbits; uint16_t bit, rqst; @@ -6153,7 +6157,7 @@ } static void -isp_parse_nvram_1020(struct ispsoftc *isp, uint8_t *nvram_data) +isp_parse_nvram_1020(ispsoftc_t *isp, uint8_t *nvram_data) { sdparam *sdp = (sdparam *) isp->isp_param; int tgt; @@ -6279,7 +6283,7 @@ } static void -isp_parse_nvram_1080(struct ispsoftc *isp, int bus, uint8_t *nvram_data) +isp_parse_nvram_1080(ispsoftc_t *isp, int bus, uint8_t *nvram_data) { sdparam *sdp = (sdparam *) isp->isp_param; int tgt; @@ -6371,7 +6375,7 @@ } static void -isp_parse_nvram_12160(struct ispsoftc *isp, int bus, uint8_t *nvram_data) +isp_parse_nvram_12160(ispsoftc_t *isp, int bus, uint8_t *nvram_data) { sdparam *sdp = (sdparam *) isp->isp_param; int tgt; @@ -6462,7 +6466,7 @@ } static void -isp_parse_nvram_2100(struct ispsoftc *isp, uint8_t *nvram_data) +isp_parse_nvram_2100(ispsoftc_t *isp, uint8_t *nvram_data) { fcparam *fcp = (fcparam *) isp->isp_param; uint64_t wwn; @@ -6554,11 +6558,11 @@ } #ifdef ISP_FW_CRASH_DUMP -static void isp2200_fw_dump(struct ispsoftc *); -static void isp2300_fw_dump(struct ispsoftc *); +static void isp2200_fw_dump(ispsoftc_t *); +static void isp2300_fw_dump(ispsoftc_t *); static void -isp2200_fw_dump(struct ispsoftc *isp) +isp2200_fw_dump(ispsoftc_t *isp) { int i, j; mbreg_t mbs; @@ -6703,7 +6707,7 @@ } static void -isp2300_fw_dump(struct ispsoftc *isp) +isp2300_fw_dump(ispsoftc_t *isp) { int i, j; mbreg_t mbs; @@ -6867,7 +6871,7 @@ } void -isp_fw_dump(struct ispsoftc *isp) +isp_fw_dump(ispsoftc_t *isp) { if (IS_2200(isp)) isp2200_fw_dump(isp); ==== //depot/projects/uart/dev/isp/isp_freebsd.c#14 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/isp/isp_freebsd.c,v 1.112 2006/03/03 07:04:43 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/isp/isp_freebsd.c,v 1.114 2006/04/21 18:46:35 mjacob Exp $"); #include <dev/isp/isp_freebsd.h> #include <sys/unistd.h> @@ -53,17 +53,36 @@ static void isp_action(struct cam_sim *, union ccb *); +#if __FreeBSD_version < 500000 +#define ISP_CDEV_MAJOR 248 +static struct cdevsw isp_cdevsw = { + /* open */ nullopen, + /* close */ nullclose, + /* read */ noread, + /* write */ nowrite, + /* ioctl */ ispioctl, + /* poll */ nopoll, + /* mmap */ nommap, + /* strategy */ nostrategy, + /* name */ "isp", + /* maj */ ISP_CDEV_MAJOR, + /* dump */ nodump, + /* psize */ nopsize, + /* flags */ D_TAPE, +}; +#else static struct cdevsw isp_cdevsw = { .d_version = D_VERSION, .d_flags = D_NEEDGIANT, .d_ioctl = ispioctl, .d_name = "isp", }; +#endif -static struct ispsoftc *isplist = NULL; +static ispsoftc_t *isplist = NULL; void -isp_attach(struct ispsoftc *isp) +isp_attach(ispsoftc_t *isp) { int primary, secondary; struct ccb_setasync csa; @@ -140,11 +159,17 @@ */ if (IS_FC(isp)) { ISPLOCK_2_CAMLOCK(isp); +#if __FreeBSD_version >= 500000 /* XXX: LOCK VIOLATION */ cv_init(&isp->isp_osinfo.kthread_cv, "isp_kthread_cv"); if (kthread_create(isp_kthread, isp, &isp->isp_osinfo.kproc, RFHIGHPID, 0, "%s: fc_thrd", - device_get_nameunit(isp->isp_dev))) { + device_get_nameunit(isp->isp_dev))) +#else + if (kthread_create(isp_kthread, isp, &isp->isp_osinfo.kproc, + "%s: fc_thrd", device_get_nameunit(isp->isp_dev))) +#endif + { xpt_bus_deregister(cam_sim_path(sim)); cam_sim_free(sim, TRUE); config_intrhook_disestablish(&isp->isp_osinfo.ehook); @@ -214,7 +239,7 @@ if (isplist == NULL) { isplist = isp; } else { - struct ispsoftc *tmp = isplist; + ispsoftc_t *tmp = isplist; while (tmp->isp_osinfo.next) { tmp = tmp->isp_osinfo.next; } @@ -224,7 +249,7 @@ } static __inline void -isp_freeze_loopdown(struct ispsoftc *isp, char *msg) +isp_freeze_loopdown(ispsoftc_t *isp, char *msg) { if (isp->isp_osinfo.simqfrozen == 0) { isp_prt(isp, ISP_LOGDEBUG0, "%s: freeze simq (loopdown)", msg); @@ -238,10 +263,19 @@ } } + +#if __FreeBSD_version < 500000 +#define _DEV dev_t +#define _IOP struct proc +#else +#define _IOP struct thread +#define _DEV struct cdev * +#endif + static int -ispioctl(struct cdev *dev, u_long c, caddr_t addr, int flags, struct thread *td) +ispioctl(_DEV dev, u_long c, caddr_t addr, int flags, _IOP *td) { - struct ispsoftc *isp; + ispsoftc_t *isp; int nr, retval = ENOTTY; isp = isplist; @@ -577,7 +611,7 @@ static void isp_intr_enable(void *arg) { - struct ispsoftc *isp = arg; + ispsoftc_t *isp = arg; if (isp->isp_role != ISP_ROLE_NONE) { ENABLE_INTS(isp); #if 0 @@ -594,29 +628,29 @@ #ifdef ISP_TARGET_MODE -static __inline int is_lun_enabled(struct ispsoftc *, int, lun_id_t); -static __inline int are_any_luns_enabled(struct ispsoftc *, int); -static __inline tstate_t *get_lun_statep(struct ispsoftc *, int, lun_id_t); -static __inline void rls_lun_statep(struct ispsoftc *, tstate_t *); -static __inline atio_private_data_t *isp_get_atpd(struct ispsoftc *, int); +static __inline int is_lun_enabled(ispsoftc_t *, int, lun_id_t); +static __inline int are_any_luns_enabled(ispsoftc_t *, int); +static __inline tstate_t *get_lun_statep(ispsoftc_t *, int, lun_id_t); +static __inline void rls_lun_statep(ispsoftc_t *, tstate_t *); +static __inline atio_private_data_t *isp_get_atpd(ispsoftc_t *, int); static cam_status -create_lun_state(struct ispsoftc *, int, struct cam_path *, tstate_t **); -static void destroy_lun_state(struct ispsoftc *, tstate_t *); -static int isp_en_lun(struct ispsoftc *, union ccb *); -static void isp_ledone(struct ispsoftc *, lun_entry_t *); -static cam_status isp_abort_tgt_ccb(struct ispsoftc *, union ccb *); +create_lun_state(ispsoftc_t *, int, struct cam_path *, tstate_t **); +static void destroy_lun_state(ispsoftc_t *, tstate_t *); +static int isp_en_lun(ispsoftc_t *, union ccb *); +static void isp_ledone(ispsoftc_t *, lun_entry_t *); +static cam_status isp_abort_tgt_ccb(ispsoftc_t *, union ccb *); static timeout_t isp_refire_putback_atio; static void isp_complete_ctio(union ccb *); static void isp_target_putback_atio(union ccb *); -static cam_status isp_target_start_ctio(struct ispsoftc *, union ccb *); -static int isp_handle_platform_atio(struct ispsoftc *, at_entry_t *); -static int isp_handle_platform_atio2(struct ispsoftc *, at2_entry_t *); -static int isp_handle_platform_ctio(struct ispsoftc *, void *); -static int isp_handle_platform_notify_scsi(struct ispsoftc *, in_entry_t *); -static int isp_handle_platform_notify_fc(struct ispsoftc *, in_fcentry_t *); +static void isp_target_start_ctio(ispsoftc_t *, union ccb *); +static int isp_handle_platform_atio(ispsoftc_t *, at_entry_t *); +static int isp_handle_platform_atio2(ispsoftc_t *, at2_entry_t *); +static int isp_handle_platform_ctio(ispsoftc_t *, void *); +static int isp_handle_platform_notify_scsi(ispsoftc_t *, in_entry_t *); +static int isp_handle_platform_notify_fc(ispsoftc_t *, in_fcentry_t *); static __inline int -is_lun_enabled(struct ispsoftc *isp, int bus, lun_id_t lun) +is_lun_enabled(ispsoftc_t *isp, int bus, lun_id_t lun) { tstate_t *tptr; tptr = isp->isp_osinfo.lun_hash[LUN_HASH_FUNC(isp, bus, lun)]; @@ -632,7 +666,7 @@ } static __inline int -are_any_luns_enabled(struct ispsoftc *isp, int port) +are_any_luns_enabled(ispsoftc_t *isp, int port) { int lo, hi; if (IS_DUALBUS(isp)) { @@ -651,7 +685,7 @@ } static __inline tstate_t * -get_lun_statep(struct ispsoftc *isp, int bus, lun_id_t lun) +get_lun_statep(ispsoftc_t *isp, int bus, lun_id_t lun) { tstate_t *tptr = NULL; @@ -679,14 +713,14 @@ } static __inline void -rls_lun_statep(struct ispsoftc *isp, tstate_t *tptr) +rls_lun_statep(ispsoftc_t *isp, tstate_t *tptr) { if (tptr->hold) tptr->hold--; } static __inline atio_private_data_t * -isp_get_atpd(struct ispsoftc *isp, int tag) +isp_get_atpd(ispsoftc_t *isp, int tag) { atio_private_data_t *atp; for (atp = isp->isp_osinfo.atpdp; @@ -698,7 +732,7 @@ } static cam_status -create_lun_state(struct ispsoftc *isp, int bus, +create_lun_state(ispsoftc_t *isp, int bus, struct cam_path *path, tstate_t **rslt) { cam_status status; @@ -744,7 +778,7 @@ } static __inline void -destroy_lun_state(struct ispsoftc *isp, tstate_t *tptr) +destroy_lun_state(ispsoftc_t *isp, tstate_t *tptr) { int hfx; tstate_t *lw, *pw; @@ -780,7 +814,7 @@ * Enable luns. */ static int -isp_en_lun(struct ispsoftc *isp, union ccb *ccb) +isp_en_lun(ispsoftc_t *isp, union ccb *ccb) { struct ccb_en_lun *cel = &ccb->cel; tstate_t *tptr; @@ -1023,7 +1057,7 @@ } static void -isp_ledone(struct ispsoftc *isp, lun_entry_t *lep) +isp_ledone(ispsoftc_t *isp, lun_entry_t *lep) { const char lfmt[] = "lun %d now %sabled for target mode on channel %d"; union ccb *ccb; @@ -1073,7 +1107,7 @@ if (cel->enable) { ccb->ccb_h.status = CAM_REQ_CMP; - isp_prt(isp, /* ISP_LOGINFO */ ISP_LOGALL, lfmt, + isp_prt(isp, ISP_LOGINFO, lfmt, XS_LUN(ccb), "en", XS_CHANNEL(ccb)); rls_lun_statep(isp, tptr); isp->isp_osinfo.leact[seq] = 0; @@ -1119,7 +1153,7 @@ static cam_status -isp_abort_tgt_ccb(struct ispsoftc *isp, union ccb *ccb) +isp_abort_tgt_ccb(ispsoftc_t *isp, union ccb *ccb) { tstate_t *tptr; struct ccb_hdr_slist *lp; @@ -1197,8 +1231,8 @@ return (CAM_PATH_INVALID); } -static cam_status -isp_target_start_ctio(struct ispsoftc *isp, union ccb *ccb) +static void +isp_target_start_ctio(ispsoftc_t *isp, union ccb *ccb) { void *qe; struct ccb_scsiio *cso = &ccb->csio; @@ -1210,7 +1244,8 @@ if (isp_getrqentry(isp, &nxti, &optr, &qe)) { xpt_print_path(ccb->ccb_h.path); printf("Request Queue Overflow in isp_target_start_ctio\n"); - return (CAM_RESRC_UNAVAIL); + XS_SETERR(ccb, CAM_REQUEUE_REQ); + goto out; } bzero(local, QENTRY_LEN); @@ -1234,7 +1269,8 @@ isp_prt(isp, ISP_LOGERR, "cannot find private data adjunct for tag %x", cso->tag_id); - return (-1); + XS_SETERR(ccb, CAM_REQ_CMP_ERR); + goto out; } cto->ct_rxid = cso->tag_id; @@ -1297,8 +1333,9 @@ cso->dxfer_len, cto->ct_resid); cto->ct_flags |= CT2_CCINCR; atp->state = ATPD_STATE_LAST_CTIO; - } else + } else { atp->state = ATPD_STATE_CTIO; + } cto->ct_timeout = 10; hp = &cto->ct_syshandle; } else { @@ -1342,7 +1379,8 @@ if (isp_save_xs_tgt(isp, ccb, hp)) { xpt_print_path(ccb->ccb_h.path); printf("No XFLIST pointers for isp_target_start_ctio\n"); - return (CAM_RESRC_UNAVAIL); + XS_SETERR(ccb, CAM_REQUEUE_REQ); + goto out; } @@ -1360,17 +1398,22 @@ switch (ISP_DMASETUP(isp, cso, (ispreq_t *) local, &nxti, optr)) { case CMD_QUEUED: ISP_ADD_REQUEST(isp, nxti); - return (CAM_REQ_INPROG); + ccb->ccb_h.status |= CAM_SIM_QUEUED; + return; >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200604232119.k3NLJ7gv086941>