| From fe911197eb769c8259e943a84d4f46152e2d8859 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 15 Jul 2020 14:01:29 +0800 |
| Subject: drm/amd/powerplay: suppress compile error around BUG_ON |
| |
| From: Evan Quan <evan.quan@amd.com> |
| |
| [ Upstream commit 75bc07e2403caea9ecac69f766dfb7dc33547594 ] |
| |
| To suppress the compile error below for "ARCH=arc". |
| drivers/gpu/drm/amd/amdgpu/../powerplay/arcturus_ppt.c: In function 'arcturus_fill_eeprom_i2c_req': |
| >> arch/arc/include/asm/bug.h:22:2: error: implicit declaration of function 'pr_warn'; did you mean 'pci_warn'? [-Werror=implicit-function-declaration] |
| 22 | pr_warn("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); \ |
| | ^~~~~~~ |
| include/asm-generic/bug.h:62:57: note: in expansion of macro 'BUG' |
| 62 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) |
| | ^~~ |
| drivers/gpu/drm/amd/amdgpu/../powerplay/arcturus_ppt.c:2157:2: note: in expansion of macro 'BUG_ON' |
| 2157 | BUG_ON(numbytes > MAX_SW_I2C_COMMANDS); |
| |
| Signed-off-by: Evan Quan <evan.quan@amd.com> |
| Acked-by: Alex Deucher <alexander.deucher@amd.com> |
| Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/amd/powerplay/arcturus_ppt.c | 14 ++++++++++++-- |
| 1 file changed, 12 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c |
| index 1ef0923f71906..9ad0e6f18be49 100644 |
| --- a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c |
| +++ b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c |
| @@ -2035,8 +2035,6 @@ static void arcturus_fill_eeprom_i2c_req(SwI2cRequest_t *req, bool write, |
| { |
| int i; |
| |
| - BUG_ON(numbytes > MAX_SW_I2C_COMMANDS); |
| - |
| req->I2CcontrollerPort = 0; |
| req->I2CSpeed = 2; |
| req->SlaveAddress = address; |
| @@ -2074,6 +2072,12 @@ static int arcturus_i2c_eeprom_read_data(struct i2c_adapter *control, |
| struct smu_table_context *smu_table = &adev->smu.smu_table; |
| struct smu_table *table = &smu_table->driver_table; |
| |
| + if (numbytes > MAX_SW_I2C_COMMANDS) { |
| + dev_err(adev->dev, "numbytes requested %d is over max allowed %d\n", |
| + numbytes, MAX_SW_I2C_COMMANDS); |
| + return -EINVAL; |
| + } |
| + |
| memset(&req, 0, sizeof(req)); |
| arcturus_fill_eeprom_i2c_req(&req, false, address, numbytes, data); |
| |
| @@ -2110,6 +2114,12 @@ static int arcturus_i2c_eeprom_write_data(struct i2c_adapter *control, |
| SwI2cRequest_t req; |
| struct amdgpu_device *adev = to_amdgpu_device(control); |
| |
| + if (numbytes > MAX_SW_I2C_COMMANDS) { |
| + dev_err(adev->dev, "numbytes requested %d is over max allowed %d\n", |
| + numbytes, MAX_SW_I2C_COMMANDS); |
| + return -EINVAL; |
| + } |
| + |
| memset(&req, 0, sizeof(req)); |
| arcturus_fill_eeprom_i2c_req(&req, true, address, numbytes, data); |
| |
| -- |
| 2.25.1 |
| |