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.