summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_pci.c
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2010-06-02 23:31:27 +0000
committermjacob <mjacob@FreeBSD.org>2010-06-02 23:31:27 +0000
commit279a3628f7216931b771ca3dc76a61711fa0667d (patch)
treee66138154f0f6318e048fa74b79db26b2ecf2399 /sys/dev/isp/isp_pci.c
parent2cbb8fd14a4fd3f29dfa771b02f7eb82cb95d577 (diff)
downloadFreeBSD-src-279a3628f7216931b771ca3dc76a61711fa0667d.zip
FreeBSD-src-279a3628f7216931b771ca3dc76a61711fa0667d.tar.gz
Various minor and not so minor fixes suggested by Coverity.
In at least one case, it's amazing that target mode worked at all. Found by: Coverity. MFC after: 2 weeks
Diffstat (limited to 'sys/dev/isp/isp_pci.c')
-rw-r--r--sys/dev/isp/isp_pci.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c
index e152e99..862ad62 100644
--- a/sys/dev/isp/isp_pci.c
+++ b/sys/dev/isp/isp_pci.c
@@ -641,7 +641,7 @@ isp_pci_attach(device_t dev)
int isp_nvports = 0;
uint32_t data, cmd, linesz, did;
struct isp_pcisoftc *pcs;
- ispsoftc_t *isp = NULL;
+ ispsoftc_t *isp;
size_t psize, xsize;
char fwname[32];
@@ -966,30 +966,28 @@ isp_pci_attach(device_t dev)
return (0);
bad:
- if (pcs && pcs->ih) {
+ if (pcs->ih) {
(void) bus_teardown_intr(dev, irq, pcs->ih);
}
- if (locksetup && isp) {
+ if (locksetup) {
mtx_destroy(&isp->isp_osinfo.lock);
}
if (irq) {
(void) bus_release_resource(dev, SYS_RES_IRQ, iqd, irq);
}
- if (pcs && pcs->msicount) {
+ if (pcs->msicount) {
pci_release_msi(dev);
}
if (regs) {
(void) bus_release_resource(dev, rtp, rgd, regs);
}
- if (pcs) {
- if (pcs->pci_isp.isp_param) {
- free(pcs->pci_isp.isp_param, M_DEVBUF);
- pcs->pci_isp.isp_param = NULL;
- }
- if (pcs->pci_isp.isp_osinfo.pc.ptr) {
- free(pcs->pci_isp.isp_osinfo.pc.ptr, M_DEVBUF);
- pcs->pci_isp.isp_osinfo.pc.ptr = NULL;
- }
+ if (pcs->pci_isp.isp_param) {
+ free(pcs->pci_isp.isp_param, M_DEVBUF);
+ pcs->pci_isp.isp_param = NULL;
+ }
+ if (pcs->pci_isp.isp_osinfo.pc.ptr) {
+ free(pcs->pci_isp.isp_osinfo.pc.ptr, M_DEVBUF);
+ pcs->pci_isp.isp_osinfo.pc.ptr = NULL;
}
return (ENXIO);
}
@@ -1725,6 +1723,8 @@ tdma2(void *arg, bus_dma_segment_t *dm_segs, int nseg, int error)
bus_dmamap_sync(isp->isp_osinfo.dmat, PISP_PCMD(csio)->dmap, BUS_DMASYNC_PREREAD);
ddir = ISP_FROM_DEVICE;
} else {
+ dm_segs = NULL;
+ nseg = 0;
ddir = ISP_NOXFR;
}
} else {
OpenPOWER on IntegriCloud