All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Ronnie Sahlberg <lsahlber@redhat.com>
Cc: kbuild-all@lists.01.org,
	Linux Memory Management List <linux-mm@kvack.org>,
	Steve French <stfrench@microsoft.com>
Subject: [linux-next:master 11997/12116] fs/cifs/smb2pdu.c:3967:41: sparse: sparse: incorrect type in assignment (different base types)
Date: Wed, 8 Sep 2021 19:44:23 +0800	[thread overview]
Message-ID: <202109081910.BQrP3ZGN-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 13054 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   999569d59a0aa2509ae4a67ecc266c1134e37e7b
commit: 5c840ceb247ced42df472fff0d952603027eb66c [11997/12116] cifs: Create a new shared file holding smb2 pdu definitions
config: x86_64-randconfig-s021-20210908 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5c840ceb247ced42df472fff0d952603027eb66c
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 5c840ceb247ced42df472fff0d952603027eb66c
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

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


sparse warnings: (new ones prefixed by >>)
   fs/cifs/smb2pdu.c:118:32: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] TreeId @@     got unsigned int const [usertype] tid @@
   fs/cifs/smb2pdu.c:118:32: sparse:     expected restricted __le32 [usertype] TreeId
   fs/cifs/smb2pdu.c:118:32: sparse:     got unsigned int const [usertype] tid
   fs/cifs/smb2pdu.c:121:33: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] SessionId @@     got unsigned long long [usertype] Suid @@
   fs/cifs/smb2pdu.c:121:33: sparse:     expected restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:121:33: sparse:     got unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1253:36: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] SessionId @@     got unsigned long long [usertype] Suid @@
   fs/cifs/smb2pdu.c:1253:36: sparse:     expected restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:1253:36: sparse:     got unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1561:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] SessionId @@     got unsigned long long [usertype] Suid @@
   fs/cifs/smb2pdu.c:1561:28: sparse:     expected restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:1561:28: sparse:     got unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1587:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] Suid @@     got restricted __le64 [usertype] SessionId @@
   fs/cifs/smb2pdu.c:1587:27: sparse:     expected unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1587:27: sparse:     got restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:1526:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] Suid @@     got restricted __le64 [usertype] SessionId @@
   fs/cifs/smb2pdu.c:1526:27: sparse:     expected unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1526:27: sparse:     got restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:1718:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] SessionId @@     got unsigned long long [usertype] Suid @@
   fs/cifs/smb2pdu.c:1718:28: sparse:     expected restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:1718:28: sparse:     got unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1874:19: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] tid @@     got restricted __le32 [usertype] TreeId @@
   fs/cifs/smb2pdu.c:1874:19: sparse:     expected unsigned int [usertype] tid
   fs/cifs/smb2pdu.c:1874:19: sparse:     got restricted __le32 [usertype] TreeId
>> fs/cifs/smb2pdu.c:3967:41: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] SessionId @@     got unsigned long @@
   fs/cifs/smb2pdu.c:3967:41: sparse:     expected restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:3967:41: sparse:     got unsigned long
   fs/cifs/smb2pdu.c:3968:48: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] TreeId @@     got unsigned int @@
   fs/cifs/smb2pdu.c:3968:48: sparse:     expected restricted __le32 [usertype] TreeId
   fs/cifs/smb2pdu.c:3968:48: sparse:     got unsigned int

vim +3967 fs/cifs/smb2pdu.c

09a4707e763824 Pavel Shilovsky 2012-09-18  3882  
09a4707e763824 Pavel Shilovsky 2012-09-18  3883  /*
09a4707e763824 Pavel Shilovsky 2012-09-18  3884   * To form a chain of read requests, any read requests after the first should
09a4707e763824 Pavel Shilovsky 2012-09-18  3885   * have the end_of_chain boolean set to true.
09a4707e763824 Pavel Shilovsky 2012-09-18  3886   */
09a4707e763824 Pavel Shilovsky 2012-09-18  3887  static int
738f9de5cdb917 Pavel Shilovsky 2016-11-23  3888  smb2_new_read_req(void **buf, unsigned int *total_len,
2dabfd5baba641 Long Li         2017-11-07  3889  	struct cifs_io_parms *io_parms, struct cifs_readdata *rdata,
2dabfd5baba641 Long Li         2017-11-07  3890  	unsigned int remaining_bytes, int request_type)
09a4707e763824 Pavel Shilovsky 2012-09-18  3891  {
09a4707e763824 Pavel Shilovsky 2012-09-18  3892  	int rc = -EACCES;
b8f57ee8aad414 Pavel Shilovsky 2016-11-23  3893  	struct smb2_read_plain_req *req = NULL;
5c840ceb247ced Ronnie Sahlberg 2021-09-07  3894  	struct smb2_hdr *shdr;
352d96f3acc6e0 Aurelien Aptel  2020-05-31  3895  	struct TCP_Server_Info *server = io_parms->server;
09a4707e763824 Pavel Shilovsky 2012-09-18  3896  
352d96f3acc6e0 Aurelien Aptel  2020-05-31  3897  	rc = smb2_plain_req_init(SMB2_READ, io_parms->tcon, server,
352d96f3acc6e0 Aurelien Aptel  2020-05-31  3898  				 (void **) &req, total_len);
09a4707e763824 Pavel Shilovsky 2012-09-18  3899  	if (rc)
09a4707e763824 Pavel Shilovsky 2012-09-18  3900  		return rc;
2dabfd5baba641 Long Li         2017-11-07  3901  
2dabfd5baba641 Long Li         2017-11-07  3902  	if (server == NULL)
09a4707e763824 Pavel Shilovsky 2012-09-18  3903  		return -ECONNABORTED;
09a4707e763824 Pavel Shilovsky 2012-09-18  3904  
5c840ceb247ced Ronnie Sahlberg 2021-09-07  3905  	shdr = &req->hdr;
5c840ceb247ced Ronnie Sahlberg 2021-09-07  3906  	shdr->Id.SyncId.ProcessId = cpu_to_le32(io_parms->pid);
09a4707e763824 Pavel Shilovsky 2012-09-18  3907  
09a4707e763824 Pavel Shilovsky 2012-09-18  3908  	req->PersistentFileId = io_parms->persistent_fid;
09a4707e763824 Pavel Shilovsky 2012-09-18  3909  	req->VolatileFileId = io_parms->volatile_fid;
09a4707e763824 Pavel Shilovsky 2012-09-18  3910  	req->ReadChannelInfoOffset = 0; /* reserved */
09a4707e763824 Pavel Shilovsky 2012-09-18  3911  	req->ReadChannelInfoLength = 0; /* reserved */
09a4707e763824 Pavel Shilovsky 2012-09-18  3912  	req->Channel = 0; /* reserved */
09a4707e763824 Pavel Shilovsky 2012-09-18  3913  	req->MinimumCount = 0;
09a4707e763824 Pavel Shilovsky 2012-09-18  3914  	req->Length = cpu_to_le32(io_parms->length);
09a4707e763824 Pavel Shilovsky 2012-09-18  3915  	req->Offset = cpu_to_le64(io_parms->offset);
d323c24617527f Steve French    2019-02-25  3916  
d323c24617527f Steve French    2019-02-25  3917  	trace_smb3_read_enter(0 /* xid */,
d323c24617527f Steve French    2019-02-25  3918  			io_parms->persistent_fid,
d323c24617527f Steve French    2019-02-25  3919  			io_parms->tcon->tid, io_parms->tcon->ses->Suid,
d323c24617527f Steve French    2019-02-25  3920  			io_parms->offset, io_parms->length);
bd3dcc6a22a918 Long Li         2017-11-22  3921  #ifdef CONFIG_CIFS_SMB_DIRECT
bd3dcc6a22a918 Long Li         2017-11-22  3922  	/*
bd3dcc6a22a918 Long Li         2017-11-22  3923  	 * If we want to do a RDMA write, fill in and append
bd3dcc6a22a918 Long Li         2017-11-22  3924  	 * smbd_buffer_descriptor_v1 to the end of read request
bd3dcc6a22a918 Long Li         2017-11-22  3925  	 */
bb4c0419476bd3 Long Li         2018-04-17  3926  	if (server->rdma && rdata && !server->sign &&
bd3dcc6a22a918 Long Li         2017-11-22  3927  		rdata->bytes >= server->smbd_conn->rdma_readwrite_threshold) {
bd3dcc6a22a918 Long Li         2017-11-22  3928  
bd3dcc6a22a918 Long Li         2017-11-22  3929  		struct smbd_buffer_descriptor_v1 *v1;
352d96f3acc6e0 Aurelien Aptel  2020-05-31  3930  		bool need_invalidate = server->dialect == SMB30_PROT_ID;
bd3dcc6a22a918 Long Li         2017-11-22  3931  
bd3dcc6a22a918 Long Li         2017-11-22  3932  		rdata->mr = smbd_register_mr(
bd3dcc6a22a918 Long Li         2017-11-22  3933  				server->smbd_conn, rdata->pages,
7cf20bce77581b Long Li         2018-05-30  3934  				rdata->nr_pages, rdata->page_offset,
7cf20bce77581b Long Li         2018-05-30  3935  				rdata->tailsz, true, need_invalidate);
bd3dcc6a22a918 Long Li         2017-11-22  3936  		if (!rdata->mr)
b7972092199f6d Long Li         2019-04-05  3937  			return -EAGAIN;
bd3dcc6a22a918 Long Li         2017-11-22  3938  
bd3dcc6a22a918 Long Li         2017-11-22  3939  		req->Channel = SMB2_CHANNEL_RDMA_V1_INVALIDATE;
bd3dcc6a22a918 Long Li         2017-11-22  3940  		if (need_invalidate)
bd3dcc6a22a918 Long Li         2017-11-22  3941  			req->Channel = SMB2_CHANNEL_RDMA_V1;
bd3dcc6a22a918 Long Li         2017-11-22  3942  		req->ReadChannelInfoOffset =
2026b06e9ce852 Steve French    2018-01-24  3943  			cpu_to_le16(offsetof(struct smb2_read_plain_req, Buffer));
bd3dcc6a22a918 Long Li         2017-11-22  3944  		req->ReadChannelInfoLength =
2026b06e9ce852 Steve French    2018-01-24  3945  			cpu_to_le16(sizeof(struct smbd_buffer_descriptor_v1));
bd3dcc6a22a918 Long Li         2017-11-22  3946  		v1 = (struct smbd_buffer_descriptor_v1 *) &req->Buffer[0];
2026b06e9ce852 Steve French    2018-01-24  3947  		v1->offset = cpu_to_le64(rdata->mr->mr->iova);
2026b06e9ce852 Steve French    2018-01-24  3948  		v1->token = cpu_to_le32(rdata->mr->mr->rkey);
2026b06e9ce852 Steve French    2018-01-24  3949  		v1->length = cpu_to_le32(rdata->mr->mr->length);
bd3dcc6a22a918 Long Li         2017-11-22  3950  
bd3dcc6a22a918 Long Li         2017-11-22  3951  		*total_len += sizeof(*v1) - 1;
bd3dcc6a22a918 Long Li         2017-11-22  3952  	}
bd3dcc6a22a918 Long Li         2017-11-22  3953  #endif
09a4707e763824 Pavel Shilovsky 2012-09-18  3954  	if (request_type & CHAINED_REQUEST) {
09a4707e763824 Pavel Shilovsky 2012-09-18  3955  		if (!(request_type & END_OF_CHAIN)) {
b8f57ee8aad414 Pavel Shilovsky 2016-11-23  3956  			/* next 8-byte aligned request */
b8f57ee8aad414 Pavel Shilovsky 2016-11-23  3957  			*total_len = DIV_ROUND_UP(*total_len, 8) * 8;
b8f57ee8aad414 Pavel Shilovsky 2016-11-23  3958  			shdr->NextCommand = cpu_to_le32(*total_len);
09a4707e763824 Pavel Shilovsky 2012-09-18  3959  		} else /* END_OF_CHAIN */
31473fc4f9653b Pavel Shilovsky 2016-10-24  3960  			shdr->NextCommand = 0;
09a4707e763824 Pavel Shilovsky 2012-09-18  3961  		if (request_type & RELATED_REQUEST) {
31473fc4f9653b Pavel Shilovsky 2016-10-24  3962  			shdr->Flags |= SMB2_FLAGS_RELATED_OPERATIONS;
09a4707e763824 Pavel Shilovsky 2012-09-18  3963  			/*
09a4707e763824 Pavel Shilovsky 2012-09-18  3964  			 * Related requests use info from previous read request
09a4707e763824 Pavel Shilovsky 2012-09-18  3965  			 * in chain.
09a4707e763824 Pavel Shilovsky 2012-09-18  3966  			 */
c0d46717b95735 Steve French    2021-05-15 @3967  			shdr->SessionId = 0xFFFFFFFFFFFFFFFF;
5c840ceb247ced Ronnie Sahlberg 2021-09-07  3968  			shdr->Id.SyncId.TreeId = 0xFFFFFFFF;
c0d46717b95735 Steve French    2021-05-15  3969  			req->PersistentFileId = 0xFFFFFFFFFFFFFFFF;
c0d46717b95735 Steve French    2021-05-15  3970  			req->VolatileFileId = 0xFFFFFFFFFFFFFFFF;
09a4707e763824 Pavel Shilovsky 2012-09-18  3971  		}
09a4707e763824 Pavel Shilovsky 2012-09-18  3972  	}
09a4707e763824 Pavel Shilovsky 2012-09-18  3973  	if (remaining_bytes > io_parms->length)
09a4707e763824 Pavel Shilovsky 2012-09-18  3974  		req->RemainingBytes = cpu_to_le32(remaining_bytes);
09a4707e763824 Pavel Shilovsky 2012-09-18  3975  	else
09a4707e763824 Pavel Shilovsky 2012-09-18  3976  		req->RemainingBytes = 0;
09a4707e763824 Pavel Shilovsky 2012-09-18  3977  
738f9de5cdb917 Pavel Shilovsky 2016-11-23  3978  	*buf = req;
09a4707e763824 Pavel Shilovsky 2012-09-18  3979  	return rc;
09a4707e763824 Pavel Shilovsky 2012-09-18  3980  }
09a4707e763824 Pavel Shilovsky 2012-09-18  3981  

:::::: The code at line 3967 was first introduced by commit
:::::: c0d46717b95735b0eacfddbcca9df37a49de9c7a SMB3: incorrect file id in requests compounded with open

:::::: TO: Steve French <stfrench@microsoft.com>
:::::: CC: Steve French <stfrench@microsoft.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 29996 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [linux-next:master 11997/12116] fs/cifs/smb2pdu.c:3967:41: sparse: sparse: incorrect type in assignment (different base types)
Date: Wed, 08 Sep 2021 19:44:23 +0800	[thread overview]
Message-ID: <202109081910.BQrP3ZGN-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 13219 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   999569d59a0aa2509ae4a67ecc266c1134e37e7b
commit: 5c840ceb247ced42df472fff0d952603027eb66c [11997/12116] cifs: Create a new shared file holding smb2 pdu definitions
config: x86_64-randconfig-s021-20210908 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5c840ceb247ced42df472fff0d952603027eb66c
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 5c840ceb247ced42df472fff0d952603027eb66c
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

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


sparse warnings: (new ones prefixed by >>)
   fs/cifs/smb2pdu.c:118:32: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] TreeId @@     got unsigned int const [usertype] tid @@
   fs/cifs/smb2pdu.c:118:32: sparse:     expected restricted __le32 [usertype] TreeId
   fs/cifs/smb2pdu.c:118:32: sparse:     got unsigned int const [usertype] tid
   fs/cifs/smb2pdu.c:121:33: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] SessionId @@     got unsigned long long [usertype] Suid @@
   fs/cifs/smb2pdu.c:121:33: sparse:     expected restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:121:33: sparse:     got unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1253:36: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] SessionId @@     got unsigned long long [usertype] Suid @@
   fs/cifs/smb2pdu.c:1253:36: sparse:     expected restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:1253:36: sparse:     got unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1561:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] SessionId @@     got unsigned long long [usertype] Suid @@
   fs/cifs/smb2pdu.c:1561:28: sparse:     expected restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:1561:28: sparse:     got unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1587:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] Suid @@     got restricted __le64 [usertype] SessionId @@
   fs/cifs/smb2pdu.c:1587:27: sparse:     expected unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1587:27: sparse:     got restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:1526:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] Suid @@     got restricted __le64 [usertype] SessionId @@
   fs/cifs/smb2pdu.c:1526:27: sparse:     expected unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1526:27: sparse:     got restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:1718:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] SessionId @@     got unsigned long long [usertype] Suid @@
   fs/cifs/smb2pdu.c:1718:28: sparse:     expected restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:1718:28: sparse:     got unsigned long long [usertype] Suid
   fs/cifs/smb2pdu.c:1874:19: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] tid @@     got restricted __le32 [usertype] TreeId @@
   fs/cifs/smb2pdu.c:1874:19: sparse:     expected unsigned int [usertype] tid
   fs/cifs/smb2pdu.c:1874:19: sparse:     got restricted __le32 [usertype] TreeId
>> fs/cifs/smb2pdu.c:3967:41: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [usertype] SessionId @@     got unsigned long @@
   fs/cifs/smb2pdu.c:3967:41: sparse:     expected restricted __le64 [usertype] SessionId
   fs/cifs/smb2pdu.c:3967:41: sparse:     got unsigned long
   fs/cifs/smb2pdu.c:3968:48: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] TreeId @@     got unsigned int @@
   fs/cifs/smb2pdu.c:3968:48: sparse:     expected restricted __le32 [usertype] TreeId
   fs/cifs/smb2pdu.c:3968:48: sparse:     got unsigned int

vim +3967 fs/cifs/smb2pdu.c

09a4707e763824 Pavel Shilovsky 2012-09-18  3882  
09a4707e763824 Pavel Shilovsky 2012-09-18  3883  /*
09a4707e763824 Pavel Shilovsky 2012-09-18  3884   * To form a chain of read requests, any read requests after the first should
09a4707e763824 Pavel Shilovsky 2012-09-18  3885   * have the end_of_chain boolean set to true.
09a4707e763824 Pavel Shilovsky 2012-09-18  3886   */
09a4707e763824 Pavel Shilovsky 2012-09-18  3887  static int
738f9de5cdb917 Pavel Shilovsky 2016-11-23  3888  smb2_new_read_req(void **buf, unsigned int *total_len,
2dabfd5baba641 Long Li         2017-11-07  3889  	struct cifs_io_parms *io_parms, struct cifs_readdata *rdata,
2dabfd5baba641 Long Li         2017-11-07  3890  	unsigned int remaining_bytes, int request_type)
09a4707e763824 Pavel Shilovsky 2012-09-18  3891  {
09a4707e763824 Pavel Shilovsky 2012-09-18  3892  	int rc = -EACCES;
b8f57ee8aad414 Pavel Shilovsky 2016-11-23  3893  	struct smb2_read_plain_req *req = NULL;
5c840ceb247ced Ronnie Sahlberg 2021-09-07  3894  	struct smb2_hdr *shdr;
352d96f3acc6e0 Aurelien Aptel  2020-05-31  3895  	struct TCP_Server_Info *server = io_parms->server;
09a4707e763824 Pavel Shilovsky 2012-09-18  3896  
352d96f3acc6e0 Aurelien Aptel  2020-05-31  3897  	rc = smb2_plain_req_init(SMB2_READ, io_parms->tcon, server,
352d96f3acc6e0 Aurelien Aptel  2020-05-31  3898  				 (void **) &req, total_len);
09a4707e763824 Pavel Shilovsky 2012-09-18  3899  	if (rc)
09a4707e763824 Pavel Shilovsky 2012-09-18  3900  		return rc;
2dabfd5baba641 Long Li         2017-11-07  3901  
2dabfd5baba641 Long Li         2017-11-07  3902  	if (server == NULL)
09a4707e763824 Pavel Shilovsky 2012-09-18  3903  		return -ECONNABORTED;
09a4707e763824 Pavel Shilovsky 2012-09-18  3904  
5c840ceb247ced Ronnie Sahlberg 2021-09-07  3905  	shdr = &req->hdr;
5c840ceb247ced Ronnie Sahlberg 2021-09-07  3906  	shdr->Id.SyncId.ProcessId = cpu_to_le32(io_parms->pid);
09a4707e763824 Pavel Shilovsky 2012-09-18  3907  
09a4707e763824 Pavel Shilovsky 2012-09-18  3908  	req->PersistentFileId = io_parms->persistent_fid;
09a4707e763824 Pavel Shilovsky 2012-09-18  3909  	req->VolatileFileId = io_parms->volatile_fid;
09a4707e763824 Pavel Shilovsky 2012-09-18  3910  	req->ReadChannelInfoOffset = 0; /* reserved */
09a4707e763824 Pavel Shilovsky 2012-09-18  3911  	req->ReadChannelInfoLength = 0; /* reserved */
09a4707e763824 Pavel Shilovsky 2012-09-18  3912  	req->Channel = 0; /* reserved */
09a4707e763824 Pavel Shilovsky 2012-09-18  3913  	req->MinimumCount = 0;
09a4707e763824 Pavel Shilovsky 2012-09-18  3914  	req->Length = cpu_to_le32(io_parms->length);
09a4707e763824 Pavel Shilovsky 2012-09-18  3915  	req->Offset = cpu_to_le64(io_parms->offset);
d323c24617527f Steve French    2019-02-25  3916  
d323c24617527f Steve French    2019-02-25  3917  	trace_smb3_read_enter(0 /* xid */,
d323c24617527f Steve French    2019-02-25  3918  			io_parms->persistent_fid,
d323c24617527f Steve French    2019-02-25  3919  			io_parms->tcon->tid, io_parms->tcon->ses->Suid,
d323c24617527f Steve French    2019-02-25  3920  			io_parms->offset, io_parms->length);
bd3dcc6a22a918 Long Li         2017-11-22  3921  #ifdef CONFIG_CIFS_SMB_DIRECT
bd3dcc6a22a918 Long Li         2017-11-22  3922  	/*
bd3dcc6a22a918 Long Li         2017-11-22  3923  	 * If we want to do a RDMA write, fill in and append
bd3dcc6a22a918 Long Li         2017-11-22  3924  	 * smbd_buffer_descriptor_v1 to the end of read request
bd3dcc6a22a918 Long Li         2017-11-22  3925  	 */
bb4c0419476bd3 Long Li         2018-04-17  3926  	if (server->rdma && rdata && !server->sign &&
bd3dcc6a22a918 Long Li         2017-11-22  3927  		rdata->bytes >= server->smbd_conn->rdma_readwrite_threshold) {
bd3dcc6a22a918 Long Li         2017-11-22  3928  
bd3dcc6a22a918 Long Li         2017-11-22  3929  		struct smbd_buffer_descriptor_v1 *v1;
352d96f3acc6e0 Aurelien Aptel  2020-05-31  3930  		bool need_invalidate = server->dialect == SMB30_PROT_ID;
bd3dcc6a22a918 Long Li         2017-11-22  3931  
bd3dcc6a22a918 Long Li         2017-11-22  3932  		rdata->mr = smbd_register_mr(
bd3dcc6a22a918 Long Li         2017-11-22  3933  				server->smbd_conn, rdata->pages,
7cf20bce77581b Long Li         2018-05-30  3934  				rdata->nr_pages, rdata->page_offset,
7cf20bce77581b Long Li         2018-05-30  3935  				rdata->tailsz, true, need_invalidate);
bd3dcc6a22a918 Long Li         2017-11-22  3936  		if (!rdata->mr)
b7972092199f6d Long Li         2019-04-05  3937  			return -EAGAIN;
bd3dcc6a22a918 Long Li         2017-11-22  3938  
bd3dcc6a22a918 Long Li         2017-11-22  3939  		req->Channel = SMB2_CHANNEL_RDMA_V1_INVALIDATE;
bd3dcc6a22a918 Long Li         2017-11-22  3940  		if (need_invalidate)
bd3dcc6a22a918 Long Li         2017-11-22  3941  			req->Channel = SMB2_CHANNEL_RDMA_V1;
bd3dcc6a22a918 Long Li         2017-11-22  3942  		req->ReadChannelInfoOffset =
2026b06e9ce852 Steve French    2018-01-24  3943  			cpu_to_le16(offsetof(struct smb2_read_plain_req, Buffer));
bd3dcc6a22a918 Long Li         2017-11-22  3944  		req->ReadChannelInfoLength =
2026b06e9ce852 Steve French    2018-01-24  3945  			cpu_to_le16(sizeof(struct smbd_buffer_descriptor_v1));
bd3dcc6a22a918 Long Li         2017-11-22  3946  		v1 = (struct smbd_buffer_descriptor_v1 *) &req->Buffer[0];
2026b06e9ce852 Steve French    2018-01-24  3947  		v1->offset = cpu_to_le64(rdata->mr->mr->iova);
2026b06e9ce852 Steve French    2018-01-24  3948  		v1->token = cpu_to_le32(rdata->mr->mr->rkey);
2026b06e9ce852 Steve French    2018-01-24  3949  		v1->length = cpu_to_le32(rdata->mr->mr->length);
bd3dcc6a22a918 Long Li         2017-11-22  3950  
bd3dcc6a22a918 Long Li         2017-11-22  3951  		*total_len += sizeof(*v1) - 1;
bd3dcc6a22a918 Long Li         2017-11-22  3952  	}
bd3dcc6a22a918 Long Li         2017-11-22  3953  #endif
09a4707e763824 Pavel Shilovsky 2012-09-18  3954  	if (request_type & CHAINED_REQUEST) {
09a4707e763824 Pavel Shilovsky 2012-09-18  3955  		if (!(request_type & END_OF_CHAIN)) {
b8f57ee8aad414 Pavel Shilovsky 2016-11-23  3956  			/* next 8-byte aligned request */
b8f57ee8aad414 Pavel Shilovsky 2016-11-23  3957  			*total_len = DIV_ROUND_UP(*total_len, 8) * 8;
b8f57ee8aad414 Pavel Shilovsky 2016-11-23  3958  			shdr->NextCommand = cpu_to_le32(*total_len);
09a4707e763824 Pavel Shilovsky 2012-09-18  3959  		} else /* END_OF_CHAIN */
31473fc4f9653b Pavel Shilovsky 2016-10-24  3960  			shdr->NextCommand = 0;
09a4707e763824 Pavel Shilovsky 2012-09-18  3961  		if (request_type & RELATED_REQUEST) {
31473fc4f9653b Pavel Shilovsky 2016-10-24  3962  			shdr->Flags |= SMB2_FLAGS_RELATED_OPERATIONS;
09a4707e763824 Pavel Shilovsky 2012-09-18  3963  			/*
09a4707e763824 Pavel Shilovsky 2012-09-18  3964  			 * Related requests use info from previous read request
09a4707e763824 Pavel Shilovsky 2012-09-18  3965  			 * in chain.
09a4707e763824 Pavel Shilovsky 2012-09-18  3966  			 */
c0d46717b95735 Steve French    2021-05-15 @3967  			shdr->SessionId = 0xFFFFFFFFFFFFFFFF;
5c840ceb247ced Ronnie Sahlberg 2021-09-07  3968  			shdr->Id.SyncId.TreeId = 0xFFFFFFFF;
c0d46717b95735 Steve French    2021-05-15  3969  			req->PersistentFileId = 0xFFFFFFFFFFFFFFFF;
c0d46717b95735 Steve French    2021-05-15  3970  			req->VolatileFileId = 0xFFFFFFFFFFFFFFFF;
09a4707e763824 Pavel Shilovsky 2012-09-18  3971  		}
09a4707e763824 Pavel Shilovsky 2012-09-18  3972  	}
09a4707e763824 Pavel Shilovsky 2012-09-18  3973  	if (remaining_bytes > io_parms->length)
09a4707e763824 Pavel Shilovsky 2012-09-18  3974  		req->RemainingBytes = cpu_to_le32(remaining_bytes);
09a4707e763824 Pavel Shilovsky 2012-09-18  3975  	else
09a4707e763824 Pavel Shilovsky 2012-09-18  3976  		req->RemainingBytes = 0;
09a4707e763824 Pavel Shilovsky 2012-09-18  3977  
738f9de5cdb917 Pavel Shilovsky 2016-11-23  3978  	*buf = req;
09a4707e763824 Pavel Shilovsky 2012-09-18  3979  	return rc;
09a4707e763824 Pavel Shilovsky 2012-09-18  3980  }
09a4707e763824 Pavel Shilovsky 2012-09-18  3981  

:::::: The code at line 3967 was first introduced by commit
:::::: c0d46717b95735b0eacfddbcca9df37a49de9c7a SMB3: incorrect file id in requests compounded with open

:::::: TO: Steve French <stfrench@microsoft.com>
:::::: CC: Steve French <stfrench@microsoft.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 29996 bytes --]

             reply	other threads:[~2021-09-08 11:45 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-08 11:44 kernel test robot [this message]
2021-09-08 11:44 ` [linux-next:master 11997/12116] fs/cifs/smb2pdu.c:3967:41: sparse: sparse: incorrect type in assignment (different base types) 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=202109081910.BQrP3ZGN-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-mm@kvack.org \
    --cc=lsahlber@redhat.com \
    --cc=stfrench@microsoft.com \
    /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.