Skip to contentSkip to conversation

qla2xxx: Delete session if initiator is gone from FW

DISCUSSION Dan Carpenter 3 participants 3 messages Dec 22, 2015 – Jan 4, 2016 SCSI

lore
Share & tools
lore
#0 lore raw

Hello Alexei Potashnik,

The patch b93bb8ecc389: "qla2xxx: Delete session if initiator is gone from FW" from Dec 17, 2015, leads to the following static checker warning:

	drivers/scsi/qla2xxx/qla_target.c:3587 qlt_do_ctio_completion()
	warn: impossible condition '(logged_out == 41) => (0-1 == 41)'

drivers/scsi/qla2xxx/qla_target.c

  3580                  case CTIO_PORT_LOGGED_OUT:
  3581                  case CTIO_PORT_UNAVAILABLE:
  3582                  {
  3583                          bool logged_out = (status & 0xFFFF);
  3584                          ql_dbg(ql_dbg_tgt_mgt, vha, 0xf059,
  3585                              "qla_target(%d): CTIO with %s status %x "
  3586                              "received (state %x, se_cmd %p)\n", vha->vp_idx,
  3587                              (logged_out == CTIO_PORT_LOGGED_OUT) ?
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Bool cannot equal 0x26.

3588 "PORT LOGGED OUT" : "PORT UNAVAILABLE",
3589 status, cmd->state, se_cmd);
3590

  3591                          if (logged_out && cmd->sess) {
                                    ^^^^^^^^^^
	== CTIO_PORT_LOGGED_OUT here?
  3592                                  /*
  3593                                   * Session is already logged out, but we need
  3594                                   * to notify initiator, who's not aware of this
  3595                                   */
  3596                                  cmd->sess->logout_on_delete = 0;
  3597                                  cmd->sess->send_els_logo = 1;
  3598                                  qlt_schedule_sess_for_deletion(cmd->sess, true);
  3599                          }
  3600                          break;
  3601                  }

regards,
dan carpenter

#1 lore raw

I my original patch line 3583 was:

+ bool logged_out = (status & 0xFFFF) ==
CTIO_PORT_LOGGED_OUT;

and line 3587 was:

+ logged_out ? "PORT LOGGED OUT" : "PORT
UNAVAILABLE",

Forwarding to Quinn and Himanshu who must have massaged it.

Alexei

Quoted 10 lines

-----Original Message-----
From: Dan Carpenter [mailto:[email protected]]
Sent: Tuesday, December 22, 2015 11:46 AM
To: [email protected]
Cc: [email protected]
Subject: re: qla2xxx: Delete session if initiator is gone from FW

Hello Alexei Potashnik,

The patch b93bb8ecc389: "qla2xxx: Delete session if initiator is gone

from

Quoted 6 lines

FW" from Dec 17, 2015, leads to the following static checker warning:

	drivers/scsi/qla2xxx/qla_target.c:3587 qlt_do_ctio_completion()
	warn: impossible condition '(logged_out == 41) => (0-1 == 41)'
Quoted 7 lines

drivers/scsi/qla2xxx/qla_target.c

  3580                  case CTIO_PORT_LOGGED_OUT:
  3581                  case CTIO_PORT_UNAVAILABLE:
  3582                  {

3583 bool logged_out = (status & 0xFFFF);
3584 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf059,
3585 "qla_target(%d): CTIO with %s status

%x "

Quoted 1 line

3586 "received (state %x, se_cmd %p)\n",

vha->vp_idx,

Quoted 1 line

3587 (logged_out == CTIO_PORT_LOGGED_OUT)

?

Quoted 4 lines
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Bool cannot equal 0x26.

3588 "PORT LOGGED OUT" : "PORT

UNAVAILABLE",

Quoted 8 lines

3589 status, cmd->state, se_cmd);
3590

  3591                          if (logged_out && cmd->sess) {
                                    ^^^^^^^^^^
	== CTIO_PORT_LOGGED_OUT here?

3592 /*
3593 * Session is already logged

out, but we need

Quoted 1 line

3594 * to notify initiator, who's

not aware of this

Quoted 4 lines
  3595                                   */
  3596                                  cmd->sess->logout_on_delete = 0;
  3597                                  cmd->sess->send_els_logo = 1;
  3598

qlt_schedule_sess_for_deletion(cmd->sess, true);

Quoted 6 lines

3599 }
3600 break;
3601 }

regards,
dan carpenter

#2 lore raw

Hi Alexie/Dan,

I will send follow up patch to fix this.

Thanks,
-Himanshu

Quoted 70 lines · Alexei Potashnik

I my original patch line 3583 was:

(quoted diff) +1 -0
+			bool logged_out = (status & 0xFFFF) ==

CTIO_PORT_LOGGED_OUT;

and line 3587 was:

(quoted diff) +1 -0
+			    logged_out ? "PORT LOGGED OUT" : "PORT

UNAVAILABLE",

Forwarding to Quinn and Himanshu who must have massaged it.

Alexei

Quoted 10 lines

-----Original Message-----
From: Dan Carpenter [mailto:[email protected]]
Sent: Tuesday, December 22, 2015 11:46 AM
To: [email protected]
Cc: [email protected]
Subject: re: qla2xxx: Delete session if initiator is gone from FW

Hello Alexei Potashnik,

The patch b93bb8ecc389: "qla2xxx: Delete session if initiator is gone

from

Quoted 6 lines

FW" from Dec 17, 2015, leads to the following static checker warning:

	drivers/scsi/qla2xxx/qla_target.c:3587 qlt_do_ctio_completion()
	warn: impossible condition '(logged_out == 41) => (0-1 == 41)'
Quoted 7 lines

drivers/scsi/qla2xxx/qla_target.c

  3580                  case CTIO_PORT_LOGGED_OUT:
  3581                  case CTIO_PORT_UNAVAILABLE:
  3582                  {

3583 bool logged_out = (status & 0xFFFF);
3584 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf059,
3585 "qla_target(%d): CTIO with %s status

%x "

Quoted 1 line

3586 "received (state %x, se_cmd %p)\n",

vha->vp_idx,

Quoted 1 line

3587 (logged_out == CTIO_PORT_LOGGED_OUT)

?

Quoted 4 lines
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Bool cannot equal 0x26.

3588 "PORT LOGGED OUT" : "PORT

UNAVAILABLE",

Quoted 8 lines

3589 status, cmd->state, se_cmd);
3590

  3591                          if (logged_out && cmd->sess) {
                                    ^^^^^^^^^^
	== CTIO_PORT_LOGGED_OUT here?

3592 /*
3593 * Session is already logged

out, but we need

Quoted 1 line

3594 * to notify initiator, who's

not aware of this

Quoted 4 lines
  3595                                   */
  3596                                  cmd->sess->logout_on_delete = 0;
  3597                                  cmd->sess->send_els_logo = 1;
  3598

qlt_schedule_sess_for_deletion(cmd->sess, true);

Quoted 6 lines

3599 }
3600 break;
3601 }

regards,
dan carpenter