Page MenuHomeFreeBSD

D60018.id187662.diff
No OneTemporary

D60018.id187662.diff

diff --git a/sys/dev/nvme/nvme_sysctl.c b/sys/dev/nvme/nvme_sysctl.c
--- a/sys/dev/nvme/nvme_sysctl.c
+++ b/sys/dev/nvme/nvme_sysctl.c
@@ -93,36 +93,17 @@
}
static int
-nvme_sysctl_int_coal_time(SYSCTL_HANDLER_ARGS)
+nvme_sysctl_int_coal(SYSCTL_HANDLER_ARGS)
{
struct nvme_controller *ctrlr = arg1;
- uint32_t oldval = ctrlr->int_coal_time;
- int error = sysctl_handle_int(oidp, &ctrlr->int_coal_time, 0,
- req);
+ uint32_t *valp = (uint32_t *)((char *)ctrlr + (size_t)arg2);
+ uint32_t oldval = *valp;
+ int error = sysctl_handle_int(oidp, valp, 0, req);
if (error)
return (error);
- if (oldval != ctrlr->int_coal_time)
- nvme_ctrlr_cmd_set_interrupt_coalescing(ctrlr,
- ctrlr->int_coal_time, ctrlr->int_coal_threshold, NULL,
- NULL);
-
- return (0);
-}
-
-static int
-nvme_sysctl_int_coal_threshold(SYSCTL_HANDLER_ARGS)
-{
- struct nvme_controller *ctrlr = arg1;
- uint32_t oldval = ctrlr->int_coal_threshold;
- int error = sysctl_handle_int(oidp, &ctrlr->int_coal_threshold, 0,
- req);
-
- if (error)
- return (error);
-
- if (oldval != ctrlr->int_coal_threshold)
+ if (oldval != *valp)
nvme_ctrlr_cmd_set_interrupt_coalescing(ctrlr,
ctrlr->int_coal_time, ctrlr->int_coal_threshold, NULL,
NULL);
@@ -361,13 +342,15 @@
SYSCTL_ADD_PROC(ctrlr_ctx, ctrlr_list, OID_AUTO,
"int_coal_time", CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE,
- ctrlr, 0, nvme_sysctl_int_coal_time, "IU",
+ ctrlr, offsetof(struct nvme_controller, int_coal_time),
+ nvme_sysctl_int_coal, "IU",
"Interrupt coalescing timeout (in microseconds)");
SYSCTL_ADD_PROC(ctrlr_ctx, ctrlr_list, OID_AUTO,
"int_coal_threshold",
- CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE, ctrlr, 0,
- nvme_sysctl_int_coal_threshold, "IU",
+ CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE, ctrlr,
+ offsetof(struct nvme_controller, int_coal_threshold),
+ nvme_sysctl_int_coal, "IU",
"Interrupt coalescing threshold");
SYSCTL_ADD_PROC(ctrlr_ctx, ctrlr_list, OID_AUTO,

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 26, 3:11 PM (24 m, 13 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39660349
Default Alt Text
D60018.id187662.diff (1 KB)

Event Timeline