mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-29 02:19:54 -04:00
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 ...
This commit is contained in:
@@ -44,6 +44,13 @@ enum qcom_scm_sec_dev_id {
|
||||
QCOM_SCM_ICE_DEV_ID = 20,
|
||||
};
|
||||
|
||||
enum qcom_scm_ice_cipher {
|
||||
QCOM_SCM_ICE_CIPHER_AES_128_XTS = 0,
|
||||
QCOM_SCM_ICE_CIPHER_AES_128_CBC = 1,
|
||||
QCOM_SCM_ICE_CIPHER_AES_256_XTS = 3,
|
||||
QCOM_SCM_ICE_CIPHER_AES_256_CBC = 4,
|
||||
};
|
||||
|
||||
#define QCOM_SCM_VMID_HLOS 0x3
|
||||
#define QCOM_SCM_VMID_MSS_MSA 0xF
|
||||
#define QCOM_SCM_VMID_WLAN 0x18
|
||||
@@ -88,6 +95,12 @@ extern int qcom_scm_ocmem_lock(enum qcom_scm_ocmem_client id, u32 offset,
|
||||
extern int qcom_scm_ocmem_unlock(enum qcom_scm_ocmem_client id, u32 offset,
|
||||
u32 size);
|
||||
|
||||
extern bool qcom_scm_ice_available(void);
|
||||
extern int qcom_scm_ice_invalidate_key(u32 index);
|
||||
extern int qcom_scm_ice_set_key(u32 index, const u8 *key, u32 key_size,
|
||||
enum qcom_scm_ice_cipher cipher,
|
||||
u32 data_unit_size);
|
||||
|
||||
extern bool qcom_scm_hdcp_available(void);
|
||||
extern int qcom_scm_hdcp_req(struct qcom_scm_hdcp_req *req, u32 req_cnt,
|
||||
u32 *resp);
|
||||
@@ -138,6 +151,12 @@ static inline int qcom_scm_ocmem_lock(enum qcom_scm_ocmem_client id, u32 offset,
|
||||
static inline int qcom_scm_ocmem_unlock(enum qcom_scm_ocmem_client id,
|
||||
u32 offset, u32 size) { return -ENODEV; }
|
||||
|
||||
static inline bool qcom_scm_ice_available(void) { return false; }
|
||||
static inline int qcom_scm_ice_invalidate_key(u32 index) { return -ENODEV; }
|
||||
static inline int qcom_scm_ice_set_key(u32 index, const u8 *key, u32 key_size,
|
||||
enum qcom_scm_ice_cipher cipher,
|
||||
u32 data_unit_size) { return -ENODEV; }
|
||||
|
||||
static inline bool qcom_scm_hdcp_available(void) { return false; }
|
||||
static inline int qcom_scm_hdcp_req(struct qcom_scm_hdcp_req *req, u32 req_cnt,
|
||||
u32 *resp) { return -ENODEV; }
|
||||
|
||||
@@ -63,8 +63,8 @@ enum fc_fdmi_hba_attr_type {
|
||||
* HBA Attribute Length
|
||||
*/
|
||||
#define FC_FDMI_HBA_ATTR_NODENAME_LEN 8
|
||||
#define FC_FDMI_HBA_ATTR_MANUFACTURER_LEN 64
|
||||
#define FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN 64
|
||||
#define FC_FDMI_HBA_ATTR_MANUFACTURER_LEN 80
|
||||
#define FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN 80
|
||||
#define FC_FDMI_HBA_ATTR_MODEL_LEN 256
|
||||
#define FC_FDMI_HBA_ATTR_MODELDESCR_LEN 256
|
||||
#define FC_FDMI_HBA_ATTR_HARDWAREVERSION_LEN 256
|
||||
|
||||
@@ -34,7 +34,7 @@ static inline struct scsi_cmnd *scsi_host_find_tag(struct Scsi_Host *shost,
|
||||
blk_mq_unique_tag_to_tag(tag));
|
||||
}
|
||||
|
||||
if (!req)
|
||||
if (!req || !blk_mq_request_started(req))
|
||||
return NULL;
|
||||
return blk_mq_rq_to_pdu(req);
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ struct iscsi_bus_flash_conn;
|
||||
* When not offloading the data path, this is called
|
||||
* from the scsi work queue without the session lock.
|
||||
* @xmit_task Requests LLD to transfer cmd task. Returns 0 or the
|
||||
* the number of bytes transferred on success, and -Exyz
|
||||
* number of bytes transferred on success, and -Exyz
|
||||
* value on error. When offloading the data path, this
|
||||
* is called from queuecommand with the session lock, or
|
||||
* from the iscsi_conn_send_pdu context with the session
|
||||
|
||||
@@ -556,10 +556,11 @@ struct iscsi_conn {
|
||||
struct socket *sock;
|
||||
void (*orig_data_ready)(struct sock *);
|
||||
void (*orig_state_change)(struct sock *);
|
||||
#define LOGIN_FLAGS_READ_ACTIVE 1
|
||||
#define LOGIN_FLAGS_CLOSED 2
|
||||
#define LOGIN_FLAGS_READY 4
|
||||
#define LOGIN_FLAGS_INITIAL_PDU 8
|
||||
#define LOGIN_FLAGS_READY 0
|
||||
#define LOGIN_FLAGS_INITIAL_PDU 1
|
||||
#define LOGIN_FLAGS_READ_ACTIVE 2
|
||||
#define LOGIN_FLAGS_WRITE_ACTIVE 3
|
||||
#define LOGIN_FLAGS_CLOSED 4
|
||||
unsigned long login_flags;
|
||||
struct delayed_work login_work;
|
||||
struct iscsi_login *login;
|
||||
|
||||
@@ -40,6 +40,8 @@ struct target_backend_ops {
|
||||
ssize_t (*show_configfs_dev_params)(struct se_device *, char *);
|
||||
|
||||
sense_reason_t (*parse_cdb)(struct se_cmd *cmd);
|
||||
void (*tmr_notify)(struct se_device *se_dev, enum tcm_tmreq_table,
|
||||
struct list_head *aborted_cmds);
|
||||
u32 (*get_device_type)(struct se_device *);
|
||||
sector_t (*get_blocks)(struct se_device *);
|
||||
sector_t (*get_alignment_offset_lbas)(struct se_device *);
|
||||
|
||||
@@ -207,6 +207,7 @@ enum tcm_tmreq_table {
|
||||
TMR_LUN_RESET = 5,
|
||||
TMR_TARGET_WARM_RESET = 6,
|
||||
TMR_TARGET_COLD_RESET = 7,
|
||||
TMR_LUN_RESET_PRO = 0x80,
|
||||
TMR_UNKNOWN = 0xff,
|
||||
};
|
||||
|
||||
|
||||
@@ -249,6 +249,37 @@ TRACE_EVENT(ufshcd_command,
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(ufshcd_uic_command,
|
||||
TP_PROTO(const char *dev_name, const char *str, u32 cmd,
|
||||
u32 arg1, u32 arg2, u32 arg3),
|
||||
|
||||
TP_ARGS(dev_name, str, cmd, arg1, arg2, arg3),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__string(dev_name, dev_name)
|
||||
__string(str, str)
|
||||
__field(u32, cmd)
|
||||
__field(u32, arg1)
|
||||
__field(u32, arg2)
|
||||
__field(u32, arg3)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__assign_str(dev_name, dev_name);
|
||||
__assign_str(str, str);
|
||||
__entry->cmd = cmd;
|
||||
__entry->arg1 = arg1;
|
||||
__entry->arg2 = arg2;
|
||||
__entry->arg3 = arg3;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
"%s: %s: cmd: 0x%x, arg1: 0x%x, arg2: 0x%x, arg3: 0x%x",
|
||||
__get_str(str), __get_str(dev_name), __entry->cmd,
|
||||
__entry->arg1, __entry->arg2, __entry->arg3
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(ufshcd_upiu,
|
||||
TP_PROTO(const char *dev_name, const char *str, void *hdr, void *tsf),
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#define ALIGN_SIZE 64 /* Should be enough for most CPUs */
|
||||
#define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0) /* Out-of-order completions */
|
||||
#define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1) /* Read data length */
|
||||
#define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2) /* TMR notifications */
|
||||
|
||||
struct tcmu_mailbox {
|
||||
__u16 version;
|
||||
@@ -62,6 +63,7 @@ struct tcmu_mailbox {
|
||||
enum tcmu_opcode {
|
||||
TCMU_OP_PAD = 0,
|
||||
TCMU_OP_CMD,
|
||||
TCMU_OP_TMR,
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -128,6 +130,29 @@ struct tcmu_cmd_entry {
|
||||
|
||||
} __packed;
|
||||
|
||||
struct tcmu_tmr_entry {
|
||||
struct tcmu_cmd_entry_hdr hdr;
|
||||
|
||||
#define TCMU_TMR_UNKNOWN 0
|
||||
#define TCMU_TMR_ABORT_TASK 1
|
||||
#define TCMU_TMR_ABORT_TASK_SET 2
|
||||
#define TCMU_TMR_CLEAR_ACA 3
|
||||
#define TCMU_TMR_CLEAR_TASK_SET 4
|
||||
#define TCMU_TMR_LUN_RESET 5
|
||||
#define TCMU_TMR_TARGET_WARM_RESET 6
|
||||
#define TCMU_TMR_TARGET_COLD_RESET 7
|
||||
/* Pseudo reset due to received PR OUT */
|
||||
#define TCMU_TMR_LUN_RESET_PRO 128
|
||||
__u8 tmr_type;
|
||||
|
||||
__u8 __pad1;
|
||||
__u16 __pad2;
|
||||
__u32 cmd_cnt;
|
||||
__u64 __pad3;
|
||||
__u64 __pad4;
|
||||
__u16 cmd_ids[0];
|
||||
} __packed;
|
||||
|
||||
#define TCMU_OP_ALIGN_SIZE sizeof(__u64)
|
||||
|
||||
enum tcmu_genl_cmd {
|
||||
|
||||
@@ -41,6 +41,7 @@ enum fc_els_cmd {
|
||||
ELS_REC = 0x13, /* read exchange concise */
|
||||
ELS_SRR = 0x14, /* sequence retransmission request */
|
||||
ELS_FPIN = 0x16, /* Fabric Performance Impact Notification */
|
||||
ELS_RDP = 0x18, /* Read Diagnostic Parameters */
|
||||
ELS_RDF = 0x19, /* Register Diagnostic Functions */
|
||||
ELS_PRLI = 0x20, /* process login */
|
||||
ELS_PRLO = 0x21, /* process logout */
|
||||
@@ -110,6 +111,7 @@ enum fc_els_cmd {
|
||||
[ELS_REC] = "REC", \
|
||||
[ELS_SRR] = "SRR", \
|
||||
[ELS_FPIN] = "FPIN", \
|
||||
[ELS_RDP] = "RDP", \
|
||||
[ELS_RDF] = "RDF", \
|
||||
[ELS_PRLI] = "PRLI", \
|
||||
[ELS_PRLO] = "PRLO", \
|
||||
|
||||
Reference in New Issue
Block a user