summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRalph Campbell2010-06-18 01:14:04 +0200
committerRoland Dreier2010-07-06 23:13:40 +0200
commit2d757a7ce06abb4afe5b3002d4cdc40e47d7facc (patch)
tree31db69c35287886cfcc2461cb265365db4a618a6
parentIB/qib: Clear eager buffer memory for each new process (diff)
downloadkernel-qcow2-linux-2d757a7ce06abb4afe5b3002d4cdc40e47d7facc.tar.gz
kernel-qcow2-linux-2d757a7ce06abb4afe5b3002d4cdc40e47d7facc.tar.xz
kernel-qcow2-linux-2d757a7ce06abb4afe5b3002d4cdc40e47d7facc.zip
IB/qib: Clear 6120 hardware error register
The hardware error register needs to be cleared or another interrupt will be generated, thus causing an infinite loop. This is a regression introduced when removing debug output. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--drivers/infiniband/hw/qib/qib_iba6120.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/qib/qib_iba6120.c b/drivers/infiniband/hw/qib/qib_iba6120.c
index 1eadadc13da8..a5e29dbb9537 100644
--- a/drivers/infiniband/hw/qib/qib_iba6120.c
+++ b/drivers/infiniband/hw/qib/qib_iba6120.c
@@ -1355,8 +1355,7 @@ static int qib_6120_bringup_serdes(struct qib_pportdata *ppd)
hwstat = qib_read_kreg64(dd, kr_hwerrstatus);
if (hwstat) {
/* should just have PLL, clear all set, in an case */
- if (hwstat & ~QLOGIC_IB_HWE_SERDESPLLFAILED)
- qib_write_kreg(dd, kr_hwerrclear, hwstat);
+ qib_write_kreg(dd, kr_hwerrclear, hwstat);
qib_write_kreg(dd, kr_errclear, ERR_MASK(HardwareErr));
}