diff options
| author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2026-04-29 18:34:46 +0900 |
|---|---|---|
| committer | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2026-04-29 20:30:33 +0900 |
| commit | cd5f1a1126eeb2f6bd53d45684233e95dff41d82 (patch) | |
| tree | c1e69332ee9326600b97af2d92dfe4ceba48d20f | |
| parent | b3ac3b453b23423e2c713d9ac497ddb0aec9aa7c (diff) | |
firewire: core: code cleanup to remove old implementations for once operation
The helper functions for iso_resource allocation and work item still
include codes for once operation.
This commit refactors them to remove the old implementations.
Link: https://lore.kernel.org/r/20260429093449.160545-6-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
| -rw-r--r-- | drivers/firewire/core-cdev.c | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c index 478e8f6400f0..f81a8aa4bcbc 100644 --- a/drivers/firewire/core-cdev.c +++ b/drivers/firewire/core-cdev.c @@ -139,8 +139,11 @@ struct iso_resource { struct client *client; /* Schedule work and access todo only with client->lock held. */ struct delayed_work work; - enum {ISO_RES_ALLOC, ISO_RES_REALLOC, ISO_RES_DEALLOC, - ISO_RES_ALLOC_ONCE, ISO_RES_DEALLOC_ONCE,} todo; + enum { + ISO_RES_ALLOC, + ISO_RES_REALLOC, + ISO_RES_DEALLOC, + } todo; struct iso_resource_params params; struct iso_resource_event *e_alloc, *e_dealloc; }; @@ -1342,9 +1345,7 @@ static void iso_resource_work(struct work_struct *work) skip = todo == ISO_RES_REALLOC && r->params.generation == generation; } - free = todo == ISO_RES_DEALLOC || - todo == ISO_RES_ALLOC_ONCE || - todo == ISO_RES_DEALLOC_ONCE; + free = todo == ISO_RES_DEALLOC; r->params.generation = generation; } @@ -1356,8 +1357,7 @@ static void iso_resource_work(struct work_struct *work) fw_iso_resource_manage(client->device->card, generation, r->params.channels, &channel, &bandwidth, todo == ISO_RES_ALLOC || - todo == ISO_RES_REALLOC || - todo == ISO_RES_ALLOC_ONCE); + todo == ISO_RES_REALLOC); /* * Is this generation outdated already? As long as this resource sticks * in the xarray, it will be scheduled again for a newer generation or at @@ -1390,7 +1390,7 @@ static void iso_resource_work(struct work_struct *work) if (todo == ISO_RES_REALLOC && success) goto out; - if (todo == ISO_RES_ALLOC || todo == ISO_RES_ALLOC_ONCE) { + if (todo == ISO_RES_ALLOC) { e = r->e_alloc; r->e_alloc = NULL; } else { @@ -1425,8 +1425,7 @@ static void release_iso_resource(struct client *client, schedule_iso_resource(r, 0); } -static int init_iso_resource(struct client *client, - struct fw_cdev_allocate_iso_resource *request, int todo) +static int init_iso_resource(struct client *client, struct fw_cdev_allocate_iso_resource *request) { struct iso_resource_event *e1, *e2; struct iso_resource *r; @@ -1446,7 +1445,7 @@ static int init_iso_resource(struct client *client, INIT_DELAYED_WORK(&r->work, iso_resource_work); r->client = client; - r->todo = todo; + r->todo = ISO_RES_ALLOC; r->e_alloc = e1; r->e_dealloc = e2; @@ -1455,15 +1454,10 @@ static int init_iso_resource(struct client *client, e2->iso_resource.closure = request->closure; e2->iso_resource.type = FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED; - if (todo == ISO_RES_ALLOC) { - r->resource.release = release_iso_resource; - ret = add_client_resource(client, &r->resource, GFP_KERNEL); - if (ret < 0) - goto fail; - } else { - r->resource.release = NULL; - r->resource.handle = -1; - } + r->resource.release = release_iso_resource; + ret = add_client_resource(client, &r->resource, GFP_KERNEL); + if (ret < 0) + goto fail; schedule_iso_resource(r, 0); request->handle = r->resource.handle; @@ -1480,8 +1474,7 @@ static int init_iso_resource(struct client *client, static int ioctl_allocate_iso_resource(struct client *client, union ioctl_arg *arg) { - return init_iso_resource(client, - &arg->allocate_iso_resource, ISO_RES_ALLOC); + return init_iso_resource(client, &arg->allocate_iso_resource); } static int ioctl_deallocate_iso_resource(struct client *client, |
