disp: msm: dsi: add check for invalid arguments in DSI clock control
Check against the max clk_type and clk_state enumerations before to validate the type and state of DSI clocks to avoid Control Flow Integrity issues. Change-Id: Id53465c2b12debb1b356c0c91064eb017c2ca30d Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _DSI_CLK_H_
|
#ifndef _DSI_CLK_H_
|
||||||
@@ -264,8 +264,7 @@ int dsi_display_link_clk_force_update_ctrl(void *handle);
|
|||||||
*
|
*
|
||||||
* return: error code in case of failure or 0 for success.
|
* return: error code in case of failure or 0 for success.
|
||||||
*/
|
*/
|
||||||
int dsi_display_clk_ctrl(void *handle,
|
int dsi_display_clk_ctrl(void *handle, u32 clk_type, u32 clk_state);
|
||||||
enum dsi_clk_type clk_type, enum dsi_clk_state clk_state);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dsi_clk_set_link_frequencies() - set frequencies for link clks
|
* dsi_clk_set_link_frequencies() - set frequencies for link clks
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
@@ -1289,11 +1289,12 @@ int dsi_display_link_clk_force_update_ctrl(void *handle)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int dsi_display_clk_ctrl(void *handle,
|
int dsi_display_clk_ctrl(void *handle,
|
||||||
enum dsi_clk_type clk_type, enum dsi_clk_state clk_state)
|
u32 clk_type, u32 clk_state)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
if (!handle) {
|
if ((!handle) || (clk_type > DSI_ALL_CLKS) ||
|
||||||
|
(clk_state > DSI_CLK_EARLY_GATE)) {
|
||||||
DSI_ERR("Invalid arg\n");
|
DSI_ERR("Invalid arg\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user