Re: [PATCH 0/7] firewire: core: separate iso_resource paths

From: Takashi Sakamoto

Date: Thu Apr 30 2026 - 09:10:51 EST


On Wed, Apr 29, 2026 at 06:34:41PM +0900, Takashi Sakamoto wrote:
> Hi,
>
> (Repost since lkml was excluded.)
>
> Dingisoul has reported that a case where the reference count of a
> client structure is leaked when handling iso_resource in cdev layer[1].
> Fixing the bug immediately s difficult due to the complexity of
> per-client resource lifetime.
>
> As a first step toward addressing this issue, this patchset refactors the
> existing code for isochronous resource operation. Userspace application
> can allocate and deallocate isochronous resources on IEEE 1394 bus in two
> ways:
> * FW_CDEV_IOC_[DE]ALLOCATE_ISO_RESOURCE
> * FW_CDEV_IOC_[DE]ALLOCATE_ISO_RESOURCE_ONCE
>
> With the former, the application delegates the maintenance of the
> allocated isochronous resources to kernel and obtain a handle for the
> client resource. With the latter, the application should maintain
> isochronous resources every time receiving bus reset event, without
> relying on a handle.
>
> Currently, both operations are handled by the same code, although they
> differ in terms of client resource management.
>
> This patchset separates these two paths. As a result, it becomes clear
> that the reported issue only affects client resource allocated via the
> former method. While the actual bug fix is deferred, this refactoring
> lays the groundwork for it.
>
> [1] https://sourceforge.net/p/linux1394/mailman/linux1394-devel/thread/20260404110936.GA282614%40sakamocchi.jp/#msg59317811
>
> Takashi Sakamoto (7):
> firewire: core: code refactoring for early return at client resource
> allocation
> firewire: core: code refactoring to queue work item for iso_resource
> firewire: core: code refactoring for helper function to fill
> iso_resource parameters
> firewire: core: split functions for iso_resource once operation
> firewire: core: code cleanup to remove old implementations for once
> operation
> firewire: core: append _auto suffix for non-once iso resource
> operations
> firewire: core: code cleanup for iso resource auto creation
>
> drivers/firewire/core-cdev.c | 285 +++++++++++++++++++++--------------
> 1 file changed, 176 insertions(+), 109 deletions(-)

Applied to for-next branch.


Regards

Takashi Sakamoto