On 04/16/2015 02:52 PM, Mike Christie wrote: > On 04/17/2015 04:34 AM, John Soni Jose wrote: >> Once be2iscsi driver is loaded and operational close Boot >> session established by FW. >> >> Signed-off-by: John Soni Jose <sony.john-n@xxxxxxxxxx> >> Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@xxxxxxxxxx> >> --- >> drivers/scsi/be2iscsi/be_cmds.h | 12 ++++++ >> drivers/scsi/be2iscsi/be_iscsi.c | 12 ++++++ >> drivers/scsi/be2iscsi/be_main.c | 1 + >> drivers/scsi/be2iscsi/be_main.h | 2 + >> drivers/scsi/be2iscsi/be_mgmt.c | 70 ++++++++++++++++++++++++++++++++++++++ >> drivers/scsi/be2iscsi/be_mgmt.h | 3 ++ >> 6 files changed, 100 insertions(+), 0 deletions(-) >> >> diff --git a/drivers/scsi/be2iscsi/be_cmds.h b/drivers/scsi/be2iscsi/be_cmds.h >> index d0097a2..0586815 100644 >> --- a/drivers/scsi/be2iscsi/be_cmds.h >> +++ b/drivers/scsi/be2iscsi/be_cmds.h >> @@ -304,6 +304,17 @@ struct mgmt_auth_method_format { >> struct mgmt_chap_format chap; >> } __packed; >> >> +struct be_cmd_req_logout_fw_sess { >> + struct be_cmd_req_hdr hdr; /* dw[4] */ >> + uint32_t session_handle; >> +} __packed; >> + >> +struct be_cmd_resp_logout_fw_sess { >> + struct be_cmd_resp_hdr hdr; /* dw[4] */ >> +#define BEISCSI_MGMT_SESSION_CLOSE 0x20 >> + uint32_t session_status; >> +} __packed; >> + >> struct mgmt_conn_login_options { >> u8 flags; >> u8 header_digest; >> @@ -1136,6 +1147,7 @@ struct be_cmd_get_all_if_id_req { >> #define OPCODE_ISCSI_INI_CFG_GET_HBA_NAME 6 >> #define OPCODE_ISCSI_INI_CFG_SET_HBA_NAME 7 >> #define OPCODE_ISCSI_INI_SESSION_GET_A_SESSION 14 >> +#define OPCODE_ISCSI_INI_SESSION_LOGOUT_TARGET 24 >> #define OPCODE_ISCSI_INI_DRIVER_REOPEN_ALL_SESSIONS 36 >> #define OPCODE_ISCSI_INI_DRIVER_OFFLOAD_SESSION 41 >> #define OPCODE_ISCSI_INI_DRIVER_INVALIDATE_CONNECTION 42 >> diff --git a/drivers/scsi/be2iscsi/be_iscsi.c b/drivers/scsi/be2iscsi/be_iscsi.c >> index 508f017..566d27c 100644 >> --- a/drivers/scsi/be2iscsi/be_iscsi.c >> +++ b/drivers/scsi/be2iscsi/be_iscsi.c >> @@ -998,6 +998,18 @@ int beiscsi_conn_start(struct iscsi_cls_conn *cls_conn) >> beiscsi_set_params_for_offld(beiscsi_conn, ¶ms); >> beiscsi_offload_connection(beiscsi_conn, ¶ms); >> iscsi_conn_start(cls_conn); >> + >> + /* Logout from the FW boot session */ >> + if (phba->fw_boot_state) { >> + int rc; >> + >> + rc = beiscsi_logout_fw_sess(phba, >> + phba->boot_sess.session_handle); >> + >> + if (!rc) >> + phba->fw_boot_state = 0 >> + } >> + >> return 0; >> } > > How do you know the boot session being logged out is the one we are > replacing and logging into at this time? If userspace logged into > sessions out of order and you logged into a non root one first, then > would this kill the session that we might need to access still? Ignore that, I forgot we get the boot info a pci probe time or from the health check. But the, why not just have beiscsi_setup_boot_info log out the session once its done getting the boot info? It just seems odd to have that logout in the middle of the connection startup. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html