Hello Rex Zhu, The patch 8b55d17eeea7: "drm/amdgpu: refine uvd4.2 init/stop code." from Jan 20, 2017, leads to the following static checker warning: drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c:397 uvd_v4_2_stop() info: ignoring unreachable code. drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c:407 uvd_v4_2_stop() info: ignoring unreachable code. drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c:420 uvd_v4_2_stop() info: ignoring unreachable code. drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c 390 static void uvd_v4_2_stop(struct amdgpu_device *adev) 391 { 392 uint32_t i, j; 393 uint32_t status; 394 395 WREG32(mmUVD_RBC_RB_CNTL, 0x11010101); 396 397 for (i = 0; i < 10; ++i) { 398 for (j = 0; j < 100; ++j) { 399 status = RREG32(mmUVD_STATUS); 400 if (status & 2) 401 break; 402 mdelay(1); 403 } 404 break; This i < 10 loops don't make sense because we break after the first iteration... What is intended? 405 } 406 407 for (i = 0; i < 10; ++i) { 408 for (j = 0; j < 100; ++j) { 409 status = RREG32(mmUVD_LMI_STATUS); 410 if (status & 0xf) 411 break; 412 mdelay(1); 413 } 414 break; ^^^^^^ 415 } 416 417 /* Stall UMC and register bus before resetting VCPU */ 418 WREG32_P(mmUVD_LMI_CTRL2, 1 << 8, ~(1 << 8)); 419 420 for (i = 0; i < 10; ++i) { 421 for (j = 0; j < 100; ++j) { 422 status = RREG32(mmUVD_LMI_STATUS); 423 if (status & 0x240) 424 break; 425 mdelay(1); 426 } 427 break; ^^^^^^ 428 } 429 regards, dan carpenter