aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_iba6120.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_iba6120.c')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_iba6120.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_iba6120.c b/drivers/infiniband/hw/ipath/ipath_iba6120.c
index bcb70d67dbb9..2345bb011acd 100644
--- a/drivers/infiniband/hw/ipath/ipath_iba6120.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba6120.c
@@ -791,6 +791,7 @@ static void ipath_setup_pe_setextled(struct ipath_devdata *dd, u64 lst,
791 u64 ltst) 791 u64 ltst)
792{ 792{
793 u64 extctl; 793 u64 extctl;
794 unsigned long flags = 0;
794 795
795 /* the diags use the LED to indicate diag info, so we leave 796 /* the diags use the LED to indicate diag info, so we leave
796 * the external LED alone when the diags are running */ 797 * the external LED alone when the diags are running */
@@ -807,6 +808,7 @@ static void ipath_setup_pe_setextled(struct ipath_devdata *dd, u64 lst,
807 : INFINIPATH_IBCS_L_STATE_DOWN; 808 : INFINIPATH_IBCS_L_STATE_DOWN;
808 } 809 }
809 810
811 spin_lock_irqsave(&dd->ipath_gpio_lock, flags);
810 extctl = dd->ipath_extctrl & ~(INFINIPATH_EXTC_LED1PRIPORT_ON | 812 extctl = dd->ipath_extctrl & ~(INFINIPATH_EXTC_LED1PRIPORT_ON |
811 INFINIPATH_EXTC_LED2PRIPORT_ON); 813 INFINIPATH_EXTC_LED2PRIPORT_ON);
812 814
@@ -816,6 +818,7 @@ static void ipath_setup_pe_setextled(struct ipath_devdata *dd, u64 lst,
816 extctl |= INFINIPATH_EXTC_LED1PRIPORT_ON; 818 extctl |= INFINIPATH_EXTC_LED1PRIPORT_ON;
817 dd->ipath_extctrl = extctl; 819 dd->ipath_extctrl = extctl;
818 ipath_write_kreg(dd, dd->ipath_kregs->kr_extctrl, extctl); 820 ipath_write_kreg(dd, dd->ipath_kregs->kr_extctrl, extctl);
821 spin_unlock_irqrestore(&dd->ipath_gpio_lock, flags);
819} 822}
820 823
821/** 824/**