Skip to content

[BUG] - Incompatibility with mpt3sas #196

@Forza-tng

Description

@Forza-tng

Describe the bug
I cannot update firmware on SATA Exos X18 drives on mpt3sas - Broadcom HBA 9500-8i (SAS3808)

To Reproduce
Steps to reproduce the behavior:

  1. Attach Exos SATA drives

  2. use openSeaChest to update firmware

  3. update aborts after 30 seconds

  4. See error in dmesg

Expected behavior
Firmware should have been updated, but the download fails.

Verbose Output

[2277096.910173] [ T1514] sd 0:0:2:0: task abort: SUCCESS scmd(0x000000004b102cf7)
[2277166.049222] [ T1514] sd 0:0:2:0: attempting task abort!scmd(0x0000000043239087), outstanding for 30132 ms & timeout 30000 ms
[2277166.049227] [ T1514] sd 0:0:2:0: [sdc] tag#3761 CDB: ATA command pass through(12)/Blank a1 16 03 03 00 02 00 00 00 92 00 00
[2277166.049229] [ T1514] scsi target0:0:2: handle(0x0028), sas_address(0x5003048020db4542), phy(2)
[2277166.049231] [ T1514] scsi target0:0:2: enclosure logical id(0x5003048020db457f), slot(2)
[2277166.049233] [ T1514] scsi target0:0:2: enclosure level(0x0000), connector name( C0  )
[2277166.409679] [ T1514] sd 0:0:2:0: task abort: SUCCESS scmd(0x0000000043239087)

Desktop (please complete the following information):

  • OS: Alpine Linux 3.22
  • Kernel 6.12.25
  • openSeaChest-v25.05.1-linux-i686-portable

verboseinfo.zip

Version Info for openSeaChest_Firmware:
        Utility Version: 4.3.0
        opensea-common Version: 6.0.2
        opensea-transport Version: 10.0.0
        opensea-operations Version: 9.1.0
        Build Date: Jun  5 2025
        Compiled Architecture: X86
        Detected Endianness: Little Endian
        Compiler Used: GCC
        Compiler Version: 11.2.1
        Operating System Type: Linux
        Operating System Version: 6.12.25-0
        Operating System Name: Alpine Linux v3.21

Additional context
I have /sys/block/sdc/device/timeout and eh_timeout at 300 seconds, but it seems that mpt3sas driver uses a hard coded 30 second value, so it aborts the command before the firmware is fully updated.

In mpt3sas_scsih.cfunction scsih_abort():
https://github.com/torvalds/linux/blob/19272b37aa4f83ca52bdf9c16d5d81bdd1354494/drivers/scsi/mpt3sas/mpt3sas_scsih.c#L3292

	u8 timeout = 30;
	struct _pcie_device *pcie_device = NULL;
	sdev_printk(KERN_INFO, scmd->device, "attempting task abort!"
	    "scmd(0x%p), outstanding for %u ms & timeout %u ms\n",
	    scmd, jiffies_to_msecs(jiffies - scmd->jiffies_at_alloc),
	    (scsi_cmd_to_rq(scmd)->timeout / HZ) * 1000);
	_scsih_tm_display_info(ioc, scmd);

Metadata

Metadata

Assignees

Labels

Hardware IssueIssue is specific to a piece of hardware such as an HBAbug

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions