NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/58644: areca enumeration issues



>Number:         58644
>Category:       kern
>Synopsis:       arcmsr does not enumerate disks properly with later firmware
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Aug 26 02:35:00 +0000 2024
>Originator:     dogcow%babymeat.com@localhost
>Release:        NetBSD 10.0_STABLE
>Organization:

>Environment:
System: NetBSD chungus.babymeat.com 10.0_STABLE NetBSD 10.0_STABLE (GENERIC) #0: Sat Aug 24 01:34:05 CDT 2024 dogcow%chungus.babymeat.com@localhost:/crap/obj/10obj/src/nb10src/sys/arch/amd64/compile/GENERIC amd64
Architecture: x86_64
Machine: amd64
>Description:
On later versions of the Areca firmware - 1.49 and later, I'd guess - NetBSD
does not properly enumerate the available disks under many conditions.

>How-To-Repeat:
Boot NetBSD with at least three disks in the array, preferably with one >2Tb

>Fix:
OpenBSD notes in their arc.c, -r1.77:
    Increase the size of the diskinfo struct, which has grown
    4 bytes in the new firmware.

    To allow this to work on older firmwares add a "short read allowed"
    flag to arc_msgbuf(), which will allow short reads by getting
    the read length from the header of the response the firmware sends.

    Only set the flag on the arc_msgbuf() call that deals with the diskinfo
    struct for now.
(note that it's struct arc_fw_diskinfo in NetBSD)

NetBSD's arcmsr.c has diverged a fair bit from the OpenBSD import (their
-r1.68) so their patch can't just be dropped in as-is.


>Unformatted:
 
 


Home | Main Index | Thread Index | Old Index