Re: [PATCH -next 2/3] mm/hugetlb_cgroup: prepare cftypes based on template
From: xiujianfeng
Date: Wed Jun 05 2024 - 02:15:37 EST
On 2024/6/5 13:24, Dan Carpenter wrote:
> Hi Xiu,
>
> kernel test robot noticed the following build warnings:
>
> url: https://github.com/intel-lab-lkp/linux/commits/Xiu-Jianfeng/mm-hugetlb_cgroup-identify-the-legacy-using-cgroup_subsys_on_dfl/20240603-201513
> base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> patch link: https://lore.kernel.org/r/20240603120506.1837322-3-xiujianfeng%40huawei.com
> patch subject: [PATCH -next 2/3] mm/hugetlb_cgroup: prepare cftypes based on template
> config: i386-randconfig-r071-20240604 (https://download.01.org/0day-ci/archive/20240605/202406050210.OWthxCFt-lkp@xxxxxxxxx/config)
> compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
>
> 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@xxxxxxxxx>
> | Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> | Closes: https://lore.kernel.org/r/202406050210.OWthxCFt-lkp@xxxxxxxxx/
>
> smatch warnings:
> mm/hugetlb_cgroup.c:828 hugetlb_cgroup_cfttypes_init() warn: this array is probably non-NULL. 'tmpl->name'
>
> vim +828 mm/hugetlb_cgroup.c
>
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 815 static void __init
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 816 hugetlb_cgroup_cfttypes_init(struct hstate *h, struct cftype *cft,
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 817 struct cftype *tmpl, int tmpl_size)
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 818 {
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 819 char buf[32];
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 820 int i, idx = hstate_index(h);
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 821
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 822 /* format the size */
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 823 mem_fmt(buf, sizeof(buf), huge_page_size(h));
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 824
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 825 for (i = 0; i < tmpl_size; cft++, tmpl++, i++) {
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 826 *cft = *tmpl;
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 827 /* rebuild the name */
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 @828 if (tmpl->name)
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 829 snprintf(cft->name, MAX_CFTYPE_NAME, "%s.%s", buf, tmpl->name);
>
> tmpl->name is an array so it's non-NULL. Just do the snprintf(). No
> need for the if statement.
Hi Dan,
Thanks for you review, will fix in the next version.
>
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 830 /* rebuild the private */
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 831 if (tmpl->private)
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 832 cft->private = MEMFILE_PRIVATE(idx, tmpl->private);
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 833 /* rebuild the file_offset */
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 834 if (tmpl->file_offset) {
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 835 unsigned int offset = tmpl->file_offset;
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 836
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 837 cft->file_offset = MEMFILE_OFFSET0(offset) +
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 838 MEMFILE_FIELD_SIZE(offset) * idx;
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 839 }
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 840 }
> 66bcc9ace99241 Xiu Jianfeng 2024-06-03 841 }
>