[SCSI] bfa: Add fc host issue lip support
Signed-off-by: Krishna Gudipati <kgudipat@brocade.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
714be35885
commit
acea241510
1 changed files with 38 additions and 1 deletions
|
@ -442,6 +442,43 @@ bfad_im_vport_create(struct fc_vport *fc_vport, bool disable)
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
bfad_im_issue_fc_host_lip(struct Scsi_Host *shost)
|
||||||
|
{
|
||||||
|
struct bfad_im_port_s *im_port =
|
||||||
|
(struct bfad_im_port_s *) shost->hostdata[0];
|
||||||
|
struct bfad_s *bfad = im_port->bfad;
|
||||||
|
struct bfad_hal_comp fcomp;
|
||||||
|
unsigned long flags;
|
||||||
|
uint32_t status;
|
||||||
|
|
||||||
|
init_completion(&fcomp.comp);
|
||||||
|
spin_lock_irqsave(&bfad->bfad_lock, flags);
|
||||||
|
status = bfa_port_disable(&bfad->bfa.modules.port,
|
||||||
|
bfad_hcb_comp, &fcomp);
|
||||||
|
spin_unlock_irqrestore(&bfad->bfad_lock, flags);
|
||||||
|
|
||||||
|
if (status != BFA_STATUS_OK)
|
||||||
|
return -EIO;
|
||||||
|
|
||||||
|
wait_for_completion(&fcomp.comp);
|
||||||
|
if (fcomp.status != BFA_STATUS_OK)
|
||||||
|
return -EIO;
|
||||||
|
|
||||||
|
spin_lock_irqsave(&bfad->bfad_lock, flags);
|
||||||
|
status = bfa_port_enable(&bfad->bfa.modules.port,
|
||||||
|
bfad_hcb_comp, &fcomp);
|
||||||
|
spin_unlock_irqrestore(&bfad->bfad_lock, flags);
|
||||||
|
if (status != BFA_STATUS_OK)
|
||||||
|
return -EIO;
|
||||||
|
|
||||||
|
wait_for_completion(&fcomp.comp);
|
||||||
|
if (fcomp.status != BFA_STATUS_OK)
|
||||||
|
return -EIO;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
bfad_im_vport_delete(struct fc_vport *fc_vport)
|
bfad_im_vport_delete(struct fc_vport *fc_vport)
|
||||||
{
|
{
|
||||||
|
@ -579,7 +616,7 @@ struct fc_function_template bfad_im_fc_function_template = {
|
||||||
.show_rport_dev_loss_tmo = 1,
|
.show_rport_dev_loss_tmo = 1,
|
||||||
.get_rport_dev_loss_tmo = bfad_im_get_rport_loss_tmo,
|
.get_rport_dev_loss_tmo = bfad_im_get_rport_loss_tmo,
|
||||||
.set_rport_dev_loss_tmo = bfad_im_set_rport_loss_tmo,
|
.set_rport_dev_loss_tmo = bfad_im_set_rport_loss_tmo,
|
||||||
|
.issue_fc_host_lip = bfad_im_issue_fc_host_lip,
|
||||||
.vport_create = bfad_im_vport_create,
|
.vport_create = bfad_im_vport_create,
|
||||||
.vport_delete = bfad_im_vport_delete,
|
.vport_delete = bfad_im_vport_delete,
|
||||||
.vport_disable = bfad_im_vport_disable,
|
.vport_disable = bfad_im_vport_disable,
|
||||||
|
|
Loading…
Add table
Reference in a new issue