DF-1171 / fix.diff
diff --git a/sys/dev/disk/nata/ata-raid.c b/sys/dev/disk/nata/ata-raid.c --- a/sys/dev/disk/nata/ata-raid.c +++ b/sys/dev/disk/nata/ata-raid.c @@ -2228,6 +2228,11 @@ raid->generation = meta->generation; raid->interleave = map->stripe_sectors; raid->total_disks = map->total_disks; + if (raid->total_disks > MAX_DISKS) { + device_printf(parent, "Intel RAID total_disks %u exceeds MAX_DISKS " + "%d, clamping\n", raid->total_disks, MAX_DISKS); + raid->total_disks = MAX_DISKS; + } raid->total_sectors = map->total_sectors; raid->heads = 255; raid->sectors = 63; |