Re: [PATCH v2] ata: libata-scsi: fix requeue of deferred ATA PASS-THROUGH commands

From: Christoph Wiese

Date: Sat May 16 2026 - 06:53:27 EST


(my orginal email was html formated, sorry about that)

Hi Niklas,

I notice you already flagged this for backporting to 7.0 stable. Please also include 6.12.y - the buggy parent commit 0ea84089dbf6 was backported to 6.12.77 as 5d61a38a60e6, and the bug reproduces there.

Symptom: parallel sedutil-cli --setLockingRange against multiple ATA OPAL SEDs causes one random drive per invocation to receive a zero-length TRUSTED RECEIVE response ("One or more header fields have 0 length / Session start failed rc = 136"). The OPAL session is opened on the drive by the TRUSTED SEND but the matching TRUSTED RECEIVE is failed at the SCSI mid-layer (scmd->allowed == 0 for SG_IO), leaving an orphan session that only a cold power cycle clears.

Bisect on Debian's 6.12.y kernel (which carries 5d61a38a60e6 unmodified): 6.12.74 works, 6.12.86 broken. I've been running 8ebf408 locally as a cherry-pick on 6.12.88 for ~24h; six OPAL SEDs unlock cleanly on every boot.

Thanks for the fix.