summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2002-02-18 11:52:51 +0000
committersos <sos@FreeBSD.org>2002-02-18 11:52:51 +0000
commitc9b72549b1759f4430f7af99b37a1028495def33 (patch)
tree2cf43b75efbc21a6d7a7bb1c7d62f112cfcc1210 /sys
parentcf75bd0d98d91debae974f213700ad77d21e267b (diff)
downloadFreeBSD-src-c9b72549b1759f4430f7af99b37a1028495def33.zip
FreeBSD-src-c9b72549b1759f4430f7af99b37a1028495def33.tar.gz
Fix the problem that some (in my book broken) disks reports
to be able to use 48bit addressing mode, but says the 48bit size of the disk is 0, which according to spec means it can address zero sectors in 48bit mode, why then say it supports 48bit mode at all..
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ata/ata-disk.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c
index ea3ba46..a0f760f 100644
--- a/sys/dev/ata/ata-disk.c
+++ b/sys/dev/ata/ata-disk.c
@@ -137,7 +137,8 @@ ad_attach(struct ata_device *atadev)
adp->total_secs = atadev->param->lba_size;
/* use the 48bit LBA size if valid */
- if (atadev->param->support.address48)
+ if (atadev->param->support.address48 &&
+ atadev->param->lba_size48 > 268435455)
adp->total_secs = atadev->param->lba_size48;
/* use multiple sectors/interrupt if device supports it */
OpenPOWER on IntegriCloud