Merge MoCA 2.10.4.6
Conflicts:
bmoca-6802.c
Change-Id: I52f7015d37095c8fa450f52cf1ab760c96a9075f
diff --git a/3.3/bmoca.c b/3.3/bmoca.c
index c39fa17..a35c479 100644
--- a/3.3/bmoca.c
+++ b/3.3/bmoca.c
@@ -1457,6 +1457,8 @@
u32 mask = 0;
int ret, stopped = 0;
+ mutex_lock(&priv->dev_mutex);
+
if (priv->enabled) {
mask = moca_irq_status(priv, FLUSH_IRQ);
if (mask & M2H_DMA) {
@@ -1476,6 +1478,7 @@
}
if (mask == 0) {
+ mutex_unlock(&priv->dev_mutex);
moca_enable_irq(priv);
return;
}
@@ -1484,14 +1487,13 @@
M2H_REQ_CPU0 | M2H_RESP_CPU0)) {
if (moca_get_mbx_offset(priv)) {
/* mbx interrupt but mbx_offset is bogus?? */
+ mutex_unlock(&priv->dev_mutex);
moca_enable_irq(priv);
return;
}
}
}
- mutex_lock(&priv->dev_mutex);
-
if (!priv->running) {
stopped = 1;
} else {
diff --git a/3.8/bmoca.c b/3.8/bmoca.c
index 08812d9..b55a926 100644
--- a/3.8/bmoca.c
+++ b/3.8/bmoca.c
@@ -1332,6 +1332,8 @@
u32 mask = 0;
int ret, stopped = 0;
+ mutex_lock(&priv->dev_mutex);
+
if (priv->enabled) {
mask = moca_irq_status(priv, FLUSH_IRQ);
if (mask & M2H_DMA) {
@@ -1350,6 +1352,7 @@
}
if (mask == 0) {
+ mutex_unlock(&priv->dev_mutex);
moca_enable_irq(priv);
return;
}
@@ -1358,14 +1361,13 @@
M2H_REQ_CPU0 | M2H_RESP_CPU0)) {
if (moca_get_mbx_offset(priv)) {
/* mbx interrupt but mbx_offset is bogus?? */
+ mutex_unlock(&priv->dev_mutex);
moca_enable_irq(priv);
return;
}
}
}
- mutex_lock(&priv->dev_mutex);
-
if (!priv->running) {
stopped = 1;
} else {