Module Name: src Committed By: mlelstv Date: Sat Oct 11 12:01:27 UTC 2014
Modified Files: src/sys/dev: ccd.c dksubr.c ld.c vnd.c src/sys/dev/raidframe: rf_netbsdkintf.c Log Message: clamp total number of sectors to UINT32_MAX instead of providing the lower 32bit of the 64bit number. To generate a diff of this commit: cvs rdiff -u -r1.152 -r1.153 src/sys/dev/ccd.c cvs rdiff -u -r1.51 -r1.52 src/sys/dev/dksubr.c cvs rdiff -u -r1.76 -r1.77 src/sys/dev/ld.c cvs rdiff -u -r1.232 -r1.233 src/sys/dev/vnd.c cvs rdiff -u -r1.312 -r1.313 src/sys/dev/raidframe/rf_netbsdkintf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/ccd.c diff -u src/sys/dev/ccd.c:1.152 src/sys/dev/ccd.c:1.153 --- src/sys/dev/ccd.c:1.152 Sat Aug 16 19:27:27 2014 +++ src/sys/dev/ccd.c Sat Oct 11 12:01:27 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ccd.c,v 1.152 2014/08/16 19:27:27 sborrill Exp $ */ +/* $NetBSD: ccd.c,v 1.153 2014/10/11 12:01:27 mlelstv Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 1999, 2007, 2009 The NetBSD Foundation, Inc. @@ -88,7 +88,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ccd.c,v 1.152 2014/08/16 19:27:27 sborrill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ccd.c,v 1.153 2014/10/11 12:01:27 mlelstv Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -1479,7 +1479,10 @@ ccdgetdefaultlabel(struct ccd_softc *cs, memset(lp, 0, sizeof(*lp)); - lp->d_secperunit = cs->sc_size; + if (cs->sc_size > UINT32_MAX) + lp->d_secperunit = UINT32_MAX; + else + lp->d_secperunit = cs->sc_size; lp->d_secsize = ccg->ccg_secsize; lp->d_nsectors = ccg->ccg_nsectors; lp->d_ntracks = ccg->ccg_ntracks; @@ -1494,7 +1497,7 @@ ccdgetdefaultlabel(struct ccd_softc *cs, lp->d_flags = 0; lp->d_partitions[RAW_PART].p_offset = 0; - lp->d_partitions[RAW_PART].p_size = cs->sc_size; + 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; Index: src/sys/dev/dksubr.c diff -u src/sys/dev/dksubr.c:1.51 src/sys/dev/dksubr.c:1.52 --- src/sys/dev/dksubr.c:1.51 Sat Jun 14 07:39:00 2014 +++ src/sys/dev/dksubr.c Sat Oct 11 12:01:27 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: dksubr.c,v 1.51 2014/06/14 07:39:00 hannken Exp $ */ +/* $NetBSD: dksubr.c,v 1.52 2014/10/11 12:01:27 mlelstv Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 1999, 2002, 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dksubr.c,v 1.51 2014/06/14 07:39:00 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dksubr.c,v 1.52 2014/10/11 12:01:27 mlelstv Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -530,7 +530,10 @@ dk_getdefaultlabel(struct dk_intf *di, s memset(lp, 0, sizeof(*lp)); - lp->d_secperunit = dg->dg_secperunit; + if (dg->dg_secperunit > UINT32_MAX) + lp->d_secperunit = UINT32_MAX; + else + lp->d_secperunit = dg->dg_secperunit; lp->d_secsize = dg->dg_secsize; lp->d_nsectors = dg->dg_nsectors; lp->d_ntracks = dg->dg_ntracks; @@ -545,7 +548,7 @@ dk_getdefaultlabel(struct dk_intf *di, s lp->d_flags = 0; lp->d_partitions[RAW_PART].p_offset = 0; - lp->d_partitions[RAW_PART].p_size = dg->dg_secperunit; + 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; Index: src/sys/dev/ld.c diff -u src/sys/dev/ld.c:1.76 src/sys/dev/ld.c:1.77 --- src/sys/dev/ld.c:1.76 Fri Sep 5 05:27:23 2014 +++ src/sys/dev/ld.c Sat Oct 11 12:01:27 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ld.c,v 1.76 2014/09/05 05:27:23 matt Exp $ */ +/* $NetBSD: ld.c,v 1.77 2014/10/11 12:01:27 mlelstv Exp $ */ /*- * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ld.c,v 1.76 2014/09/05 05:27:23 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ld.c,v 1.77 2014/10/11 12:01:27 mlelstv Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -814,14 +814,16 @@ ldgetdefaultlabel(struct ld_softc *sc, s lp->d_type = DTYPE_LD; strlcpy(lp->d_typename, "unknown", sizeof(lp->d_typename)); strlcpy(lp->d_packname, "fictitious", sizeof(lp->d_packname)); - lp->d_secperunit = sc->sc_secperunit; + if (sc->sc_secperunit > UINT32_MAX) + lp->d_secperunit = UINT32_MAX; + else + lp->d_secperunit = sc->sc_secperunit; lp->d_rpm = 7200; lp->d_interleave = 1; lp->d_flags = 0; lp->d_partitions[RAW_PART].p_offset = 0; - lp->d_partitions[RAW_PART].p_size = - lp->d_secperunit * (lp->d_secsize / DEV_BSIZE); + 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; Index: src/sys/dev/vnd.c diff -u src/sys/dev/vnd.c:1.232 src/sys/dev/vnd.c:1.233 --- src/sys/dev/vnd.c:1.232 Fri Jul 25 08:10:35 2014 +++ src/sys/dev/vnd.c Sat Oct 11 12:01:27 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: vnd.c,v 1.232 2014/07/25 08:10:35 dholland Exp $ */ +/* $NetBSD: vnd.c,v 1.233 2014/10/11 12:01:27 mlelstv Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2008 The NetBSD Foundation, Inc. @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vnd.c,v 1.232 2014/07/25 08:10:35 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vnd.c,v 1.233 2014/10/11 12:01:27 mlelstv Exp $"); #if defined(_KERNEL_OPT) #include "opt_vnd.h" @@ -1789,7 +1789,10 @@ vndgetdefaultlabel(struct vnd_softc *sc, memset(lp, 0, sizeof(*lp)); - lp->d_secperunit = sc->sc_size / (vng->vng_secsize / DEV_BSIZE); + if (sc->sc_size > UINT32_MAX) + lp->d_secperunit = UINT32_MAX; + else + lp->d_secperunit = sc->sc_size; lp->d_secsize = vng->vng_secsize; lp->d_nsectors = vng->vng_nsectors; lp->d_ntracks = vng->vng_ntracks; Index: src/sys/dev/raidframe/rf_netbsdkintf.c diff -u src/sys/dev/raidframe/rf_netbsdkintf.c:1.312 src/sys/dev/raidframe/rf_netbsdkintf.c:1.313 --- src/sys/dev/raidframe/rf_netbsdkintf.c:1.312 Fri Jul 25 08:10:38 2014 +++ src/sys/dev/raidframe/rf_netbsdkintf.c Sat Oct 11 12:01:27 2014 @@ -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, 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, 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;