mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
Merge branch '6.16/scsi-queue' into 6.16/scsi-fixes
Pull in remaining fixes from queue branch. Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
commit
a3da9388c6
@ -449,6 +449,8 @@ static ssize_t zfcp_sysfs_unit_add_store(struct device *dev,
|
|||||||
if (kstrtoull(buf, 0, (unsigned long long *) &fcp_lun))
|
if (kstrtoull(buf, 0, (unsigned long long *) &fcp_lun))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
flush_work(&port->rport_work);
|
||||||
|
|
||||||
retval = zfcp_unit_add(port, fcp_lun);
|
retval = zfcp_unit_add(port, fcp_lun);
|
||||||
if (retval)
|
if (retval)
|
||||||
return retval;
|
return retval;
|
||||||
|
@ -215,7 +215,7 @@ enum hw_register_bits {
|
|||||||
|
|
||||||
/* MVS_Px_INT_STAT, MVS_Px_INT_MASK (per-phy events) */
|
/* MVS_Px_INT_STAT, MVS_Px_INT_MASK (per-phy events) */
|
||||||
PHYEV_DEC_ERR = (1U << 24), /* Phy Decoding Error */
|
PHYEV_DEC_ERR = (1U << 24), /* Phy Decoding Error */
|
||||||
PHYEV_DCDR_ERR = (1U << 23), /* STP Deocder Error */
|
PHYEV_DCDR_ERR = (1U << 23), /* STP Decoder Error */
|
||||||
PHYEV_CRC_ERR = (1U << 22), /* STP CRC Error */
|
PHYEV_CRC_ERR = (1U << 22), /* STP CRC Error */
|
||||||
PHYEV_UNASSOC_FIS = (1U << 19), /* unassociated FIS rx'd */
|
PHYEV_UNASSOC_FIS = (1U << 19), /* unassociated FIS rx'd */
|
||||||
PHYEV_AN = (1U << 18), /* SATA async notification */
|
PHYEV_AN = (1U << 18), /* SATA async notification */
|
||||||
@ -347,7 +347,7 @@ enum sas_cmd_port_registers {
|
|||||||
CMD_SATA_PORT_MEM_CTL0 = 0x158, /* SATA Port Memory Control 0 */
|
CMD_SATA_PORT_MEM_CTL0 = 0x158, /* SATA Port Memory Control 0 */
|
||||||
CMD_SATA_PORT_MEM_CTL1 = 0x15c, /* SATA Port Memory Control 1 */
|
CMD_SATA_PORT_MEM_CTL1 = 0x15c, /* SATA Port Memory Control 1 */
|
||||||
CMD_XOR_MEM_BIST_CTL = 0x160, /* XOR Memory BIST Control */
|
CMD_XOR_MEM_BIST_CTL = 0x160, /* XOR Memory BIST Control */
|
||||||
CMD_XOR_MEM_BIST_STAT = 0x164, /* XOR Memroy BIST Status */
|
CMD_XOR_MEM_BIST_STAT = 0x164, /* XOR Memory BIST Status */
|
||||||
CMD_DMA_MEM_BIST_CTL = 0x168, /* DMA Memory BIST Control */
|
CMD_DMA_MEM_BIST_CTL = 0x168, /* DMA Memory BIST Control */
|
||||||
CMD_DMA_MEM_BIST_STAT = 0x16c, /* DMA Memory BIST Status */
|
CMD_DMA_MEM_BIST_STAT = 0x16c, /* DMA Memory BIST Status */
|
||||||
CMD_PORT_MEM_BIST_CTL = 0x170, /* Port Memory BIST Control */
|
CMD_PORT_MEM_BIST_CTL = 0x170, /* Port Memory BIST Control */
|
||||||
|
@ -3499,7 +3499,7 @@ static int iscsi_new_flashnode(struct iscsi_transport *transport,
|
|||||||
pr_err("%s could not find host no %u\n",
|
pr_err("%s could not find host no %u\n",
|
||||||
__func__, ev->u.new_flashnode.host_no);
|
__func__, ev->u.new_flashnode.host_no);
|
||||||
err = -ENODEV;
|
err = -ENODEV;
|
||||||
goto put_host;
|
goto exit_new_fnode;
|
||||||
}
|
}
|
||||||
|
|
||||||
index = transport->new_flashnode(shost, data, len);
|
index = transport->new_flashnode(shost, data, len);
|
||||||
@ -3509,7 +3509,6 @@ static int iscsi_new_flashnode(struct iscsi_transport *transport,
|
|||||||
else
|
else
|
||||||
err = -EIO;
|
err = -EIO;
|
||||||
|
|
||||||
put_host:
|
|
||||||
scsi_host_put(shost);
|
scsi_host_put(shost);
|
||||||
|
|
||||||
exit_new_fnode:
|
exit_new_fnode:
|
||||||
@ -3534,7 +3533,7 @@ static int iscsi_del_flashnode(struct iscsi_transport *transport,
|
|||||||
pr_err("%s could not find host no %u\n",
|
pr_err("%s could not find host no %u\n",
|
||||||
__func__, ev->u.del_flashnode.host_no);
|
__func__, ev->u.del_flashnode.host_no);
|
||||||
err = -ENODEV;
|
err = -ENODEV;
|
||||||
goto put_host;
|
goto exit_del_fnode;
|
||||||
}
|
}
|
||||||
|
|
||||||
idx = ev->u.del_flashnode.flashnode_idx;
|
idx = ev->u.del_flashnode.flashnode_idx;
|
||||||
@ -3576,7 +3575,7 @@ static int iscsi_login_flashnode(struct iscsi_transport *transport,
|
|||||||
pr_err("%s could not find host no %u\n",
|
pr_err("%s could not find host no %u\n",
|
||||||
__func__, ev->u.login_flashnode.host_no);
|
__func__, ev->u.login_flashnode.host_no);
|
||||||
err = -ENODEV;
|
err = -ENODEV;
|
||||||
goto put_host;
|
goto exit_login_fnode;
|
||||||
}
|
}
|
||||||
|
|
||||||
idx = ev->u.login_flashnode.flashnode_idx;
|
idx = ev->u.login_flashnode.flashnode_idx;
|
||||||
@ -3628,7 +3627,7 @@ static int iscsi_logout_flashnode(struct iscsi_transport *transport,
|
|||||||
pr_err("%s could not find host no %u\n",
|
pr_err("%s could not find host no %u\n",
|
||||||
__func__, ev->u.logout_flashnode.host_no);
|
__func__, ev->u.logout_flashnode.host_no);
|
||||||
err = -ENODEV;
|
err = -ENODEV;
|
||||||
goto put_host;
|
goto exit_logout_fnode;
|
||||||
}
|
}
|
||||||
|
|
||||||
idx = ev->u.logout_flashnode.flashnode_idx;
|
idx = ev->u.logout_flashnode.flashnode_idx;
|
||||||
@ -3678,7 +3677,7 @@ static int iscsi_logout_flashnode_sid(struct iscsi_transport *transport,
|
|||||||
pr_err("%s could not find host no %u\n",
|
pr_err("%s could not find host no %u\n",
|
||||||
__func__, ev->u.logout_flashnode.host_no);
|
__func__, ev->u.logout_flashnode.host_no);
|
||||||
err = -ENODEV;
|
err = -ENODEV;
|
||||||
goto put_host;
|
goto exit_logout_sid;
|
||||||
}
|
}
|
||||||
|
|
||||||
session = iscsi_session_lookup(ev->u.logout_flashnode_sid.sid);
|
session = iscsi_session_lookup(ev->u.logout_flashnode_sid.sid);
|
||||||
|
@ -6623,9 +6623,14 @@ static void ufshcd_err_handler(struct work_struct *work)
|
|||||||
up(&hba->host_sem);
|
up(&hba->host_sem);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
spin_unlock_irqrestore(hba->host->host_lock, flags);
|
||||||
|
|
||||||
|
ufshcd_err_handling_prepare(hba);
|
||||||
|
|
||||||
|
spin_lock_irqsave(hba->host->host_lock, flags);
|
||||||
ufshcd_set_eh_in_progress(hba);
|
ufshcd_set_eh_in_progress(hba);
|
||||||
spin_unlock_irqrestore(hba->host->host_lock, flags);
|
spin_unlock_irqrestore(hba->host->host_lock, flags);
|
||||||
ufshcd_err_handling_prepare(hba);
|
|
||||||
/* Complete requests that have door-bell cleared by h/w */
|
/* Complete requests that have door-bell cleared by h/w */
|
||||||
ufshcd_complete_requests(hba, false);
|
ufshcd_complete_requests(hba, false);
|
||||||
spin_lock_irqsave(hba->host->host_lock, flags);
|
spin_lock_irqsave(hba->host->host_lock, flags);
|
||||||
|
Loading…
Reference in New Issue
Block a user