From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [agd5f:drm-next 365/659] drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:461 amdgpu_debugfs_gprwave_read() warn: ignoring unreachable code.
Date: Tue, 23 May 2023 10:36:29 +0800 [thread overview]
Message-ID: <202305231007.OF3LwE81-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Tom St Denis <tom.stdenis@amd.com>
CC: Alex Deucher <alexander.deucher@amd.com>
CC: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
tree: https://gitlab.freedesktop.org/agd5f/linux.git drm-next
head: 1a998fe528707c9a69fff9da6cd877f3f5c7eb0a
commit: 164fb294093338157cb20fdbe226a07fc3d8af0d [365/659] drm/amd/amdgpu: Update debugfs for XCC support (v3)
:::::: branch date: 6 hours ago
:::::: commit date: 5 days ago
config: s390-randconfig-m031-20230522 (https://download.01.org/0day-ci/archive/20230523/202305231007.OF3LwE81-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 12.1.0
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202305231007.OF3LwE81-lkp@intel.com/
New smatch warnings:
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:461 amdgpu_debugfs_gprwave_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:498 amdgpu_debugfs_gprwave_ioctl() warn: inconsistent returns '&rd->lock'.
Old smatch warnings:
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:543 amdgpu_debugfs_regs_pcie_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:656 amdgpu_debugfs_regs_didt_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:769 amdgpu_debugfs_regs_smc_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:925 amdgpu_debugfs_gca_config_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1003 amdgpu_debugfs_sensor_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1089 amdgpu_debugfs_wave_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1182 amdgpu_debugfs_gpr_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1237 amdgpu_debugfs_gfxoff_residency_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1336 amdgpu_debugfs_gfxoff_count_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1431 amdgpu_debugfs_gfxoff_read() warn: ignoring unreachable code.
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1472 amdgpu_debugfs_gfxoff_status_read() warn: ignoring unreachable code.
vim +461 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
164fb294093338 Tom St Denis 2022-10-11 395
164fb294093338 Tom St Denis 2022-10-11 396 static ssize_t amdgpu_debugfs_gprwave_read(struct file *f, char __user *buf, size_t size, loff_t *pos)
164fb294093338 Tom St Denis 2022-10-11 397 {
164fb294093338 Tom St Denis 2022-10-11 398 struct amdgpu_debugfs_gprwave_data *rd = f->private_data;
164fb294093338 Tom St Denis 2022-10-11 399 struct amdgpu_device *adev = rd->adev;
164fb294093338 Tom St Denis 2022-10-11 400 ssize_t result = 0;
164fb294093338 Tom St Denis 2022-10-11 401 int r;
164fb294093338 Tom St Denis 2022-10-11 402 uint32_t *data, x;
164fb294093338 Tom St Denis 2022-10-11 403
164fb294093338 Tom St Denis 2022-10-11 404 if (size & 0x3 || *pos & 0x3)
164fb294093338 Tom St Denis 2022-10-11 405 return -EINVAL;
164fb294093338 Tom St Denis 2022-10-11 406
164fb294093338 Tom St Denis 2022-10-11 407 r = pm_runtime_get_sync(adev_to_drm(adev)->dev);
164fb294093338 Tom St Denis 2022-10-11 408 if (r < 0) {
164fb294093338 Tom St Denis 2022-10-11 409 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
164fb294093338 Tom St Denis 2022-10-11 410 return r;
164fb294093338 Tom St Denis 2022-10-11 411 }
164fb294093338 Tom St Denis 2022-10-11 412
164fb294093338 Tom St Denis 2022-10-11 413 r = amdgpu_virt_enable_access_debugfs(adev);
164fb294093338 Tom St Denis 2022-10-11 414 if (r < 0) {
164fb294093338 Tom St Denis 2022-10-11 415 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
164fb294093338 Tom St Denis 2022-10-11 416 return r;
164fb294093338 Tom St Denis 2022-10-11 417 }
164fb294093338 Tom St Denis 2022-10-11 418
164fb294093338 Tom St Denis 2022-10-11 419 data = kcalloc(1024, sizeof(*data), GFP_KERNEL);
164fb294093338 Tom St Denis 2022-10-11 420 if (!data) {
164fb294093338 Tom St Denis 2022-10-11 421 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
164fb294093338 Tom St Denis 2022-10-11 422 amdgpu_virt_disable_access_debugfs(adev);
164fb294093338 Tom St Denis 2022-10-11 423 return -ENOMEM;
164fb294093338 Tom St Denis 2022-10-11 424 }
164fb294093338 Tom St Denis 2022-10-11 425
164fb294093338 Tom St Denis 2022-10-11 426 /* switch to the specific se/sh/cu */
164fb294093338 Tom St Denis 2022-10-11 427 mutex_lock(&adev->grbm_idx_mutex);
164fb294093338 Tom St Denis 2022-10-11 428 amdgpu_gfx_select_se_sh(adev, rd->id.se, rd->id.sh, rd->id.cu, rd->id.xcc_id);
164fb294093338 Tom St Denis 2022-10-11 429
164fb294093338 Tom St Denis 2022-10-11 430 if (!rd->id.gpr_or_wave) {
164fb294093338 Tom St Denis 2022-10-11 431 x = 0;
164fb294093338 Tom St Denis 2022-10-11 432 if (adev->gfx.funcs->read_wave_data)
164fb294093338 Tom St Denis 2022-10-11 433 adev->gfx.funcs->read_wave_data(adev, rd->id.xcc_id, rd->id.simd, rd->id.wave, data, &x);
164fb294093338 Tom St Denis 2022-10-11 434 } else {
164fb294093338 Tom St Denis 2022-10-11 435 x = size >> 2;
164fb294093338 Tom St Denis 2022-10-11 436 if (rd->id.gpr.vpgr_or_sgpr) {
164fb294093338 Tom St Denis 2022-10-11 437 if (adev->gfx.funcs->read_wave_vgprs)
164fb294093338 Tom St Denis 2022-10-11 438 adev->gfx.funcs->read_wave_vgprs(adev, rd->id.xcc_id, rd->id.simd, rd->id.wave, rd->id.gpr.thread, *pos, size>>2, data);
164fb294093338 Tom St Denis 2022-10-11 439 } else {
164fb294093338 Tom St Denis 2022-10-11 440 if (adev->gfx.funcs->read_wave_sgprs)
164fb294093338 Tom St Denis 2022-10-11 441 adev->gfx.funcs->read_wave_sgprs(adev, rd->id.xcc_id, rd->id.simd, rd->id.wave, *pos, size>>2, data);
164fb294093338 Tom St Denis 2022-10-11 442 }
164fb294093338 Tom St Denis 2022-10-11 443 }
164fb294093338 Tom St Denis 2022-10-11 444
164fb294093338 Tom St Denis 2022-10-11 445 amdgpu_gfx_select_se_sh(adev, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, rd->id.xcc_id);
164fb294093338 Tom St Denis 2022-10-11 446 mutex_unlock(&adev->grbm_idx_mutex);
164fb294093338 Tom St Denis 2022-10-11 447
164fb294093338 Tom St Denis 2022-10-11 448 pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
164fb294093338 Tom St Denis 2022-10-11 449 pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
164fb294093338 Tom St Denis 2022-10-11 450
164fb294093338 Tom St Denis 2022-10-11 451 if (!x) {
164fb294093338 Tom St Denis 2022-10-11 452 result = -EINVAL;
164fb294093338 Tom St Denis 2022-10-11 453 goto done;
164fb294093338 Tom St Denis 2022-10-11 454 }
164fb294093338 Tom St Denis 2022-10-11 455
164fb294093338 Tom St Denis 2022-10-11 456 while (size && (*pos < x * 4)) {
164fb294093338 Tom St Denis 2022-10-11 457 uint32_t value;
164fb294093338 Tom St Denis 2022-10-11 458
164fb294093338 Tom St Denis 2022-10-11 459 value = data[*pos >> 2];
164fb294093338 Tom St Denis 2022-10-11 460 r = put_user(value, (uint32_t *)buf);
164fb294093338 Tom St Denis 2022-10-11 @461 if (r) {
164fb294093338 Tom St Denis 2022-10-11 462 result = r;
164fb294093338 Tom St Denis 2022-10-11 463 goto done;
164fb294093338 Tom St Denis 2022-10-11 464 }
164fb294093338 Tom St Denis 2022-10-11 465
164fb294093338 Tom St Denis 2022-10-11 466 result += 4;
164fb294093338 Tom St Denis 2022-10-11 467 buf += 4;
164fb294093338 Tom St Denis 2022-10-11 468 *pos += 4;
164fb294093338 Tom St Denis 2022-10-11 469 size -= 4;
164fb294093338 Tom St Denis 2022-10-11 470 }
164fb294093338 Tom St Denis 2022-10-11 471
164fb294093338 Tom St Denis 2022-10-11 472 done:
164fb294093338 Tom St Denis 2022-10-11 473 amdgpu_virt_disable_access_debugfs(adev);
164fb294093338 Tom St Denis 2022-10-11 474 kfree(data);
164fb294093338 Tom St Denis 2022-10-11 475 return result;
164fb294093338 Tom St Denis 2022-10-11 476 }
164fb294093338 Tom St Denis 2022-10-11 477
164fb294093338 Tom St Denis 2022-10-11 478 static long amdgpu_debugfs_gprwave_ioctl(struct file *f, unsigned int cmd, unsigned long data)
164fb294093338 Tom St Denis 2022-10-11 479 {
164fb294093338 Tom St Denis 2022-10-11 480 struct amdgpu_debugfs_gprwave_data *rd = f->private_data;
164fb294093338 Tom St Denis 2022-10-11 481 int r;
164fb294093338 Tom St Denis 2022-10-11 482
164fb294093338 Tom St Denis 2022-10-11 483 mutex_lock(&rd->lock);
164fb294093338 Tom St Denis 2022-10-11 484
164fb294093338 Tom St Denis 2022-10-11 485 switch (cmd) {
164fb294093338 Tom St Denis 2022-10-11 486 case AMDGPU_DEBUGFS_GPRWAVE_IOC_SET_STATE:
164fb294093338 Tom St Denis 2022-10-11 487 r = copy_from_user(&rd->id, (struct amdgpu_debugfs_gprwave_iocdata *)data, sizeof rd->id);
164fb294093338 Tom St Denis 2022-10-11 488 if (r)
164fb294093338 Tom St Denis 2022-10-11 489 return r ? -EINVAL : 0;
164fb294093338 Tom St Denis 2022-10-11 490 goto done;
164fb294093338 Tom St Denis 2022-10-11 491 default:
164fb294093338 Tom St Denis 2022-10-11 492 r = -EINVAL;
164fb294093338 Tom St Denis 2022-10-11 493 goto done;
164fb294093338 Tom St Denis 2022-10-11 494 }
164fb294093338 Tom St Denis 2022-10-11 495
164fb294093338 Tom St Denis 2022-10-11 496 done:
164fb294093338 Tom St Denis 2022-10-11 497 mutex_unlock(&rd->lock);
164fb294093338 Tom St Denis 2022-10-11 @498 return r;
164fb294093338 Tom St Denis 2022-10-11 499 }
164fb294093338 Tom St Denis 2022-10-11 500
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2023-05-23 2:36 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202305231007.OF3LwE81-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.