lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 15 Feb 2022 14:33:44 +0100
From:   Bodo Stroesser <bostroesser@...il.com>
To:     kernel test robot <lkp@...el.com>,
        Guixin Liu <kanie@...ux.alibaba.com>,
        martin.petersen@...cle.com
Cc:     kbuild-all@...ts.01.org, linux-scsi@...r.kernel.org,
        target-devel@...r.kernel.org, linux-kernel@...r.kernel.org,
        xiaoguang.wang@...ux.alibaba.com, xlpang@...ux.alibaba.com
Subject: Re: [PATCH V3] scsi: target: tcmu: Make cmd_ring_size changeable via
 configfs.

Hi Liu,

since CMDR_OFF is defined as "sizeof(struct tcmu_mailbox)", we could
fix the warning by using %z. OTOH, the fields cmdr_off and cmdr_size
in struct tcmu_mailbox are defined as u32, as well as cmdr_size in
struct tcmu_dev.

So I think we should add a cast to u32 in the definition of CMDR_OFF.
That should allow us to use %u on all architectures. Additionally
it avoids expansion to long during calculations where CMDR_OFF is
involved.

Btw: in my comments I asked you to remove the "\n" in the sprintf for
DataPagesPerBlk. But of course we need a space instead to allow
proper parsing of the output.

Bodo

On 15.02.22 14:05, kernel test robot wrote:
> Hi Guixin,
> 
> Thank you for the patch! Perhaps something to improve:
> 
> [auto build test WARNING on mkp-scsi/for-next]
> [also build test WARNING on v5.17-rc4 next-20220215]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch]
> 
> url:    https://github.com/0day-ci/linux/commits/Guixin-Liu/scsi-target-tcmu-Make-cmd_ring_size-changeable-via-configfs/20220215-160505
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
> config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20220215/202202152052.AEF7jHIH-lkp@intel.com/config)
> compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
> reproduce (this is a W=1 build):
>          # https://github.com/0day-ci/linux/commit/7f77700542b8196c546ef10656dda7a107d8d1ad
>          git remote add linux-review https://github.com/0day-ci/linux
>          git fetch --no-tags linux-review Guixin-Liu/scsi-target-tcmu-Make-cmd_ring_size-changeable-via-configfs/20220215-160505
>          git checkout 7f77700542b8196c546ef10656dda7a107d8d1ad
>          # save the config file to linux build tree
>          mkdir build_dir
>          make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/target/
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@...el.com>
> 
> All warnings (new ones prefixed by >>):
> 
>     drivers/target/target_core_user.c: In function 'tcmu_show_configfs_dev_params':
>>> drivers/target/target_core_user.c:2627:41: warning: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat=]
>      2627 |  bl += sprintf(b + bl, "CmdRingSizeMB: %u\n",
>           |                                        ~^
>           |                                         |
>           |                                         unsigned int
>           |                                        %lu
>      2628 |         (udev->cmdr_size + CMDR_OFF) >> 20);
>           |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           |                                      |
>           |                                      long unsigned int
>     drivers/target/target_core_user.c: In function 'tcmu_cmd_ring_size_mb_show':
>     drivers/target/target_core_user.c:2743:37: warning: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat=]
>      2743 |  return snprintf(page, PAGE_SIZE, "%u\n",
>           |                                    ~^
>           |                                     |
>           |                                     unsigned int
>           |                                    %lu
>      2744 |    (udev->cmdr_size + CMDR_OFF) >> 20);
>           |    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           |                                 |
>           |                                 long unsigned int
> 
> 
> vim +2627 drivers/target/target_core_user.c
> 
>    2616	
>    2617	static ssize_t tcmu_show_configfs_dev_params(struct se_device *dev, char *b)
>    2618	{
>    2619		struct tcmu_dev *udev = TCMU_DEV(dev);
>    2620		ssize_t bl = 0;
>    2621	
>    2622		bl = sprintf(b + bl, "Config: %s ",
>    2623			     udev->dev_config[0] ? udev->dev_config : "NULL");
>    2624		bl += sprintf(b + bl, "Size: %llu ", udev->dev_size);
>    2625		bl += sprintf(b + bl, "MaxDataAreaMB: %u ", udev->data_area_mb);
>    2626		bl += sprintf(b + bl, "DataPagesPerBlk: %u", udev->data_pages_per_blk);
>> 2627		bl += sprintf(b + bl, "CmdRingSizeMB: %u\n",
>    2628			      (udev->cmdr_size + CMDR_OFF) >> 20);
>    2629	
>    2630		return bl;
>    2631	}
>    2632	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ