diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-05-24 14:15:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-05-24 14:15:28 -0400 |
commit | 5b13966693c540f6a6a8d708842b3bce35d0fec7 (patch) | |
tree | 7943c2e1e67a8b57d8b846d97e70499a420d18a3 | |
parent | c5db6a3bdeb72f4238e1faefa4ce4eab7a64baea (diff) | |
parent | 32505876c0947a4cecc409dfbef1fc58ced6138d (diff) |
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley:
"This is a set of five fixes: Two MAINTAINER email updates (urgent
because the non-avagotech emails will start bouncing) an lpfc big
endian oops fix, a 256 byte sector hang fix (to eliminate 256 byte
sectors) and a storvsc fix which could cause test unit ready failures
on bringup"
* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
MAINTAINERS: Revise lpfc maintainers for Avago Technologies ownership of Emulex
MAINTAINERS, be2iscsi: change email domain
sd: Disable support for 256 byte/sector disks
lpfc: Fix breakage on big endian kernels
storvsc: Set the SRB flags correctly when no data transfer is needed
-rw-r--r-- | MAINTAINERS | 13 | ||||
-rw-r--r-- | drivers/scsi/be2iscsi/be.h | 6 | ||||
-rw-r--r-- | drivers/scsi/be2iscsi/be_cmds.c | 6 | ||||
-rw-r--r-- | drivers/scsi/be2iscsi/be_cmds.h | 6 | ||||
-rw-r--r-- | drivers/scsi/be2iscsi/be_iscsi.c | 8 | ||||
-rw-r--r-- | drivers/scsi/be2iscsi/be_iscsi.h | 8 | ||||
-rw-r--r-- | drivers/scsi/be2iscsi/be_main.c | 12 | ||||
-rw-r--r-- | drivers/scsi/be2iscsi/be_main.h | 10 | ||||
-rw-r--r-- | drivers/scsi/be2iscsi/be_mgmt.c | 8 | ||||
-rw-r--r-- | drivers/scsi/be2iscsi/be_mgmt.h | 8 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_scsi.c | 41 | ||||
-rw-r--r-- | drivers/scsi/sd.c | 19 | ||||
-rw-r--r-- | drivers/scsi/storvsc_drv.c | 3 |
13 files changed, 71 insertions, 77 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 60d24f224271..474bcb6c0bac 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -3825,10 +3825,11 @@ M: David Woodhouse <dwmw2@infradead.org> | |||
3825 | L: linux-embedded@vger.kernel.org | 3825 | L: linux-embedded@vger.kernel.org |
3826 | S: Maintained | 3826 | S: Maintained |
3827 | 3827 | ||
3828 | EMULEX LPFC FC SCSI DRIVER | 3828 | EMULEX/AVAGO LPFC FC/FCOE SCSI DRIVER |
3829 | M: James Smart <james.smart@emulex.com> | 3829 | M: James Smart <james.smart@avagotech.com> |
3830 | M: Dick Kennedy <dick.kennedy@avagotech.com> | ||
3830 | L: linux-scsi@vger.kernel.org | 3831 | L: linux-scsi@vger.kernel.org |
3831 | W: http://sourceforge.net/projects/lpfcxxxx | 3832 | W: http://www.avagotech.com |
3832 | S: Supported | 3833 | S: Supported |
3833 | F: drivers/scsi/lpfc/ | 3834 | F: drivers/scsi/lpfc/ |
3834 | 3835 | ||
@@ -8829,9 +8830,11 @@ F: drivers/misc/phantom.c | |||
8829 | F: include/uapi/linux/phantom.h | 8830 | F: include/uapi/linux/phantom.h |
8830 | 8831 | ||
8831 | SERVER ENGINES 10Gbps iSCSI - BladeEngine 2 DRIVER | 8832 | SERVER ENGINES 10Gbps iSCSI - BladeEngine 2 DRIVER |
8832 | M: Jayamohan Kallickal <jayamohan.kallickal@emulex.com> | 8833 | M: Jayamohan Kallickal <jayamohan.kallickal@avagotech.com> |
8834 | M: Minh Tran <minh.tran@avagotech.com> | ||
8835 | M: John Soni Jose <sony.john-n@avagotech.com> | ||
8833 | L: linux-scsi@vger.kernel.org | 8836 | L: linux-scsi@vger.kernel.org |
8834 | W: http://www.emulex.com | 8837 | W: http://www.avagotech.com |
8835 | S: Supported | 8838 | S: Supported |
8836 | F: drivers/scsi/be2iscsi/ | 8839 | F: drivers/scsi/be2iscsi/ |
8837 | 8840 | ||
diff --git a/drivers/scsi/be2iscsi/be.h b/drivers/scsi/be2iscsi/be.h index 81e83a65a193..32070099c333 100644 --- a/drivers/scsi/be2iscsi/be.h +++ b/drivers/scsi/be2iscsi/be.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (C) 2005 - 2014 Emulex | 2 | * Copyright (C) 2005 - 2015 Avago Technologies |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
@@ -8,9 +8,9 @@ | |||
8 | * Public License is included in this distribution in the file called COPYING. | 8 | * Public License is included in this distribution in the file called COPYING. |
9 | * | 9 | * |
10 | * Contact Information: | 10 | * Contact Information: |
11 | * linux-drivers@emulex.com | 11 | * linux-drivers@avagotech.com |
12 | * | 12 | * |
13 | * Emulex | 13 | * Avago Technologies |
14 | * 3333 Susan Street | 14 | * 3333 Susan Street |
15 | * Costa Mesa, CA 92626 | 15 | * Costa Mesa, CA 92626 |
16 | */ | 16 | */ |
diff --git a/drivers/scsi/be2iscsi/be_cmds.c b/drivers/scsi/be2iscsi/be_cmds.c index 1028760b8a22..447cf7ce606e 100644 --- a/drivers/scsi/be2iscsi/be_cmds.c +++ b/drivers/scsi/be2iscsi/be_cmds.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (C) 2005 - 2014 Emulex | 2 | * Copyright (C) 2005 - 2015 Avago Technologies |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
@@ -8,9 +8,9 @@ | |||
8 | * Public License is included in this distribution in the file called COPYING. | 8 | * Public License is included in this distribution in the file called COPYING. |
9 | * | 9 | * |
10 | * Contact Information: | 10 | * Contact Information: |
11 | * linux-drivers@emulex.com | 11 | * linux-drivers@avagotech.com |
12 | * | 12 | * |
13 | * Emulex | 13 | * Avago Technologies |
14 | * 3333 Susan Street | 14 | * 3333 Susan Street |
15 | * Costa Mesa, CA 92626 | 15 | * Costa Mesa, CA 92626 |
16 | */ | 16 | */ |
diff --git a/drivers/scsi/be2iscsi/be_cmds.h b/drivers/scsi/be2iscsi/be_cmds.h index 98897434bcb4..f11d325fe696 100644 --- a/drivers/scsi/be2iscsi/be_cmds.h +++ b/drivers/scsi/be2iscsi/be_cmds.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (C) 2005 - 2014 Emulex | 2 | * Copyright (C) 2005 - 2015 Avago Technologies |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
@@ -8,9 +8,9 @@ | |||
8 | * Public License is included in this distribution in the file called COPYING. | 8 | * Public License is included in this distribution in the file called COPYING. |
9 | * | 9 | * |
10 | * Contact Information: | 10 | * Contact Information: |
11 | * linux-drivers@emulex.com | 11 | * linux-drivers@avagotech.com |
12 | * | 12 | * |
13 | * Emulex | 13 | * Avago Technologies |
14 | * 3333 Susan Street | 14 | * 3333 Susan Street |
15 | * Costa Mesa, CA 92626 | 15 | * Costa Mesa, CA 92626 |
16 | */ | 16 | */ |
diff --git a/drivers/scsi/be2iscsi/be_iscsi.c b/drivers/scsi/be2iscsi/be_iscsi.c index b7391a3f9f0b..2f0700796842 100644 --- a/drivers/scsi/be2iscsi/be_iscsi.c +++ b/drivers/scsi/be2iscsi/be_iscsi.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (C) 2005 - 2014 Emulex | 2 | * Copyright (C) 2005 - 2015 Avago Technologies |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
@@ -7,12 +7,12 @@ | |||
7 | * as published by the Free Software Foundation. The full GNU General | 7 | * as published by the Free Software Foundation. The full GNU General |
8 | * Public License is included in this distribution in the file called COPYING. | 8 | * Public License is included in this distribution in the file called COPYING. |
9 | * | 9 | * |
10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@emulex.com) | 10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@avagotech.com) |
11 | * | 11 | * |
12 | * Contact Information: | 12 | * Contact Information: |
13 | * linux-drivers@emulex.com | 13 | * linux-drivers@avagotech.com |
14 | * | 14 | * |
15 | * Emulex | 15 | * Avago Technologies |
16 | * 3333 Susan Street | 16 | * 3333 Susan Street |
17 | * Costa Mesa, CA 92626 | 17 | * Costa Mesa, CA 92626 |
18 | */ | 18 | */ |
diff --git a/drivers/scsi/be2iscsi/be_iscsi.h b/drivers/scsi/be2iscsi/be_iscsi.h index e0b3b2d1f27a..0c84e1c0763a 100644 --- a/drivers/scsi/be2iscsi/be_iscsi.h +++ b/drivers/scsi/be2iscsi/be_iscsi.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (C) 2005 - 2014 Emulex | 2 | * Copyright (C) 2005 - 2015 Avago Technologies |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
@@ -7,12 +7,12 @@ | |||
7 | * as published by the Free Software Foundation. The full GNU General | 7 | * as published by the Free Software Foundation. The full GNU General |
8 | * Public License is included in this distribution in the file called COPYING. | 8 | * Public License is included in this distribution in the file called COPYING. |
9 | * | 9 | * |
10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@emulex.com) | 10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@avagotech.com) |
11 | * | 11 | * |
12 | * Contact Information: | 12 | * Contact Information: |
13 | * linux-drivers@emulex.com | 13 | * linux-drivers@avagotech.com |
14 | * | 14 | * |
15 | * Emulex | 15 | * Avago Technologies |
16 | * 3333 Susan Street | 16 | * 3333 Susan Street |
17 | * Costa Mesa, CA 92626 | 17 | * Costa Mesa, CA 92626 |
18 | */ | 18 | */ |
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c index 923a2b5a2439..1f74760ce86c 100644 --- a/drivers/scsi/be2iscsi/be_main.c +++ b/drivers/scsi/be2iscsi/be_main.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (C) 2005 - 2014 Emulex | 2 | * Copyright (C) 2005 - 2015 Avago Technologies |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
@@ -7,12 +7,12 @@ | |||
7 | * as published by the Free Software Foundation. The full GNU General | 7 | * as published by the Free Software Foundation. The full GNU General |
8 | * Public License is included in this distribution in the file called COPYING. | 8 | * Public License is included in this distribution in the file called COPYING. |
9 | * | 9 | * |
10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@emulex.com) | 10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@avagotech.com) |
11 | * | 11 | * |
12 | * Contact Information: | 12 | * Contact Information: |
13 | * linux-drivers@emulex.com | 13 | * linux-drivers@avagotech.com |
14 | * | 14 | * |
15 | * Emulex | 15 | * Avago Technologies |
16 | * 3333 Susan Street | 16 | * 3333 Susan Street |
17 | * Costa Mesa, CA 92626 | 17 | * Costa Mesa, CA 92626 |
18 | */ | 18 | */ |
@@ -50,7 +50,7 @@ static unsigned int enable_msix = 1; | |||
50 | 50 | ||
51 | MODULE_DESCRIPTION(DRV_DESC " " BUILD_STR); | 51 | MODULE_DESCRIPTION(DRV_DESC " " BUILD_STR); |
52 | MODULE_VERSION(BUILD_STR); | 52 | MODULE_VERSION(BUILD_STR); |
53 | MODULE_AUTHOR("Emulex Corporation"); | 53 | MODULE_AUTHOR("Avago Technologies"); |
54 | MODULE_LICENSE("GPL"); | 54 | MODULE_LICENSE("GPL"); |
55 | module_param(be_iopoll_budget, int, 0); | 55 | module_param(be_iopoll_budget, int, 0); |
56 | module_param(enable_msix, int, 0); | 56 | module_param(enable_msix, int, 0); |
@@ -552,7 +552,7 @@ MODULE_DEVICE_TABLE(pci, beiscsi_pci_id_table); | |||
552 | 552 | ||
553 | static struct scsi_host_template beiscsi_sht = { | 553 | static struct scsi_host_template beiscsi_sht = { |
554 | .module = THIS_MODULE, | 554 | .module = THIS_MODULE, |
555 | .name = "Emulex 10Gbe open-iscsi Initiator Driver", | 555 | .name = "Avago Technologies 10Gbe open-iscsi Initiator Driver", |
556 | .proc_name = DRV_NAME, | 556 | .proc_name = DRV_NAME, |
557 | .queuecommand = iscsi_queuecommand, | 557 | .queuecommand = iscsi_queuecommand, |
558 | .change_queue_depth = scsi_change_queue_depth, | 558 | .change_queue_depth = scsi_change_queue_depth, |
diff --git a/drivers/scsi/be2iscsi/be_main.h b/drivers/scsi/be2iscsi/be_main.h index 7ee0ffc38514..e70ea26bbc2b 100644 --- a/drivers/scsi/be2iscsi/be_main.h +++ b/drivers/scsi/be2iscsi/be_main.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (C) 2005 - 2014 Emulex | 2 | * Copyright (C) 2005 - 2015 Avago Technologies |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
@@ -7,12 +7,12 @@ | |||
7 | * as published by the Free Software Foundation. The full GNU General | 7 | * as published by the Free Software Foundation. The full GNU General |
8 | * Public License is included in this distribution in the file called COPYING. | 8 | * Public License is included in this distribution in the file called COPYING. |
9 | * | 9 | * |
10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@emulex.com) | 10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@avagotech.com) |
11 | * | 11 | * |
12 | * Contact Information: | 12 | * Contact Information: |
13 | * linux-drivers@emulex.com | 13 | * linux-drivers@avagotech.com |
14 | * | 14 | * |
15 | * Emulex | 15 | * Avago Technologies |
16 | * 3333 Susan Street | 16 | * 3333 Susan Street |
17 | * Costa Mesa, CA 92626 | 17 | * Costa Mesa, CA 92626 |
18 | */ | 18 | */ |
@@ -37,7 +37,7 @@ | |||
37 | 37 | ||
38 | #define DRV_NAME "be2iscsi" | 38 | #define DRV_NAME "be2iscsi" |
39 | #define BUILD_STR "10.4.114.0" | 39 | #define BUILD_STR "10.4.114.0" |
40 | #define BE_NAME "Emulex OneConnect" \ | 40 | #define BE_NAME "Avago Technologies OneConnect" \ |
41 | "Open-iSCSI Driver version" BUILD_STR | 41 | "Open-iSCSI Driver version" BUILD_STR |
42 | #define DRV_DESC BE_NAME " " "Driver" | 42 | #define DRV_DESC BE_NAME " " "Driver" |
43 | 43 | ||
diff --git a/drivers/scsi/be2iscsi/be_mgmt.c b/drivers/scsi/be2iscsi/be_mgmt.c index 681d4e8f003a..c2c4d6975fb7 100644 --- a/drivers/scsi/be2iscsi/be_mgmt.c +++ b/drivers/scsi/be2iscsi/be_mgmt.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (C) 2005 - 2014 Emulex | 2 | * Copyright (C) 2005 - 2015 Avago Technologies |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
@@ -7,12 +7,12 @@ | |||
7 | * as published by the Free Software Foundation. The full GNU General | 7 | * as published by the Free Software Foundation. The full GNU General |
8 | * Public License is included in this distribution in the file called COPYING. | 8 | * Public License is included in this distribution in the file called COPYING. |
9 | * | 9 | * |
10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@emulex.com) | 10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@avagotech.com) |
11 | * | 11 | * |
12 | * Contact Information: | 12 | * Contact Information: |
13 | * linux-drivers@emulex.com | 13 | * linux-drivers@avagotech.com |
14 | * | 14 | * |
15 | * Emulex | 15 | * Avago Technologies |
16 | * 3333 Susan Street | 16 | * 3333 Susan Street |
17 | * Costa Mesa, CA 92626 | 17 | * Costa Mesa, CA 92626 |
18 | */ | 18 | */ |
diff --git a/drivers/scsi/be2iscsi/be_mgmt.h b/drivers/scsi/be2iscsi/be_mgmt.h index bd81446936fc..9356b9a86b66 100644 --- a/drivers/scsi/be2iscsi/be_mgmt.h +++ b/drivers/scsi/be2iscsi/be_mgmt.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (C) 2005 - 2014 Emulex | 2 | * Copyright (C) 2005 - 2015 Avago Technologies |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
@@ -7,12 +7,12 @@ | |||
7 | * as published by the Free Software Foundation. The full GNU General | 7 | * as published by the Free Software Foundation. The full GNU General |
8 | * Public License is included in this distribution in the file called COPYING. | 8 | * Public License is included in this distribution in the file called COPYING. |
9 | * | 9 | * |
10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@emulex.com) | 10 | * Written by: Jayamohan Kallickal (jayamohan.kallickal@avagotech.com) |
11 | * | 11 | * |
12 | * Contact Information: | 12 | * Contact Information: |
13 | * linux-drivers@emulex.com | 13 | * linux-drivers@avagotech.com |
14 | * | 14 | * |
15 | * Emulex | 15 | * Avago Technologies |
16 | * 3333 Susan Street | 16 | * 3333 Susan Street |
17 | * Costa Mesa, CA 92626 | 17 | * Costa Mesa, CA 92626 |
18 | */ | 18 | */ |
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index cb73cf9e9ba5..c140f99772ca 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c | |||
@@ -1130,25 +1130,6 @@ lpfc_release_scsi_buf(struct lpfc_hba *phba, struct lpfc_scsi_buf *psb) | |||
1130 | } | 1130 | } |
1131 | 1131 | ||
1132 | /** | 1132 | /** |
1133 | * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB | ||
1134 | * @data: A pointer to the immediate command data portion of the IOCB. | ||
1135 | * @fcp_cmnd: The FCP Command that is provided by the SCSI layer. | ||
1136 | * | ||
1137 | * The routine copies the entire FCP command from @fcp_cmnd to @data while | ||
1138 | * byte swapping the data to big endian format for transmission on the wire. | ||
1139 | **/ | ||
1140 | static void | ||
1141 | lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd) | ||
1142 | { | ||
1143 | int i, j; | ||
1144 | |||
1145 | for (i = 0, j = 0; i < sizeof(struct fcp_cmnd); | ||
1146 | i += sizeof(uint32_t), j++) { | ||
1147 | ((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]); | ||
1148 | } | ||
1149 | } | ||
1150 | |||
1151 | /** | ||
1152 | * lpfc_scsi_prep_dma_buf_s3 - DMA mapping for scsi buffer to SLI3 IF spec | 1133 | * lpfc_scsi_prep_dma_buf_s3 - DMA mapping for scsi buffer to SLI3 IF spec |
1153 | * @phba: The Hba for which this call is being executed. | 1134 | * @phba: The Hba for which this call is being executed. |
1154 | * @lpfc_cmd: The scsi buffer which is going to be mapped. | 1135 | * @lpfc_cmd: The scsi buffer which is going to be mapped. |
@@ -1283,7 +1264,6 @@ lpfc_scsi_prep_dma_buf_s3(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd) | |||
1283 | * we need to set word 4 of IOCB here | 1264 | * we need to set word 4 of IOCB here |
1284 | */ | 1265 | */ |
1285 | iocb_cmd->un.fcpi.fcpi_parm = scsi_bufflen(scsi_cmnd); | 1266 | iocb_cmd->un.fcpi.fcpi_parm = scsi_bufflen(scsi_cmnd); |
1286 | lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd); | ||
1287 | return 0; | 1267 | return 0; |
1288 | } | 1268 | } |
1289 | 1269 | ||
@@ -4147,6 +4127,24 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn, | |||
4147 | } | 4127 | } |
4148 | 4128 | ||
4149 | /** | 4129 | /** |
4130 | * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB | ||
4131 | * @data: A pointer to the immediate command data portion of the IOCB. | ||
4132 | * @fcp_cmnd: The FCP Command that is provided by the SCSI layer. | ||
4133 | * | ||
4134 | * The routine copies the entire FCP command from @fcp_cmnd to @data while | ||
4135 | * byte swapping the data to big endian format for transmission on the wire. | ||
4136 | **/ | ||
4137 | static void | ||
4138 | lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd) | ||
4139 | { | ||
4140 | int i, j; | ||
4141 | for (i = 0, j = 0; i < sizeof(struct fcp_cmnd); | ||
4142 | i += sizeof(uint32_t), j++) { | ||
4143 | ((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]); | ||
4144 | } | ||
4145 | } | ||
4146 | |||
4147 | /** | ||
4150 | * lpfc_scsi_prep_cmnd - Wrapper func for convert scsi cmnd to FCP info unit | 4148 | * lpfc_scsi_prep_cmnd - Wrapper func for convert scsi cmnd to FCP info unit |
4151 | * @vport: The virtual port for which this call is being executed. | 4149 | * @vport: The virtual port for which this call is being executed. |
4152 | * @lpfc_cmd: The scsi command which needs to send. | 4150 | * @lpfc_cmd: The scsi command which needs to send. |
@@ -4225,6 +4223,9 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd, | |||
4225 | fcp_cmnd->fcpCntl3 = 0; | 4223 | fcp_cmnd->fcpCntl3 = 0; |
4226 | phba->fc4ControlRequests++; | 4224 | phba->fc4ControlRequests++; |
4227 | } | 4225 | } |
4226 | if (phba->sli_rev == 3 && | ||
4227 | !(phba->sli3_options & LPFC_SLI3_BG_ENABLED)) | ||
4228 | lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd); | ||
4228 | /* | 4229 | /* |
4229 | * Finish initializing those IOCB fields that are independent | 4230 | * Finish initializing those IOCB fields that are independent |
4230 | * of the scsi_cmnd request_buffer | 4231 | * of the scsi_cmnd request_buffer |
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 79beebf53302..7f9d65fe4fd9 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
@@ -1600,6 +1600,7 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd) | |||
1600 | { | 1600 | { |
1601 | u64 start_lba = blk_rq_pos(scmd->request); | 1601 | u64 start_lba = blk_rq_pos(scmd->request); |
1602 | u64 end_lba = blk_rq_pos(scmd->request) + (scsi_bufflen(scmd) / 512); | 1602 | u64 end_lba = blk_rq_pos(scmd->request) + (scsi_bufflen(scmd) / 512); |
1603 | u64 factor = scmd->device->sector_size / 512; | ||
1603 | u64 bad_lba; | 1604 | u64 bad_lba; |
1604 | int info_valid; | 1605 | int info_valid; |
1605 | /* | 1606 | /* |
@@ -1621,16 +1622,9 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd) | |||
1621 | if (scsi_bufflen(scmd) <= scmd->device->sector_size) | 1622 | if (scsi_bufflen(scmd) <= scmd->device->sector_size) |
1622 | return 0; | 1623 | return 0; |
1623 | 1624 | ||
1624 | if (scmd->device->sector_size < 512) { | 1625 | /* be careful ... don't want any overflows */ |
1625 | /* only legitimate sector_size here is 256 */ | 1626 | do_div(start_lba, factor); |
1626 | start_lba <<= 1; | 1627 | do_div(end_lba, factor); |
1627 | end_lba <<= 1; | ||
1628 | } else { | ||
1629 | /* be careful ... don't want any overflows */ | ||
1630 | unsigned int factor = scmd->device->sector_size / 512; | ||
1631 | do_div(start_lba, factor); | ||
1632 | do_div(end_lba, factor); | ||
1633 | } | ||
1634 | 1628 | ||
1635 | /* The bad lba was reported incorrectly, we have no idea where | 1629 | /* The bad lba was reported incorrectly, we have no idea where |
1636 | * the error is. | 1630 | * the error is. |
@@ -2188,8 +2182,7 @@ got_data: | |||
2188 | if (sector_size != 512 && | 2182 | if (sector_size != 512 && |
2189 | sector_size != 1024 && | 2183 | sector_size != 1024 && |
2190 | sector_size != 2048 && | 2184 | sector_size != 2048 && |
2191 | sector_size != 4096 && | 2185 | sector_size != 4096) { |
2192 | sector_size != 256) { | ||
2193 | sd_printk(KERN_NOTICE, sdkp, "Unsupported sector size %d.\n", | 2186 | sd_printk(KERN_NOTICE, sdkp, "Unsupported sector size %d.\n", |
2194 | sector_size); | 2187 | sector_size); |
2195 | /* | 2188 | /* |
@@ -2244,8 +2237,6 @@ got_data: | |||
2244 | sdkp->capacity <<= 2; | 2237 | sdkp->capacity <<= 2; |
2245 | else if (sector_size == 1024) | 2238 | else if (sector_size == 1024) |
2246 | sdkp->capacity <<= 1; | 2239 | sdkp->capacity <<= 1; |
2247 | else if (sector_size == 256) | ||
2248 | sdkp->capacity >>= 1; | ||
2249 | 2240 | ||
2250 | blk_queue_physical_block_size(sdp->request_queue, | 2241 | blk_queue_physical_block_size(sdp->request_queue, |
2251 | sdkp->physical_block_size); | 2242 | sdkp->physical_block_size); |
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index d9dad90344d5..3c6584ff65c1 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c | |||
@@ -1600,8 +1600,7 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd) | |||
1600 | break; | 1600 | break; |
1601 | default: | 1601 | default: |
1602 | vm_srb->data_in = UNKNOWN_TYPE; | 1602 | vm_srb->data_in = UNKNOWN_TYPE; |
1603 | vm_srb->win8_extension.srb_flags |= (SRB_FLAGS_DATA_IN | | 1603 | vm_srb->win8_extension.srb_flags |= SRB_FLAGS_NO_DATA_TRANSFER; |
1604 | SRB_FLAGS_DATA_OUT); | ||
1605 | break; | 1604 | break; |
1606 | } | 1605 | } |
1607 | 1606 | ||