[bug report] drm/amd/powerplay: implement fw related smu interface for iceland.
Dan Carpenter
dan.carpenter at oracle.com
Tue Oct 11 06:16:19 UTC 2016
Hello Rex Zhu,
The patch 18aafc59b106: "drm/amd/powerplay: implement fw related smu
interface for iceland." from Aug 23, 2016, leads to the following
static checker warning:
drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/iceland_smc.c:2462 iceland_set_mc_special_registers()
error: buffer overflow 'table->mc_reg_address' 16 <= 16
drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr/iceland_smc.c
2441 j++;
2442 PP_ASSERT_WITH_CODE((j < SMU71_DISCRETE_MC_REGISTER_ARRAY_SIZE),
^^^^^^^^^^
Note the < here.
2443 "Invalid VramInfo table.", return -EINVAL);
2444
2445 temp_reg = cgs_read_register(hwmgr->device, mmMC_PMG_CMD_MRS);
2446 table->mc_reg_address[j].s1 = mmMC_PMG_CMD_MRS;
2447 table->mc_reg_address[j].s0 = mmMC_SEQ_PMG_CMD_MRS_LP;
2448 for (k = 0; k < table->num_entries; k++) {
2449 table->mc_reg_table_entry[k].mc_data[j] =
2450 (temp_reg & 0xffff0000) |
2451 (table->mc_reg_table_entry[k].mc_data[i] & 0x0000ffff);
2452
2453 if (!data->is_memory_gddr5) {
2454 table->mc_reg_table_entry[k].mc_data[j] |= 0x100;
2455 }
2456 }
2457 j++;
2458 PP_ASSERT_WITH_CODE((j <= SMU71_DISCRETE_MC_REGISTER_ARRAY_SIZE),
This should be < as well.
2459 "Invalid VramInfo table.", return -EINVAL);
2460
2461 if (!data->is_memory_gddr5) {
2462 table->mc_reg_address[j].s1 = mmMC_PMG_AUTO_CMD;
2463 table->mc_reg_address[j].s0 = mmMC_PMG_AUTO_CMD;
2464 for (k = 0; k < table->num_entries; k++) {
2465 table->mc_reg_table_entry[k].mc_data[j] =
2466 (table->mc_reg_table_entry[k].mc_data[i] & 0xffff0000) >> 16;
2467 }
2468 j++;
2469 PP_ASSERT_WITH_CODE((j <= SMU71_DISCRETE_MC_REGISTER_ARRAY_SIZE),
But I don't know about this one.
2470 "Invalid VramInfo table.", return -EINVAL);
2471 }
2472
2473 break;
2474
2475 case mmMC_SEQ_RESERVE_M:
regards,
dan carpenter
More information about the dri-devel
mailing list