diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig index 02bad56cac16..a91c693fd2c8 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig @@ -1922,6 +1922,14 @@ config VIDEO_S5C73M3 This is a V4L2 sensor driver for Samsung S5C73M3 8 Mpixel camera. +config VIDEO_PREISP_DUMMY_SENSOR + tristate "Preisp dummy sensor support" + depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API + help + Support for the preisp dummy sensor. + To compile this driver as a module, choose M here: the + module will be called pisp_dmy. + endmenu menu "Lens drivers" diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile index 43304155d98c..1eff331a7b6c 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -197,3 +197,4 @@ obj-$(CONFIG_VIDEO_ST_MIPID02) += st-mipid02.o obj-$(CONFIG_SDR_MAX2175) += max2175.o obj-$(CONFIG_VIDEO_OTP_EEPROM) += otp_eeprom.o +obj-$(CONFIG_VIDEO_PREISP_DUMMY_SENSOR) += preisp-dummy.o diff --git a/drivers/media/i2c/preisp-dummy.c b/drivers/media/i2c/preisp-dummy.c index 3d8ad79e3c73..fcc190d5b58e 100644 --- a/drivers/media/i2c/preisp-dummy.c +++ b/drivers/media/i2c/preisp-dummy.c @@ -287,7 +287,10 @@ static long pisp_dmy_compat_ioctl32(struct v4l2_subdev *sd, ret = pisp_dmy_ioctl(sd, cmd, inf); if (!ret) - ret = copy_to_user(up, inf, sizeof(*inf)); + if (copy_to_user(up, inf, sizeof(*inf))) { + kfree(inf); + return -EFAULT; + } kfree(inf); break; case RKMODULE_AWB_CFG: @@ -297,9 +300,12 @@ static long pisp_dmy_compat_ioctl32(struct v4l2_subdev *sd, return ret; } - ret = copy_from_user(cfg, up, sizeof(*cfg)); - if (!ret) - ret = pisp_dmy_ioctl(sd, cmd, cfg); + if (copy_from_user(cfg, up, sizeof(*cfg))) { + kfree(cfg); + return -EFAULT; + } + + ret = pisp_dmy_ioctl(sd, cmd, cfg); kfree(cfg); break; default: