Page MenuHomeFreeBSD

D38756.id117883.diff
No OneTemporary

D38756.id117883.diff

diff --git a/sys/arm/broadcom/bcm2835/bcm2835_dma.c b/sys/arm/broadcom/bcm2835/bcm2835_dma.c
--- a/sys/arm/broadcom/bcm2835/bcm2835_dma.c
+++ b/sys/arm/broadcom/bcm2835/bcm2835_dma.c
@@ -328,6 +328,9 @@
int ch = BCM_DMA_CH_INVALID;
int i;
+ if (sc == NULL)
+ return (BCM_DMA_CH_INVALID);
+
if (req_ch >= BCM_DMA_CH_MAX)
return (BCM_DMA_CH_INVALID);
@@ -343,13 +346,10 @@
break;
}
}
- }
- else {
- if (sc->sc_dma_ch[req_ch].flags & BCM_DMA_CH_FREE) {
- ch = req_ch;
- sc->sc_dma_ch[ch].flags &= ~BCM_DMA_CH_FREE;
- sc->sc_dma_ch[ch].flags |= BCM_DMA_CH_USED;
- }
+ } else if (sc->sc_dma_ch[req_ch].flags & BCM_DMA_CH_FREE) {
+ ch = req_ch;
+ sc->sc_dma_ch[ch].flags &= ~BCM_DMA_CH_FREE;
+ sc->sc_dma_ch[ch].flags |= BCM_DMA_CH_USED;
}
mtx_unlock(&sc->sc_mtx);
@@ -364,6 +364,9 @@
{
struct bcm_dma_softc *sc = bcm_dma_sc;
+ if (sc == NULL)
+ return (-1);
+
if (ch < 0 || ch >= BCM_DMA_CH_MAX)
return (-1);
@@ -392,6 +395,9 @@
struct bcm_dma_softc *sc = bcm_dma_sc;
struct bcm_dma_cb *cb;
+ if (sc == NULL)
+ return (-1);
+
if (ch < 0 || ch >= BCM_DMA_CH_MAX)
return (-1);
@@ -531,6 +537,9 @@
int i;
uint32_t reg;
+ if (sc == NULL)
+ return;
+
if (ch < 0 || ch >= BCM_DMA_CH_MAX)
return;
@@ -558,6 +567,9 @@
struct bcm_dma_softc *sc = bcm_dma_sc;
struct bcm_dma_cb *cb;
+ if (sc == NULL)
+ return (-1);
+
if (ch < 0 || ch >= BCM_DMA_CH_MAX)
return (-1);
@@ -597,6 +609,9 @@
struct bcm_dma_softc *sc = bcm_dma_sc;
struct bcm_dma_cb *cb;
+ if (sc == NULL)
+ return (0);
+
if (ch < 0 || ch >= BCM_DMA_CH_MAX)
return (0);

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 22, 1:52 PM (18 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31982959
Default Alt Text
D38756.id117883.diff (1 KB)

Event Timeline