svn commit: r326624 - head/sys/cam/ata
Ravi Pokala
rpokala at mac.com
Wed Dec 6 21:44:56 UTC 2017
Oh good, I'll be able to sleep tonight after all. :-)
-Ravi
-----Original Message-----
From: <owner-src-committers at freebsd.org> on behalf of Alan Somers <asomers at freebsd.org>
Date: 2017-12-06, Wednesday at 10:15
To: Ravi Pokala <rpokala at mac.com>
Cc: "src-committers at freebsd.org" <src-committers at freebsd.org>, "svn-src-all at freebsd.org" <svn-src-all at freebsd.org>, "svn-src-head at freebsd.org" <svn-src-head at freebsd.org>
Subject: Re: svn commit: r326624 - head/sys/cam/ata
Nope. The ATA spec prohibited them, and nobody ever manufactured any. But you might be able to fake one with CTL or QEMU or something similar.
On Wed, Dec 6, 2017 at 10:11 AM, Ravi Pokala <rpokala at mac.com> wrote:
> ... disks of >=1TiB that still use CHS addressing.
Out of morbid curiosity, are there any such monstrosities? <barf>
-Ravi (rpokala@)
-----Original Message-----
From: <owner-src-committers at freebsd.org> on behalf of Alan Somers <asomers at FreeBSD.org>
Date: 2017-12-06, Wednesday at 09:01
To: <src-committers at freebsd.org>, <svn-src-all at freebsd.org>, <svn-src-head at freebsd.org>
Subject: svn commit: r326624 - head/sys/cam/ata
Author: asomers
Date: Wed Dec 6 17:01:25 2017
New Revision: 326624
URL: https://svnweb.freebsd.org/changeset/base/326624
Log:
cam: fix sign-extension error in adagetparams
adagetparams contains a sign-extension error that will cause the sector
count to be incorrectly calculated for ATA disks of >=1TiB that still use
CHS addressing. Disks using LBA48 addressing are unaffected.
Reported by: Coverity
CID: 1007296
Reviewed by: ken
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D13198
Modified:
head/sys/cam/ata/ata_da.c
Modified: head/sys/cam/ata/ata_da.c
==============================================================================
--- head/sys/cam/ata/ata_da.c Wed Dec 6 14:53:53 2017 (r326623)
+++ head/sys/cam/ata/ata_da.c Wed Dec 6 17:01:25 2017 (r326624)
@@ -3377,7 +3377,8 @@ adagetparams(struct cam_periph *periph, struct ccb_get
dp->heads = cgd->ident_data.heads;
dp->secs_per_track = cgd->ident_data.sectors;
dp->cylinders = cgd->ident_data.cylinders;
- dp->sectors = cgd->ident_data.cylinders * dp->heads * dp->secs_per_track;
+ dp->sectors = cgd->ident_data.cylinders *
+ (u_int32_t)(dp->heads * dp->secs_per_track);
}
lbasize = (u_int32_t)cgd->ident_data.lba_size_1 |
((u_int32_t)cgd->ident_data.lba_size_2 << 16);
More information about the svn-src-head
mailing list