mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 14:24:11 +08:00
sata_mv: improve warnings about Highpoint RocketRAID 23xx cards
Improve the existing boot/load time warnings from sata_mv for Highpoint RocketRAID 23xx cards, based on new knowledge about where the BIOS likes to overwrite sectors with metadata. Harmless to us, but very useful for end users. Signed-off-by: Mark Lord <mlord@pobox.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
e41bd3e854
commit
4e5200334e
@ -2506,11 +2506,31 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx)
|
||||
if (pdev->vendor == PCI_VENDOR_ID_TTI &&
|
||||
(pdev->device == 0x2300 || pdev->device == 0x2310))
|
||||
{
|
||||
printk(KERN_WARNING "sata_mv: Highpoint RocketRAID BIOS"
|
||||
" will CORRUPT DATA on attached drives when"
|
||||
" configured as \"Legacy\". BEWARE!\n");
|
||||
printk(KERN_WARNING "sata_mv: Use BIOS \"JBOD\" volumes"
|
||||
" instead for safety.\n");
|
||||
/*
|
||||
* Highpoint RocketRAID PCIe 23xx series cards:
|
||||
*
|
||||
* Unconfigured drives are treated as "Legacy"
|
||||
* by the BIOS, and it overwrites sector 8 with
|
||||
* a "Lgcy" metadata block prior to Linux boot.
|
||||
*
|
||||
* Configured drives (RAID or JBOD) leave sector 8
|
||||
* alone, but instead overwrite a high numbered
|
||||
* sector for the RAID metadata. This sector can
|
||||
* be determined exactly, by truncating the physical
|
||||
* drive capacity to a nice even GB value.
|
||||
*
|
||||
* RAID metadata is at: (dev->n_sectors & ~0xfffff)
|
||||
*
|
||||
* Warn the user, lest they think we're just buggy.
|
||||
*/
|
||||
printk(KERN_WARNING DRV_NAME ": Highpoint RocketRAID"
|
||||
" BIOS CORRUPTS DATA on all attached drives,"
|
||||
" regardless of if/how they are configured."
|
||||
" BEWARE!\n");
|
||||
printk(KERN_WARNING DRV_NAME ": For data safety, do not"
|
||||
" use sectors 8-9 on \"Legacy\" drives,"
|
||||
" and avoid the final two gigabytes on"
|
||||
" all RocketRAID BIOS initialized drives.\n");
|
||||
}
|
||||
case chip_6042:
|
||||
hpriv->ops = &mv6xxx_ops;
|
||||
|
Loading…
Reference in New Issue
Block a user