* [PATCH 0/3] nvme: constify struct class usage
@ 2024-03-05 13:15 Ricardo B. Marliere
2024-03-05 13:15 ` [PATCH 1/3] nvme: core: " Ricardo B. Marliere
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Ricardo B. Marliere @ 2024-03-05 13:15 UTC (permalink / raw)
To: Keith Busch, Jens Axboe, Christoph Hellwig, Sagi Grimberg,
James Smart, Chaitanya Kulkarni
Cc: linux-nvme, linux-kernel, Greg Kroah-Hartman, Ricardo B. Marliere
This is a simple and straight forward cleanup series that aims to make the
class structures in nvme constant. This has been possible since 2023 [1].
[1]: https://lore.kernel.org/all/2023040248-customary-release-4aec@gregkh/
Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
---
Ricardo B. Marliere (3):
nvme: core: constify struct class usage
nvme: fabrics: make nvmf_class constant
nvme: fcloop: make fcloop_class constant
drivers/nvme/host/core.c | 53 +++++++++++++++++++++++---------------------
drivers/nvme/host/fabrics.c | 20 +++++++++--------
drivers/nvme/target/fcloop.c | 17 +++++++-------
3 files changed, 48 insertions(+), 42 deletions(-)
---
base-commit: 7e90b5c295ec1e47c8ad865429f046970c549a66
change-id: 20240305-class_cleanup-nvme-c11fedbc3b82
Best regards,
--
Ricardo B. Marliere <ricardo@marliere.net>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/3] nvme: core: constify struct class usage
2024-03-05 13:15 [PATCH 0/3] nvme: constify struct class usage Ricardo B. Marliere
@ 2024-03-05 13:15 ` Ricardo B. Marliere
2024-03-06 5:23 ` Chaitanya Kulkarni
2024-03-05 13:15 ` [PATCH 2/3] nvme: fabrics: make nvmf_class constant Ricardo B. Marliere
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Ricardo B. Marliere @ 2024-03-05 13:15 UTC (permalink / raw)
To: Keith Busch, Jens Axboe, Christoph Hellwig, Sagi Grimberg,
James Smart, Chaitanya Kulkarni
Cc: linux-nvme, linux-kernel, Greg Kroah-Hartman, Ricardo B. Marliere
Since commit 43a7206b0963 ("driver core: class: make class_register() take
a const *"), the driver core allows for struct class to be in read-only
memory, so move the structures nvme_class, nvme_subsys_class and
nvme_ns_chr_class to be declared at build time placing them into read-only
memory, instead of having to be dynamically allocated at boot time.
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
---
drivers/nvme/host/core.c | 53 +++++++++++++++++++++++++-----------------------
1 file changed, 28 insertions(+), 25 deletions(-)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 60537c9224bf..fdddf2b17519 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -114,12 +114,21 @@ static DEFINE_MUTEX(nvme_subsystems_lock);
static DEFINE_IDA(nvme_instance_ida);
static dev_t nvme_ctrl_base_chr_devt;
-static struct class *nvme_class;
-static struct class *nvme_subsys_class;
+static int nvme_class_uevent(const struct device *dev, struct kobj_uevent_env *env);
+static const struct class nvme_class = {
+ .name = "nvme",
+ .dev_uevent = nvme_class_uevent,
+};
+
+static const struct class nvme_subsys_class = {
+ .name = "nvme-subsystem",
+};
static DEFINE_IDA(nvme_ns_chr_minor_ida);
static dev_t nvme_ns_chr_devt;
-static struct class *nvme_ns_chr_class;
+static const struct class nvme_ns_chr_class = {
+ .name = "nvme-generic",
+};
static void nvme_put_subsystem(struct nvme_subsystem *subsys);
static void nvme_remove_invalid_namespaces(struct nvme_ctrl *ctrl,
@@ -2873,7 +2882,7 @@ static int nvme_init_subsystem(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id)
subsys->awupf = le16_to_cpu(id->awupf);
nvme_mpath_default_iopolicy(subsys);
- subsys->dev.class = nvme_subsys_class;
+ subsys->dev.class = &nvme_subsys_class;
subsys->dev.release = nvme_release_subsystem;
subsys->dev.groups = nvme_subsys_attrs_groups;
dev_set_name(&subsys->dev, "nvme-subsys%d", ctrl->instance);
@@ -3416,7 +3425,7 @@ int nvme_cdev_add(struct cdev *cdev, struct device *cdev_device,
if (minor < 0)
return minor;
cdev_device->devt = MKDEV(MAJOR(nvme_ns_chr_devt), minor);
- cdev_device->class = nvme_ns_chr_class;
+ cdev_device->class = &nvme_ns_chr_class;
cdev_device->release = nvme_cdev_rel;
device_initialize(cdev_device);
cdev_init(cdev, fops);
@@ -4609,7 +4618,7 @@ int nvme_init_ctrl(struct nvme_ctrl *ctrl, struct device *dev,
ctrl->device = &ctrl->ctrl_device;
ctrl->device->devt = MKDEV(MAJOR(nvme_ctrl_base_chr_devt),
ctrl->instance);
- ctrl->device->class = nvme_class;
+ ctrl->device->class = &nvme_class;
ctrl->device->parent = ctrl->dev;
if (ops->dev_attr_groups)
ctrl->device->groups = ops->dev_attr_groups;
@@ -4842,42 +4851,36 @@ static int __init nvme_core_init(void)
if (result < 0)
goto destroy_delete_wq;
- nvme_class = class_create("nvme");
- if (IS_ERR(nvme_class)) {
- result = PTR_ERR(nvme_class);
+ result = class_register(&nvme_class);
+ if (result)
goto unregister_chrdev;
- }
- nvme_class->dev_uevent = nvme_class_uevent;
- nvme_subsys_class = class_create("nvme-subsystem");
- if (IS_ERR(nvme_subsys_class)) {
- result = PTR_ERR(nvme_subsys_class);
+ result = class_register(&nvme_subsys_class);
+ if (result)
goto destroy_class;
- }
result = alloc_chrdev_region(&nvme_ns_chr_devt, 0, NVME_MINORS,
"nvme-generic");
if (result < 0)
goto destroy_subsys_class;
- nvme_ns_chr_class = class_create("nvme-generic");
- if (IS_ERR(nvme_ns_chr_class)) {
- result = PTR_ERR(nvme_ns_chr_class);
+ result = class_register(&nvme_ns_chr_class);
+ if (result)
goto unregister_generic_ns;
- }
+
result = nvme_init_auth();
if (result)
goto destroy_ns_chr;
return 0;
destroy_ns_chr:
- class_destroy(nvme_ns_chr_class);
+ class_unregister(&nvme_ns_chr_class);
unregister_generic_ns:
unregister_chrdev_region(nvme_ns_chr_devt, NVME_MINORS);
destroy_subsys_class:
- class_destroy(nvme_subsys_class);
+ class_unregister(&nvme_subsys_class);
destroy_class:
- class_destroy(nvme_class);
+ class_unregister(&nvme_class);
unregister_chrdev:
unregister_chrdev_region(nvme_ctrl_base_chr_devt, NVME_MINORS);
destroy_delete_wq:
@@ -4893,9 +4896,9 @@ static int __init nvme_core_init(void)
static void __exit nvme_core_exit(void)
{
nvme_exit_auth();
- class_destroy(nvme_ns_chr_class);
- class_destroy(nvme_subsys_class);
- class_destroy(nvme_class);
+ class_unregister(&nvme_ns_chr_class);
+ class_unregister(&nvme_subsys_class);
+ class_unregister(&nvme_class);
unregister_chrdev_region(nvme_ns_chr_devt, NVME_MINORS);
unregister_chrdev_region(nvme_ctrl_base_chr_devt, NVME_MINORS);
destroy_workqueue(nvme_delete_wq);
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/3] nvme: fabrics: make nvmf_class constant
2024-03-05 13:15 [PATCH 0/3] nvme: constify struct class usage Ricardo B. Marliere
2024-03-05 13:15 ` [PATCH 1/3] nvme: core: " Ricardo B. Marliere
@ 2024-03-05 13:15 ` Ricardo B. Marliere
2024-03-06 5:23 ` Chaitanya Kulkarni
2024-03-05 13:15 ` [PATCH 3/3] nvme: fcloop: make fcloop_class constant Ricardo B. Marliere
2024-03-05 13:51 ` [PATCH 0/3] nvme: constify struct class usage Christoph Hellwig
3 siblings, 1 reply; 11+ messages in thread
From: Ricardo B. Marliere @ 2024-03-05 13:15 UTC (permalink / raw)
To: Keith Busch, Jens Axboe, Christoph Hellwig, Sagi Grimberg,
James Smart, Chaitanya Kulkarni
Cc: linux-nvme, linux-kernel, Greg Kroah-Hartman, Ricardo B. Marliere
Since commit 43a7206b0963 ("driver core: class: make class_register() take
a const *"), the driver core allows for struct class to be in read-only
memory, so move the nvmf_class structure to be declared at build time
placing it into read-only memory, instead of having to be dynamically
allocated at boot time.
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
---
drivers/nvme/host/fabrics.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/drivers/nvme/host/fabrics.c b/drivers/nvme/host/fabrics.c
index 3499acbf6a82..94e0911c43bc 100644
--- a/drivers/nvme/host/fabrics.c
+++ b/drivers/nvme/host/fabrics.c
@@ -1318,7 +1318,10 @@ nvmf_create_ctrl(struct device *dev, const char *buf)
return ERR_PTR(ret);
}
-static struct class *nvmf_class;
+static const struct class nvmf_class = {
+ .name = "nvme-fabrics",
+};
+
static struct device *nvmf_device;
static DEFINE_MUTEX(nvmf_dev_mutex);
@@ -1438,15 +1441,14 @@ static int __init nvmf_init(void)
if (!nvmf_default_host)
return -ENOMEM;
- nvmf_class = class_create("nvme-fabrics");
- if (IS_ERR(nvmf_class)) {
+ ret = class_register(&nvmf_class);
+ if (ret) {
pr_err("couldn't register class nvme-fabrics\n");
- ret = PTR_ERR(nvmf_class);
goto out_free_host;
}
nvmf_device =
- device_create(nvmf_class, NULL, MKDEV(0, 0), NULL, "ctl");
+ device_create(&nvmf_class, NULL, MKDEV(0, 0), NULL, "ctl");
if (IS_ERR(nvmf_device)) {
pr_err("couldn't create nvme-fabrics device!\n");
ret = PTR_ERR(nvmf_device);
@@ -1462,9 +1464,9 @@ static int __init nvmf_init(void)
return 0;
out_destroy_device:
- device_destroy(nvmf_class, MKDEV(0, 0));
+ device_destroy(&nvmf_class, MKDEV(0, 0));
out_destroy_class:
- class_destroy(nvmf_class);
+ class_unregister(&nvmf_class);
out_free_host:
nvmf_host_put(nvmf_default_host);
return ret;
@@ -1473,8 +1475,8 @@ static int __init nvmf_init(void)
static void __exit nvmf_exit(void)
{
misc_deregister(&nvmf_misc);
- device_destroy(nvmf_class, MKDEV(0, 0));
- class_destroy(nvmf_class);
+ device_destroy(&nvmf_class, MKDEV(0, 0));
+ class_unregister(&nvmf_class);
nvmf_host_put(nvmf_default_host);
BUILD_BUG_ON(sizeof(struct nvmf_common_command) != 64);
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/3] nvme: fcloop: make fcloop_class constant
2024-03-05 13:15 [PATCH 0/3] nvme: constify struct class usage Ricardo B. Marliere
2024-03-05 13:15 ` [PATCH 1/3] nvme: core: " Ricardo B. Marliere
2024-03-05 13:15 ` [PATCH 2/3] nvme: fabrics: make nvmf_class constant Ricardo B. Marliere
@ 2024-03-05 13:15 ` Ricardo B. Marliere
2024-03-06 5:24 ` Chaitanya Kulkarni
2024-03-05 13:51 ` [PATCH 0/3] nvme: constify struct class usage Christoph Hellwig
3 siblings, 1 reply; 11+ messages in thread
From: Ricardo B. Marliere @ 2024-03-05 13:15 UTC (permalink / raw)
To: Keith Busch, Jens Axboe, Christoph Hellwig, Sagi Grimberg,
James Smart, Chaitanya Kulkarni
Cc: linux-nvme, linux-kernel, Greg Kroah-Hartman, Ricardo B. Marliere
Since commit 43a7206b0963 ("driver core: class: make class_register() take
a const *"), the driver core allows for struct class to be in read-only
memory, so move the fcloop_class structure to be declared at build time
placing it into read-only memory, instead of having to be dynamically
allocated at boot time.
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
---
drivers/nvme/target/fcloop.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/nvme/target/fcloop.c b/drivers/nvme/target/fcloop.c
index 1471af250ea6..913cd2ec7a6f 100644
--- a/drivers/nvme/target/fcloop.c
+++ b/drivers/nvme/target/fcloop.c
@@ -1556,7 +1556,9 @@ static const struct attribute_group *fcloop_dev_attr_groups[] = {
NULL,
};
-static struct class *fcloop_class;
+static const struct class fcloop_class = {
+ .name = "fcloop",
+};
static struct device *fcloop_device;
@@ -1564,15 +1566,14 @@ static int __init fcloop_init(void)
{
int ret;
- fcloop_class = class_create("fcloop");
- if (IS_ERR(fcloop_class)) {
+ ret = class_register(&fcloop_class);
+ if (ret) {
pr_err("couldn't register class fcloop\n");
- ret = PTR_ERR(fcloop_class);
return ret;
}
fcloop_device = device_create_with_groups(
- fcloop_class, NULL, MKDEV(0, 0), NULL,
+ &fcloop_class, NULL, MKDEV(0, 0), NULL,
fcloop_dev_attr_groups, "ctl");
if (IS_ERR(fcloop_device)) {
pr_err("couldn't create ctl device!\n");
@@ -1585,7 +1586,7 @@ static int __init fcloop_init(void)
return 0;
out_destroy_class:
- class_destroy(fcloop_class);
+ class_unregister(&fcloop_class);
return ret;
}
@@ -1643,8 +1644,8 @@ static void __exit fcloop_exit(void)
put_device(fcloop_device);
- device_destroy(fcloop_class, MKDEV(0, 0));
- class_destroy(fcloop_class);
+ device_destroy(&fcloop_class, MKDEV(0, 0));
+ class_unregister(&fcloop_class);
}
module_init(fcloop_init);
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 0/3] nvme: constify struct class usage
2024-03-05 13:15 [PATCH 0/3] nvme: constify struct class usage Ricardo B. Marliere
` (2 preceding siblings ...)
2024-03-05 13:15 ` [PATCH 3/3] nvme: fcloop: make fcloop_class constant Ricardo B. Marliere
@ 2024-03-05 13:51 ` Christoph Hellwig
2024-03-05 16:02 ` Keith Busch
3 siblings, 1 reply; 11+ messages in thread
From: Christoph Hellwig @ 2024-03-05 13:51 UTC (permalink / raw)
To: Ricardo B. Marliere
Cc: Keith Busch, Jens Axboe, Christoph Hellwig, Sagi Grimberg,
James Smart, Chaitanya Kulkarni, linux-nvme, linux-kernel,
Greg Kroah-Hartman
The whole series looks good:
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/3] nvme: constify struct class usage
2024-03-05 13:51 ` [PATCH 0/3] nvme: constify struct class usage Christoph Hellwig
@ 2024-03-05 16:02 ` Keith Busch
2024-03-05 16:25 ` Ricardo B. Marliere
0 siblings, 1 reply; 11+ messages in thread
From: Keith Busch @ 2024-03-05 16:02 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Ricardo B. Marliere, Jens Axboe, Sagi Grimberg, James Smart,
Chaitanya Kulkarni, linux-nvme, linux-kernel, Greg Kroah-Hartman
Thanks, applied to nvme-6.9.
For some reason this series didn't arrive to my inbox. I got the patches
from lore, but I probably wouldn't have noticed this series if Christoph
hadn't replied.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/3] nvme: constify struct class usage
2024-03-05 16:02 ` Keith Busch
@ 2024-03-05 16:25 ` Ricardo B. Marliere
2024-03-07 8:01 ` Sagi Grimberg
0 siblings, 1 reply; 11+ messages in thread
From: Ricardo B. Marliere @ 2024-03-05 16:25 UTC (permalink / raw)
To: Keith Busch
Cc: Christoph Hellwig, Jens Axboe, Sagi Grimberg, James Smart,
Chaitanya Kulkarni, linux-nvme, linux-kernel, Greg Kroah-Hartman
Hi Keith,
On 5 Mar 09:02, Keith Busch wrote:
> Thanks, applied to nvme-6.9.
>
> For some reason this series didn't arrive to my inbox. I got the patches
> from lore, but I probably wouldn't have noticed this series if Christoph
> hadn't replied.
This is weird, I use gmail for sending. Thanks for letting me know,
anyway, and picking up the patches. Also thank you Christoph for
reviewing!
All the best,
- Ricardo.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] nvme: core: constify struct class usage
2024-03-05 13:15 ` [PATCH 1/3] nvme: core: " Ricardo B. Marliere
@ 2024-03-06 5:23 ` Chaitanya Kulkarni
0 siblings, 0 replies; 11+ messages in thread
From: Chaitanya Kulkarni @ 2024-03-06 5:23 UTC (permalink / raw)
To: Ricardo B. Marliere, Keith Busch, Jens Axboe, Christoph Hellwig,
Sagi Grimberg, James Smart, Chaitanya Kulkarni
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
Greg Kroah-Hartman
On 3/5/24 05:15, Ricardo B. Marliere wrote:
> Since commit 43a7206b0963 ("driver core: class: make class_register() take
> a const *"), the driver core allows for struct class to be in read-only
> memory, so move the structures nvme_class, nvme_subsys_class and
> nvme_ns_chr_class to be declared at build time placing them into read-only
> memory, instead of having to be dynamically allocated at boot time.
>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
> ---
>
Looks good.
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
-ck
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/3] nvme: fabrics: make nvmf_class constant
2024-03-05 13:15 ` [PATCH 2/3] nvme: fabrics: make nvmf_class constant Ricardo B. Marliere
@ 2024-03-06 5:23 ` Chaitanya Kulkarni
0 siblings, 0 replies; 11+ messages in thread
From: Chaitanya Kulkarni @ 2024-03-06 5:23 UTC (permalink / raw)
To: Ricardo B. Marliere, Keith Busch, Jens Axboe, Christoph Hellwig,
Sagi Grimberg, James Smart, Chaitanya Kulkarni
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
Greg Kroah-Hartman
On 3/5/24 05:15, Ricardo B. Marliere wrote:
> Since commit 43a7206b0963 ("driver core: class: make class_register() take
> a const *"), the driver core allows for struct class to be in read-only
> memory, so move the nvmf_class structure to be declared at build time
> placing it into read-only memory, instead of having to be dynamically
> allocated at boot time.
>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
> ---
>
Looks good.
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
-ck
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/3] nvme: fcloop: make fcloop_class constant
2024-03-05 13:15 ` [PATCH 3/3] nvme: fcloop: make fcloop_class constant Ricardo B. Marliere
@ 2024-03-06 5:24 ` Chaitanya Kulkarni
0 siblings, 0 replies; 11+ messages in thread
From: Chaitanya Kulkarni @ 2024-03-06 5:24 UTC (permalink / raw)
To: Ricardo B. Marliere, Keith Busch, Jens Axboe, Christoph Hellwig,
Sagi Grimberg, James Smart, Chaitanya Kulkarni
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
Greg Kroah-Hartman
On 3/5/24 05:15, Ricardo B. Marliere wrote:
> Since commit 43a7206b0963 ("driver core: class: make class_register() take
> a const *"), the driver core allows for struct class to be in read-only
> memory, so move the fcloop_class structure to be declared at build time
> placing it into read-only memory, instead of having to be dynamically
> allocated at boot time.
>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
> ---
>
Looks good.
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
-ck
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/3] nvme: constify struct class usage
2024-03-05 16:25 ` Ricardo B. Marliere
@ 2024-03-07 8:01 ` Sagi Grimberg
0 siblings, 0 replies; 11+ messages in thread
From: Sagi Grimberg @ 2024-03-07 8:01 UTC (permalink / raw)
To: Ricardo B. Marliere, Keith Busch
Cc: Christoph Hellwig, Jens Axboe, James Smart, Chaitanya Kulkarni,
linux-nvme, linux-kernel, Greg Kroah-Hartman
On 05/03/2024 18:25, Ricardo B. Marliere wrote:
> Hi Keith,
>
> On 5 Mar 09:02, Keith Busch wrote:
>> Thanks, applied to nvme-6.9.
>>
>> For some reason this series didn't arrive to my inbox. I got the patches
>> from lore, but I probably wouldn't have noticed this series if Christoph
>> hadn't replied.
> This is weird, I use gmail for sending. Thanks for letting me know,
> anyway,
Same here...
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-03-07 8:01 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-05 13:15 [PATCH 0/3] nvme: constify struct class usage Ricardo B. Marliere
2024-03-05 13:15 ` [PATCH 1/3] nvme: core: " Ricardo B. Marliere
2024-03-06 5:23 ` Chaitanya Kulkarni
2024-03-05 13:15 ` [PATCH 2/3] nvme: fabrics: make nvmf_class constant Ricardo B. Marliere
2024-03-06 5:23 ` Chaitanya Kulkarni
2024-03-05 13:15 ` [PATCH 3/3] nvme: fcloop: make fcloop_class constant Ricardo B. Marliere
2024-03-06 5:24 ` Chaitanya Kulkarni
2024-03-05 13:51 ` [PATCH 0/3] nvme: constify struct class usage Christoph Hellwig
2024-03-05 16:02 ` Keith Busch
2024-03-05 16:25 ` Ricardo B. Marliere
2024-03-07 8:01 ` Sagi Grimberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox