Should have mentioned in commit message that reviewed by bad and riastradh. Sorry about that.
On Tue, Mar 11, 2025 at 6:51 PM Andrius Varanavicius <and...@netbsd.org> wrote: > > Module Name: src > Committed By: andvar > Date: Tue Mar 11 16:51:31 UTC 2025 > > Modified Files: > src/sys/dev/ata: ata_raid_via.c > > Log Message: > ataraid(4): obtain VIA V-RAID drive index from configuration blocks. > > The original logic resolved disk index based on the drive channel it was > attached to. However, VX800 and some other VIA controllers have two SATA ports > per channel, which causes unintended overrides when two disks share the same > channel. > > VIA V-RAID configuration blocks store the disk index as a value incrementing > by > 0x04 (0x00, 0x04, 0x08, 0x0C). Therefore, shift the value left by 2 obtains > the > disk number. > > Additionally, limit disk number to 4, which is the maximum supported by any > VIA RAID configuration. > > Fixes PR kern/59130. > > Tested on VX800/VT6421A/VT8251 RAID controllers. > > pull-ups needed for netbsd-9, netbsd-10. > > > To generate a diff of this commit: > cvs rdiff -u -r1.10 -r1.11 src/sys/dev/ata/ata_raid_via.c > > Please note that diffs are not public domain; they are subject to the > copyright notices on the relevant files. >