diff options
author | Vijaya Mohan Guvva <vmohan@brocade.com> | 2013-05-13 05:33:27 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-06-26 16:49:49 -0400 |
commit | bccd2683df56ddce98964f93f6984df743004240 (patch) | |
tree | b680c00cabacc5100932b825da534f574575657c | |
parent | c679b599afa5dd38d20e058aa68bc94c1c1416a1 (diff) |
[SCSI] bfa: driver compatibility with 32bit libs
Replaced usage of void * with u64 in data structure shared between
brocade user space libraries and the bfa driver to address pointer
size changes across 32-bit vs 64-bit to have the compatibility between
32bit library and 64bit driver and vice versa.
Signed-off-by: Vijaya Mohan Guvva <vmohan@brocade.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r-- | drivers/scsi/bfa/bfad_bsg.c | 7 | ||||
-rw-r--r-- | drivers/scsi/bfa/bfad_bsg.h | 4 |
2 files changed, 7 insertions, 4 deletions
diff --git a/drivers/scsi/bfa/bfad_bsg.c b/drivers/scsi/bfa/bfad_bsg.c index f31acfa3f113..9863b1c2e567 100644 --- a/drivers/scsi/bfa/bfad_bsg.c +++ b/drivers/scsi/bfa/bfad_bsg.c | |||
@@ -3371,7 +3371,8 @@ bfad_im_bsg_els_ct_request(struct fc_bsg_job *job) | |||
3371 | goto out; | 3371 | goto out; |
3372 | } | 3372 | } |
3373 | 3373 | ||
3374 | if (copy_from_user((uint8_t *)bsg_fcpt, bsg_data->payload, | 3374 | if (copy_from_user((uint8_t *)bsg_fcpt, |
3375 | (void *)(unsigned long)bsg_data->payload, | ||
3375 | bsg_data->payload_len)) { | 3376 | bsg_data->payload_len)) { |
3376 | kfree(bsg_fcpt); | 3377 | kfree(bsg_fcpt); |
3377 | rc = -EIO; | 3378 | rc = -EIO; |
@@ -3525,8 +3526,8 @@ out_free_mem: | |||
3525 | kfree(rsp_kbuf); | 3526 | kfree(rsp_kbuf); |
3526 | 3527 | ||
3527 | /* Need a copy to user op */ | 3528 | /* Need a copy to user op */ |
3528 | if (copy_to_user(bsg_data->payload, (void *) bsg_fcpt, | 3529 | if (copy_to_user((void *)(unsigned long)bsg_data->payload, |
3529 | bsg_data->payload_len)) | 3530 | (void *)bsg_fcpt, bsg_data->payload_len)) |
3530 | rc = -EIO; | 3531 | rc = -EIO; |
3531 | 3532 | ||
3532 | kfree(bsg_fcpt); | 3533 | kfree(bsg_fcpt); |
diff --git a/drivers/scsi/bfa/bfad_bsg.h b/drivers/scsi/bfa/bfad_bsg.h index 3ef321cd7e20..b0b5ac7a75ff 100644 --- a/drivers/scsi/bfa/bfad_bsg.h +++ b/drivers/scsi/bfa/bfad_bsg.h | |||
@@ -819,10 +819,12 @@ struct bfa_bsg_fcpt_s { | |||
819 | }; | 819 | }; |
820 | #define bfa_bsg_fcpt_t struct bfa_bsg_fcpt_s | 820 | #define bfa_bsg_fcpt_t struct bfa_bsg_fcpt_s |
821 | 821 | ||
822 | #pragma pack(1) | ||
822 | struct bfa_bsg_data { | 823 | struct bfa_bsg_data { |
823 | int payload_len; | 824 | int payload_len; |
824 | void *payload; | 825 | u64 payload; |
825 | }; | 826 | }; |
827 | #pragma pack() | ||
826 | 828 | ||
827 | #define bfad_chk_iocmd_sz(__payload_len, __hdrsz, __bufsz) \ | 829 | #define bfad_chk_iocmd_sz(__payload_len, __hdrsz, __bufsz) \ |
828 | (((__payload_len) != ((__hdrsz) + (__bufsz))) ? \ | 830 | (((__payload_len) != ((__hdrsz) + (__bufsz))) ? \ |