summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAbhishek Kondaveeti <akondave@codeaurora.org>2016-04-12 15:50:57 +0530
committerKyle Yan <kyan@codeaurora.org>2016-06-22 14:41:29 -0700
commitaa540b624d39bb6017601aeae95159b65b375e23 (patch)
treefb6acb08c2c98d9d2d88f52d2cc2e2557fdb7f5e /drivers
parentb5bb5c7d6fbba20566d8a3d59842fc51c64e5372 (diff)
msm: isp: Avoid unaligned register access
Unaligned register access will reslut in device crash. Avoid them by checking the register address before accessing them. Change-Id: Ib58efa2a68115ec9929b9270c123c904737196ee Signed-off-by: Abhishek Kondaveeti <akondave@codeaurora.org> Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
index 83c5a7d43cac..be1d299956d7 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
@@ -976,7 +976,8 @@ static int msm_isp_send_hw_cmd(struct vfe_device *vfe_dev,
(UINT_MAX - reg_cfg_cmd->u.rw_info.len)) ||
((reg_cfg_cmd->u.rw_info.reg_offset +
reg_cfg_cmd->u.rw_info.len) >
- vfe_dev->vfe_base_size)) {
+ vfe_dev->vfe_base_size) ||
+ (reg_cfg_cmd->u.rw_info.reg_offset & 0x3)) {
pr_err("%s:%d reg_offset %d len %d res %d\n",
__func__, __LINE__,
reg_cfg_cmd->u.rw_info.reg_offset,
@@ -1076,7 +1077,8 @@ static int msm_isp_send_hw_cmd(struct vfe_device *vfe_dev,
reg_cfg_cmd->u.mask_info.reg_offset) ||
(vfe_dev->vfe_base_size <
reg_cfg_cmd->u.mask_info.reg_offset +
- sizeof(temp))) {
+ sizeof(temp)) ||
+ (reg_cfg_cmd->u.mask_info.reg_offset & 0x3)) {
pr_err("%s: VFE_CFG_MASK: Invalid length\n", __func__);
return -EINVAL;
}