Loading drivers/media/platform/msm/camera_v2/sensor/msm_sensor.c +14 −16 Original line number Diff line number Diff line Loading @@ -721,10 +721,15 @@ static int msm_sensor_config32(struct msm_sensor_ctrl_t *s_ctrl, } case CFG_SLAVE_READ_I2C: { struct msm_camera_i2c_read_config read_config; struct msm_camera_i2c_read_config *read_config_ptr = NULL; uint16_t local_data = 0; uint16_t orig_slave_addr = 0, read_slave_addr = 0; if (copy_from_user(&read_config, (void *)compat_ptr(cdata->cfg.setting), read_config_ptr = (struct msm_camera_i2c_read_config *) compat_ptr(cdata->cfg.setting); if (copy_from_user(&read_config, read_config_ptr, sizeof(struct msm_camera_i2c_read_config))) { pr_err("%s:%d failed\n", __func__, __LINE__); rc = -EFAULT; Loading Loading @@ -761,12 +766,7 @@ static int msm_sensor_config32(struct msm_sensor_ctrl_t *s_ctrl, pr_err("%s:%d: i2c_read failed\n", __func__, __LINE__); break; } if (copy_to_user(&read_config.data, (void *)&local_data, sizeof(uint16_t))) { pr_err("%s:%d copy failed\n", __func__, __LINE__); rc = -EFAULT; break; } read_config_ptr->data = local_data; break; } case CFG_WRITE_I2C_SEQ_ARRAY: { Loading Loading @@ -1037,10 +1037,13 @@ int msm_sensor_config(struct msm_sensor_ctrl_t *s_ctrl, void __user *argp) } case CFG_SLAVE_READ_I2C: { struct msm_camera_i2c_read_config read_config; struct msm_camera_i2c_read_config *read_config_ptr = NULL; uint16_t local_data = 0; uint16_t orig_slave_addr = 0, read_slave_addr = 0; if (copy_from_user(&read_config, (void *)cdata->cfg.setting, read_config_ptr = (struct msm_camera_i2c_read_config *)cdata->cfg.setting; if (copy_from_user(&read_config, read_config_ptr, sizeof(struct msm_camera_i2c_read_config))) { pr_err("%s:%d failed\n", __func__, __LINE__); rc = -EFAULT; Loading Loading @@ -1077,12 +1080,7 @@ int msm_sensor_config(struct msm_sensor_ctrl_t *s_ctrl, void __user *argp) pr_err("%s:%d: i2c_read failed\n", __func__, __LINE__); break; } if (copy_to_user(&read_config.data, (void *)&local_data, sizeof(uint16_t))) { pr_err("%s:%d copy failed\n", __func__, __LINE__); rc = -EFAULT; break; } read_config_ptr->data = local_data; break; } case CFG_SLAVE_WRITE_I2C_ARRAY: { Loading Loading
drivers/media/platform/msm/camera_v2/sensor/msm_sensor.c +14 −16 Original line number Diff line number Diff line Loading @@ -721,10 +721,15 @@ static int msm_sensor_config32(struct msm_sensor_ctrl_t *s_ctrl, } case CFG_SLAVE_READ_I2C: { struct msm_camera_i2c_read_config read_config; struct msm_camera_i2c_read_config *read_config_ptr = NULL; uint16_t local_data = 0; uint16_t orig_slave_addr = 0, read_slave_addr = 0; if (copy_from_user(&read_config, (void *)compat_ptr(cdata->cfg.setting), read_config_ptr = (struct msm_camera_i2c_read_config *) compat_ptr(cdata->cfg.setting); if (copy_from_user(&read_config, read_config_ptr, sizeof(struct msm_camera_i2c_read_config))) { pr_err("%s:%d failed\n", __func__, __LINE__); rc = -EFAULT; Loading Loading @@ -761,12 +766,7 @@ static int msm_sensor_config32(struct msm_sensor_ctrl_t *s_ctrl, pr_err("%s:%d: i2c_read failed\n", __func__, __LINE__); break; } if (copy_to_user(&read_config.data, (void *)&local_data, sizeof(uint16_t))) { pr_err("%s:%d copy failed\n", __func__, __LINE__); rc = -EFAULT; break; } read_config_ptr->data = local_data; break; } case CFG_WRITE_I2C_SEQ_ARRAY: { Loading Loading @@ -1037,10 +1037,13 @@ int msm_sensor_config(struct msm_sensor_ctrl_t *s_ctrl, void __user *argp) } case CFG_SLAVE_READ_I2C: { struct msm_camera_i2c_read_config read_config; struct msm_camera_i2c_read_config *read_config_ptr = NULL; uint16_t local_data = 0; uint16_t orig_slave_addr = 0, read_slave_addr = 0; if (copy_from_user(&read_config, (void *)cdata->cfg.setting, read_config_ptr = (struct msm_camera_i2c_read_config *)cdata->cfg.setting; if (copy_from_user(&read_config, read_config_ptr, sizeof(struct msm_camera_i2c_read_config))) { pr_err("%s:%d failed\n", __func__, __LINE__); rc = -EFAULT; Loading Loading @@ -1077,12 +1080,7 @@ int msm_sensor_config(struct msm_sensor_ctrl_t *s_ctrl, void __user *argp) pr_err("%s:%d: i2c_read failed\n", __func__, __LINE__); break; } if (copy_to_user(&read_config.data, (void *)&local_data, sizeof(uint16_t))) { pr_err("%s:%d copy failed\n", __func__, __LINE__); rc = -EFAULT; break; } read_config_ptr->data = local_data; break; } case CFG_SLAVE_WRITE_I2C_ARRAY: { Loading