diff options
author | Dan Williams <dan.j.williams@intel.com> | 2023-02-11 03:05:59 +0100 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2023-02-11 03:05:59 +0100 |
commit | dfd423e0a3256f88b8ea622fbbe04f91594195b6 (patch) | |
tree | 56f41b85085eef304017015f3979e8bb2bb3ae7c /drivers | |
parent | Merge branch 'for-6.3/cxl-events' into cxl/next (diff) | |
parent | cxl/mem: Fix UAPI command comment (diff) | |
download | linux-dfd423e0a3256f88b8ea622fbbe04f91594195b6.tar.xz linux-dfd423e0a3256f88b8ea622fbbe04f91594195b6.zip |
Merge branch 'for-6.3/cxl' into cxl/next
Pick up some final miscellaneous updates for v6.3 including support for
communicating 'exclusive' and 'enabled' state of commands.
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/cxl/core/mbox.c | 9 | ||||
-rw-r--r-- | drivers/cxl/core/memdev.c | 2 | ||||
-rw-r--r-- | drivers/cxl/cxlmem.h | 1 |
3 files changed, 8 insertions, 4 deletions
diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c index 03909b6cef55..fc7631bb1c24 100644 --- a/drivers/cxl/core/mbox.c +++ b/drivers/cxl/core/mbox.c @@ -453,9 +453,14 @@ int cxl_query_cmd(struct cxl_memdev *cxlmd, * structures. */ cxl_for_each_cmd(cmd) { - const struct cxl_command_info *info = &cmd->info; + struct cxl_command_info info = cmd->info; - if (copy_to_user(&q->commands[j++], info, sizeof(*info))) + if (test_bit(info.id, cxlmd->cxlds->enabled_cmds)) + info.flags |= CXL_MEM_COMMAND_FLAG_ENABLED; + if (test_bit(info.id, cxlmd->cxlds->exclusive_cmds)) + info.flags |= CXL_MEM_COMMAND_FLAG_EXCLUSIVE; + + if (copy_to_user(&q->commands[j++], &info, sizeof(info))) return -EFAULT; if (j == n_commands) diff --git a/drivers/cxl/core/memdev.c b/drivers/cxl/core/memdev.c index a74a93310d26..12bd9ddaba22 100644 --- a/drivers/cxl/core/memdev.c +++ b/drivers/cxl/core/memdev.c @@ -242,7 +242,7 @@ static struct cxl_memdev *cxl_memdev_alloc(struct cxl_dev_state *cxlds, if (!cxlmd) return ERR_PTR(-ENOMEM); - rc = ida_alloc_range(&cxl_memdev_ida, 0, CXL_MEM_MAX_DEVS, GFP_KERNEL); + rc = ida_alloc_max(&cxl_memdev_ida, CXL_MEM_MAX_DEVS - 1, GFP_KERNEL); if (rc < 0) goto err; cxlmd->id = rc; diff --git a/drivers/cxl/cxlmem.h b/drivers/cxl/cxlmem.h index 802b5b396daf..4b066802e03d 100644 --- a/drivers/cxl/cxlmem.h +++ b/drivers/cxl/cxlmem.h @@ -565,7 +565,6 @@ struct cxl_mem_command { struct cxl_command_info info; enum cxl_opcode opcode; u32 flags; -#define CXL_CMD_FLAG_NONE 0 #define CXL_CMD_FLAG_FORCE_ENABLE BIT(0) }; |