diff options
Diffstat (limited to 'usr/src/uts/common')
-rw-r--r-- | usr/src/uts/common/io/dr_sas/dr_sas.c | 4 | ||||
-rw-r--r-- | usr/src/uts/common/io/iwn/if_iwn.c | 29 | ||||
-rw-r--r-- | usr/src/uts/common/io/zfd.c | 55 |
3 files changed, 46 insertions, 42 deletions
diff --git a/usr/src/uts/common/io/dr_sas/dr_sas.c b/usr/src/uts/common/io/dr_sas/dr_sas.c index 0d277ada42..9517a63e04 100644 --- a/usr/src/uts/common/io/dr_sas/dr_sas.c +++ b/usr/src/uts/common/io/dr_sas/dr_sas.c @@ -5025,8 +5025,8 @@ drsas_add_intrs(struct drsas_instance *instance, int intr_type) /* Call ddi_intr_add_handler() */ for (i = 0; i < actual; i++) { ret = ddi_intr_add_handler(instance->intr_htable[i], - (ddi_intr_handler_t *)drsas_isr, (caddr_t)instance, - (caddr_t)(uintptr_t)i); + (ddi_intr_handler_t *)(uintptr_t)drsas_isr, + (caddr_t)instance, (caddr_t)(uintptr_t)i); if (ret != DDI_SUCCESS) { con_log(CL_ANN, (CE_WARN, "drsas_add_intrs:" diff --git a/usr/src/uts/common/io/iwn/if_iwn.c b/usr/src/uts/common/io/iwn/if_iwn.c index 9e07f2b8e2..b5611c0a91 100644 --- a/usr/src/uts/common/io/iwn/if_iwn.c +++ b/usr/src/uts/common/io/iwn/if_iwn.c @@ -3222,7 +3222,9 @@ iwn_wakeup_intr(struct iwn_softc *sc) static void iwn_fatal_intr(struct iwn_softc *sc) { - struct iwn_fw_dump dump; + struct iwn_fw_dump *dump; + uint32_t buf[P2ROUNDUP(sizeof (*dump), sizeof (uint32_t)) / + sizeof (uint32_t)]; int i; /* Force a complete recalibration on next init. */ @@ -3242,31 +3244,30 @@ iwn_fatal_intr(struct iwn_softc *sc) return; } /* Read firmware error log from SRAM. */ - /*LINTED: E_PTR_BAD_CAST_ALIGN*/ - iwn_mem_read_region_4(sc, sc->errptr, (uint32_t *)&dump, - sizeof (dump) / sizeof (uint32_t)); + dump = (struct iwn_fw_dump *)buf; + iwn_mem_read_region_4(sc, sc->errptr, buf, sizeof (buf)); iwn_nic_unlock(sc); - if (dump.valid == 0) { + if (dump->valid == 0) { dev_err(sc->sc_dip, CE_WARN, "!firmware error log is empty"); return; } dev_err(sc->sc_dip, CE_WARN, "!firmware error log:"); dev_err(sc->sc_dip, CE_CONT, "! error type = \"%s\" (0x%08X)", - (dump.id < __arraycount(iwn_fw_errmsg)) ? - iwn_fw_errmsg[dump.id] : "UNKNOWN", - dump.id); - dev_err(sc->sc_dip, CE_CONT, "! program counter = 0x%08X", dump.pc); + (dump->id < __arraycount(iwn_fw_errmsg)) ? + iwn_fw_errmsg[dump->id] : "UNKNOWN", + dump->id); + dev_err(sc->sc_dip, CE_CONT, "! program counter = 0x%08X", dump->pc); dev_err(sc->sc_dip, CE_CONT, "! source line = 0x%08X", - dump.src_line); + dump->src_line); dev_err(sc->sc_dip, CE_CONT, "! error data = 0x%08X%08X", - dump.error_data[0], dump.error_data[1]); + dump->error_data[0], dump->error_data[1]); dev_err(sc->sc_dip, CE_CONT, "! branch link = 0x%08X%08X", - dump.branch_link[0], dump.branch_link[1]); + dump->branch_link[0], dump->branch_link[1]); dev_err(sc->sc_dip, CE_CONT, "! interrupt link = 0x%08X%08X", - dump.interrupt_link[0], dump.interrupt_link[1]); - dev_err(sc->sc_dip, CE_CONT, "! time = %u", dump.time[0]); + dump->interrupt_link[0], dump->interrupt_link[1]); + dev_err(sc->sc_dip, CE_CONT, "! time = %u", dump->time[0]); /* Dump driver status (TX and RX rings) while we're here. */ dev_err(sc->sc_dip, CE_WARN, "!driver status:"); diff --git a/usr/src/uts/common/io/zfd.c b/usr/src/uts/common/io/zfd.c index 2da310ab8d..5aba5a0988 100644 --- a/usr/src/uts/common/io/zfd.c +++ b/usr/src/uts/common/io/zfd.c @@ -11,7 +11,7 @@ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Copyright 2016 Joyent, Inc. All rights reserved. + * Copyright 2020 Joyent, Inc. */ /* @@ -126,9 +126,9 @@ static int zfd_detach(dev_info_t *, ddi_detach_cmd_t); static int zfd_open(queue_t *, dev_t *, int, int, cred_t *); static int zfd_close(queue_t *, int, cred_t *); -static void zfd_wput(queue_t *, mblk_t *); -static void zfd_rsrv(queue_t *); -static void zfd_wsrv(queue_t *); +static int zfd_wput(queue_t *, mblk_t *); +static int zfd_rsrv(queue_t *); +static int zfd_wsrv(queue_t *); /* * The instance number is encoded in the dev_t in the minor number; the lowest @@ -168,7 +168,7 @@ static struct module_info zfd_info = { static struct qinit zfd_rinit = { NULL, - (int (*)()) zfd_rsrv, + zfd_rsrv, zfd_open, zfd_close, NULL, @@ -177,8 +177,8 @@ static struct qinit zfd_rinit = { }; static struct qinit zfd_winit = { - (int (*)()) zfd_wput, - (int (*)()) zfd_wsrv, + zfd_wput, + zfd_wsrv, NULL, NULL, NULL, @@ -831,7 +831,7 @@ zfd_tee_handler(zfd_state_t *zfds, unsigned char type, mblk_t *mp) * for consumption within the zone (i.e. the log stream can be read, but never * written to, by an application inside the zone). */ -static void +static int zfd_wput(queue_t *qp, mblk_t *mp) { unsigned char type = mp->b_datap->db_type; @@ -855,20 +855,20 @@ zfd_wput(queue_t *qp, mblk_t *mp) case ZFD_MAKETTY: zfds->zfd_tty = 1; miocack(qp, mp, 0, 0); - return; + return (0); case ZFD_EOF: if (zfds->zfd_slave_rdq != NULL) (void) putnextctl(zfds->zfd_slave_rdq, M_HANGUP); miocack(qp, mp, 0, 0); - return; + return (0); case ZFD_HAS_SLAVE: if ((zfds->zfd_state & ZFD_STATE_SOPEN) != 0) { miocack(qp, mp, 0, 0); } else { miocack(qp, mp, 0, ENOTTY); } - return; + return (0); case ZFD_MUX: { /* * Setup the multiplexer configuration for the two @@ -886,7 +886,7 @@ zfd_wput(queue_t *qp, mblk_t *mp) if (iocbp->ioc_count != TRANSPARENT || mp->b_cont == NULL) { miocack(qp, mp, 0, EINVAL); - return; + return (0); } /* Get the primary slave minor device number */ @@ -896,7 +896,7 @@ zfd_wput(queue_t *qp, mblk_t *mp) if ((prim_zfds = ddi_get_soft_state(zfd_soft_state, instance)) == NULL) { miocack(qp, mp, 0, EINVAL); - return; + return (0); } /* Disallow changing primary/log once set. */ @@ -905,7 +905,7 @@ zfd_wput(queue_t *qp, mblk_t *mp) prim_zfds->zfd_muxt != ZFD_NO_MUX) { mutex_exit(&zfd_mux_lock); miocack(qp, mp, 0, EINVAL); - return; + return (0); } zfds->zfd_muxt = ZFD_LOG_STREAM; @@ -917,7 +917,7 @@ zfd_wput(queue_t *qp, mblk_t *mp) void *, zfds); miocack(qp, mp, 0, 0); - return; + return (0); } case ZFD_MUX_FLOWCON: { /* @@ -932,12 +932,12 @@ zfd_wput(queue_t *qp, mblk_t *mp) if (iocbp->ioc_count != TRANSPARENT || mp->b_cont == NULL) { miocack(qp, mp, 0, EINVAL); - return; + return (0); } if (zfds->zfd_muxt != ZFD_LOG_STREAM) { miocack(qp, mp, 0, EINVAL); - return; + return (0); } prim_zfds = zfds->zfd_inst_pri; @@ -945,7 +945,7 @@ zfd_wput(queue_t *qp, mblk_t *mp) val = *(int *)mp->b_cont->b_rptr; if (val != 0 && val != 1) { miocack(qp, mp, 0, EINVAL); - return; + return (0); } prim_zfds->zfd_allow_flowcon = (boolean_t)val; @@ -954,7 +954,7 @@ zfd_wput(queue_t *qp, mblk_t *mp) DTRACE_PROBE1(zfd__mux__flowcon, void *, prim_zfds); miocack(qp, mp, 0, 0); - return; + return (0); } default: break; @@ -984,7 +984,7 @@ zfd_wput(queue_t *qp, mblk_t *mp) freemsg(mp); break; } - return; + return (0); } if (type >= QPCTL) { @@ -1006,7 +1006,7 @@ zfd_wput(queue_t *qp, mblk_t *mp) break; } DBG1("done (hipri) wput, %s side", zfd_side(qp)); - return; + return (0); } /* @@ -1028,6 +1028,7 @@ zfd_wput(queue_t *qp, mblk_t *mp) } DBG1("done wput, %s side", zfd_side(qp)); + return (0); } /* @@ -1043,7 +1044,7 @@ zfd_wput(queue_t *qp, mblk_t *mp) * Internally we've queued up the msgs that we've teed off to the log stream * so when we're invoked we need to pass these along. */ -static void +static int zfd_rsrv(queue_t *qp) { zfd_state_t *zfds; @@ -1083,7 +1084,7 @@ zfd_rsrv(queue_t *qp) } flushq(qp, FLUSHALL); } - return; + return (0); } /* @@ -1093,9 +1094,10 @@ zfd_rsrv(queue_t *qp) ASSERT(qp == zfds->zfd_master_rdq || qp == zfds->zfd_slave_rdq); if (zfd_switch(qp) == NULL) { DBG("zfd_rsrv: other side isn't listening\n"); - return; + return (0); } qenable(WR(zfd_switch(qp))); + return (0); } /* @@ -1108,7 +1110,7 @@ zfd_rsrv(queue_t *qp) * them via putnext(). Else, if queued messages cannot be sent, leave them * on this queue. */ -static void +static int zfd_wsrv(queue_t *qp) { queue_t *swq; @@ -1129,7 +1131,7 @@ zfd_wsrv(queue_t *qp) freemsg(mp); } flushq(qp, FLUSHALL); - return; + return (0); } swq = RD(zfd_switch(qp)); @@ -1151,4 +1153,5 @@ zfd_wsrv(queue_t *qp) break; } } + return (0); } |