History

Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi

Pull SCSI updates from James Bottomley: "This consists of the usual driver updates (ufs, qla2xxx, tcmu, lpfc, hpsa, zfcp, scsi_debug) and minor bug fixes. We also have a huge docbook fix update like most other subsystems and no major update to the core (the few non trivial updates are either minor fixes or removing an unused feature [scsi_sdb_cache])" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (307 commits) scsi: scsi_transport_srp: Sanitize scsi_target_block/unblock sequences scsi: ufs-mediatek: Apply DELAY_AFTER_LPM quirk to Micron devices scsi: ufs: Introduce device quirk "DELAY_AFTER_LPM" scsi: virtio-scsi: Correctly handle the case where all LUNs are unplugged scsi: scsi_debug: Implement tur_ms_to_ready parameter scsi: scsi_debug: Fix request sense scsi: lpfc: Fix typo in comment for ULP scsi: ufs-mediatek: Prevent LPM operation on undeclared VCC scsi: iscsi: Do not put host in iscsi_set_flashnode_param() scsi: hpsa: Correct ctrl queue depth scsi: target: tcmu: Make TMR notification optional scsi: target: tcmu: Implement tmr_notify callback scsi: target: tcmu: Fix and simplify timeout handling scsi: target: tcmu: Factor out new helper ring_insert_padding scsi: target: tcmu: Do not queue aborted commands scsi: target: tcmu: Use priv pointer in se_cmd scsi: target: Add tmr_notify backend function scsi: target: Modify core_tmr_abort_task() scsi: target: iscsi: Fix inconsistent debug message scsi: target: iscsi: Fix login error when receiving ...

Linus Torvalds committed 6 years ago

Commit dfdf16e2 parents d7806bb bf1a28f221 files · +7777 −3384Browse files

Showing the changes to include (10 of 221 files). Show all

Unified · Split

10 files
  1. include/linux/qcom_scm.h +19 −0
  2. include/scsi/fc/fc_ms.h +2 −2
  3. include/scsi/scsi_tcq.h +1 −1
  4. include/scsi/scsi_transport_iscsi.h +1 −1
  5. include/target/iscsi/iscsi_target_core.h +5 −4
  6. include/target/target_core_backend.h +2 −0
  7. include/target/target_core_base.h +1 −0
  8. include/trace/events/ufs.h +31 −0
  9. include/uapi/linux/target_core_user.h +25 −0
  10. include/uapi/scsi/fc/fc_els.h +2 −0
include/linux/qcom_scm.h+19−0
@@ -44,6 +44,13 @@ enum qcom_scm_sec_dev_id { · 43 unmodified lines
44 QCOM_SCM_ICE_DEV_ID = 20,44 QCOM_SCM_ICE_DEV_ID = 20,
45};45};
46 46
47enum qcom_scm_ice_cipher {
48 QCOM_SCM_ICE_CIPHER_AES_128_XTS = 0,
49 QCOM_SCM_ICE_CIPHER_AES_128_CBC = 1,
50 QCOM_SCM_ICE_CIPHER_AES_256_XTS = 3,
51 QCOM_SCM_ICE_CIPHER_AES_256_CBC = 4,
52};
53
47#define QCOM_SCM_VMID_HLOS 0x354#define QCOM_SCM_VMID_HLOS 0x3
48#define QCOM_SCM_VMID_MSS_MSA 0xF55#define QCOM_SCM_VMID_MSS_MSA 0xF
49#define QCOM_SCM_VMID_WLAN 0x1856#define QCOM_SCM_VMID_WLAN 0x18
@@ -88,6 +95,12 @@ extern int qcom_scm_ocmem_lock(enum qcom_scm_ocmem_client id, u32 offset, · 38 unmodified lines
88extern int qcom_scm_ocmem_unlock(enum qcom_scm_ocmem_client id, u32 offset,95extern int qcom_scm_ocmem_unlock(enum qcom_scm_ocmem_client id, u32 offset,
89 u32 size);96 u32 size);
90 97
98extern bool qcom_scm_ice_available(void);
99extern int qcom_scm_ice_invalidate_key(u32 index);
100extern int qcom_scm_ice_set_key(u32 index, const u8 *key, u32 key_size,
101 enum qcom_scm_ice_cipher cipher,
102 u32 data_unit_size);
103
91extern bool qcom_scm_hdcp_available(void);104extern bool qcom_scm_hdcp_available(void);
92extern int qcom_scm_hdcp_req(struct qcom_scm_hdcp_req *req, u32 req_cnt,105extern int qcom_scm_hdcp_req(struct qcom_scm_hdcp_req *req, u32 req_cnt,
93 u32 *resp);106 u32 *resp);
@@ -138,6 +151,12 @@ static inline int qcom_scm_ocmem_lock(enum qcom_scm_ocmem_client id, u32 offset, · 44 unmodified lines
138static inline int qcom_scm_ocmem_unlock(enum qcom_scm_ocmem_client id,151static inline int qcom_scm_ocmem_unlock(enum qcom_scm_ocmem_client id,
139 u32 offset, u32 size) { return -ENODEV; }152 u32 offset, u32 size) { return -ENODEV; }
140 153
154static inline bool qcom_scm_ice_available(void) { return false; }
155static inline int qcom_scm_ice_invalidate_key(u32 index) { return -ENODEV; }
156static inline int qcom_scm_ice_set_key(u32 index, const u8 *key, u32 key_size,
157 enum qcom_scm_ice_cipher cipher,
158 u32 data_unit_size) { return -ENODEV; }
159
141static inline bool qcom_scm_hdcp_available(void) { return false; }160static inline bool qcom_scm_hdcp_available(void) { return false; }
142static inline int qcom_scm_hdcp_req(struct qcom_scm_hdcp_req *req, u32 req_cnt,161static inline int qcom_scm_hdcp_req(struct qcom_scm_hdcp_req *req, u32 req_cnt,
143 u32 *resp) { return -ENODEV; }162 u32 *resp) { return -ENODEV; }
include/scsi/fc/fc_ms.h+2−2
@@ -63,8 +63,8 @@ enum fc_fdmi_hba_attr_type { · 62 unmodified lines
63 * HBA Attribute Length63 * HBA Attribute Length
64 */64 */
65#define FC_FDMI_HBA_ATTR_NODENAME_LEN 865#define FC_FDMI_HBA_ATTR_NODENAME_LEN 8
66#define FC_FDMI_HBA_ATTR_MANUFACTURER_LEN 6466#define FC_FDMI_HBA_ATTR_MANUFACTURER_LEN 80
67#define FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN 6467#define FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN 80
68#define FC_FDMI_HBA_ATTR_MODEL_LEN 25668#define FC_FDMI_HBA_ATTR_MODEL_LEN 256
69#define FC_FDMI_HBA_ATTR_MODELDESCR_LEN 25669#define FC_FDMI_HBA_ATTR_MODELDESCR_LEN 256
70#define FC_FDMI_HBA_ATTR_HARDWAREVERSION_LEN 25670#define FC_FDMI_HBA_ATTR_HARDWAREVERSION_LEN 256
include/scsi/scsi_tcq.h+1−1
@@ -34,7 +34,7 @@ static inline struct scsi_cmnd *scsi_host_find_tag(struct Scsi_Host *shost, · 33 unmodified lines
34 blk_mq_unique_tag_to_tag(tag));34 blk_mq_unique_tag_to_tag(tag));
35 }35 }
36 36
37 if (!req)37 if (!req || !blk_mq_request_started(req))
38 return NULL;38 return NULL;
39 return blk_mq_rq_to_pdu(req);39 return blk_mq_rq_to_pdu(req);
40}40}
include/scsi/scsi_transport_iscsi.h+1−1
@@ -57,7 +57,7 @@ struct iscsi_bus_flash_conn; · 56 unmodified lines
57 * When not offloading the data path, this is called57 * When not offloading the data path, this is called
58 * from the scsi work queue without the session lock.58 * from the scsi work queue without the session lock.
59 * @xmit_task Requests LLD to transfer cmd task. Returns 0 or the59 * @xmit_task Requests LLD to transfer cmd task. Returns 0 or the
60 * the number of bytes transferred on success, and -Exyz60 * number of bytes transferred on success, and -Exyz
61 * value on error. When offloading the data path, this61 * value on error. When offloading the data path, this
62 * is called from queuecommand with the session lock, or62 * is called from queuecommand with the session lock, or
63 * from the iscsi_conn_send_pdu context with the session63 * from the iscsi_conn_send_pdu context with the session
include/target/iscsi/iscsi_target_core.h+5−4
@@ -556,10 +556,11 @@ struct iscsi_conn { · 555 unmodified lines
556 struct socket *sock;556 struct socket *sock;
557 void (*orig_data_ready)(struct sock *);557 void (*orig_data_ready)(struct sock *);
558 void (*orig_state_change)(struct sock *);558 void (*orig_state_change)(struct sock *);
559#define LOGIN_FLAGS_READ_ACTIVE 1559#define LOGIN_FLAGS_READY 0
560#define LOGIN_FLAGS_CLOSED 2560#define LOGIN_FLAGS_INITIAL_PDU 1
561#define LOGIN_FLAGS_READY 4561#define LOGIN_FLAGS_READ_ACTIVE 2
562#define LOGIN_FLAGS_INITIAL_PDU 8562#define LOGIN_FLAGS_WRITE_ACTIVE 3
563#define LOGIN_FLAGS_CLOSED 4
563 unsigned long login_flags;564 unsigned long login_flags;
564 struct delayed_work login_work;565 struct delayed_work login_work;
565 struct iscsi_login *login;566 struct iscsi_login *login;
include/target/target_core_backend.h+2−0
@@ -40,6 +40,8 @@ struct target_backend_ops { · 39 unmodified lines
40 ssize_t (*show_configfs_dev_params)(struct se_device *, char *);40 ssize_t (*show_configfs_dev_params)(struct se_device *, char *);
41 41
42 sense_reason_t (*parse_cdb)(struct se_cmd *cmd);42 sense_reason_t (*parse_cdb)(struct se_cmd *cmd);
43 void (*tmr_notify)(struct se_device *se_dev, enum tcm_tmreq_table,
44 struct list_head *aborted_cmds);
43 u32 (*get_device_type)(struct se_device *);45 u32 (*get_device_type)(struct se_device *);
44 sector_t (*get_blocks)(struct se_device *);46 sector_t (*get_blocks)(struct se_device *);
45 sector_t (*get_alignment_offset_lbas)(struct se_device *);47 sector_t (*get_alignment_offset_lbas)(struct se_device *);
include/target/target_core_base.h+1−0
@@ -207,6 +207,7 @@ enum tcm_tmreq_table { · 206 unmodified lines
207 TMR_LUN_RESET = 5,207 TMR_LUN_RESET = 5,
208 TMR_TARGET_WARM_RESET = 6,208 TMR_TARGET_WARM_RESET = 6,
209 TMR_TARGET_COLD_RESET = 7,209 TMR_TARGET_COLD_RESET = 7,
210 TMR_LUN_RESET_PRO = 0x80,
210 TMR_UNKNOWN = 0xff,211 TMR_UNKNOWN = 0xff,
211};212};
212 213
include/trace/events/ufs.h+31−0
@@ -249,6 +249,37 @@ TRACE_EVENT(ufshcd_command, · 248 unmodified lines
249 )249 )
250);250);
251 251
252TRACE_EVENT(ufshcd_uic_command,
253 TP_PROTO(const char *dev_name, const char *str, u32 cmd,
254 u32 arg1, u32 arg2, u32 arg3),
255
256 TP_ARGS(dev_name, str, cmd, arg1, arg2, arg3),
257
258 TP_STRUCT__entry(
259 __string(dev_name, dev_name)
260 __string(str, str)
261 __field(u32, cmd)
262 __field(u32, arg1)
263 __field(u32, arg2)
264 __field(u32, arg3)
265 ),
266
267 TP_fast_assign(
268 __assign_str(dev_name, dev_name);
269 __assign_str(str, str);
270 __entry->cmd = cmd;
271 __entry->arg1 = arg1;
272 __entry->arg2 = arg2;
273 __entry->arg3 = arg3;
274 ),
275
276 TP_printk(
277 "%s: %s: cmd: 0x%x, arg1: 0x%x, arg2: 0x%x, arg3: 0x%x",
278 __get_str(str), __get_str(dev_name), __entry->cmd,
279 __entry->arg1, __entry->arg2, __entry->arg3
280 )
281);
282
252TRACE_EVENT(ufshcd_upiu,283TRACE_EVENT(ufshcd_upiu,
253 TP_PROTO(const char *dev_name, const char *str, void *hdr, void *tsf),284 TP_PROTO(const char *dev_name, const char *str, void *hdr, void *tsf),
254 285
include/uapi/linux/target_core_user.h+25−0
@@ -45,6 +45,7 @@ · 44 unmodified lines
45#define ALIGN_SIZE 64 /* Should be enough for most CPUs */45#define ALIGN_SIZE 64 /* Should be enough for most CPUs */
46#define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0) /* Out-of-order completions */46#define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0) /* Out-of-order completions */
47#define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1) /* Read data length */47#define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1) /* Read data length */
48#define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2) /* TMR notifications */
48 49
49struct tcmu_mailbox {50struct tcmu_mailbox {
50 __u16 version;51 __u16 version;
@@ -62,6 +63,7 @@ struct tcmu_mailbox { · 11 unmodified lines
62enum tcmu_opcode {63enum tcmu_opcode {
63 TCMU_OP_PAD = 0,64 TCMU_OP_PAD = 0,
64 TCMU_OP_CMD,65 TCMU_OP_CMD,
66 TCMU_OP_TMR,
65};67};
66 68
67/*69/*
@@ -128,6 +130,29 @@ struct tcmu_cmd_entry { · 60 unmodified lines
128 130
129} __packed;131} __packed;
130 132
133struct tcmu_tmr_entry {
134 struct tcmu_cmd_entry_hdr hdr;
135
136#define TCMU_TMR_UNKNOWN 0
137#define TCMU_TMR_ABORT_TASK 1
138#define TCMU_TMR_ABORT_TASK_SET 2
139#define TCMU_TMR_CLEAR_ACA 3
140#define TCMU_TMR_CLEAR_TASK_SET 4
141#define TCMU_TMR_LUN_RESET 5
142#define TCMU_TMR_TARGET_WARM_RESET 6
143#define TCMU_TMR_TARGET_COLD_RESET 7
144/* Pseudo reset due to received PR OUT */
145#define TCMU_TMR_LUN_RESET_PRO 128
146 __u8 tmr_type;
147
148 __u8 __pad1;
149 __u16 __pad2;
150 __u32 cmd_cnt;
151 __u64 __pad3;
152 __u64 __pad4;
153 __u16 cmd_ids[0];
154} __packed;
155
131#define TCMU_OP_ALIGN_SIZE sizeof(__u64)156#define TCMU_OP_ALIGN_SIZE sizeof(__u64)
132 157
133enum tcmu_genl_cmd {158enum tcmu_genl_cmd {
include/uapi/scsi/fc/fc_els.h+2−0
@@ -41,6 +41,7 @@ enum fc_els_cmd { · 40 unmodified lines
41 ELS_REC = 0x13, /* read exchange concise */41 ELS_REC = 0x13, /* read exchange concise */
42 ELS_SRR = 0x14, /* sequence retransmission request */42 ELS_SRR = 0x14, /* sequence retransmission request */
43 ELS_FPIN = 0x16, /* Fabric Performance Impact Notification */43 ELS_FPIN = 0x16, /* Fabric Performance Impact Notification */
44 ELS_RDP = 0x18, /* Read Diagnostic Parameters */
44 ELS_RDF = 0x19, /* Register Diagnostic Functions */45 ELS_RDF = 0x19, /* Register Diagnostic Functions */
45 ELS_PRLI = 0x20, /* process login */46 ELS_PRLI = 0x20, /* process login */
46 ELS_PRLO = 0x21, /* process logout */47 ELS_PRLO = 0x21, /* process logout */
@@ -110,6 +111,7 @@ enum fc_els_cmd { · 63 unmodified lines
110 [ELS_REC] = "REC", \111 [ELS_REC] = "REC", \
111 [ELS_SRR] = "SRR", \112 [ELS_SRR] = "SRR", \
112 [ELS_FPIN] = "FPIN", \113 [ELS_FPIN] = "FPIN", \
114 [ELS_RDP] = "RDP", \
113 [ELS_RDF] = "RDF", \115 [ELS_RDF] = "RDF", \
114 [ELS_PRLI] = "PRLI", \116 [ELS_PRLI] = "PRLI", \
115 [ELS_PRLO] = "PRLO", \117 [ELS_PRLO] = "PRLO", \