IB/hfi1: Fix checks for Offline transient state
authorJakub Byczkowski <[email protected]>
Thu, 4 May 2017 12:13:58 +0000 (05:13 -0700)
committerDoug Ledford <[email protected]>
Thu, 4 May 2017 23:31:46 +0000 (19:31 -0400)
In goto_offline() function pstate is masked by 0xff when compared
to PLS_OFFLINE state. Mask should be 0xf0, since upper 4 bits
specify the "major" state.

Reviewed-by: Dennis Dalessandro <[email protected]>
Reviewed-by: Easwar Hariharan <[email protected]>
Signed-off-by: Jakub Byczkowski <[email protected]>
Signed-off-by: Dennis Dalessandro <[email protected]>
Signed-off-by: Doug Ledford <[email protected]>
drivers/infiniband/hw/hfi1/chip.c

index 0f6916d2d5499cc8ba02202ecfd47afd14ab93a8..c96bb3a0c7889538cb9f69c5d9f4a84097c4d24a 100644 (file)
@@ -10233,7 +10233,7 @@ static int goto_offline(struct hfi1_pportdata *ppd, u8 rem_reason)
        if (pstate == PLS_OFFLINE) {
                do_transition = 0;      /* in right state */
                do_wait = 0;            /* ...no need to wait */
-       } else if ((pstate & 0xff) == PLS_OFFLINE) {
+       } else if ((pstate & 0xf0) == PLS_OFFLINE) {
                do_transition = 0;      /* in an offline transient state */
                do_wait = 1;            /* ...wait for it to settle */
        } else {