diff options
| author | mlelstv <mlelstv@NetBSD.org> | 2014-10-11 12:01:27 +0000 |
|---|---|---|
| committer | mlelstv <mlelstv@NetBSD.org> | 2014-10-11 12:01:27 +0000 |
| commit | b8e5193c636792bead7ede7576e1a33e6d1658af (patch) | |
| tree | 35481b8c0386445bb8a7262578f74ab2fb334cef /sys/dev/raidframe | |
| parent | 849218d5d199213f231bcbe6284e7d818228b011 (diff) | |
clamp total number of sectors to UINT32_MAX instead of providing the
lower 32bit of the 64bit number.
Diffstat (limited to 'sys/dev/raidframe')
| -rw-r--r-- | sys/dev/raidframe/rf_netbsdkintf.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/dev/raidframe/rf_netbsdkintf.c b/sys/dev/raidframe/rf_netbsdkintf.c index 965c3d9469a..12a6c8b3285 100644 --- a/sys/dev/raidframe/rf_netbsdkintf.c +++ b/sys/dev/raidframe/rf_netbsdkintf.c @@ -1,4 +1,4 @@ -/* $NetBSD: rf_netbsdkintf.c,v 1.312 2014/07/25 08:10:38 dholland Exp $ */ +/* $NetBSD: rf_netbsdkintf.c,v 1.313 2014/10/11 12:01:27 mlelstv Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2008-2011 The NetBSD Foundation, Inc. @@ -101,7 +101,7 @@ ***********************************************************/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.312 2014/07/25 08:10:38 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.313 2014/10/11 12:01:27 mlelstv Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -2365,7 +2365,10 @@ raidgetdefaultlabel(RF_Raid_t *raidPtr, struct raid_softc *rs, memset(lp, 0, sizeof(*lp)); /* fabricate a label... */ - lp->d_secperunit = raidPtr->totalSectors; + if (raidPtr->totalSectors > UINT32_MAX) + lp->d_secperunit = UINT32_MAX; + else + lp->d_secperunit = raidPtr->totalSectors; lp->d_secsize = raidPtr->bytesPerSector; lp->d_nsectors = raidPtr->Layout.dataSectorsPerStripe; lp->d_ntracks = 4 * raidPtr->numCol; @@ -2381,7 +2384,7 @@ raidgetdefaultlabel(RF_Raid_t *raidPtr, struct raid_softc *rs, lp->d_flags = 0; lp->d_partitions[RAW_PART].p_offset = 0; - lp->d_partitions[RAW_PART].p_size = raidPtr->totalSectors; + lp->d_partitions[RAW_PART].p_size = lp->d_secperunit; lp->d_partitions[RAW_PART].p_fstype = FS_UNUSED; lp->d_npartitions = RAW_PART + 1; |
