lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240302231242.GA33788@workstation.local>
Date: Sun, 3 Mar 2024 08:12:42 +0900
From: Takashi Sakamoto <o-takashi@...amocchi.jp>
To: torvalds@...ux-foundation.org
Cc: linux-kernel@...r.kernel.org
Subject: [GIT PULL] firewire fixes for v6.8-rc7

Hi Linus,

Please pull the following fixes for the next RC from firewire tree.

We have identified a long-standing issue involving continuous bus resets
in some older devices (e.g. DV camera manufactured in the late 1990s).
After thorough investigation, Adam Goldman has finally figured out the
underlying mechanism.

The problem arises in environments where both IEEE 1394:1995 PHY and
IEEE 1394a-2000 (or later) PHY exist. It is triggered by the short bus
reset defined in IEEE 1394a-2000. The current implementation of firewire
stack uses this short bus reset to solve the gap count mismatches in the
certain generation of bus topology, and causing the issue.

As a workaround, we decided to use the long bus reset instead. I anticipate
that the workaround will also be applied to the stable kernel and the
longterm kernels.


The following changes since commit d206a76d7d2726f3b096037f2079ce0bd3ba329b:

  Linux 6.8-rc6 (2024-02-25 15:46:06 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394.git tags/firewire-fixes-6.8-rc7

for you to fetch changes up to d0b06dc48fb15902d7da09c5c0861e7f042a9381:

  firewire: core: use long bus reset on gap count error (2024-02-29 22:18:14 +0900)

----------------------------------------------------------------
firewire-fixes-6.8-rc7

A workaround to suppress the continuous bus resets in the case that older
devices are connected to the modern 1394 OHCI hardware and devices

In IEEE 1394 Amendment (IEEE 1394a-2000), the short bus reset is added to
resolve the shortcomings of the long bus reset in IEEE 1394-1995. However,
it is well-known that the solution is not necessarily effective in the
mixing environment that both IEEE 1394-1995 PHY and IEEE 1394a-2000 (or
later) PHY exist, as described in section 8.4.6.2 of IEEE 1394a-2000.

The current implementation of firewire stack schedules the short bus
reset when attempting to resolve the mismatch of gap count in the certain
generation of bus topology. It can cause the continuous bus reset in the
issued environment.

The workaround simply uses the long bus reset instead of the short bus
reset. It is desirable to detect whether the issued environment or not.
However, the way to access PHY registers from remote note is firstly
defined in IEEE 1394a-2000, thus it is not available in the case.

----------------------------------------------------------------
Takashi Sakamoto (1):
      firewire: core: use long bus reset on gap count error

 drivers/firewire/core-card.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)


Thanks

Takashi Sakamoto


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ