[PATCH v3] usb: usb-storage: No additional quirks need to be added to the EL-R12 optical drive.

5 views
Skip to first unread message

Chen Changcheng

unread,
Nov 21, 2025, 2:33:17 AMNov 21
to st...@rowland.harvard.edu, benjamin....@redhat.com, gre...@linuxfoundation.org, linu...@vger.kernel.org, usb-s...@lists.one-eyed-alien.net, linux-...@vger.kernel.org, Chen Changcheng
The optical drive of EL-R12 has the same vid and pid as INIC-3069,
as follows:
T: Bus=02 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0
D: Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
P: Vendor=13fd ProdID=3940 Rev= 3.10
S: Manufacturer=HL-DT-ST
S: Product= DVD+-RW GT80N
S: SerialNumber=423349524E4E38303338323439202020
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=144mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=02 Prot=50 Driver=usb-storage
E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=0a(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms

This will result in the optical drive device also adding
the quirks of US_FL_NO_ATA_1X. When performing an erase operation,
it will fail, and the reason for the failure is as follows:
[ 388.967742] sr 5:0:0:0: [sr0] tag#0 Send: scmd 0x00000000d20c33a7
[ 388.967742] sr 5:0:0:0: [sr0] tag#0 CDB: ATA command pass through(12)/Blank a1 11 00 00 00 00 00 00 00 00 00 00
[ 388.967773] sr 5:0:0:0: [sr0] tag#0 Done: SUCCESS Result: hostbyte=DID_TARGET_FAILURE driverbyte=DRIVER_OK cmd_age=0s
[ 388.967773] sr 5:0:0:0: [sr0] tag#0 CDB: ATA command pass through(12)/Blank a1 11 00 00 00 00 00 00 00 00 00 00
[ 388.967803] sr 5:0:0:0: [sr0] tag#0 Sense Key : Illegal Request [current]
[ 388.967803] sr 5:0:0:0: [sr0] tag#0 Add. Sense: Invalid field in cdb
[ 388.967803] sr 5:0:0:0: [sr0] tag#0 scsi host busy 1 failed 0
[ 388.967803] sr 5:0:0:0: Notifying upper driver of completion (result 8100002)
[ 388.967834] sr 5:0:0:0: [sr0] tag#0 0 sectors total, 0 bytes done.

For the EL-R12 standard optical drive, all operational commands
and usage scenarios were tested without adding the IGNORE_RESIDUE quirks,
and no issues were encountered. It can be reasonably concluded
that removing the IGNORE_RESIDUE quirks has no impact.

Signed-off-by: Chen Changcheng <chencha...@kylinos.cn>
---
drivers/usb/storage/unusual_uas.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
index 1477e31d7763..b695f5ba9a40 100644
--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -98,7 +98,7 @@ UNUSUAL_DEV(0x125f, 0xa94a, 0x0160, 0x0160,
US_FL_NO_ATA_1X),

/* Reported-by: Benjamin Tissoires <benjamin....@redhat.com> */
-UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x9999,
+UNUSUAL_DEV(0x13fd, 0x3940, 0x0309, 0x0309,
"Initio Corporation",
"INIC-3069",
USB_SC_DEVICE, USB_PR_DEVICE, NULL,

base-commit: e9a6fb0bcdd7609be6969112f3fbfcce3b1d4a7c
--
2.25.1

Alan Stern

unread,
Nov 21, 2025, 3:41:02 PMNov 21
to Chen Changcheng, Alan Swanson, benjamin....@redhat.com, gre...@linuxfoundation.org, linu...@vger.kernel.org, usb-s...@lists.one-eyed-alien.net, linux-...@vger.kernel.org
You know, to keep the changes to a minimum I think the bcdDevice range
should be 0x0000 - 0x0309. We can't be sure which models need the
NO_ATA_1X quirk, since there doesn't seem to be any record in the
mailing list archives of the discussion leading up to the original
unusual_uas.h entry.

Alan Stern

Chen Changcheng

unread,
Nov 24, 2025, 8:44:34 PMNov 24
to st...@rowland.harvard.edu, benjamin....@redhat.com, gre...@linuxfoundation.org, linu...@vger.kernel.org, usb-s...@lists.one-eyed-alien.net, linux-...@vger.kernel.org, Chen Changcheng
index 1477e31d7763..939a98c2d3f7 100644
--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -98,7 +98,7 @@ UNUSUAL_DEV(0x125f, 0xa94a, 0x0160, 0x0160,
US_FL_NO_ATA_1X),

/* Reported-by: Benjamin Tissoires <benjamin....@redhat.com> */
-UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x9999,
+UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x0309,

Alan Stern

unread,
Nov 24, 2025, 10:42:43 PMNov 24
to Chen Changcheng, benjamin....@redhat.com, gre...@linuxfoundation.org, linu...@vger.kernel.org, usb-s...@lists.one-eyed-alien.net, linux-...@vger.kernel.org
Isn't this actually v4?
Where's the changelog with respect to the previous version?

Alan Stern

Chen Changcheng

unread,
Nov 25, 2025, 12:32:13 AMNov 25
to st...@rowland.harvard.edu, benjamin....@redhat.com, gre...@linuxfoundation.org, linu...@vger.kernel.org, usb-s...@lists.one-eyed-alien.net, linux-...@vger.kernel.org, Chen Changcheng

Greg KH

unread,
Nov 26, 2025, 7:00:16 AMNov 26
to Chen Changcheng, st...@rowland.harvard.edu, benjamin....@redhat.com, linu...@vger.kernel.org, usb-s...@lists.one-eyed-alien.net, linux-...@vger.kernel.org
Hi,

This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him
a patch that has triggered this response. He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created. Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- This looks like a new version of a previously submitted patch, but you
did not list below the --- line any changes from the previous version.
Please read the section entitled "The canonical patch format" in the
kernel file, Documentation/process/submitting-patches.rst for what
needs to be done here to properly describe this.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot

Chen Changcheng

unread,
Dec 3, 2025, 2:16:58 AMDec 3
to st...@rowland.harvard.edu, benjamin....@redhat.com, gre...@linuxfoundation.org, linu...@vger.kernel.org, usb-s...@lists.one-eyed-alien.net, linux-...@vger.kernel.org, Chen Changcheng
diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
index 1477e31d7763..939a98c2d3f7 100644
--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -98,7 +98,7 @@ UNUSUAL_DEV(0x125f, 0xa94a, 0x0160, 0x0160,
US_FL_NO_ATA_1X),

/* Reported-by: Benjamin Tissoires <benjamin....@redhat.com> */
-UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x9999,
+UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x0309,
"Initio Corporation",
"INIC-3069",
USB_SC_DEVICE, USB_PR_DEVICE, NULL,

base-commit: 7d0a66e4bb9081d75c82ec4957c50034cb0ea449
--
2.25.1

Sasha Levin

unread,
Dec 10, 2025, 1:35:19 AM (11 days ago) Dec 10
to pat...@lists.linux.dev, sta...@vger.kernel.org, Chen Changcheng, Greg Kroah-Hartman, Sasha Levin, st...@rowland.harvard.edu, linu...@vger.kernel.org, usb-s...@lists.one-eyed-alien.net
From: Chen Changcheng <chencha...@kylinos.cn>

[ Upstream commit 955a48a5353f4fe009704a9a4272a3adf627cd35 ]
Link: https://patch.msgid.link/20251121064020.293...@kylinos.cn
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---

LLM Generated explanations, may be completely bogus:

## Summary

**What the commit does:**
This commit fixes a device conflict where the EL-R12 optical drive (HL-
DT-ST DVD+-RW GT80N) with firmware revision 3.10 incorrectly receives
USB quirks intended for the INIC-3069 controller because they share the
same VID:PID (0x13fd:0x3940). The fix narrows the firmware revision
range from "all revisions" (0x0000-0x9999) to only revision 3.09
(0x0309-0x0309).

**History context:**
- Original quirk added in 2015 (commit bda13e35d584d) - was marked `Cc:
sta...@vger.kernel.org # 3.16`
- IGNORE_RESIDUE added in 2017 (commit 89f23d51defcb) - also marked for
stable
- The quirk entry has existed in stable trees for years

## Meets Stable Criteria Assessment

| Criterion | Assessment |
|-----------|------------|
| Obviously correct | ✅ Yes - simple revision range narrowing |
| Fixes real bug | ✅ Yes - disc erase operations fail completely |
| Small and contained | ✅ Yes - 1 line change |
| No new features | ✅ Yes - just fixes quirk scope |
| Important issue | ✅ Yes - device operations completely fail |

## Risk vs Benefit

**Benefits:**
- Fixes real functional failure (disc erase operations)
- Users with EL-R12 optical drives can use them properly
- Minimal change, low regression risk

**Risks:**
- Could theoretically affect INIC-3069 devices with firmware versions
other than 3.09 if they exist and need these quirks
- However, the original report was from a specific device/tester, and no
evidence suggests other firmware versions need the quirks

**Mitigating factors:**
- The quirk was originally based on a single reporter's device (Benjamin
Tissoires)
- If multiple firmware versions needed quirks, we'd likely have seen
additional reports over the ~10 years since the original quirk was
added
- The commit author thoroughly tested the EL-R12 without the quirks

## Concerns

1. **No explicit Cc: stable tag** - The maintainer didn't explicitly
request stable backport
2. **No Fixes: tag** - No specific commit is pointed to as introducing
the bug
3. **Revision specificity** - We don't have absolute confirmation that
0x0309 was the original reporter's exact firmware revision

## Conclusion

This is a standard USB quirk adjustment that fixes a real user-facing
bug (optical drive operations failing). USB device quirks are routinely
backported to stable. The change is minimal (single line), surgical, and
addresses documented hardware compatibility issues. The risk of
regression is low since the original quirk was based on a single
reporter's device, and narrowing the scope shouldn't affect other users.

While the lack of a Cc: stable tag is notable, USB quirk fixes of this
nature are commonly backported because they enable proper hardware
operation. The fix allows the EL-R12 optical drive to work correctly
without impacting the original INIC-3069 devices that need the quirks.

**YES**

drivers/usb/storage/unusual_uas.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
index 1477e31d77632..b695f5ba9a409 100644
--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -98,7 +98,7 @@ UNUSUAL_DEV(0x125f, 0xa94a, 0x0160, 0x0160,
US_FL_NO_ATA_1X),

/* Reported-by: Benjamin Tissoires <benjamin....@redhat.com> */
-UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x9999,
+UNUSUAL_DEV(0x13fd, 0x3940, 0x0309, 0x0309,
"Initio Corporation",
"INIC-3069",
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
--
2.51.0

Greg KH

unread,
Dec 17, 2025, 8:50:06 AM (4 days ago) Dec 17
to Chen Changcheng, st...@rowland.harvard.edu, benjamin....@redhat.com, linu...@vger.kernel.org, usb-s...@lists.one-eyed-alien.net, linux-...@vger.kernel.org
This does not apply to 6.19-rc1 at all :(

Please rebase and resend it.

thanks,

greg k-h
Reply all
Reply to author
Forward
0 new messages