mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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®