All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: David Howells <dhowells@redhat.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	GNU/Weeb Mailing List <gwml@vger.gnuweeb.org>,
	linux-kernel@vger.kernel.org
Subject: [ammarfaizi2-block:dhowells/linux-fs/cifs-for-sfrench 5/6] fs/cifs/smb2ops.c:4752:11: warning: comparison of distinct pointer types ('typeof (size - copied) *' (aka 'unsigned int *') and 'typeof (((1UL) << (12))) *' (aka 'unsigned long *'))
Date: Fri, 13 May 2022 21:35:53 +0800	[thread overview]
Message-ID: <202205132109.23GgU6Kd-lkp@intel.com> (raw)

tree:   https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/cifs-for-sfrench
head:   627ce4da99bb612945366770c5604019fb74b653
commit: e4b60df6a12099568c671591d36a9fa16515f6eb [5/6] cifs: Change the I/O paths to use an iterator rather than a page list
config: riscv-randconfig-c006-20220510 (https://download.01.org/0day-ci/archive/20220513/202205132109.23GgU6Kd-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 18dd123c56754edf62c7042dcf23185c3727610f)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/ammarfaizi2/linux-block/commit/e4b60df6a12099568c671591d36a9fa16515f6eb
        git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
        git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/cifs-for-sfrench
        git checkout e4b60df6a12099568c671591d36a9fa16515f6eb
        # save the config file
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> fs/cifs/smb2ops.c:4752:11: warning: comparison of distinct pointer types ('typeof (size - copied) *' (aka 'unsigned int *') and 'typeof (((1UL) << (12))) *' (aka 'unsigned long *')) [-Wcompare-distinct-pointer-types]
                                   seg = min(size - copied, PAGE_SIZE);
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:45:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
           __builtin_choose_expr(__safe_cmp(x, y), \
                                 ^~~~~~~~~~~~~~~~
   include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
                   (__typecheck(x, y) && __no_side_effects(x, y))
                    ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
           (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
                      ~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~
   fs/cifs/smb2ops.c:4961:7: warning: variable 'length' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
                   if (rdata->result != 0) {
                       ^~~~~~~~~~~~~~~~~~
   fs/cifs/smb2ops.c:4993:9: note: uninitialized use occurs here
           return length;
                  ^~~~~~
   fs/cifs/smb2ops.c:4961:3: note: remove the 'if' if its condition is always true
                   if (rdata->result != 0) {
                   ^~~~~~~~~~~~~~~~~~~~~~~~
   fs/cifs/smb2ops.c:4860:12: note: initialize the variable 'length' to silence this warning
           int length;
                     ^
                      = 0
   2 warnings generated.


vim +4752 fs/cifs/smb2ops.c

  4702	
  4703	/*
  4704	 * This function will initialize new_rq and encrypt the content.
  4705	 * The first entry, new_rq[0], only contains a single iov which contains
  4706	 * a smb2_transform_hdr and is pre-allocated by the caller.
  4707	 * This function then populates new_rq[1+] with the content from olq_rq[0+].
  4708	 *
  4709	 * The end result is an array of smb_rqst structures where the first structure
  4710	 * only contains a single iov for the transform header which we then can pass
  4711	 * to crypt_message().
  4712	 *
  4713	 * new_rq[0].rq_iov[0] :  smb2_transform_hdr pre-allocated by the caller
  4714	 * new_rq[1+].rq_iov[*] == old_rq[0+].rq_iov[*] : SMB2/3 requests
  4715	 */
  4716	static int
  4717	smb3_init_transform_rq(struct TCP_Server_Info *server, int num_rqst,
  4718			       struct smb_rqst *new_rq, struct smb_rqst *old_rq)
  4719	{
  4720		struct smb2_transform_hdr *tr_hdr = new_rq[0].rq_iov[0].iov_base;
  4721		struct page *page;
  4722		unsigned int orig_len = 0;
  4723		int i, j;
  4724		int rc = -ENOMEM;
  4725	
  4726		for (i = 1; i < num_rqst; i++) {
  4727			struct smb_rqst *old = &old_rq[i - 1];
  4728			struct smb_rqst *new = &new_rq[i];
  4729			struct xarray *buffer = &new->rq_buffer;
  4730			unsigned int npages;
  4731			size_t size = iov_iter_count(&old->rq_iter), seg, copied = 0;
  4732	
  4733			xa_init(buffer);
  4734	
  4735			if (size > 0) {
  4736				npages = DIV_ROUND_UP(size, PAGE_SIZE);
  4737				for (j = 0; j < npages; j++) {
  4738					void *o;
  4739	
  4740					rc = -ENOMEM;
  4741					page = alloc_page(GFP_KERNEL|__GFP_HIGHMEM);
  4742					if (!page)
  4743						goto err_free;
  4744					page->index = j;
  4745					o = xa_store(buffer, j, page, GFP_KERNEL);
  4746					if (xa_is_err(o)) {
  4747						rc = xa_err(o);
  4748						put_page(page);
  4749						goto err_free;
  4750					}
  4751	
> 4752					seg = min(size - copied, PAGE_SIZE);
  4753					if (copy_page_from_iter(page, 0, seg, &old->rq_iter) != seg) {
  4754						rc = -EFAULT;
  4755						goto err_free;
  4756					}
  4757					copied += seg;
  4758				}
  4759				iov_iter_xarray(&new->rq_iter, iov_iter_rw(&old->rq_iter),
  4760						buffer, 0, size);
  4761			}
  4762			new->rq_iov = old->rq_iov;
  4763			new->rq_nvec = old->rq_nvec;
  4764			orig_len += smb_rqst_len(server, new);
  4765		}
  4766	
  4767		/* fill the 1st iov with a transform header */
  4768		fill_transform_hdr(tr_hdr, orig_len, old_rq, server->cipher_type);
  4769	
  4770		rc = crypt_message(server, num_rqst, new_rq, 1);
  4771		cifs_dbg(FYI, "Encrypt message returned %d\n", rc);
  4772		if (rc)
  4773			goto err_free;
  4774	
  4775		return rc;
  4776	
  4777	err_free:
  4778		smb3_free_compound_rqst(num_rqst - 1, &new_rq[1]);
  4779		return rc;
  4780	}
  4781	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

                 reply	other threads:[~2022-05-13 13:37 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202205132109.23GgU6Kd-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=dhowells@redhat.com \
    --cc=gwml@vger.gnuweeb.org \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@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.