Re: [PATCH v4] ata: libahci: re-enable FBS after error handling on a port multiplier
From: Niklas Cassel
Date: Thu Oct 15 2026 - 03:24:10 EST
On Thu, Oct 15, 2026 at 07:37:45AM +0200, Damien Le Moal wrote:
> On 2026/10/12 12:39, Kyrylo Biryuk wrote:
> > ahci_do_softreset() disables FBS before resetting a device behind a port
> > multiplier, as required by AHCI 1.2 section 9.3.9, and re-enables it only
> > when that softreset succeeds. If it fails, for example because a
> > hot-plugged drive is still spinning up ("softreset failed (device not
> > ready)"), EH escalates to a hardreset of the PMP link, and nothing turns
> > FBS back on: only ahci_pmp_attach() does, which runs at the next boot.
> > The port keeps working with command-based switching until then.
> >
> > Seen on a Marvell 88SE9235 (1b4b:9235) with Marvell 88SM9705 port
> > multipliers (1b4b:9705, in a Synology DX1222 expansion unit): after
> > hot-plugging a drive, the kernel logged "FBS is disabled" followed by
> > "softreset failed (device not ready)" and a PMP hardreset, and never
> > "FBS is enabled" again (twice, on two different ports).
> >
> > At the end of ahci_error_handler(), re-enable FBS if a PMP is still
> > attached and FBS is supported but disabled.
> >
> > Fixes: 89dafa20f3da ("ahci: disabled FBS prior to issuing software reset")
> > Assisted-by: LLM
> > Signed-off-by: Kyrylo Biryuk <illofspeed@xxxxxxxxx>
>
> Looks good.
>
> Reviewed-by: Damien Le Moal <dlemoal@xxxxxxxxxx>
Commit was updated to pick up Damien's tag:
https://git.kernel.org/pub/scm/linux/kernel/git/libata/linux.git/commit/?id=23eab9e877497397a0e2394ee9174d576816209e
Kind regards,
Niklas