]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - drivers/nvme/host/core.c
block/sed-opal: allocate struct opal_dev dynamically
[thirdparty/kernel/stable.git] / drivers / nvme / host / core.c
index b92a792816113d5178e5327f7784d6c8505b856f..f6b56a12457a0442aa49faf8e8df00ff571789fe 100644 (file)
@@ -789,7 +789,7 @@ static int nvme_ioctl(struct block_device *bdev, fmode_t mode,
                        return nvme_nvm_ioctl(ns, cmd, arg);
 #endif
                if (is_sed_ioctl(cmd))
-                       return sed_ioctl(&ns->ctrl->opal_dev, cmd,
+                       return sed_ioctl(ns->ctrl->opal_dev, cmd,
                                         (void __user *) arg);
                return -ENOTTY;
        }
@@ -1059,18 +1059,17 @@ static const struct pr_ops nvme_pr_ops = {
 };
 
 #ifdef CONFIG_BLK_SED_OPAL
-int nvme_sec_submit(struct opal_dev *dev, u16 spsp, u8 secp,
-                   void *buffer, size_t len, bool send)
+int nvme_sec_submit(void *data, u16 spsp, u8 secp, void *buffer, size_t len,
+               bool send)
 {
+       struct nvme_ctrl *ctrl = data;
        struct nvme_command cmd;
-       struct nvme_ctrl *ctrl = NULL;
 
        memset(&cmd, 0, sizeof(cmd));
        if (send)
                cmd.common.opcode = nvme_admin_security_send;
        else
                cmd.common.opcode = nvme_admin_security_recv;
-       ctrl = container_of(dev, struct nvme_ctrl, opal_dev);
        cmd.common.nsid = 0;
        cmd.common.cdw10[0] = cpu_to_le32(((u32)secp) << 24 | ((u32)spsp) << 8);
        cmd.common.cdw10[1] = cpu_to_le32(len);