aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/vt6655/device_main.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c
index 1d3908d044d0..5a5fd937a442 100644
--- a/drivers/staging/vt6655/device_main.c
+++ b/drivers/staging/vt6655/device_main.c
@@ -2318,6 +2318,7 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
2318 int handled = 0; 2318 int handled = 0;
2319 unsigned char byData = 0; 2319 unsigned char byData = 0;
2320 int ii = 0; 2320 int ii = 0;
2321 unsigned long flags;
2321 2322
2322 MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr); 2323 MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr);
2323 2324
@@ -2331,7 +2332,8 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
2331 2332
2332 handled = 1; 2333 handled = 1;
2333 MACvIntDisable(pDevice->PortOffset); 2334 MACvIntDisable(pDevice->PortOffset);
2334 spin_lock_irq(&pDevice->lock); 2335
2336 spin_lock_irqsave(&pDevice->lock, flags);
2335 2337
2336 //Make sure current page is 0 2338 //Make sure current page is 0
2337 VNSvInPortB(pDevice->PortOffset + MAC_REG_PAGE1SEL, &byOrgPageSel); 2339 VNSvInPortB(pDevice->PortOffset + MAC_REG_PAGE1SEL, &byOrgPageSel);
@@ -2560,7 +2562,8 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
2560 if (byOrgPageSel == 1) 2562 if (byOrgPageSel == 1)
2561 MACvSelectPage1(pDevice->PortOffset); 2563 MACvSelectPage1(pDevice->PortOffset);
2562 2564
2563 spin_unlock_irq(&pDevice->lock); 2565 spin_unlock_irqrestore(&pDevice->lock, flags);
2566
2564 MACvIntEnable(pDevice->PortOffset, IMR_MASK_VALUE); 2567 MACvIntEnable(pDevice->PortOffset, IMR_MASK_VALUE);
2565 2568
2566 return IRQ_RETVAL(handled); 2569 return IRQ_RETVAL(handled);