提交 1c3afc42 编写于 作者: M Moger, Babu 提交者: James Bottomley

[SCSI] scsi_dh_rdac : Detect the different RDAC operating modes

This patch detects different operating RDAC modes during the
discovery. It also collects the information about the preferred path.
Signed-off-by: NBabu Moger <babu.moger@lsi.com>
Reviewed-by: NYanling Qi <yanling.qi@lsi.com>
Reviewed-by: NSudhir Dachepalli <Sudhir.Dachepalli@lis.com>
Reviewed-by: NSomasundaram Krishnasamy <Somasundaram.Krishnasamy@lsi.com>
Reviewed-by: NBob Stankey <Robert.Stankey@lsi.com>
Reviewed-by: NVijay Chauhan <Vijay.Chauhan@lsi.com>
Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
上级 eebe9b96
......@@ -194,7 +194,6 @@ struct rdac_dh_data {
#define RDAC_LUN_UNOWNED 0
#define RDAC_LUN_OWNED 1
#define RDAC_LUN_AVT 2
char lun_state;
#define RDAC_PREFERRED 0
......@@ -473,25 +472,33 @@ static int check_ownership(struct scsi_device *sdev, struct rdac_dh_data *h)
int err;
struct c9_inquiry *inqp;
h->lun_state = RDAC_LUN_UNOWNED;
h->state = RDAC_STATE_ACTIVE;
err = submit_inquiry(sdev, 0xC9, sizeof(struct c9_inquiry), h);
if (err == SCSI_DH_OK) {
inqp = &h->inq.c9;
if ((inqp->avte_cvp >> 7) == 0x1) {
/* LUN in AVT mode */
sdev_printk(KERN_NOTICE, sdev,
"%s: AVT mode detected\n",
RDAC_NAME);
h->lun_state = RDAC_LUN_AVT;
} else if ((inqp->avte_cvp & 0x1) != 0) {
/* LUN was owned by the controller */
/* detect the operating mode */
if ((inqp->avte_cvp >> 5) & 0x1)
h->mode = RDAC_MODE_IOSHIP; /* LUN in IOSHIP mode */
else if (inqp->avte_cvp >> 7)
h->mode = RDAC_MODE_AVT; /* LUN in AVT mode */
else
h->mode = RDAC_MODE; /* LUN in RDAC mode */
/* Update ownership */
if (inqp->avte_cvp & 0x1)
h->lun_state = RDAC_LUN_OWNED;
else {
h->lun_state = RDAC_LUN_UNOWNED;
if (h->mode == RDAC_MODE)
h->state = RDAC_STATE_PASSIVE;
}
}
if (h->lun_state == RDAC_LUN_UNOWNED)
h->state = RDAC_STATE_PASSIVE;
/* Update path prio*/
if (inqp->path_prio & 0x1)
h->preferred = RDAC_PREFERRED;
else
h->preferred = RDAC_NON_PREFERRED;
}
return err;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册