]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
firewire: core: add flags member for isochronous context structure
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sat, 17 Jan 2026 14:28:18 +0000 (23:28 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 18 Jan 2026 08:18:48 +0000 (17:18 +0900)
This is minor code refactoring to add a flag member to the isochronous
context structure. At present, it is used only for the option to drop
packets when the context header overflows.

Link: https://lore.kernel.org/r/20260117142823.440811-6-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
drivers/firewire/core-cdev.c
drivers/firewire/core-iso.c
drivers/firewire/ohci.c
include/linux/firewire.h

index c26bea2532088696d2fbd5586c07dd93893728e5..9e964fdd175c4ef7920897e7dcb0420f15772348 100644 (file)
@@ -1064,7 +1064,7 @@ static int ioctl_create_iso_context(struct client *client, union ioctl_arg *arg)
        if (IS_ERR(context))
                return PTR_ERR(context);
        if (client->version < FW_CDEV_VERSION_AUTO_FLUSH_ISO_OVERFLOW)
-               context->drop_overflow_headers = true;
+               context->flags |= FW_ISO_CONTEXT_FLAG_DROP_OVERFLOW_HEADERS;
 
        // We only support one context at this time.
        scoped_guard(mutex, &client->iso_context_mutex) {
index d9b8896c8ce145f47baa2584e58260c356d6a0b3..fbbd14d21ca41cf7b70c8ade0a521ce82902affb 100644 (file)
@@ -151,6 +151,7 @@ struct fw_iso_context *__fw_iso_context_create(struct fw_card *card, int type, i
        ctx->type = type;
        ctx->channel = channel;
        ctx->speed = speed;
+       ctx->flags = 0;
        ctx->header_size = header_size;
        ctx->callback = callback;
        ctx->callback_data = callback_data;
index 6760c8d12637e7d9f11de05ae9c33032ab80b15a..8bba70b65ad7e8a56e3c65988044dbd99c4df73e 100644 (file)
@@ -2756,7 +2756,7 @@ static void copy_iso_headers(struct iso_context *ctx, const u32 *dma_hdr)
        u32 *ctx_hdr;
 
        if (ctx->sc.header_length + ctx->base.header_size > PAGE_SIZE) {
-               if (ctx->base.drop_overflow_headers)
+               if (ctx->base.flags & FW_ISO_CONTEXT_FLAG_DROP_OVERFLOW_HEADERS)
                        return;
                flush_iso_completions(ctx, FW_ISO_CONTEXT_COMPLETIONS_CAUSE_HEADER_OVERFLOW);
        }
@@ -2925,7 +2925,7 @@ static int handle_it_packet(struct context *context,
        sync_it_packet_for_cpu(context, d);
 
        if (ctx->sc.header_length + 4 > PAGE_SIZE) {
-               if (ctx->base.drop_overflow_headers)
+               if (ctx->base.flags & FW_ISO_CONTEXT_FLAG_DROP_OVERFLOW_HEADERS)
                        return 1;
                flush_iso_completions(ctx, FW_ISO_CONTEXT_COMPLETIONS_CAUSE_HEADER_OVERFLOW);
        }
index 68161b8a8a58d725178e4b476676d6bc921d707f..71d5cc8f28cefedbe33cf04d670b000991eed790 100644 (file)
@@ -546,13 +546,17 @@ union fw_iso_callback {
        fw_iso_mc_callback_t mc;
 };
 
+enum fw_iso_context_flag {
+       FW_ISO_CONTEXT_FLAG_DROP_OVERFLOW_HEADERS = BIT(0),
+};
+
 struct fw_iso_context {
        struct fw_card *card;
        struct work_struct work;
        int type;
        int channel;
        int speed;
-       bool drop_overflow_headers;
+       int flags;
        size_t header_size;
        union fw_iso_callback callback;
        void *callback_data;