From: kernel test robot <lkp@intel.com>
To: Chen Ridong <chenridong@huaweicloud.com>,
dev@lankhorst.se, mripard@kernel.org, natalie.vock@gmx.de,
tj@kernel.org, hannes@cmpxchg.org, mkoutny@suse.com
Cc: oe-kbuild-all@lists.linux.dev, cgroups@vger.kernel.org,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
lujialin4@huawei.com, chenridong@huaweicloud.com
Subject: Re: [PATCH -next 1/3] cgroup/dmem: fix NULL pointer dereference when setting max
Date: Sun, 1 Feb 2026 01:26:00 +0800 [thread overview]
Message-ID: <202602010100.5CjcoPFh-lkp@intel.com> (raw)
In-Reply-To: <20260131091202.344788-2-chenridong@huaweicloud.com>
Hi Chen,
kernel test robot noticed the following build warnings:
[auto build test WARNING on next-20260130]
url: https://github.com/intel-lab-lkp/linux/commits/Chen-Ridong/cgroup-dmem-fix-NULL-pointer-dereference-when-setting-max/20260131-173002
base: next-20260130
patch link: https://lore.kernel.org/r/20260131091202.344788-2-chenridong%40huaweicloud.com
patch subject: [PATCH -next 1/3] cgroup/dmem: fix NULL pointer dereference when setting max
config: x86_64-randconfig-161-20260131 (https://download.01.org/0day-ci/archive/20260201/202602010100.5CjcoPFh-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
smatch version: v0.5.0-8994-gd50c5a4c
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260201/202602010100.5CjcoPFh-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/202602010100.5CjcoPFh-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/cgroup/dmem.c:703:7: warning: variable 'region' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
703 | if (!options || !*options) {
| ^~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/dmem.c:729:13: note: uninitialized use occurs here
729 | kref_put(®ion->ref, dmemcg_free_region);
| ^~~~~~
kernel/cgroup/dmem.c:703:3: note: remove the 'if' if its condition is always false
703 | if (!options || !*options) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
704 | err = -EINVAL;
| ~~~~~~~~~~~~~~
705 | goto out_put;
| ~~~~~~~~~~~~~
706 | }
| ~
>> kernel/cgroup/dmem.c:703:7: warning: variable 'region' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized]
703 | if (!options || !*options) {
| ^~~~~~~~
kernel/cgroup/dmem.c:729:13: note: uninitialized use occurs here
729 | kref_put(®ion->ref, dmemcg_free_region);
| ^~~~~~
kernel/cgroup/dmem.c:703:7: note: remove the '||' if its condition is always false
703 | if (!options || !*options) {
| ^~~~~~~~~~~
kernel/cgroup/dmem.c:685:36: note: initialize the variable 'region' to silence this warning
685 | struct dmem_cgroup_region *region;
| ^
| = NULL
2 warnings generated.
vim +703 kernel/cgroup/dmem.c
674
675 static ssize_t dmemcg_limit_write(struct kernfs_open_file *of,
676 char *buf, size_t nbytes, loff_t off,
677 void (*apply)(struct dmem_cgroup_pool_state *, u64))
678 {
679 struct dmemcg_state *dmemcs = css_to_dmemcs(of_css(of));
680 int err = 0;
681
682 while (buf && !err) {
683 struct dmem_cgroup_pool_state *pool = NULL;
684 char *options, *region_name;
685 struct dmem_cgroup_region *region;
686 u64 new_limit;
687
688 options = buf;
689 buf = strchr(buf, '\n');
690 if (buf)
691 *buf++ = '\0';
692
693 options = strstrip(options);
694
695 /* eat empty lines */
696 if (!options[0])
697 continue;
698
699 region_name = strsep(&options, " \t");
700 if (!region_name[0])
701 continue;
702
> 703 if (!options || !*options) {
704 err = -EINVAL;
705 goto out_put;
706 }
707
708 rcu_read_lock();
709 region = dmemcg_get_region_by_name(region_name);
710 rcu_read_unlock();
711
712 if (!region)
713 return -EINVAL;
714
715 err = dmemcg_parse_limit(options, region, &new_limit);
716 if (err < 0)
717 goto out_put;
718
719 pool = get_cg_pool_unlocked(dmemcs, region);
720 if (IS_ERR(pool)) {
721 err = PTR_ERR(pool);
722 goto out_put;
723 }
724
725 /* And commit */
726 apply(pool, new_limit);
727
728 out_put:
729 kref_put(®ion->ref, dmemcg_free_region);
730 }
731
732
733 return err ?: nbytes;
734 }
735
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2026-01-31 17:26 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-31 9:11 [PATCH -next 0/3] cgroup/dmem: bugfixes Chen Ridong
2026-01-31 9:12 ` [PATCH -next 1/3] cgroup/dmem: fix NULL pointer dereference when setting max Chen Ridong
2026-01-31 17:26 ` kernel test robot [this message]
2026-02-02 0:50 ` Chen Ridong
2026-01-31 9:12 ` [PATCH -next 2/3] cgroup/dmem: avoid rcu warning when unregister region Chen Ridong
2026-01-31 9:12 ` [PATCH -next 3/3] cgroup/dmem: avoid pool UAF Chen Ridong
2026-02-01 16:36 ` [PATCH -next 0/3] cgroup/dmem: bugfixes Tejun Heo
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=202602010100.5CjcoPFh-lkp@intel.com \
--to=lkp@intel.com \
--cc=cgroups@vger.kernel.org \
--cc=chenridong@huaweicloud.com \
--cc=dev@lankhorst.se \
--cc=dri-devel@lists.freedesktop.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lujialin4@huawei.com \
--cc=mkoutny@suse.com \
--cc=mripard@kernel.org \
--cc=natalie.vock@gmx.de \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=tj@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox