Skip to content

Commit

Permalink
Cleanup some minor endian issues in smb3 rdma
Browse files Browse the repository at this point in the history
Minor cleanup of some sparse warnings (including a few misc
endian fixes for the new smb3 rdma code)

Signed-off-by: Steve French <smfrench@gmail.com>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
  • Loading branch information
Steve French committed Jan 26, 2018
1 parent 02cf590 commit 2026b06
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 20 deletions.
22 changes: 11 additions & 11 deletions fs/cifs/smb2pdu.c
Original file line number Diff line number Diff line change
Expand Up @@ -2463,13 +2463,13 @@ smb2_new_read_req(void **buf, unsigned int *total_len,
if (need_invalidate)
req->Channel = SMB2_CHANNEL_RDMA_V1;
req->ReadChannelInfoOffset =
offsetof(struct smb2_read_plain_req, Buffer);
cpu_to_le16(offsetof(struct smb2_read_plain_req, Buffer));
req->ReadChannelInfoLength =
sizeof(struct smbd_buffer_descriptor_v1);
cpu_to_le16(sizeof(struct smbd_buffer_descriptor_v1));
v1 = (struct smbd_buffer_descriptor_v1 *) &req->Buffer[0];
v1->offset = rdata->mr->mr->iova;
v1->token = rdata->mr->mr->rkey;
v1->length = rdata->mr->mr->length;
v1->offset = cpu_to_le64(rdata->mr->mr->iova);
v1->token = cpu_to_le32(rdata->mr->mr->rkey);
v1->length = cpu_to_le32(rdata->mr->mr->length);

*total_len += sizeof(*v1) - 1;
}
Expand Down Expand Up @@ -2840,18 +2840,18 @@ smb2_async_writev(struct cifs_writedata *wdata,
req->Length = 0;
req->DataOffset = 0;
req->RemainingBytes =
(wdata->nr_pages-1)*PAGE_SIZE + wdata->tailsz;
cpu_to_le32((wdata->nr_pages-1)*PAGE_SIZE + wdata->tailsz);
req->Channel = SMB2_CHANNEL_RDMA_V1_INVALIDATE;
if (need_invalidate)
req->Channel = SMB2_CHANNEL_RDMA_V1;
req->WriteChannelInfoOffset =
offsetof(struct smb2_write_req, Buffer);
cpu_to_le16(offsetof(struct smb2_write_req, Buffer));
req->WriteChannelInfoLength =
sizeof(struct smbd_buffer_descriptor_v1);
cpu_to_le16(sizeof(struct smbd_buffer_descriptor_v1));
v1 = (struct smbd_buffer_descriptor_v1 *) &req->Buffer[0];
v1->offset = wdata->mr->mr->iova;
v1->token = wdata->mr->mr->rkey;
v1->length = wdata->mr->mr->length;
v1->offset = cpu_to_le64(wdata->mr->mr->iova);
v1->token = cpu_to_le32(wdata->mr->mr->rkey);
v1->length = cpu_to_le32(wdata->mr->mr->length);
}
#endif
/* 4 for rfc1002 length field and 1 for Buffer */
Expand Down
14 changes: 7 additions & 7 deletions fs/cifs/smb2pdu.h
Original file line number Diff line number Diff line change
Expand Up @@ -830,9 +830,9 @@ struct smb2_flush_rsp {
#define SMB2_READFLAG_READ_UNBUFFERED 0x01

/* Channel field for read and write: exactly one of following flags can be set*/
#define SMB2_CHANNEL_NONE 0x00000000
#define SMB2_CHANNEL_RDMA_V1 0x00000001 /* SMB3 or later */
#define SMB2_CHANNEL_RDMA_V1_INVALIDATE 0x00000002 /* SMB3.02 or later */
#define SMB2_CHANNEL_NONE cpu_to_le32(0x00000000)
#define SMB2_CHANNEL_RDMA_V1 cpu_to_le32(0x00000001) /* SMB3 or later */
#define SMB2_CHANNEL_RDMA_V1_INVALIDATE cpu_to_le32(0x00000002) /* >= SMB3.02 */

/* SMB2 read request without RFC1001 length at the beginning */
struct smb2_read_plain_req {
Expand All @@ -847,8 +847,8 @@ struct smb2_read_plain_req {
__le32 MinimumCount;
__le32 Channel; /* MBZ except for SMB3 or later */
__le32 RemainingBytes;
__le16 ReadChannelInfoOffset; /* Reserved MBZ */
__le16 ReadChannelInfoLength; /* Reserved MBZ */
__le16 ReadChannelInfoOffset;
__le16 ReadChannelInfoLength;
__u8 Buffer[1];
} __packed;

Expand Down Expand Up @@ -877,8 +877,8 @@ struct smb2_write_req {
__u64 VolatileFileId; /* opaque endianness */
__le32 Channel; /* Reserved MBZ */
__le32 RemainingBytes;
__le16 WriteChannelInfoOffset; /* Reserved MBZ */
__le16 WriteChannelInfoLength; /* Reserved MBZ */
__le16 WriteChannelInfoOffset;
__le16 WriteChannelInfoLength;
__le32 Flags;
__u8 Buffer[1];
} __packed;
Expand Down
5 changes: 3 additions & 2 deletions fs/cifs/smbdirect.c
Original file line number Diff line number Diff line change
Expand Up @@ -1855,7 +1855,8 @@ struct smbd_connection *smbd_get_connection(
* consumed. But this will require more changes to upper layer code, and also
* need to consider packet boundaries while they still being reassembled.
*/
int smbd_recv_buf(struct smbd_connection *info, char *buf, unsigned int size)
static int smbd_recv_buf(struct smbd_connection *info, char *buf,
unsigned int size)
{
struct smbd_response *response;
struct smbd_data_transfer *data_transfer;
Expand Down Expand Up @@ -1992,7 +1993,7 @@ int smbd_recv_buf(struct smbd_connection *info, char *buf, unsigned int size)
* to_read: the length of data to read
* return value: actual data read
*/
int smbd_recv_page(struct smbd_connection *info,
static int smbd_recv_page(struct smbd_connection *info,
struct page *page, unsigned int to_read)
{
int ret;
Expand Down

0 comments on commit 2026b06

Please sign in to comment.