Merge "msm: camera: isp: Fix invalid type conversion"
This commit is contained in:
commit
2c72b0a902
1 changed files with 23 additions and 21 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved.
|
/* Copyright (c) 2013-2017, 2019 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License version 2 and
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
@ -230,32 +230,34 @@ static long msm_ispif_cmd_ext(struct v4l2_subdev *sd,
|
||||||
long rc = 0;
|
long rc = 0;
|
||||||
struct ispif_device *ispif =
|
struct ispif_device *ispif =
|
||||||
(struct ispif_device *)v4l2_get_subdevdata(sd);
|
(struct ispif_device *)v4l2_get_subdevdata(sd);
|
||||||
struct ispif_cfg_data_ext pcdata;
|
struct ispif_cfg_data_ext pcdata = {0};
|
||||||
struct msm_ispif_param_data_ext *params = NULL;
|
struct msm_ispif_param_data_ext *params = NULL;
|
||||||
|
|
||||||
|
if (is_compat_task()) {
|
||||||
#ifdef CONFIG_COMPAT
|
#ifdef CONFIG_COMPAT
|
||||||
struct ispif_cfg_data_ext_32 *pcdata32 =
|
struct ispif_cfg_data_ext_32 *pcdata32 =
|
||||||
(struct ispif_cfg_data_ext_32 *)arg;
|
(struct ispif_cfg_data_ext_32 *)arg;
|
||||||
|
|
||||||
if (pcdata32 == NULL) {
|
if (pcdata32 == NULL) {
|
||||||
pr_err("Invalid params passed from user\n");
|
pr_err("Invalid params passed from user\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
pcdata.cfg_type = pcdata32->cfg_type;
|
pcdata.cfg_type = pcdata32->cfg_type;
|
||||||
pcdata.size = pcdata32->size;
|
pcdata.size = pcdata32->size;
|
||||||
pcdata.data = compat_ptr(pcdata32->data);
|
pcdata.data = compat_ptr(pcdata32->data);
|
||||||
|
#endif
|
||||||
#else
|
} else {
|
||||||
struct ispif_cfg_data_ext *pcdata64 =
|
struct ispif_cfg_data_ext *pcdata64 =
|
||||||
(struct ispif_cfg_data_ext *)arg;
|
(struct ispif_cfg_data_ext *)arg;
|
||||||
|
|
||||||
if (pcdata64 == NULL) {
|
if (pcdata64 == NULL) {
|
||||||
pr_err("Invalid params passed from user\n");
|
pr_err("Invalid params passed from user\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
pcdata.cfg_type = pcdata64->cfg_type;
|
||||||
|
pcdata.size = pcdata64->size;
|
||||||
|
pcdata.data = pcdata64->data;
|
||||||
}
|
}
|
||||||
pcdata.cfg_type = pcdata64->cfg_type;
|
|
||||||
pcdata.size = pcdata64->size;
|
|
||||||
pcdata.data = pcdata64->data;
|
|
||||||
#endif
|
|
||||||
if (pcdata.size != sizeof(struct msm_ispif_param_data_ext)) {
|
if (pcdata.size != sizeof(struct msm_ispif_param_data_ext)) {
|
||||||
pr_err("%s: payload size mismatch\n", __func__);
|
pr_err("%s: payload size mismatch\n", __func__);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
Loading…
Add table
Reference in a new issue