[AMD Public Use] Hi Dan: Please check the following piece of code in amdgpu_ras_debugfs_ctrl_parse_data: if (op != -1) { if (amdgpu_ras_find_block_id_by_name(block_name, &block_id)) return -EINVAL; data->head.block = block_id; amdgpu_ras_find_block_id_by_name will return error directly if someone try to provide an invalid block_name intentionally via debugfs. Regards, Tao > -----Original Message----- > From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Dan > Carpenter > Sent: 2020年5月5日 17:13 > To: Pan, Xinhui <Xinhui.Pan@xxxxxxx> > Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx > Subject: [bug report] drm/amdgpu: add amdgpu_ras.c to support ras (v2) > > Hello xinhui pan, > > The patch c030f2e4166c: "drm/amdgpu: add amdgpu_ras.c to support ras > (v2)" from Oct 31, 2018, leads to the following static checker > warning: > > drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c:620 > amdgpu_ras_feature_enable() > warn: uncapped user index 'ras_block_string[head->block]' > > drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > 587 int amdgpu_ras_feature_enable(struct amdgpu_device *adev, > 588 struct ras_common_if *head, bool enable) > 589 { > 590 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); > 591 union ta_ras_cmd_input info; > 592 int ret; > 593 > 594 if (!con) > 595 return -EINVAL; > 596 > 597 if (!enable) { > 598 info.disable_features = (struct ta_ras_disable_features_input) > { > 599 .block_id = amdgpu_ras_block_to_ta(head->block), > 600 .error_type = amdgpu_ras_error_to_ta(head->type), > 601 }; > 602 } else { > 603 info.enable_features = (struct ta_ras_enable_features_input) > { > 604 .block_id = amdgpu_ras_block_to_ta(head->block), > 605 .error_type = amdgpu_ras_error_to_ta(head->type), > 606 }; > 607 } > 608 > 609 /* Do not enable if it is not allowed. */ > 610 WARN_ON(enable && !amdgpu_ras_is_feature_allowed(adev, > head)); > 611 /* Are we alerady in that state we are going to set? */ > 612 if (!(!!enable ^ !!amdgpu_ras_is_feature_enabled(adev, head))) > 613 return 0; > 614 > 615 if (!amdgpu_ras_intr_triggered()) { > 616 ret = psp_ras_enable_features(&adev->psp, &info, enable); > 617 if (ret) { > 618 amdgpu_ras_parse_status_code(adev, > 619 enable ? "enable":"disable", > 620 ras_block_str(head->block), > ^^^^^^^^^^^ The head->block > value can be set to anything using debugfs. That's a problem because it > could easily lead to a kernel panic (which is > annoying) and also because these days we try to restrict what root can do. > > 621 (enum ta_ras_status)ret); > 622 if (ret == TA_RAS_STATUS__RESET_NEEDED) > 623 return -EAGAIN; > 624 return -EINVAL; > 625 } > 626 } > 627 > 628 /* setup the obj */ > 629 __amdgpu_ras_feature_enable(adev, head, enable); > 630 > 631 return 0; > 632 } > > regards, > dan carpenter > _______________________________________________ > amd-gfx mailing list > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.f > reedesktop.org%2Fmailman%2Flistinfo%2Famd- > gfx&data=02%7C01%7Ctao.zhou1%40amd.com%7Cd9925eca763149180 > ea508d7f0d47cfe%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6 > 37242667754892396&sdata=k%2FMTgz9D1jIJGRFBu2Yuu6wuHP%2BPbR > vEcNJp87slIJE%3D&reserved=0 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx