mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-05-02 18:17:50 -04:00
nvme: Check for Security send/recv support before issuing commands.
We need to verify that the controller supports the security commands before actually trying to issue them. Signed-off-by: Scott Bauer <scott.bauer@intel.com> [hch: moved the check so that we don't call into the OPAL code if not supported] Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
@@ -1264,6 +1264,7 @@ int nvme_init_identify(struct nvme_ctrl *ctrl)
|
|||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctrl->oacs = le16_to_cpu(id->oacs);
|
||||||
ctrl->vid = le16_to_cpu(id->vid);
|
ctrl->vid = le16_to_cpu(id->vid);
|
||||||
ctrl->oncs = le16_to_cpup(&id->oncs);
|
ctrl->oncs = le16_to_cpup(&id->oncs);
|
||||||
atomic_set(&ctrl->abort_limit, id->acl + 1);
|
atomic_set(&ctrl->abort_limit, id->acl + 1);
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ struct nvme_ctrl {
|
|||||||
u32 max_hw_sectors;
|
u32 max_hw_sectors;
|
||||||
u16 oncs;
|
u16 oncs;
|
||||||
u16 vid;
|
u16 vid;
|
||||||
|
u16 oacs;
|
||||||
atomic_t abort_limit;
|
atomic_t abort_limit;
|
||||||
u8 event_limit;
|
u8 event_limit;
|
||||||
u8 vwc;
|
u8 vwc;
|
||||||
|
|||||||
@@ -1792,7 +1792,7 @@ static void nvme_reset_work(struct work_struct *work)
|
|||||||
if (result)
|
if (result)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!dev->ctrl.opal_dev) {
|
if ((dev->ctrl.oacs & NVME_CTRL_OACS_SEC_SUPP) && !dev->ctrl.opal_dev) {
|
||||||
dev->ctrl.opal_dev =
|
dev->ctrl.opal_dev =
|
||||||
init_opal_dev(&dev->ctrl, &nvme_sec_submit);
|
init_opal_dev(&dev->ctrl, &nvme_sec_submit);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -244,6 +244,7 @@ enum {
|
|||||||
NVME_CTRL_ONCS_DSM = 1 << 2,
|
NVME_CTRL_ONCS_DSM = 1 << 2,
|
||||||
NVME_CTRL_ONCS_WRITE_ZEROES = 1 << 3,
|
NVME_CTRL_ONCS_WRITE_ZEROES = 1 << 3,
|
||||||
NVME_CTRL_VWC_PRESENT = 1 << 0,
|
NVME_CTRL_VWC_PRESENT = 1 << 0,
|
||||||
|
NVME_CTRL_OACS_SEC_SUPP = 1 << 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct nvme_lbaf {
|
struct nvme_lbaf {
|
||||||
|
|||||||
Reference in New Issue
Block a user