From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org, linux1394-devel@lists.sourceforge.net
Subject: [GIT PULL] firewire updates for v7.4
Date: Sat, 24 Oct 2026 20:59:15 +0900 [thread overview]
Message-ID: <20261024115915.GA518900@sakamocchi.jp> (raw)
Hi Linus,
Please pull firewire changes for 7.4 to your tree.
Highlights:
- Guarantee asynchronous packet and transaction callbacks in process context
- Fill kerneldoc for transaction layer
- Enable compiler-based context analysis for the transaction layer
- Fix a reference count leak in the cdev layer
- Add KUnit tests for the configuration ROM parser and generator
- Misc fixes for kerneldoc and nosy-dump application
Regards
The following changes since commit c03c1a14507dfaf8b856c2608f9ac216021fc222:
Linux 7.3 (2026-10-18 13:14:58 -1000)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394.git tags/firewire-updates-7.4
for you to fetch changes up to 06d410ba93d33a6c78e917d54e821355492e3ce4:
firewire: core: replace drain_workqueue() with flush_workqueue() (2026-10-19 21:25:55 +0900)
----------------------------------------------------------------
firewire updates for v7.4
- Guarantee asynchronous packet and transaction callbacks in process context
Both the 1394 OHCI driver and the core transaction layer have been changed
to guarantee that asynchronous packet and transaction callbacks are
invoked in process context. In v6.17, the execution context depended on
the transaction destination: callbacks for transactions destined for
remote nodes were invoked from a workqueue, whereas callbacks for
transactions destined for the local node or terminated due to internal
errors were invoked in the transaction initiator's context. All such
callbacks are now guaranteed to execute in process context, eliminating
the need to account for different execution contexts when implementing
callback functions.
- Fill kerneldoc for transaction layer
The above change guarantees a consistent execution context for packet and
transaction callbacks, making it possible to document their execution
context in kerneldoc.
- Enable compiler-based context analysis for the transaction layer
The core transaction layer is sufficiently complex that compiler-based
context analysis can help detect invalid call paths.
- Fix a reference count leak in the cdev layer
A reference count leak was reported when a user space application
delegated isochronous resource management. This issue has now been fixed.
- Add KUnit tests for the configuration ROM parser and generator
In recent years, questions have been raised about how the configuration
ROM parser and generator handle boundary conditions and edge cases. KUnit
tests have been added to verify their behavior in these situations.
KUNIT_STATIC_STUB_REDIRECT is used to stub the transaction responder so
that it returns the configuration ROM contents.
- Misc fixes for kerneldoc and nosy-dump application
----------------------------------------------------------------
Bill Wendling (2):
firewire: core: add __counted_by_ptr to struct fw_packet
firewire: core: add __counted_by_ptr attribute to struct fw_device
Karl Mehltretter (1):
firewire: cdev: Fix FW_CDEV_IOC_CREATE_ISO_CONTEXT references in kernel-doc
Takashi Sakamoto (82):
firewire: core: fix wrong git hash in code comment
firewire: core: fix wrong git hash in code comment
firewire: core: add KUnit test skeleton for config ROM parser and generator
firewire: core: add test to detect irm-is-1394-1995-only quirk in config ROM parser
firewire: core: add test to detect irm-ignores-bus-manager quirk in config ROM parser
firewire: core: add test to detect ack-packet-with-invalid-pending-code quirk in config ROM parser
firewire: core: add test to detect unstable-at-s400 quirk in config ROM parser
firewire: core: add test to avoid excessive configuration ROM length
firewire: core: add test for root directory generation in config ROM generator
firewire: core: add test to generate with AV/C unit in config ROM generator
firewire: core: add test to generate with IIDC unit in config ROM generator
firewire: core: add test to generate with both AV/C and IIDC units in config ROM generator
firewire: core: add test for invalid length in config ROM generator
firewire: core: add invalid block test for config ROM generator
firewire: core: add test for beyond-boundary case in config ROM generator
firewire: core: fix source bus ID detection for AT context in big-endian systems
firewire: core: fix type of hard-coded image in config ROM generator test
firewire: core: fix type of transaction data in config ROM parser test
firewire: core: remove unused link field in fw_packet structure
firewire: ohci: obsolete flushing field in at_context structure
firewire: ohci: use in_range() macro to detect CSR address ranges
firewire: ohci: add helper function to detect local AT request/response packets
firewire: ohci: refactor multiple calls to fw_fill_response()
firewire: ohci: refactor local response packet handling
firewire: ohci: refactor handling of local AT request/response packets
firewire: core: correct comment about execution context
firewire: ohci: use workqueue to handle error case of AT request/response packet queueing
firewire: ohci: use workqueue to handle local AT request/response packets
firewire: ohci: refactor branches in at_context_transmit()
firewire: core: use spinlock without irqsave for card split_timeout member
firewire: core: use spinlock without irqsave for card topology_map member
firewire: cdev: use memory barrier to access fw_device members
firewire: cdev: refactor using scoped_guard() for get_info ioctl call
firewire: cdev: refactor copy_to_user() in get_info ioctl call
firewire: cdev: add annotations and comments about race condition of bus_reset_closure
firewire: cdev: add KUnit test for bus reset event UAPI structure
firewire: core: consolidate lock scopes for event waiting in dequeue function
firewire: core: fulfill kerneldoc for address handler
firewire: cdev: use mutex for phy receiver list
firewire: cdev: use GFP_KERNEL in address handler
firewire: cdev: refactor add_client_resource() to drop GFP flags argument
firewire: cdev: refactor add_client_resource() to have release callback function
firewire: core: refactor invoking transaction callback
firewire: core: use workqueue to invoke transaction callback in some error cases
firewire: core: update kerneldoc for fw_send_request() and its variants
firewire: cdev: hold client reference for fw_iso_resource_auto lifetime
firewire: cdev: fix client refcount leak in iso_resource_auto_work()
firewire: cdev: remove unnecessary client locking for fw_device members
firewire: cdev: wake up client from queue_event() only when any event is available
firewire: cdev: use xchg() to exchange pointer value
firewire: cdev: refactor event copying to remove goto statement
firewire: core: remove unnecessary branch for timestamping when cancelling transaction request packets
firewire: ohci: run work immediately when re-enabled in packet cancellation
firewire: cdev: use atomic_t for iso_resource_auto todo member
firewire: cdev: use mutex for client locking
firewire: core: use kzalloc_flex() to allocate structure with quadlet array
firewire: cdev: use kzalloc_flex() to allocate structure with quadlet array
firewire: cdev: use kzalloc_flex() to allocate structure with byte array
firewire: core: expand close_transaction() into its callers and remove it
firewire: ohci: schedule callback on workqueue when cancelling AT request packet
firewire: ohci: allow AT local packet cancellation
firewire: core: schedule callback when cancelling pending transactions
firewire: core: fulfill kerneldoc for fw_cancel_transaction()
firewire: core: add might_sleep() checks to transaction layer
firewire: core: enable context analysis for transaction layer
firewire: core: use context analysis annotations and lockdep checks for transactions lock
firewire: core: use context analysis annotations and lockdep checks for split timeout lock
firewire: core: use context analysis annotations and lockdep checks for topology map lock
firewire: core: narrow the card lock scope when accessing node_id
firewire: core: use appropriate spinlock variants for transaction-related locks
firewire: core: add kerneldoc for outbound transaction-related symbols
firewire: core: add kerneldoc for inbound transaction-related symbols
firewire: core: use release/acquire pair when replacing underlying driver on card removal
firewire: core: don't disable error work for transaction
firewire: core: reuse helper function for scheduling error callbacks
firewire: core: use workqueue to cancel all pending transactions on card removal
firewire: core: check precondition when scheduling error callbacks
firewire: core: use context analysis to check lock state when scheduling error callbacks
firewire: core: use designated initializer for dummy driver on card removal
firewire: core: invoke packet callback from workqueue when removing card instance
firewire: core: adjust context_unsafe() usage for lockdep checks
firewire: core: replace drain_workqueue() with flush_workqueue()
Triet Hoang (1):
firewire: ohci: Convert to DEFINE_SIMPLE_DEV_PM_OPS()
longlong yan (2):
tools/firewire: nosy-dump: guard close(fd) when reading from input file
tools/firewire: nosy-dump: fix input file handle leak
Documentation/driver-api/firewire.rst | 5 +
drivers/firewire/.kunitconfig | 1 +
drivers/firewire/Kconfig | 16 ++
drivers/firewire/Makefile | 2 +
drivers/firewire/config-rom-generator-test.c | 407 ++++++++++++++++++++++++++
drivers/firewire/config-rom-parser-test.c | 355 +++++++++++++++++++++++
drivers/firewire/core-card.c | 124 +++++---
drivers/firewire/core-cdev.c | 301 +++++++++----------
drivers/firewire/core-device.c | 12 +-
drivers/firewire/core-iso.c | 32 ++-
drivers/firewire/core-topology.c | 3 +
drivers/firewire/core-transaction.c | 414 +++++++++++++++------------
drivers/firewire/device-attribute-test.c | 4 +-
drivers/firewire/ohci-serdes-test.c | 4 +-
drivers/firewire/ohci.c | 312 +++++++++++++-------
drivers/firewire/ohci.h | 2 +-
drivers/firewire/uapi-test.c | 20 ++
include/linux/firewire.h | 153 ++++++++--
include/uapi/linux/firewire-cdev.h | 4 +-
tools/firewire/nosy-dump.c | 10 +-
20 files changed, 1655 insertions(+), 526 deletions(-)
create mode 100644 drivers/firewire/config-rom-generator-test.c
create mode 100644 drivers/firewire/config-rom-parser-test.c
reply other threads:[~2026-10-24 11:59 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261024115915.GA518900@sakamocchi.jp \
--to=o-takashi@sakamocchi.jp \
--cc=linux-kernel@vger.kernel.org \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®