Skip to content

Commit a2bd970

Browse files
nvincent-vosslohwsakernel
authored andcommitted
i2c: cpm: Fix i2c_ram structure
the i2c_ram structure is missing the sdmatmp field mentionned in datasheet for MPC8272 at paragraph 36.5. With this field missing, the hardware would write past the allocated memory done through cpm_muram_alloc for the i2c_ram structure and land in memory allocated for the buffers descriptors corrupting the cbd_bufaddr field. Since this field is only set during setup(), the first i2c transaction would work and the following would send data read from an arbitrary memory location. Fixes: 61045db ("i2c: Add support for I2C bus on Freescale CPM1/CPM2 controllers") Signed-off-by: Nicolas VINCENT <[email protected]> Acked-by: Jochen Friedrich <[email protected]> Acked-by: Christophe Leroy <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
1 parent 845b891 commit a2bd970

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/i2c/busses/i2c-cpm.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ struct i2c_ram {
6565
char res1[4]; /* Reserved */
6666
ushort rpbase; /* Relocation pointer */
6767
char res2[2]; /* Reserved */
68+
/* The following elements are only for CPM2 */
69+
char res3[4]; /* Reserved */
70+
uint sdmatmp; /* Internal */
6871
};
6972

7073
#define I2COM_START 0x80

0 commit comments

Comments
 (0)