From: abhinavk@codeaurora.org
To: kbuild-all@lists.01.org
Subject: Re: drivers/gpu/drm/msm/dp/dp_debug.c:218 dp_debug_init() warn: passing zero to 'PTR_ERR'
Date: Wed, 03 Mar 2021 16:27:12 -0800 [thread overview]
Message-ID: <cb25d69c78e9bb754bd76701c9253f44@codeaurora.org> (raw)
In-Reply-To: <20210301071431.GO2087@kadam>
[-- Attachment #1: Type: text/plain, Size: 4119 bytes --]
Hi Dan
Thanks for reporting this, will submit a change to fix this.
Abhinav
On 2021-02-28 23:14, Dan Carpenter wrote:
> tree:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> master
> head: fe07bfda2fb9cdef8a4d4008a409bb02f35f1bd8
> commit: d11a93690df7e9a7e07c0784ecad019a627b1449 drm/msm/dp: add
> debugfs support to DP driver
> config: arm64-randconfig-m031-20210301 (attached as .config)
> compiler: aarch64-linux-gcc (GCC) 9.3.0
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>
> New smatch warnings:
> drivers/gpu/drm/msm/dp/dp_debug.c:218 dp_debug_init() warn: passing
> zero to 'PTR_ERR'
>
> Old smatch warnings:
> drivers/gpu/drm/msm/dp/dp_debug.c:227 dp_debug_init() warn: passing
> zero to 'PTR_ERR'
>
> vim +/PTR_ERR +218 drivers/gpu/drm/msm/dp/dp_debug.c
>
> d11a93690df7e9 Abhinav Kumar 2020-09-12 209 static int
> dp_debug_init(struct dp_debug *dp_debug)
> d11a93690df7e9 Abhinav Kumar 2020-09-12 210 {
> d11a93690df7e9 Abhinav Kumar 2020-09-12 211 int rc = 0;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 212 struct dp_debug_private
> *debug = container_of(dp_debug,
> d11a93690df7e9 Abhinav Kumar 2020-09-12 213 struct
> dp_debug_private, dp_debug);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 214 struct dentry *dir,
> *file;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 215
> d11a93690df7e9 Abhinav Kumar 2020-09-12 216 dir =
> debugfs_create_dir(DEBUG_NAME, NULL);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 217 if (IS_ERR_OR_NULL(dir))
> {
> d11a93690df7e9 Abhinav Kumar 2020-09-12 @218 rc = PTR_ERR(dir);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 219 DRM_ERROR("[%s]
> debugfs create dir failed, rc = %d\n",
> d11a93690df7e9 Abhinav Kumar 2020-09-12 220 DEBUG_NAME, rc);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 221 goto error;
>
> Debugfs function never return NULL, but actually debugfs functions
> aren't supposed to be checked in the normal case (the abnormal case is
> where you are trying to dereference "dir" and "file" within the driver
> itself, so it doesn't apply here).
>
> So then the function becomes a lot simpler, if it's written in the
> canonical way. This should probably be documented better in the
> Documentation/filesystems/debugfs.rst file... :/
>
> static void dp_debug_init(struct dp_debug *dp_debug)
> {
> struct dp_debug_private *debug = container_of(dp_debug,
> struct dp_debug_private, dp_debug);
>
> debug->root = debugfs_create_dir(DEBUG_NAME, NULL);
> debugfs_create_file("dp_debug", 0444, dir, debug, &dp_debug_fops);
> }
>
> d11a93690df7e9 Abhinav Kumar 2020-09-12 222 }
> d11a93690df7e9 Abhinav Kumar 2020-09-12 223
> d11a93690df7e9 Abhinav Kumar 2020-09-12 224 file =
> debugfs_create_file("dp_debug", 0444, dir,
> d11a93690df7e9 Abhinav Kumar 2020-09-12 225 debug,
> &dp_debug_fops);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 226 if
> (IS_ERR_OR_NULL(file)) {
> d11a93690df7e9 Abhinav Kumar 2020-09-12 227 rc = PTR_ERR(file);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 228 DRM_ERROR("[%s]
> debugfs create file failed, rc=%d\n",
> d11a93690df7e9 Abhinav Kumar 2020-09-12 229 DEBUG_NAME, rc);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 230 goto error_remove_dir;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 231 }
> d11a93690df7e9 Abhinav Kumar 2020-09-12 232
> d11a93690df7e9 Abhinav Kumar 2020-09-12 233 debug->root = dir;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 234 return rc;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 235 error_remove_dir:
> d11a93690df7e9 Abhinav Kumar 2020-09-12 236 debugfs_remove(dir);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 237 error:
> d11a93690df7e9 Abhinav Kumar 2020-09-12 238 return rc;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 239 }
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: abhinavk@codeaurora.org
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: kbuild@lists.01.org, lkp@intel.com, kbuild-all@lists.01.org,
linux-kernel@vger.kernel.org, Rob Clark <robdclark@chromium.org>
Subject: Re: drivers/gpu/drm/msm/dp/dp_debug.c:218 dp_debug_init() warn: passing zero to 'PTR_ERR'
Date: Wed, 03 Mar 2021 16:27:12 -0800 [thread overview]
Message-ID: <cb25d69c78e9bb754bd76701c9253f44@codeaurora.org> (raw)
In-Reply-To: <20210301071431.GO2087@kadam>
Hi Dan
Thanks for reporting this, will submit a change to fix this.
Abhinav
On 2021-02-28 23:14, Dan Carpenter wrote:
> tree:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> master
> head: fe07bfda2fb9cdef8a4d4008a409bb02f35f1bd8
> commit: d11a93690df7e9a7e07c0784ecad019a627b1449 drm/msm/dp: add
> debugfs support to DP driver
> config: arm64-randconfig-m031-20210301 (attached as .config)
> compiler: aarch64-linux-gcc (GCC) 9.3.0
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>
> New smatch warnings:
> drivers/gpu/drm/msm/dp/dp_debug.c:218 dp_debug_init() warn: passing
> zero to 'PTR_ERR'
>
> Old smatch warnings:
> drivers/gpu/drm/msm/dp/dp_debug.c:227 dp_debug_init() warn: passing
> zero to 'PTR_ERR'
>
> vim +/PTR_ERR +218 drivers/gpu/drm/msm/dp/dp_debug.c
>
> d11a93690df7e9 Abhinav Kumar 2020-09-12 209 static int
> dp_debug_init(struct dp_debug *dp_debug)
> d11a93690df7e9 Abhinav Kumar 2020-09-12 210 {
> d11a93690df7e9 Abhinav Kumar 2020-09-12 211 int rc = 0;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 212 struct dp_debug_private
> *debug = container_of(dp_debug,
> d11a93690df7e9 Abhinav Kumar 2020-09-12 213 struct
> dp_debug_private, dp_debug);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 214 struct dentry *dir,
> *file;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 215
> d11a93690df7e9 Abhinav Kumar 2020-09-12 216 dir =
> debugfs_create_dir(DEBUG_NAME, NULL);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 217 if (IS_ERR_OR_NULL(dir))
> {
> d11a93690df7e9 Abhinav Kumar 2020-09-12 @218 rc = PTR_ERR(dir);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 219 DRM_ERROR("[%s]
> debugfs create dir failed, rc = %d\n",
> d11a93690df7e9 Abhinav Kumar 2020-09-12 220 DEBUG_NAME, rc);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 221 goto error;
>
> Debugfs function never return NULL, but actually debugfs functions
> aren't supposed to be checked in the normal case (the abnormal case is
> where you are trying to dereference "dir" and "file" within the driver
> itself, so it doesn't apply here).
>
> So then the function becomes a lot simpler, if it's written in the
> canonical way. This should probably be documented better in the
> Documentation/filesystems/debugfs.rst file... :/
>
> static void dp_debug_init(struct dp_debug *dp_debug)
> {
> struct dp_debug_private *debug = container_of(dp_debug,
> struct dp_debug_private, dp_debug);
>
> debug->root = debugfs_create_dir(DEBUG_NAME, NULL);
> debugfs_create_file("dp_debug", 0444, dir, debug, &dp_debug_fops);
> }
>
> d11a93690df7e9 Abhinav Kumar 2020-09-12 222 }
> d11a93690df7e9 Abhinav Kumar 2020-09-12 223
> d11a93690df7e9 Abhinav Kumar 2020-09-12 224 file =
> debugfs_create_file("dp_debug", 0444, dir,
> d11a93690df7e9 Abhinav Kumar 2020-09-12 225 debug,
> &dp_debug_fops);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 226 if
> (IS_ERR_OR_NULL(file)) {
> d11a93690df7e9 Abhinav Kumar 2020-09-12 227 rc = PTR_ERR(file);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 228 DRM_ERROR("[%s]
> debugfs create file failed, rc=%d\n",
> d11a93690df7e9 Abhinav Kumar 2020-09-12 229 DEBUG_NAME, rc);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 230 goto error_remove_dir;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 231 }
> d11a93690df7e9 Abhinav Kumar 2020-09-12 232
> d11a93690df7e9 Abhinav Kumar 2020-09-12 233 debug->root = dir;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 234 return rc;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 235 error_remove_dir:
> d11a93690df7e9 Abhinav Kumar 2020-09-12 236 debugfs_remove(dir);
> d11a93690df7e9 Abhinav Kumar 2020-09-12 237 error:
> d11a93690df7e9 Abhinav Kumar 2020-09-12 238 return rc;
> d11a93690df7e9 Abhinav Kumar 2020-09-12 239 }
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
next prev parent reply other threads:[~2021-03-04 0:27 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-01 7:14 drivers/gpu/drm/msm/dp/dp_debug.c:218 dp_debug_init() warn: passing zero to 'PTR_ERR' Dan Carpenter
2021-03-01 7:14 ` Dan Carpenter
2021-03-01 7:14 ` Dan Carpenter
2021-03-04 0:27 ` abhinavk [this message]
2021-03-04 0:27 ` abhinavk
-- strict thread matches above, loose matches on Subject: below --
2021-03-01 6:53 kernel test robot
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=cb25d69c78e9bb754bd76701c9253f44@codeaurora.org \
--to=abhinavk@codeaurora.org \
--cc=kbuild-all@lists.01.org \
/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.