mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 23:52:08 +02:00
scsi: fnic: Add and improve logs in FDMI and FDMI ABTS paths
Add logs in FDMI and FDMI ABTS paths. Modify log text in these paths. Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com> Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com> Reviewed-by: Gian Carlo Boffa <gcboffa@cisco.com> Reviewed-by: Arun Easi <aeasi@cisco.com> Reviewed-by: John Meneghini <jmeneghi@redhat.com> Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com> Link: https://lore.kernel.org/r/20250618003431.6314-3-kartilak@cisco.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
74f46a0524
commit
9b9b859465
|
|
@ -791,6 +791,7 @@ static uint8_t *fdls_alloc_init_fdmi_abts_frame(struct fnic_iport_s *iport,
|
|||
static void fdls_send_fdmi_abts(struct fnic_iport_s *iport)
|
||||
{
|
||||
uint8_t *frame;
|
||||
struct fnic *fnic = iport->fnic;
|
||||
unsigned long fdmi_tov;
|
||||
uint16_t frame_size = FNIC_ETH_FCOE_HDRS_OFFSET +
|
||||
sizeof(struct fc_frame_header);
|
||||
|
|
@ -801,6 +802,9 @@ static void fdls_send_fdmi_abts(struct fnic_iport_s *iport)
|
|||
if (frame == NULL)
|
||||
return;
|
||||
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"0x%x: FDLS send FDMI PLOGI abts. iport->fabric.state: %d oxid: 0x%x",
|
||||
iport->fcid, iport->fabric.state, iport->active_oxid_fdmi_plogi);
|
||||
fnic_send_fcoe_frame(iport, frame, frame_size);
|
||||
} else {
|
||||
if (iport->fabric.fdmi_pending & FDLS_FDMI_REG_HBA_PENDING) {
|
||||
|
|
@ -809,6 +813,9 @@ static void fdls_send_fdmi_abts(struct fnic_iport_s *iport)
|
|||
if (frame == NULL)
|
||||
return;
|
||||
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"0x%x: FDLS send FDMI RHBA abts. iport->fabric.state: %d oxid: 0x%x",
|
||||
iport->fcid, iport->fabric.state, iport->active_oxid_fdmi_rhba);
|
||||
fnic_send_fcoe_frame(iport, frame, frame_size);
|
||||
}
|
||||
if (iport->fabric.fdmi_pending & FDLS_FDMI_RPA_PENDING) {
|
||||
|
|
@ -821,6 +828,9 @@ static void fdls_send_fdmi_abts(struct fnic_iport_s *iport)
|
|||
return;
|
||||
}
|
||||
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"0x%x: FDLS send FDMI RPA abts. iport->fabric.state: %d oxid: 0x%x",
|
||||
iport->fcid, iport->fabric.state, iport->active_oxid_fdmi_rpa);
|
||||
fnic_send_fcoe_frame(iport, frame, frame_size);
|
||||
}
|
||||
}
|
||||
|
|
@ -829,6 +839,10 @@ static void fdls_send_fdmi_abts(struct fnic_iport_s *iport)
|
|||
fdmi_tov = jiffies + msecs_to_jiffies(2 * iport->e_d_tov);
|
||||
mod_timer(&iport->fabric.fdmi_timer, round_jiffies(fdmi_tov));
|
||||
iport->fabric.fdmi_pending |= FDLS_FDMI_ABORT_PENDING;
|
||||
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"0x%x: iport->fabric.fdmi_pending: 0x%x",
|
||||
iport->fcid, iport->fabric.fdmi_pending);
|
||||
}
|
||||
|
||||
static void fdls_send_fabric_flogi(struct fnic_iport_s *iport)
|
||||
|
|
@ -2294,7 +2308,7 @@ void fdls_fdmi_timer_callback(struct timer_list *t)
|
|||
spin_lock_irqsave(&fnic->fnic_lock, flags);
|
||||
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"fdmi timer callback : 0x%x\n", iport->fabric.fdmi_pending);
|
||||
"iport->fabric.fdmi_pending: 0x%x\n", iport->fabric.fdmi_pending);
|
||||
|
||||
if (!iport->fabric.fdmi_pending) {
|
||||
/* timer expired after fdmi responses received. */
|
||||
|
|
@ -2302,7 +2316,7 @@ void fdls_fdmi_timer_callback(struct timer_list *t)
|
|||
return;
|
||||
}
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"fdmi timer callback : 0x%x\n", iport->fabric.fdmi_pending);
|
||||
"iport->fabric.fdmi_pending: 0x%x\n", iport->fabric.fdmi_pending);
|
||||
|
||||
/* if not abort pending, send an abort */
|
||||
if (!(iport->fabric.fdmi_pending & FDLS_FDMI_ABORT_PENDING)) {
|
||||
|
|
@ -2311,26 +2325,37 @@ void fdls_fdmi_timer_callback(struct timer_list *t)
|
|||
return;
|
||||
}
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"fdmi timer callback : 0x%x\n", iport->fabric.fdmi_pending);
|
||||
"iport->fabric.fdmi_pending: 0x%x\n", iport->fabric.fdmi_pending);
|
||||
|
||||
/* ABTS pending for an active fdmi request that is pending.
|
||||
* That means FDMI ABTS timed out
|
||||
* Schedule to free the OXID after 2*r_a_tov and proceed
|
||||
*/
|
||||
if (iport->fabric.fdmi_pending & FDLS_FDMI_PLOGI_PENDING) {
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"FDMI PLOGI ABTS timed out. Schedule oxid free: 0x%x\n",
|
||||
iport->active_oxid_fdmi_plogi);
|
||||
fdls_schedule_oxid_free(iport, &iport->active_oxid_fdmi_plogi);
|
||||
} else {
|
||||
if (iport->fabric.fdmi_pending & FDLS_FDMI_REG_HBA_PENDING)
|
||||
if (iport->fabric.fdmi_pending & FDLS_FDMI_REG_HBA_PENDING) {
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"FDMI RHBA ABTS timed out. Schedule oxid free: 0x%x\n",
|
||||
iport->active_oxid_fdmi_rhba);
|
||||
fdls_schedule_oxid_free(iport, &iport->active_oxid_fdmi_rhba);
|
||||
if (iport->fabric.fdmi_pending & FDLS_FDMI_RPA_PENDING)
|
||||
}
|
||||
if (iport->fabric.fdmi_pending & FDLS_FDMI_RPA_PENDING) {
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"FDMI RPA ABTS timed out. Schedule oxid free: 0x%x\n",
|
||||
iport->active_oxid_fdmi_rpa);
|
||||
fdls_schedule_oxid_free(iport, &iport->active_oxid_fdmi_rpa);
|
||||
}
|
||||
}
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"fdmi timer callback : 0x%x\n", iport->fabric.fdmi_pending);
|
||||
"iport->fabric.fdmi_pending: 0x%x\n", iport->fabric.fdmi_pending);
|
||||
|
||||
fdls_fdmi_retry_plogi(iport);
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"fdmi timer callback : 0x%x\n", iport->fabric.fdmi_pending);
|
||||
"iport->fabric.fdmi_pending: 0x%x\n", iport->fabric.fdmi_pending);
|
||||
spin_unlock_irqrestore(&fnic->fnic_lock, flags);
|
||||
}
|
||||
|
||||
|
|
@ -3745,12 +3770,26 @@ static void fdls_process_fdmi_abts_rsp(struct fnic_iport_s *iport,
|
|||
|
||||
switch (FNIC_FRAME_TYPE(oxid)) {
|
||||
case FNIC_FRAME_TYPE_FDMI_PLOGI:
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"Received FDMI PLOGI ABTS rsp with oxid: 0x%x", oxid);
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"0x%x: iport->fabric.fdmi_pending: 0x%x",
|
||||
iport->fcid, iport->fabric.fdmi_pending);
|
||||
fdls_free_oxid(iport, oxid, &iport->active_oxid_fdmi_plogi);
|
||||
|
||||
iport->fabric.fdmi_pending &= ~FDLS_FDMI_PLOGI_PENDING;
|
||||
iport->fabric.fdmi_pending &= ~FDLS_FDMI_ABORT_PENDING;
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"0x%x: iport->fabric.fdmi_pending: 0x%x",
|
||||
iport->fcid, iport->fabric.fdmi_pending);
|
||||
break;
|
||||
case FNIC_FRAME_TYPE_FDMI_RHBA:
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"Received FDMI RHBA ABTS rsp with oxid: 0x%x", oxid);
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"0x%x: iport->fabric.fdmi_pending: 0x%x",
|
||||
iport->fcid, iport->fabric.fdmi_pending);
|
||||
|
||||
iport->fabric.fdmi_pending &= ~FDLS_FDMI_REG_HBA_PENDING;
|
||||
|
||||
/* If RPA is still pending, don't turn off ABORT PENDING.
|
||||
|
|
@ -3761,8 +3800,17 @@ static void fdls_process_fdmi_abts_rsp(struct fnic_iport_s *iport,
|
|||
iport->fabric.fdmi_pending &= ~FDLS_FDMI_ABORT_PENDING;
|
||||
|
||||
fdls_free_oxid(iport, oxid, &iport->active_oxid_fdmi_rhba);
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"0x%x: iport->fabric.fdmi_pending: 0x%x",
|
||||
iport->fcid, iport->fabric.fdmi_pending);
|
||||
break;
|
||||
case FNIC_FRAME_TYPE_FDMI_RPA:
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"Received FDMI RPA ABTS rsp with oxid: 0x%x", oxid);
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"0x%x: iport->fabric.fdmi_pending: 0x%x",
|
||||
iport->fcid, iport->fabric.fdmi_pending);
|
||||
|
||||
iport->fabric.fdmi_pending &= ~FDLS_FDMI_RPA_PENDING;
|
||||
|
||||
/* If RHBA is still pending, don't turn off ABORT PENDING.
|
||||
|
|
@ -3773,6 +3821,9 @@ static void fdls_process_fdmi_abts_rsp(struct fnic_iport_s *iport,
|
|||
iport->fabric.fdmi_pending &= ~FDLS_FDMI_ABORT_PENDING;
|
||||
|
||||
fdls_free_oxid(iport, oxid, &iport->active_oxid_fdmi_rpa);
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
"0x%x: iport->fabric.fdmi_pending: 0x%x",
|
||||
iport->fcid, iport->fabric.fdmi_pending);
|
||||
break;
|
||||
default:
|
||||
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user