From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, James Smart <jsmart2021@gmail.com>
Subject: [PATCH 5.15 050/132] Revert "scsi: lpfc: SLI path split: Refactor SCSI paths"
Date: Wed, 2 Nov 2022 03:32:36 +0100 [thread overview]
Message-ID: <20221102022100.931833212@linuxfoundation.org> (raw)
In-Reply-To: <20221102022059.593236470@linuxfoundation.org>
From: James Smart <jsmart2021@gmail.com>
This reverts commit b4543dbea84c8b64566dd0d626d63f8cbe977f61.
LTS 5.15 pulled in several lpfc "SLI Path split" patches. The Path
Split mods were a 14-patch set, which refactors the driver from
to split the sli-3 hw (now eol) from the sli-4 hw and use sli4
structures natively. The patches are highly inter-related.
Given only some of the patches were included, it created a situation
where FLOGI's fail, thus SLI Ports can't start communication.
Reverting this patch as its one of the partial Path Split patches
that was included.
NOTE: fixed a git revert error which caused a new line to be inserted:
line 5755 of lpfc_scsi.c in lpfc_queuecommand
+ atomic_inc(&ndlp->cmd_pending);
Removed the line
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/scsi/lpfc/lpfc.h | 4
drivers/scsi/lpfc/lpfc_scsi.c | 376 +++++++++++++++++++++++-------------------
drivers/scsi/lpfc/lpfc_sli.c | 6
3 files changed, 211 insertions(+), 175 deletions(-)
--- a/drivers/scsi/lpfc/lpfc.h
+++ b/drivers/scsi/lpfc/lpfc.h
@@ -920,10 +920,6 @@ struct lpfc_hba {
(struct lpfc_vport *vport,
struct lpfc_io_buf *lpfc_cmd,
uint8_t tmo);
- int (*lpfc_scsi_prep_task_mgmt_cmd)
- (struct lpfc_vport *vport,
- struct lpfc_io_buf *lpfc_cmd,
- u64 lun, u8 task_mgmt_cmd);
/* IOCB interface function jump table entries */
int (*__lpfc_sli_issue_iocb)
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -2942,58 +2942,154 @@ out:
* -1 - Internal error (bad profile, ...etc)
*/
static int
-lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
- struct lpfc_iocbq *pIocbOut)
+lpfc_sli4_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
+ struct lpfc_wcqe_complete *wcqe)
{
struct scsi_cmnd *cmd = lpfc_cmd->pCmd;
- struct sli3_bg_fields *bgf;
int ret = 0;
- struct lpfc_wcqe_complete *wcqe;
- u32 status;
+ u32 status = bf_get(lpfc_wcqe_c_status, wcqe);
u32 bghm = 0;
u32 bgstat = 0;
u64 failing_sector = 0;
- if (phba->sli_rev == LPFC_SLI_REV4) {
- wcqe = &pIocbOut->wcqe_cmpl;
- status = bf_get(lpfc_wcqe_c_status, wcqe);
+ if (status == CQE_STATUS_DI_ERROR) {
+ if (bf_get(lpfc_wcqe_c_bg_ge, wcqe)) /* Guard Check failed */
+ bgstat |= BGS_GUARD_ERR_MASK;
+ if (bf_get(lpfc_wcqe_c_bg_ae, wcqe)) /* AppTag Check failed */
+ bgstat |= BGS_APPTAG_ERR_MASK;
+ if (bf_get(lpfc_wcqe_c_bg_re, wcqe)) /* RefTag Check failed */
+ bgstat |= BGS_REFTAG_ERR_MASK;
+
+ /* Check to see if there was any good data before the error */
+ if (bf_get(lpfc_wcqe_c_bg_tdpv, wcqe)) {
+ bgstat |= BGS_HI_WATER_MARK_PRESENT_MASK;
+ bghm = wcqe->total_data_placed;
+ }
- if (status == CQE_STATUS_DI_ERROR) {
- /* Guard Check failed */
- if (bf_get(lpfc_wcqe_c_bg_ge, wcqe))
- bgstat |= BGS_GUARD_ERR_MASK;
-
- /* AppTag Check failed */
- if (bf_get(lpfc_wcqe_c_bg_ae, wcqe))
- bgstat |= BGS_APPTAG_ERR_MASK;
-
- /* RefTag Check failed */
- if (bf_get(lpfc_wcqe_c_bg_re, wcqe))
- bgstat |= BGS_REFTAG_ERR_MASK;
+ /*
+ * Set ALL the error bits to indicate we don't know what
+ * type of error it is.
+ */
+ if (!bgstat)
+ bgstat |= (BGS_REFTAG_ERR_MASK | BGS_APPTAG_ERR_MASK |
+ BGS_GUARD_ERR_MASK);
+ }
- /* Check to see if there was any good data before the
- * error
- */
- if (bf_get(lpfc_wcqe_c_bg_tdpv, wcqe)) {
- bgstat |= BGS_HI_WATER_MARK_PRESENT_MASK;
- bghm = wcqe->total_data_placed;
- }
+ if (lpfc_bgs_get_guard_err(bgstat)) {
+ ret = 1;
- /*
- * Set ALL the error bits to indicate we don't know what
- * type of error it is.
- */
- if (!bgstat)
- bgstat |= (BGS_REFTAG_ERR_MASK |
- BGS_APPTAG_ERR_MASK |
- BGS_GUARD_ERR_MASK);
+ scsi_build_sense(cmd, 1, ILLEGAL_REQUEST, 0x10, 0x1);
+ set_host_byte(cmd, DID_ABORT);
+ phba->bg_guard_err_cnt++;
+ lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG,
+ "9059 BLKGRD: Guard Tag error in cmd"
+ " 0x%x lba 0x%llx blk cnt 0x%x "
+ "bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
+ (unsigned long long)scsi_get_lba(cmd),
+ scsi_logical_block_count(cmd), bgstat, bghm);
+ }
+
+ if (lpfc_bgs_get_reftag_err(bgstat)) {
+ ret = 1;
+
+ scsi_build_sense(cmd, 1, ILLEGAL_REQUEST, 0x10, 0x3);
+ set_host_byte(cmd, DID_ABORT);
+
+ phba->bg_reftag_err_cnt++;
+ lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG,
+ "9060 BLKGRD: Ref Tag error in cmd"
+ " 0x%x lba 0x%llx blk cnt 0x%x "
+ "bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
+ (unsigned long long)scsi_get_lba(cmd),
+ scsi_logical_block_count(cmd), bgstat, bghm);
+ }
+
+ if (lpfc_bgs_get_apptag_err(bgstat)) {
+ ret = 1;
+
+ scsi_build_sense(cmd, 1, ILLEGAL_REQUEST, 0x10, 0x2);
+ set_host_byte(cmd, DID_ABORT);
+
+ phba->bg_apptag_err_cnt++;
+ lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG,
+ "9062 BLKGRD: App Tag error in cmd"
+ " 0x%x lba 0x%llx blk cnt 0x%x "
+ "bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
+ (unsigned long long)scsi_get_lba(cmd),
+ scsi_logical_block_count(cmd), bgstat, bghm);
+ }
+
+ if (lpfc_bgs_get_hi_water_mark_present(bgstat)) {
+ /*
+ * setup sense data descriptor 0 per SPC-4 as an information
+ * field, and put the failing LBA in it.
+ * This code assumes there was also a guard/app/ref tag error
+ * indication.
+ */
+ cmd->sense_buffer[7] = 0xc; /* Additional sense length */
+ cmd->sense_buffer[8] = 0; /* Information descriptor type */
+ cmd->sense_buffer[9] = 0xa; /* Additional descriptor length */
+ cmd->sense_buffer[10] = 0x80; /* Validity bit */
+
+ /* bghm is a "on the wire" FC frame based count */
+ switch (scsi_get_prot_op(cmd)) {
+ case SCSI_PROT_READ_INSERT:
+ case SCSI_PROT_WRITE_STRIP:
+ bghm /= cmd->device->sector_size;
+ break;
+ case SCSI_PROT_READ_STRIP:
+ case SCSI_PROT_WRITE_INSERT:
+ case SCSI_PROT_READ_PASS:
+ case SCSI_PROT_WRITE_PASS:
+ bghm /= (cmd->device->sector_size +
+ sizeof(struct scsi_dif_tuple));
+ break;
}
- } else {
- bgf = &pIocbOut->iocb.unsli3.sli3_bg;
- bghm = bgf->bghm;
- bgstat = bgf->bgstat;
+ failing_sector = scsi_get_lba(cmd);
+ failing_sector += bghm;
+
+ /* Descriptor Information */
+ put_unaligned_be64(failing_sector, &cmd->sense_buffer[12]);
+ }
+
+ if (!ret) {
+ /* No error was reported - problem in FW? */
+ lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG,
+ "9068 BLKGRD: Unknown error in cmd"
+ " 0x%x lba 0x%llx blk cnt 0x%x "
+ "bgstat=x%x bghm=x%x\n", cmd->cmnd[0],
+ (unsigned long long)scsi_get_lba(cmd),
+ scsi_logical_block_count(cmd), bgstat, bghm);
+
+ /* Calculate what type of error it was */
+ lpfc_calc_bg_err(phba, lpfc_cmd);
}
+ return ret;
+}
+
+/*
+ * This function checks for BlockGuard errors detected by
+ * the HBA. In case of errors, the ASC/ASCQ fields in the
+ * sense buffer will be set accordingly, paired with
+ * ILLEGAL_REQUEST to signal to the kernel that the HBA
+ * detected corruption.
+ *
+ * Returns:
+ * 0 - No error found
+ * 1 - BlockGuard error found
+ * -1 - Internal error (bad profile, ...etc)
+ */
+static int
+lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd,
+ struct lpfc_iocbq *pIocbOut)
+{
+ struct scsi_cmnd *cmd = lpfc_cmd->pCmd;
+ struct sli3_bg_fields *bgf = &pIocbOut->iocb.unsli3.sli3_bg;
+ int ret = 0;
+ uint32_t bghm = bgf->bghm;
+ uint32_t bgstat = bgf->bgstat;
+ uint64_t failing_sector = 0;
if (lpfc_bgs_get_invalid_prof(bgstat)) {
cmd->result = DID_ERROR << 16;
@@ -3021,6 +3117,7 @@ lpfc_parse_bg_err(struct lpfc_hba *phba,
if (lpfc_bgs_get_guard_err(bgstat)) {
ret = 1;
+
scsi_build_sense(cmd, 1, ILLEGAL_REQUEST, 0x10, 0x1);
set_host_byte(cmd, DID_ABORT);
phba->bg_guard_err_cnt++;
@@ -3034,8 +3131,10 @@ lpfc_parse_bg_err(struct lpfc_hba *phba,
if (lpfc_bgs_get_reftag_err(bgstat)) {
ret = 1;
+
scsi_build_sense(cmd, 1, ILLEGAL_REQUEST, 0x10, 0x3);
set_host_byte(cmd, DID_ABORT);
+
phba->bg_reftag_err_cnt++;
lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG,
"9056 BLKGRD: Ref Tag error in cmd "
@@ -3047,8 +3146,10 @@ lpfc_parse_bg_err(struct lpfc_hba *phba,
if (lpfc_bgs_get_apptag_err(bgstat)) {
ret = 1;
+
scsi_build_sense(cmd, 1, ILLEGAL_REQUEST, 0x10, 0x2);
set_host_byte(cmd, DID_ABORT);
+
phba->bg_apptag_err_cnt++;
lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG,
"9061 BLKGRD: App Tag error in cmd "
@@ -4093,6 +4194,7 @@ lpfc_fcp_io_cmd_wqe_cmpl(struct lpfc_hba
struct Scsi_Host *shost;
u32 logit = LOG_FCP;
u32 status, idx;
+ unsigned long iflags = 0;
u32 lat;
u8 wait_xb_clr = 0;
@@ -4107,16 +4209,30 @@ lpfc_fcp_io_cmd_wqe_cmpl(struct lpfc_hba
rdata = lpfc_cmd->rdata;
ndlp = rdata->pnode;
+ if (bf_get(lpfc_wcqe_c_xb, wcqe)) {
+ /* TOREMOVE - currently this flag is checked during
+ * the release of lpfc_iocbq. Remove once we move
+ * to lpfc_wqe_job construct.
+ *
+ * This needs to be done outside buf_lock
+ */
+ spin_lock_irqsave(&phba->hbalock, iflags);
+ lpfc_cmd->cur_iocbq.cmd_flag |= LPFC_EXCHANGE_BUSY;
+ spin_unlock_irqrestore(&phba->hbalock, iflags);
+ }
+
+ /* Guard against abort handler being called at same time */
+ spin_lock(&lpfc_cmd->buf_lock);
+
/* Sanity check on return of outstanding command */
cmd = lpfc_cmd->pCmd;
if (!cmd) {
lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
"9042 I/O completion: Not an active IO\n");
+ spin_unlock(&lpfc_cmd->buf_lock);
lpfc_release_scsi_buf(phba, lpfc_cmd);
return;
}
- /* Guard against abort handler being called at same time */
- spin_lock(&lpfc_cmd->buf_lock);
idx = lpfc_cmd->cur_iocbq.hba_wqidx;
if (phba->sli4_hba.hdwq)
phba->sli4_hba.hdwq[idx].scsi_cstat.io_cmpls++;
@@ -4290,14 +4406,12 @@ lpfc_fcp_io_cmd_wqe_cmpl(struct lpfc_hba
* This is a response for a BG enabled
* cmd. Parse BG error
*/
- lpfc_parse_bg_err(phba, lpfc_cmd, pwqeOut);
+ lpfc_sli4_parse_bg_err(phba, lpfc_cmd,
+ wcqe);
break;
- } else {
- lpfc_printf_vlog(vport, KERN_WARNING,
- LOG_BG,
- "9040 non-zero BGSTAT "
- "on unprotected cmd\n");
}
+ lpfc_printf_vlog(vport, KERN_WARNING, LOG_BG,
+ "9040 non-zero BGSTAT on unprotected cmd\n");
}
lpfc_printf_vlog(vport, KERN_WARNING, logit,
"9036 Local Reject FCP cmd x%x failed"
@@ -4902,7 +5016,7 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *v
}
/**
- * lpfc_scsi_prep_task_mgmt_cmd_s3 - Convert SLI3 scsi TM cmd to FCP info unit
+ * lpfc_scsi_prep_task_mgmt_cmd - Convert SLI3 scsi TM cmd to FCP info unit
* @vport: The virtual port for which this call is being executed.
* @lpfc_cmd: Pointer to lpfc_io_buf data structure.
* @lun: Logical unit number.
@@ -4916,9 +5030,10 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *v
* 1 - Success
**/
static int
-lpfc_scsi_prep_task_mgmt_cmd_s3(struct lpfc_vport *vport,
- struct lpfc_io_buf *lpfc_cmd,
- u64 lun, u8 task_mgmt_cmd)
+lpfc_scsi_prep_task_mgmt_cmd(struct lpfc_vport *vport,
+ struct lpfc_io_buf *lpfc_cmd,
+ uint64_t lun,
+ uint8_t task_mgmt_cmd)
{
struct lpfc_iocbq *piocbq;
IOCB_t *piocb;
@@ -4939,10 +5054,15 @@ lpfc_scsi_prep_task_mgmt_cmd_s3(struct l
memset(fcp_cmnd, 0, sizeof(struct fcp_cmnd));
int_to_scsilun(lun, &fcp_cmnd->fcp_lun);
fcp_cmnd->fcpCntl2 = task_mgmt_cmd;
- if (!(vport->phba->sli3_options & LPFC_SLI3_BG_ENABLED))
+ if (vport->phba->sli_rev == 3 &&
+ !(vport->phba->sli3_options & LPFC_SLI3_BG_ENABLED))
lpfc_fcpcmd_to_iocb(piocb->unsli3.fcp_ext.icd, fcp_cmnd);
piocb->ulpCommand = CMD_FCP_ICMND64_CR;
piocb->ulpContext = ndlp->nlp_rpi;
+ if (vport->phba->sli_rev == LPFC_SLI_REV4) {
+ piocb->ulpContext =
+ vport->phba->sli4_hba.rpi_ids[ndlp->nlp_rpi];
+ }
piocb->ulpFCP2Rcvy = (ndlp->nlp_fcp_info & NLP_FCP_2_DEVICE) ? 1 : 0;
piocb->ulpClass = (ndlp->nlp_fcp_info & 0x0f);
piocb->ulpPU = 0;
@@ -4958,79 +5078,8 @@ lpfc_scsi_prep_task_mgmt_cmd_s3(struct l
} else
piocb->ulpTimeout = lpfc_cmd->timeout;
- return 1;
-}
-
-/**
- * lpfc_scsi_prep_task_mgmt_cmd_s4 - Convert SLI4 scsi TM cmd to FCP info unit
- * @vport: The virtual port for which this call is being executed.
- * @lpfc_cmd: Pointer to lpfc_io_buf data structure.
- * @lun: Logical unit number.
- * @task_mgmt_cmd: SCSI task management command.
- *
- * This routine creates FCP information unit corresponding to @task_mgmt_cmd
- * for device with SLI-4 interface spec.
- *
- * Return codes:
- * 0 - Error
- * 1 - Success
- **/
-static int
-lpfc_scsi_prep_task_mgmt_cmd_s4(struct lpfc_vport *vport,
- struct lpfc_io_buf *lpfc_cmd,
- u64 lun, u8 task_mgmt_cmd)
-{
- struct lpfc_iocbq *pwqeq = &lpfc_cmd->cur_iocbq;
- union lpfc_wqe128 *wqe = &pwqeq->wqe;
- struct fcp_cmnd *fcp_cmnd;
- struct lpfc_rport_data *rdata = lpfc_cmd->rdata;
- struct lpfc_nodelist *ndlp = rdata->pnode;
-
- if (!ndlp || ndlp->nlp_state != NLP_STE_MAPPED_NODE)
- return 0;
-
- pwqeq->vport = vport;
- /* Initialize 64 bytes only */
- memset(wqe, 0, sizeof(union lpfc_wqe128));
-
- /* From the icmnd template, initialize words 4 - 11 */
- memcpy(&wqe->words[4], &lpfc_icmnd_cmd_template.words[4],
- sizeof(uint32_t) * 8);
-
- fcp_cmnd = lpfc_cmd->fcp_cmnd;
- /* Clear out any old data in the FCP command area */
- memset(fcp_cmnd, 0, sizeof(struct fcp_cmnd));
- int_to_scsilun(lun, &fcp_cmnd->fcp_lun);
- fcp_cmnd->fcpCntl3 = 0;
- fcp_cmnd->fcpCntl2 = task_mgmt_cmd;
-
- bf_set(payload_offset_len, &wqe->fcp_icmd,
- sizeof(struct fcp_cmnd) + sizeof(struct fcp_rsp));
- bf_set(cmd_buff_len, &wqe->fcp_icmd, 0);
- bf_set(wqe_ctxt_tag, &wqe->generic.wqe_com, /* ulpContext */
- vport->phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]);
- bf_set(wqe_erp, &wqe->fcp_icmd.wqe_com,
- ((ndlp->nlp_fcp_info & NLP_FCP_2_DEVICE) ? 1 : 0));
- bf_set(wqe_class, &wqe->fcp_icmd.wqe_com,
- (ndlp->nlp_fcp_info & 0x0f));
-
- /* ulpTimeout is only one byte */
- if (lpfc_cmd->timeout > 0xff) {
- /*
- * Do not timeout the command at the firmware level.
- * The driver will provide the timeout mechanism.
- */
- bf_set(wqe_tmo, &wqe->fcp_icmd.wqe_com, 0);
- } else {
- bf_set(wqe_tmo, &wqe->fcp_icmd.wqe_com, lpfc_cmd->timeout);
- }
-
- lpfc_prep_embed_io(vport->phba, lpfc_cmd);
- bf_set(wqe_xri_tag, &wqe->generic.wqe_com, pwqeq->sli4_xritag);
- wqe->generic.wqe_com.abort_tag = pwqeq->iotag;
- bf_set(wqe_reqtag, &wqe->generic.wqe_com, pwqeq->iotag);
-
- lpfc_sli4_set_rsp_sgl_last(vport->phba, lpfc_cmd);
+ if (vport->phba->sli_rev == LPFC_SLI_REV4)
+ lpfc_sli4_set_rsp_sgl_last(vport->phba, lpfc_cmd);
return 1;
}
@@ -5057,8 +5106,6 @@ lpfc_scsi_api_table_setup(struct lpfc_hb
phba->lpfc_release_scsi_buf = lpfc_release_scsi_buf_s3;
phba->lpfc_get_scsi_buf = lpfc_get_scsi_buf_s3;
phba->lpfc_scsi_prep_cmnd_buf = lpfc_scsi_prep_cmnd_buf_s3;
- phba->lpfc_scsi_prep_task_mgmt_cmd =
- lpfc_scsi_prep_task_mgmt_cmd_s3;
break;
case LPFC_PCI_DEV_OC:
phba->lpfc_scsi_prep_dma_buf = lpfc_scsi_prep_dma_buf_s4;
@@ -5066,8 +5113,6 @@ lpfc_scsi_api_table_setup(struct lpfc_hb
phba->lpfc_release_scsi_buf = lpfc_release_scsi_buf_s4;
phba->lpfc_get_scsi_buf = lpfc_get_scsi_buf_s4;
phba->lpfc_scsi_prep_cmnd_buf = lpfc_scsi_prep_cmnd_buf_s4;
- phba->lpfc_scsi_prep_task_mgmt_cmd =
- lpfc_scsi_prep_task_mgmt_cmd_s4;
break;
default:
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
@@ -5546,7 +5591,6 @@ lpfc_queuecommand(struct Scsi_Host *shos
{
struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
struct lpfc_hba *phba = vport->phba;
- struct lpfc_iocbq *cur_iocbq = NULL;
struct lpfc_rport_data *rdata;
struct lpfc_nodelist *ndlp;
struct lpfc_io_buf *lpfc_cmd;
@@ -5640,7 +5684,6 @@ lpfc_queuecommand(struct Scsi_Host *shos
}
lpfc_cmd->rx_cmd_start = start;
- cur_iocbq = &lpfc_cmd->cur_iocbq;
/*
* Store the midlayer's command structure for the completion phase
* and complete the command initialization.
@@ -5648,7 +5691,7 @@ lpfc_queuecommand(struct Scsi_Host *shos
lpfc_cmd->pCmd = cmnd;
lpfc_cmd->rdata = rdata;
lpfc_cmd->ndlp = ndlp;
- cur_iocbq->cmd_cmpl = NULL;
+ lpfc_cmd->cur_iocbq.cmd_cmpl = NULL;
cmnd->host_scribble = (unsigned char *)lpfc_cmd;
err = lpfc_scsi_prep_cmnd(vport, lpfc_cmd, ndlp);
@@ -5690,6 +5733,7 @@ lpfc_queuecommand(struct Scsi_Host *shos
goto out_host_busy_free_buf;
}
+
/* check the necessary and sufficient condition to support VMID */
if (lpfc_is_vmid_enabled(phba) &&
(ndlp->vmid_support ||
@@ -5702,9 +5746,9 @@ lpfc_queuecommand(struct Scsi_Host *shos
if (uuid) {
err = lpfc_vmid_get_appid(vport, uuid, cmnd,
(union lpfc_vmid_io_tag *)
- &cur_iocbq->vmid_tag);
+ &lpfc_cmd->cur_iocbq.vmid_tag);
if (!err)
- cur_iocbq->cmd_flag |= LPFC_IO_VMID;
+ lpfc_cmd->cur_iocbq.cmd_flag |= LPFC_IO_VMID;
}
}
@@ -5713,7 +5757,8 @@ lpfc_queuecommand(struct Scsi_Host *shos
this_cpu_inc(phba->sli4_hba.c_stat->xmt_io);
#endif
/* Issue I/O to adapter */
- err = lpfc_sli_issue_fcp_io(phba, LPFC_FCP_RING, cur_iocbq,
+ err = lpfc_sli_issue_fcp_io(phba, LPFC_FCP_RING,
+ &lpfc_cmd->cur_iocbq,
SLI_IOCB_RET_IOCB);
#ifdef CONFIG_SCSI_LPFC_DEBUG_FS
if (start) {
@@ -5726,25 +5771,25 @@ lpfc_queuecommand(struct Scsi_Host *shos
#endif
if (err) {
lpfc_printf_vlog(vport, KERN_INFO, LOG_FCP,
- "3376 FCP could not issue iocb err %x "
- "FCP cmd x%x <%d/%llu> "
- "sid: x%x did: x%x oxid: x%x "
- "Data: x%x x%x x%x x%x\n",
- err, cmnd->cmnd[0],
- cmnd->device ? cmnd->device->id : 0xffff,
- cmnd->device ? cmnd->device->lun : (u64)-1,
- vport->fc_myDID, ndlp->nlp_DID,
- phba->sli_rev == LPFC_SLI_REV4 ?
- cur_iocbq->sli4_xritag : 0xffff,
- phba->sli_rev == LPFC_SLI_REV4 ?
- phba->sli4_hba.rpi_ids[ndlp->nlp_rpi] :
- cur_iocbq->iocb.ulpContext,
- cur_iocbq->iotag,
- phba->sli_rev == LPFC_SLI_REV4 ?
- bf_get(wqe_tmo,
- &cur_iocbq->wqe.generic.wqe_com) :
- cur_iocbq->iocb.ulpTimeout,
- (uint32_t)(scsi_cmd_to_rq(cmnd)->timeout / 1000));
+ "3376 FCP could not issue IOCB err %x "
+ "FCP cmd x%x <%d/%llu> "
+ "sid: x%x did: x%x oxid: x%x "
+ "Data: x%x x%x x%x x%x\n",
+ err, cmnd->cmnd[0],
+ cmnd->device ? cmnd->device->id : 0xffff,
+ cmnd->device ? cmnd->device->lun : (u64)-1,
+ vport->fc_myDID, ndlp->nlp_DID,
+ phba->sli_rev == LPFC_SLI_REV4 ?
+ lpfc_cmd->cur_iocbq.sli4_xritag : 0xffff,
+ phba->sli_rev == LPFC_SLI_REV4 ?
+ phba->sli4_hba.rpi_ids[ndlp->nlp_rpi] :
+ lpfc_cmd->cur_iocbq.iocb.ulpContext,
+ lpfc_cmd->cur_iocbq.iotag,
+ phba->sli_rev == LPFC_SLI_REV4 ?
+ bf_get(wqe_tmo,
+ &lpfc_cmd->cur_iocbq.wqe.generic.wqe_com) :
+ lpfc_cmd->cur_iocbq.iocb.ulpTimeout,
+ (uint32_t)(scsi_cmd_to_rq(cmnd)->timeout / 1000));
goto out_host_busy_free_buf;
}
@@ -6121,7 +6166,7 @@ lpfc_send_taskmgmt(struct lpfc_vport *vp
return FAILED;
pnode = rdata->pnode;
- lpfc_cmd = lpfc_get_scsi_buf(phba, rdata->pnode, NULL);
+ lpfc_cmd = lpfc_get_scsi_buf(phba, pnode, NULL);
if (lpfc_cmd == NULL)
return FAILED;
lpfc_cmd->timeout = phba->cfg_task_mgmt_tmo;
@@ -6129,8 +6174,8 @@ lpfc_send_taskmgmt(struct lpfc_vport *vp
lpfc_cmd->pCmd = cmnd;
lpfc_cmd->ndlp = pnode;
- status = phba->lpfc_scsi_prep_task_mgmt_cmd(vport, lpfc_cmd, lun_id,
- task_mgmt_cmd);
+ status = lpfc_scsi_prep_task_mgmt_cmd(vport, lpfc_cmd, lun_id,
+ task_mgmt_cmd);
if (!status) {
lpfc_release_scsi_buf(phba, lpfc_cmd);
return FAILED;
@@ -6143,7 +6188,6 @@ lpfc_send_taskmgmt(struct lpfc_vport *vp
return FAILED;
}
iocbq->cmd_cmpl = lpfc_tskmgmt_def_cmpl;
- iocbq->vport = vport;
lpfc_printf_vlog(vport, KERN_INFO, LOG_FCP,
"0702 Issue %s to TGT %d LUN %llu "
@@ -6155,28 +6199,26 @@ lpfc_send_taskmgmt(struct lpfc_vport *vp
status = lpfc_sli_issue_iocb_wait(phba, LPFC_FCP_RING,
iocbq, iocbqrsp, lpfc_cmd->timeout);
if ((status != IOCB_SUCCESS) ||
- (get_job_ulpstatus(phba, iocbqrsp) != IOSTAT_SUCCESS)) {
+ (iocbqrsp->iocb.ulpStatus != IOSTAT_SUCCESS)) {
if (status != IOCB_SUCCESS ||
- get_job_ulpstatus(phba, iocbqrsp) != IOSTAT_FCP_RSP_ERROR)
+ iocbqrsp->iocb.ulpStatus != IOSTAT_FCP_RSP_ERROR)
lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
"0727 TMF %s to TGT %d LUN %llu "
"failed (%d, %d) cmd_flag x%x\n",
lpfc_taskmgmt_name(task_mgmt_cmd),
tgt_id, lun_id,
- get_job_ulpstatus(phba, iocbqrsp),
- get_job_word4(phba, iocbqrsp),
+ iocbqrsp->iocb.ulpStatus,
+ iocbqrsp->iocb.un.ulpWord[4],
iocbq->cmd_flag);
/* if ulpStatus != IOCB_SUCCESS, then status == IOCB_SUCCESS */
if (status == IOCB_SUCCESS) {
- if (get_job_ulpstatus(phba, iocbqrsp) ==
- IOSTAT_FCP_RSP_ERROR)
+ if (iocbqrsp->iocb.ulpStatus == IOSTAT_FCP_RSP_ERROR)
/* Something in the FCP_RSP was invalid.
* Check conditions */
ret = lpfc_check_fcp_rsp(vport, lpfc_cmd);
else
ret = FAILED;
- } else if ((status == IOCB_TIMEDOUT) ||
- (status == IOCB_ABORTED)) {
+ } else if (status == IOCB_TIMEDOUT) {
ret = TIMEOUT_ERROR;
} else {
ret = FAILED;
@@ -6186,7 +6228,7 @@ lpfc_send_taskmgmt(struct lpfc_vport *vp
lpfc_sli_release_iocbq(phba, iocbqrsp);
- if (status != IOCB_TIMEDOUT)
+ if (ret != TIMEOUT_ERROR)
lpfc_release_scsi_buf(phba, lpfc_cmd);
return ret;
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -12970,7 +12970,6 @@ lpfc_sli_wake_iocb_wait(struct lpfc_hba
wait_queue_head_t *pdone_q;
unsigned long iflags;
struct lpfc_io_buf *lpfc_cmd;
- size_t offset = offsetof(struct lpfc_iocbq, wqe);
spin_lock_irqsave(&phba->hbalock, iflags);
if (cmdiocbq->cmd_flag & LPFC_IO_WAKE_TMO) {
@@ -12991,11 +12990,10 @@ lpfc_sli_wake_iocb_wait(struct lpfc_hba
return;
}
- /* Copy the contents of the local rspiocb into the caller's buffer. */
cmdiocbq->cmd_flag |= LPFC_IO_WAKE;
if (cmdiocbq->context2 && rspiocbq)
- memcpy((char *)cmdiocbq->context2 + offset,
- (char *)rspiocbq + offset, sizeof(*rspiocbq) - offset);
+ memcpy(&((struct lpfc_iocbq *)cmdiocbq->context2)->iocb,
+ &rspiocbq->iocb, sizeof(IOCB_t));
/* Set the exchange busy flag for task management commands */
if ((cmdiocbq->cmd_flag & LPFC_IO_FCP) &&
next prev parent reply other threads:[~2022-11-02 3:05 UTC|newest]
Thread overview: 141+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-02 2:31 [PATCH 5.15 000/132] 5.15.77-rc1 review Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 001/132] NFSv4: Fix free of uninitialized nfs4_label on referral lookup Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 002/132] NFSv4: Add an fattr allocation to _nfs4_discover_trunking() Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 003/132] can: j1939: transport: j1939_session_skb_drop_old(): spin_unlock_irqrestore() before kfree_skb() Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 004/132] can: kvaser_usb: Fix possible completions during init_completion Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 005/132] ALSA: Use del_timer_sync() before freeing timer Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 006/132] ALSA: usb-audio: Add quirks for M-Audio Fast Track C400/600 Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 007/132] ALSA: au88x0: use explicitly signed char Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 008/132] ALSA: rme9652: " Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 009/132] USB: add RESET_RESUME quirk for NVIDIA Jetson devices in RCM Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 010/132] usb: gadget: uvc: fix sg handling in error case Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 011/132] usb: gadget: uvc: fix sg handling during video encode Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 012/132] usb: dwc3: gadget: Stop processing more requests on IMI Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 013/132] usb: dwc3: gadget: Dont set IMI for no_interrupt Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 014/132] usb: bdc: change state when port disconnected Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 015/132] usb: xhci: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 controller Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 016/132] mtd: rawnand: marvell: Use correct logic for nand-keep-config Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 017/132] xhci: Add quirk to reset host back to default state at shutdown Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 018/132] xhci-pci: Set runtime PM as default policy on all xHC 1.2 or later devices Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 019/132] xhci: Remove device endpoints from bandwidth list when freeing the device Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 020/132] tools: iio: iio_utils: fix digit calculation Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 021/132] iio: light: tsl2583: Fix module unloading Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 022/132] iio: temperature: ltc2983: allocate iio channels once Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 023/132] iio: adxl372: Fix unsafe buffer attributes Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 024/132] fbdev: smscufx: Fix several use-after-free bugs Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 025/132] cpufreq: intel_pstate: Read all MSRs on the target CPU Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 026/132] cpufreq: intel_pstate: hybrid: Use known scaling factor for P-cores Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 027/132] fs/binfmt_elf: Fix memory leak in load_elf_binary() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 028/132] exec: Copy oldsighand->action under spin-lock Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 029/132] mac802154: Fix LQI recording Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 030/132] scsi: qla2xxx: Use transport-defined speed mask for supported_speeds Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 031/132] drm/amdgpu: disallow gfxoff until GC IP blocks complete s2idle resume Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 032/132] drm/msm/dsi: fix memory corruption with too many bridges Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 033/132] drm/msm/hdmi: " Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 034/132] drm/msm/dp: fix IRQ lifetime Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 035/132] coresight: cti: Fix hang in cti_disable_hw() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 036/132] mmc: sdhci_am654: select, not depends REGMAP_MMIO Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 037/132] mmc: core: Fix kernel panic when remove non-standard SDIO card Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 038/132] mmc: sdhci-pci-core: Disable ES for ASUS BIOS on Jasper Lake Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 039/132] mmc: sdhci-esdhc-imx: Propagate ESDHC_FLAG_HS400* only on 8bit bus Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 040/132] counter: microchip-tcb-capture: Handle Signal1 read and Synapse Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 041/132] kernfs: fix use-after-free in __kernfs_remove Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 042/132] pinctrl: Ingenic: JZ4755 bug fixes Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 043/132] ARC: mm: fix leakage of memory allocated for PTE Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 044/132] perf auxtrace: Fix address filter symbol name match for modules Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 045/132] s390/futex: add missing EX_TABLE entry to __futex_atomic_op() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 046/132] s390/pci: add missing EX_TABLE entries to __pcistg_mio_inuser()/__pcilg_mio_inuser() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 047/132] Revert "scsi: lpfc: Resolve some cleanup issues following SLI path refactoring" Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 048/132] Revert "scsi: lpfc: Fix element offset in __lpfc_sli_release_iocbq_s4()" Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 049/132] Revert "scsi: lpfc: Fix locking for lpfc_sli_iocbq_lookup()" Greg Kroah-Hartman
2022-11-02 2:32 ` Greg Kroah-Hartman [this message]
2022-11-02 2:32 ` [PATCH 5.15 051/132] Revert "scsi: lpfc: SLI path split: Refactor fast and slow paths to native SLI4" Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 052/132] Revert "scsi: lpfc: SLI path split: Refactor lpfc_iocbq" Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 053/132] mmc: block: Remove error check of hw_reset on reset Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 054/132] ethtool: eeprom: fix null-deref on genl_info in dump Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 055/132] net: ieee802154: fix error return code in dgram_bind() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 056/132] media: v4l2: Fix v4l2_i2c_subdev_set_name function documentation Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 057/132] media: atomisp: prevent integer overflow in sh_css_set_black_frame() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 058/132] drm/msm: Fix return type of mdp4_lvds_connector_mode_valid Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 059/132] KVM: selftests: Fix number of pages for memory slot in memslot_modification_stress_test Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 060/132] ASoC: qcom: lpass-cpu: mark HDMI TX registers as volatile Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 061/132] perf: Fix missing SIGTRAPs Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 062/132] sched/core: Fix comparison in sched_group_cookie_match() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 063/132] arc: iounmap() arg is volatile Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 064/132] mtd: rawnand: intel: Add missing of_node_put() in ebu_nand_probe() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 065/132] ASoC: qcom: lpass-cpu: Mark HDMI TX parity register as volatile Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 066/132] ALSA: ac97: fix possible memory leak in snd_ac97_dev_register() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 067/132] perf/x86/intel/lbr: Use setup_clear_cpu_cap() instead of clear_cpu_cap() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 068/132] tipc: fix a null-ptr-deref in tipc_topsrv_accept Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 069/132] net: netsec: fix error handling in netsec_register_mdio() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 070/132] net: hinic: fix incorrect assignment issue in hinic_set_interrupt_cfg() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 071/132] net: hinic: fix memory leak when reading function table Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 072/132] net: hinic: fix the issue of CMDQ memory leaks Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 073/132] net: hinic: fix the issue of double release MBOX callback of VF Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 074/132] net: macb: Specify PHY PM management done by MAC Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 075/132] nfc: virtual_ncidev: Fix memory leak in virtual_nci_send() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 076/132] x86/unwind/orc: Fix unreliable stack dump with gcov Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 077/132] amd-xgbe: fix the SFP compliance codes check for DAC cables Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 078/132] amd-xgbe: add the bit rate quirk for Molex cables Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 079/132] drm/i915/dp: Reset frl trained flag before restarting FRL training Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 080/132] atlantic: fix deadlock at aq_nic_stop Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 081/132] kcm: annotate data-races around kcm->rx_psock Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 082/132] kcm: annotate data-races around kcm->rx_wait Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 083/132] net: fix UAF issue in nfqnl_nf_hook_drop() when ops_init() failed Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 084/132] net: lantiq_etop: dont free skb when returning NETDEV_TX_BUSY Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 085/132] tcp: minor optimization in tcp_add_backlog() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 086/132] tcp: fix a signed-integer-overflow bug " Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 087/132] tcp: fix indefinite deferral of RTO with SACK reneging Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 088/132] net-memcg: avoid stalls when under memory pressure Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 089/132] drm/amdkfd: Fix memory leak in kfd_mem_dmamap_userptr() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 090/132] can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error path Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 091/132] can: mcp251x: mcp251x_can_probe(): add missing unregister_candev() " Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 092/132] PM: hibernate: Allow hybrid sleep to work with s2idle Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 093/132] media: vivid: s_fbuf: add more sanity checks Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 094/132] media: vivid: dev->bitmap_cap wasnt freed in all cases Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 095/132] media: v4l2-dv-timings: add sanity checks for blanking values Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 096/132] media: videodev2.h: V4L2_DV_BT_BLANKING_HEIGHT should check interlaced Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 097/132] media: vivid: set num_in/outputs to 0 if not supported Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 098/132] perf vendor events power10: Fix hv-24x7 metric events Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 099/132] ipv6: ensure sane device mtu in tunnels Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 100/132] i40e: Fix ethtool rx-flow-hash setting for X722 Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 101/132] i40e: Fix VF hang when reset is triggered on another VF Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 102/132] i40e: Fix flow-type by setting GL_HASH_INSET registers Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 103/132] net: ksz884x: fix missing pci_disable_device() on error in pcidev_init() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 104/132] PM: domains: Fix handling of unavailable/disabled idle states Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 105/132] perf vendor events arm64: Fix incorrect Hisi hip08 L3 metrics Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 106/132] net: fec: limit register access on i.MX6UL Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 107/132] net: ethernet: ave: Fix MAC to be in charge of PHY PM Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 108/132] ALSA: aoa: i2sbus: fix possible memory leak in i2sbus_add_dev() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 109/132] ALSA: aoa: Fix I2S device accounting Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 110/132] openvswitch: switch from WARN to pr_warn Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 111/132] net: ehea: fix possible memory leak in ehea_register_port() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 112/132] net: bcmsysport: Indicate MAC is in charge of PHY PM Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 113/132] nh: fix scope used to find saddr when adding non gw nh Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 114/132] net: broadcom: bcm4908enet: remove redundant variable bytes Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 115/132] net: broadcom: bcm4908_enet: update TX stats after actual transmission Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 116/132] netdevsim: remove dir in nsim_dev_debugfs_init() when creating ports dir failed Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 117/132] net/mlx5e: Do not increment ESN when updating IPsec ESN state Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 118/132] net/mlx5e: Extend SKB room check to include PTP-SQ Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 119/132] net/mlx5: Fix possible use-after-free in async command interface Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 120/132] net/mlx5: Print more info on pci error handlers Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 121/132] net/mlx5: Update fw fatal reporter state on PCI handlers successful recover Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 122/132] net/mlx5: Fix crash during sync firmware reset Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 123/132] net: do not sense pfmemalloc status in skb_append_pagefrags() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 124/132] kcm: do not sense pfmemalloc status in kcm_sendpage() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 125/132] net: enetc: survive memory pressure without crashing Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 126/132] arm64: Add AMPERE1 to the Spectre-BHB affected list Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 127/132] scsi: sd: Revert "scsi: sd: Remove a local variable" Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 128/132] can: rcar_canfd: fix channel specific IRQ handling for RZ/G2L Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 129/132] can: rcar_canfd: rcar_canfd_handle_global_receive(): fix IRQ storm on global FIFO receive Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 130/132] serial: core: move RS485 configuration tasks from drivers into core Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 131/132] serial: Deassert Transmit Enable on probe in driver-specific way Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 132/132] tcp/udp: Fix memory leak in ipv6_renew_options() Greg Kroah-Hartman
2022-11-02 9:29 ` [PATCH 5.15 000/132] 5.15.77-rc1 review Bagas Sanjaya
2022-11-02 10:07 ` Jon Hunter
2022-11-02 18:24 ` Florian Fainelli
2022-11-02 20:47 ` Guenter Roeck
2022-11-02 21:02 ` Ron Economos
2022-11-02 21:11 ` Allen Pais
2022-11-03 6:59 ` Naresh Kamboju
2022-11-03 12:19 ` Sudip Mukherjee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221102022100.931833212@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=jsmart2021@gmail.com \
--cc=patches@lists.linux.dev \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox