OSDN Git Service

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 8b3be8b..097c868 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);
 }