]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
firewire: core: code cleanup to remove old implementations for once operation
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 29 Apr 2026 09:34:46 +0000 (18:34 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 29 Apr 2026 11:30:33 +0000 (20:30 +0900)
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>
drivers/firewire/core-cdev.c

index 478e8f6400f0f8bb32231f3c451008263590e1a1..f81a8aa4bcbc6ba525256b87060818b26a83e664 100644 (file)
@@ -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,