video: ipu: fix out of bounds access
We need to access reg stp_rep9, but not stp_rep[(9 - 1) / 2]. If using "__raw_writel(0, DI_STP_REP(disp, 9))", this will exceeds the size of stp_rep array. Signed-off-by: Peng Fan <Peng.Fan@freescale.com> Acked-by: Liu Ying <Ying.Liu@freescale.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
parent
05bfe13210
commit
3dbdb4dd4f
@ -1119,7 +1119,7 @@ int32_t ipu_init_sync_panel(int disp, uint32_t pixel_clk,
|
||||
reg &= 0x0000FFFF;
|
||||
__raw_writel(reg, DI_STP_REP(disp, 6));
|
||||
__raw_writel(0, DI_STP_REP(disp, 7));
|
||||
__raw_writel(0, DI_STP_REP(disp, 9));
|
||||
__raw_writel(0, DI_STP_REP9(disp));
|
||||
|
||||
/* Init template microcode */
|
||||
if (disp) {
|
||||
|
@ -338,6 +338,7 @@ struct ipu_dmfc {
|
||||
#define DI_SW_GEN0(di, gen) (&DI_REG(di)->sw_gen0[gen - 1])
|
||||
#define DI_SW_GEN1(di, gen) (&DI_REG(di)->sw_gen1[gen - 1])
|
||||
#define DI_STP_REP(di, gen) (&DI_REG(di)->stp_rep[(gen - 1) / 2])
|
||||
#define DI_STP_REP9(di) (&DI_REG(di)->stp_rep9)
|
||||
#define DI_SYNC_AS_GEN(di) (&DI_REG(di)->sync_as)
|
||||
#define DI_DW_GEN(di, gen) (&DI_REG(di)->dw_gen[gen])
|
||||
#define DI_DW_SET(di, gen, set) (&DI_REG(di)->dw_set[gen + 12 * set])
|
||||
|
Loading…
Reference in New Issue
Block a user