Skip to content

Commit

Permalink
scsi: ufs: fix endianness sparse warnings
Browse files Browse the repository at this point in the history
Fix many warnings with incorrect endian assumptions
which makes the code unportable to new architectures.

The UFS specification defines the byte order as big-endian
for UPIU structure and little-endian for the host controller
transfer/task management descriptors.

Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Signed-off-by: Dolev Raviv <draviv@codeaurora.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
  • Loading branch information
Sujit Reddy Thumma authored and Christoph Hellwig committed Jul 25, 2014
1 parent 7289f98 commit ea2aab2
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions drivers/scsi/ufs/ufshcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,8 @@ int ufshcd_copy_query_response(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
/* data segment length */
resp_len = be32_to_cpu(lrbp->ucd_rsp_ptr->header.dword_2) &
MASK_QUERY_DATA_SEG_LEN;
buf_len = hba->dev_cmd.query.request.upiu_req.length;
buf_len = be16_to_cpu(
hba->dev_cmd.query.request.upiu_req.length);
if (likely(buf_len >= resp_len)) {
memcpy(hba->dev_cmd.query.descriptor, descp, resp_len);
} else {
Expand Down Expand Up @@ -1342,7 +1343,7 @@ static int ufshcd_query_descriptor(struct ufs_hba *hba,
ufshcd_init_query(hba, &request, &response, opcode, idn, index,
selector);
hba->dev_cmd.query.descriptor = desc_buf;
request->upiu_req.length = *buf_len;
request->upiu_req.length = cpu_to_be16(*buf_len);

switch (opcode) {
case UPIU_QUERY_OPCODE_WRITE_DESC:
Expand All @@ -1368,7 +1369,7 @@ static int ufshcd_query_descriptor(struct ufs_hba *hba,
}

hba->dev_cmd.query.descriptor = NULL;
*buf_len = response->upiu_res.length;
*buf_len = be16_to_cpu(response->upiu_res.length);

out_unlock:
mutex_unlock(&hba->dev_cmd.lock);
Expand Down

0 comments on commit ea2aab2

Please sign in to comment.