diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/atombios_i2c.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/atombios_i2c.c | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_i2c.c b/drivers/gpu/drm/amd/amdgpu/atombios_i2c.c index b374653bd6cf..f9b2ce9a98f3 100644 --- a/drivers/gpu/drm/amd/amdgpu/atombios_i2c.c +++ b/drivers/gpu/drm/amd/amdgpu/atombios_i2c.c @@ -65,8 +65,15 @@ static int amdgpu_atombios_i2c_process_i2c_ch(struct amdgpu_i2c_chan *chan,  			args.ucRegIndex = buf[0];  		if (num)  			num--; -		if (num) -			memcpy(&out, &buf[1], num); +		if (num) { +			if (buf) { +				memcpy(&out, &buf[1], num); +			} else { +				DRM_ERROR("hw i2c: missing buf with num > 1\n"); +				r = -EINVAL; +				goto done; +			} +		}  		args.lpI2CDataOut = cpu_to_le16(out);  	} else {  		if (num > ATOM_MAX_HW_I2C_READ) { |