aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Strobl <marius@FreeBSD.org>2021-01-21 22:34:19 +0000
committerMarius Strobl <marius@FreeBSD.org>2021-01-21 23:18:39 +0000
commite60a0db3b8c922f9bcd085f737508a9cb4eb7f29 (patch)
treeb6e5d36642bbbdff08410cf87fd79c57922eb745
parentc62ee7332e4dc5a9c4cbec47c967b94f8abf1981 (diff)
downloadsrc-e60a0db3b8c922f9bcd085f737508a9cb4eb7f29.tar.gz
src-e60a0db3b8c922f9bcd085f737508a9cb4eb7f29.zip
sym(4): fix nits reported by Coverity
- In ___dma_getp(), remove dead code. [1] - In sym_sir_bad_scsi_status(), add missing FALLTHROUGH. [2] While at it: - For getbaddrcb(), remove __unused from the nseg argument as it's in fact used when compiling with INVARIANTS. - In sym_int_sir(), ensure in all branches that cp is not NULL before using it. Reported by: Coverity CID: 1008861 [1], 114996 [2]
-rw-r--r--sys/dev/sym/sym_hipd.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/sym/sym_hipd.c b/sys/dev/sym/sym_hipd.c
index 45a9452dbd81..f1c058f75c52 100644
--- a/sys/dev/sym/sym_hipd.c
+++ b/sys/dev/sym/sym_hipd.c
@@ -571,8 +571,7 @@ static void sym_mfree(void *ptr, int size, char *name)
* BUS handle. A reverse table (hashed) is maintained for virtual
* to BUS address translation.
*/
-static void getbaddrcb(void *arg, bus_dma_segment_t *segs, int nseg __unused,
- int error)
+static void getbaddrcb(void *arg, bus_dma_segment_t *segs, int nseg, int error)
{
bus_addr_t *baddr;
@@ -610,8 +609,6 @@ static m_addr_t ___dma_getp(m_pool_s *mp)
return (m_addr_t) vaddr;
}
out_err:
- if (baddr)
- bus_dmamap_unload(mp->dmat, vbp->dmamap);
if (vaddr)
bus_dmamem_free(mp->dmat, vaddr, vbp->dmamap);
if (vbp)
@@ -4680,6 +4677,7 @@ static void sym_sir_bad_scsi_status(hcb_p np, ccb_p cp)
PRINT_ADDR(cp);
printf (s_status == S_BUSY ? "BUSY" : "QUEUE FULL\n");
}
+ /* FALLTHROUGH */
default: /* S_INT, S_INT_COND_MET, S_CONFLICT */
sym_complete_error (np, cp);
break;
@@ -6003,6 +6001,8 @@ static void sym_int_sir (hcb_p np)
* or has been auto-sensed.
*/
case SIR_COMPLETE_ERROR:
+ if (!cp)
+ goto out;
sym_complete_error(np, cp);
return;
/*
@@ -6228,6 +6228,8 @@ static void sym_int_sir (hcb_p np)
* Target does not want answer message.
*/
case SIR_NEGO_PROTO:
+ if (!cp)
+ goto out;
sym_nego_default(np, tp, cp);
goto out;
}