mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 16:10:56 +07:00
[SCSI] bnx2i : Fix "cid #n not valid" issue
When bnx2i_adapter_ready() fails, connection handle(cid) = 0 is wrongly freed because 'cid' is not yet allocated for the endpoint. Fix is to initialize bnx2i_ep->ep_iscsi_cid to '-1' in bnx2i_alloc_ep() and not in bnx2i_ep_connect() to avoid releasing invalid 'cid'. There is already a check in bnx2i_free_iscsi_cid() not to free invalid iscsi connection handle (-1) Signed-off-by: Anil Veerabhadrappa <anilgv@broadcom.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
534cc9c165
commit
c19dcd0112
@ -387,6 +387,7 @@ static struct iscsi_endpoint *bnx2i_alloc_ep(struct bnx2i_hba *hba)
|
||||
bnx2i_ep = ep->dd_data;
|
||||
INIT_LIST_HEAD(&bnx2i_ep->link);
|
||||
bnx2i_ep->state = EP_STATE_IDLE;
|
||||
bnx2i_ep->ep_iscsi_cid = (u16) -1;
|
||||
bnx2i_ep->hba = hba;
|
||||
bnx2i_ep->hba_age = hba->age;
|
||||
hba->ofld_conns_active++;
|
||||
@ -1681,8 +1682,6 @@ static struct iscsi_endpoint *bnx2i_ep_connect(struct Scsi_Host *shost,
|
||||
goto net_if_down;
|
||||
}
|
||||
|
||||
bnx2i_ep->state = EP_STATE_IDLE;
|
||||
bnx2i_ep->ep_iscsi_cid = (u16) -1;
|
||||
bnx2i_ep->num_active_cmds = 0;
|
||||
iscsi_cid = bnx2i_alloc_iscsi_cid(hba);
|
||||
if (iscsi_cid == -1) {
|
||||
|
Loading…
Reference in New Issue
Block a user