From: Boris Brezillon <boris.brezillon@collabora.com>
To: kernel test robot <lkp@intel.com>
Cc: Danilo Krummrich <dakr@redhat.com>,
oe-kbuild-all@lists.linux.dev, dri-devel@lists.freedesktop.org,
Boris Brezillon <bbrezillon@kernel.org>
Subject: Re: [drm-misc:for-linux-next 2/2] drivers/gpu/drm/drm_debugfs.c:212:33: sparse: sparse: non size-preserving pointer to integer cast
Date: Mon, 24 Jul 2023 09:27:44 +0200 [thread overview]
Message-ID: <20230724092744.5c5b5700@collabora.com> (raw)
In-Reply-To: <202307210230.t2OnM5g0-lkp@intel.com>
On Fri, 21 Jul 2023 02:06:16 +0800
kernel test robot <lkp@intel.com> wrote:
> tree: git://anongit.freedesktop.org/drm/drm-misc for-linux-next
> head: c7a472297169156252a50d76965eb36b081186e2
> commit: 4f66feeab173bd73e71028b8c2e1dcea07e32dd5 [2/2] drm: debugfs: provide infrastructure to dump a DRM GPU VA space
> config: i386-randconfig-r092-20230720 (https://download.01.org/0day-ci/archive/20230721/202307210230.t2OnM5g0-lkp@intel.com/config)
> compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
> reproduce: (https://download.01.org/0day-ci/archive/20230721/202307210230.t2OnM5g0-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202307210230.t2OnM5g0-lkp@intel.com/
>
> sparse warnings: (new ones prefixed by >>)
> >> drivers/gpu/drm/drm_debugfs.c:212:33: sparse: sparse: non size-preserving pointer to integer cast
>
> vim +212 drivers/gpu/drm/drm_debugfs.c
>
> 178
> 179 /**
> 180 * drm_debugfs_gpuva_info - dump the given DRM GPU VA space
> 181 * @m: pointer to the &seq_file to write
> 182 * @mgr: the &drm_gpuva_manager representing the GPU VA space
> 183 *
> 184 * Dumps the GPU VA mappings of a given DRM GPU VA manager.
> 185 *
> 186 * For each DRM GPU VA space drivers should call this function from their
> 187 * &drm_info_list's show callback.
> 188 *
> 189 * Returns: 0 on success, -ENODEV if the &mgr is not initialized
> 190 */
> 191 int drm_debugfs_gpuva_info(struct seq_file *m,
> 192 struct drm_gpuva_manager *mgr)
> 193 {
> 194 struct drm_gpuva *va, *kva = &mgr->kernel_alloc_node;
> 195
> 196 if (!mgr->name)
> 197 return -ENODEV;
> 198
> 199 seq_printf(m, "DRM GPU VA space (%s) [0x%016llx;0x%016llx]\n",
> 200 mgr->name, mgr->mm_start, mgr->mm_start + mgr->mm_range);
> 201 seq_printf(m, "Kernel reserved node [0x%016llx;0x%016llx]\n",
> 202 kva->va.addr, kva->va.addr + kva->va.range);
> 203 seq_puts(m, "\n");
> 204 seq_puts(m, " VAs | start | range | end | object | object offset\n");
> 205 seq_puts(m, "-------------------------------------------------------------------------------------------------------------\n");
> 206 drm_gpuva_for_each_va(va, mgr) {
> 207 if (unlikely(va == kva))
> 208 continue;
> 209
> 210 seq_printf(m, " | 0x%016llx | 0x%016llx | 0x%016llx | 0x%016llx | 0x%016llx\n",
> 211 va->va.addr, va->va.range, va->va.addr + va->va.range,
> > 212 (u64)va->gem.obj, va->gem.offset);
Oops, I didn't notice it when reviewing. You're leaking a kernel address
to user space here. You should probably use %p to print the GEM object
address, and add `no_hash_pointers` to your cmdline when you want to
debug things.
> 213 }
> 214
> 215 return 0;
> 216 }
> 217 EXPORT_SYMBOL(drm_debugfs_gpuva_info);
> 218
>
WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon@collabora.com>
To: kernel test robot <lkp@intel.com>
Cc: Boris Brezillon <bbrezillon@kernel.org>,
Danilo Krummrich <dakr@redhat.com>,
dri-devel@lists.freedesktop.org, oe-kbuild-all@lists.linux.dev
Subject: Re: [drm-misc:for-linux-next 2/2] drivers/gpu/drm/drm_debugfs.c:212:33: sparse: sparse: non size-preserving pointer to integer cast
Date: Mon, 24 Jul 2023 09:27:44 +0200 [thread overview]
Message-ID: <20230724092744.5c5b5700@collabora.com> (raw)
In-Reply-To: <202307210230.t2OnM5g0-lkp@intel.com>
On Fri, 21 Jul 2023 02:06:16 +0800
kernel test robot <lkp@intel.com> wrote:
> tree: git://anongit.freedesktop.org/drm/drm-misc for-linux-next
> head: c7a472297169156252a50d76965eb36b081186e2
> commit: 4f66feeab173bd73e71028b8c2e1dcea07e32dd5 [2/2] drm: debugfs: provide infrastructure to dump a DRM GPU VA space
> config: i386-randconfig-r092-20230720 (https://download.01.org/0day-ci/archive/20230721/202307210230.t2OnM5g0-lkp@intel.com/config)
> compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
> reproduce: (https://download.01.org/0day-ci/archive/20230721/202307210230.t2OnM5g0-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202307210230.t2OnM5g0-lkp@intel.com/
>
> sparse warnings: (new ones prefixed by >>)
> >> drivers/gpu/drm/drm_debugfs.c:212:33: sparse: sparse: non size-preserving pointer to integer cast
>
> vim +212 drivers/gpu/drm/drm_debugfs.c
>
> 178
> 179 /**
> 180 * drm_debugfs_gpuva_info - dump the given DRM GPU VA space
> 181 * @m: pointer to the &seq_file to write
> 182 * @mgr: the &drm_gpuva_manager representing the GPU VA space
> 183 *
> 184 * Dumps the GPU VA mappings of a given DRM GPU VA manager.
> 185 *
> 186 * For each DRM GPU VA space drivers should call this function from their
> 187 * &drm_info_list's show callback.
> 188 *
> 189 * Returns: 0 on success, -ENODEV if the &mgr is not initialized
> 190 */
> 191 int drm_debugfs_gpuva_info(struct seq_file *m,
> 192 struct drm_gpuva_manager *mgr)
> 193 {
> 194 struct drm_gpuva *va, *kva = &mgr->kernel_alloc_node;
> 195
> 196 if (!mgr->name)
> 197 return -ENODEV;
> 198
> 199 seq_printf(m, "DRM GPU VA space (%s) [0x%016llx;0x%016llx]\n",
> 200 mgr->name, mgr->mm_start, mgr->mm_start + mgr->mm_range);
> 201 seq_printf(m, "Kernel reserved node [0x%016llx;0x%016llx]\n",
> 202 kva->va.addr, kva->va.addr + kva->va.range);
> 203 seq_puts(m, "\n");
> 204 seq_puts(m, " VAs | start | range | end | object | object offset\n");
> 205 seq_puts(m, "-------------------------------------------------------------------------------------------------------------\n");
> 206 drm_gpuva_for_each_va(va, mgr) {
> 207 if (unlikely(va == kva))
> 208 continue;
> 209
> 210 seq_printf(m, " | 0x%016llx | 0x%016llx | 0x%016llx | 0x%016llx | 0x%016llx\n",
> 211 va->va.addr, va->va.range, va->va.addr + va->va.range,
> > 212 (u64)va->gem.obj, va->gem.offset);
Oops, I didn't notice it when reviewing. You're leaking a kernel address
to user space here. You should probably use %p to print the GEM object
address, and add `no_hash_pointers` to your cmdline when you want to
debug things.
> 213 }
> 214
> 215 return 0;
> 216 }
> 217 EXPORT_SYMBOL(drm_debugfs_gpuva_info);
> 218
>
next prev parent reply other threads:[~2023-07-24 7:27 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-20 18:06 [drm-misc:for-linux-next 2/2] drivers/gpu/drm/drm_debugfs.c:212:33: sparse: sparse: non size-preserving pointer to integer cast kernel test robot
2023-07-20 18:06 ` kernel test robot
2023-07-24 7:27 ` Boris Brezillon [this message]
2023-07-24 7:27 ` Boris Brezillon
2023-07-25 22:25 ` Danilo Krummrich
2023-07-25 22:25 ` Danilo Krummrich
2023-07-26 8:12 ` Boris Brezillon
2023-07-26 8:12 ` Boris Brezillon
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=20230724092744.5c5b5700@collabora.com \
--to=boris.brezillon@collabora.com \
--cc=bbrezillon@kernel.org \
--cc=dakr@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=lkp@intel.com \
--cc=oe-kbuild-all@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.