ipmi: Fix the I2C address extraction from SPMI tables
authorCorey Minyard <cminyard@mvista.com>
Fri, 6 May 2016 17:57:13 +0000 (12:57 -0500)
committerCorey Minyard <cminyard@mvista.com>
Tue, 17 May 2016 00:49:49 +0000 (19:49 -0500)
Unlike everywhere else in the IPMI specification, the I2C address
specified in the SPMI table is not shifted to the left one bit with
the LSB zero.  Instead it is not shifted with the MSB zero.

Reported-by: Sanjeev <singhsan@codeaurora.org>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
drivers/char/ipmi/ipmi_ssif.c

index 8b3be8b9257398b7f0dd306158a6428ea0949ad9..097c868986086ee6a598a41ce49c5f353d283427 100644 (file)
@@ -1870,7 +1870,7 @@ static int try_init_spmi(struct SPMITable *spmi)
                return -EIO;
        }
 
-       myaddr = spmi->addr.address >> 1;
+       myaddr = spmi->addr.address & 0x7f;
 
        return new_ssif_client(myaddr, NULL, 0, 0, SI_SPMI);
 }