svn commit: r212295 - in projects/sv/sys: amd64/amd64 arm/arm
i386/i386 ia64/ia64 sparc64/sparc64 sun4v/sun4v
Attilio Rao
attilio at FreeBSD.org
Tue Sep 7 15:23:01 UTC 2010
Author: attilio
Date: Tue Sep 7 15:23:00 2010
New Revision: 212295
URL: http://svn.freebsd.org/changeset/base/212295
Log:
If the upper bound is 0 the dumping mechanism will not use disks
thus set dumplo to 0.
Side note: in future, dumpsys() may be further layered in order to be
fully disk agnostic and splitted in several functions that can be used
by other code (like an eventual netdumpsys()) for building easilly
their own dumping function without taking disks into account at all.
This is left as further refinement after netdump enters the tree,
likely.
Modified:
projects/sv/sys/amd64/amd64/dump_machdep.c
projects/sv/sys/amd64/amd64/minidump_machdep.c
projects/sv/sys/arm/arm/dump_machdep.c
projects/sv/sys/arm/arm/minidump_machdep.c
projects/sv/sys/i386/i386/dump_machdep.c
projects/sv/sys/i386/i386/minidump_machdep.c
projects/sv/sys/ia64/ia64/dump_machdep.c
projects/sv/sys/sparc64/sparc64/dump_machdep.c
projects/sv/sys/sun4v/sun4v/dump_machdep.c
Modified: projects/sv/sys/amd64/amd64/dump_machdep.c
==============================================================================
--- projects/sv/sys/amd64/amd64/dump_machdep.c Tue Sep 7 14:43:42 2010 (r212294)
+++ projects/sv/sys/amd64/amd64/dump_machdep.c Tue Sep 7 15:23:00 2010 (r212295)
@@ -296,13 +296,20 @@ dumpsys(struct dumperinfo *di)
dumpsize += fileofs;
hdrgap = fileofs - DEV_ALIGN(hdrsz);
- /* Determine dump offset on device. */
- if (di->mediasize < SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
- error = ENOSPC;
- goto fail;
+ /* If the upper bound is 0, dumper likely will not use disks. */
+ if ((di->mediaoffset + di->mediasize) == 0)
+ dumplo = 0;
+ else {
+
+ /* Determine dump offset on device. */
+ if (di->mediasize <
+ SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
+ error = ENOSPC;
+ goto fail;
+ }
+ dumplo = di->mediaoffset + di->mediasize - dumpsize;
+ dumplo -= sizeof(kdh) * 2;
}
- dumplo = di->mediaoffset + di->mediasize - dumpsize;
- dumplo -= sizeof(kdh) * 2;
mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_AMD64_VERSION, dumpsize, di->blocksize);
Modified: projects/sv/sys/amd64/amd64/minidump_machdep.c
==============================================================================
--- projects/sv/sys/amd64/amd64/minidump_machdep.c Tue Sep 7 14:43:42 2010 (r212294)
+++ projects/sv/sys/amd64/amd64/minidump_machdep.c Tue Sep 7 15:23:00 2010 (r212295)
@@ -242,13 +242,20 @@ minidumpsys(struct dumperinfo *di)
}
dumpsize += PAGE_SIZE;
- /* Determine dump offset on device. */
- if (di->mediasize < SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
- error = ENOSPC;
- goto fail;
+ /* If the upper bound is 0, dumper likely will not use disks. */
+ if ((di->mediaoffset + di->mediasize) == 0)
+ dumplo = 0;
+ else {
+
+ /* Determine dump offset on device. */
+ if (di->mediasize <
+ SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
+ error = ENOSPC;
+ goto fail;
+ }
+ dumplo = di->mediaoffset + di->mediasize - dumpsize;
+ dumplo -= sizeof(kdh) * 2;
}
- dumplo = di->mediaoffset + di->mediasize - dumpsize;
- dumplo -= sizeof(kdh) * 2;
progress = dumpsize;
/* Initialize mdhdr */
Modified: projects/sv/sys/arm/arm/dump_machdep.c
==============================================================================
--- projects/sv/sys/arm/arm/dump_machdep.c Tue Sep 7 14:43:42 2010 (r212294)
+++ projects/sv/sys/arm/arm/dump_machdep.c Tue Sep 7 15:23:00 2010 (r212295)
@@ -303,13 +303,20 @@ dumpsys(struct dumperinfo *di)
dumpsize += fileofs;
hdrgap = fileofs - DEV_ALIGN(hdrsz);
- /* Determine dump offset on device. */
- if (di->mediasize < SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
- error = ENOSPC;
- goto fail;
+ /* If the upper bound is 0, dumper likely will not use disks. */
+ if ((di->mediaoffset + di->mediasize) == 0)
+ dumplo = 0;
+ else {
+
+ /* Determine dump offset on device. */
+ if (di->mediasize <
+ SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
+ error = ENOSPC;
+ goto fail;
+ }
+ dumplo = di->mediaoffset + di->mediasize - dumpsize;
+ dumplo -= sizeof(kdh) * 2;
}
- dumplo = di->mediaoffset + di->mediasize - dumpsize;
- dumplo -= sizeof(kdh) * 2;
mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_ARM_VERSION, dumpsize, di->blocksize);
Modified: projects/sv/sys/arm/arm/minidump_machdep.c
==============================================================================
--- projects/sv/sys/arm/arm/minidump_machdep.c Tue Sep 7 14:43:42 2010 (r212294)
+++ projects/sv/sys/arm/arm/minidump_machdep.c Tue Sep 7 15:23:00 2010 (r212295)
@@ -276,14 +276,21 @@ minidumpsys(struct dumperinfo *di)
dumpsize += PAGE_SIZE;
- /* Determine dump offset on device. */
- if (di->mediasize < SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
- error = ENOSPC;
- goto fail;
- }
+ /* If the upper bound is 0, dumper likely will not use disks. */
+ if ((di->mediaoffset + di->mediasize) == 0)
+ dumplo = 0;
+ else {
+
+ /* Determine dump offset on device. */
+ if (di->mediasize <
+ SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
+ error = ENOSPC;
+ goto fail;
+ }
- dumplo = di->mediaoffset + di->mediasize - dumpsize;
- dumplo -= sizeof(kdh) * 2;
+ dumplo = di->mediaoffset + di->mediasize - dumpsize;
+ dumplo -= sizeof(kdh) * 2;
+ }
progress = dumpsize;
/* Initialize mdhdr */
Modified: projects/sv/sys/i386/i386/dump_machdep.c
==============================================================================
--- projects/sv/sys/i386/i386/dump_machdep.c Tue Sep 7 14:43:42 2010 (r212294)
+++ projects/sv/sys/i386/i386/dump_machdep.c Tue Sep 7 15:23:00 2010 (r212295)
@@ -296,13 +296,20 @@ dumpsys(struct dumperinfo *di)
dumpsize += fileofs;
hdrgap = fileofs - DEV_ALIGN(hdrsz);
- /* Determine dump offset on device. */
- if (di->mediasize < SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
- error = ENOSPC;
- goto fail;
+ /* If the upper bound is 0, dumper likely will not use disks. */
+ if ((di->mediaoffset + di->mediasize) == 0)
+ dumplo = 0;
+ else {
+
+ /* Determine dump offset on device. */
+ if (di->mediasize <
+ SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
+ error = ENOSPC;
+ goto fail;
+ }
+ dumplo = di->mediaoffset + di->mediasize - dumpsize;
+ dumplo -= sizeof(kdh) * 2;
}
- dumplo = di->mediaoffset + di->mediasize - dumpsize;
- dumplo -= sizeof(kdh) * 2;
mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_I386_VERSION, dumpsize, di->blocksize);
Modified: projects/sv/sys/i386/i386/minidump_machdep.c
==============================================================================
--- projects/sv/sys/i386/i386/minidump_machdep.c Tue Sep 7 14:43:42 2010 (r212294)
+++ projects/sv/sys/i386/i386/minidump_machdep.c Tue Sep 7 15:23:00 2010 (r212295)
@@ -242,13 +242,19 @@ minidumpsys(struct dumperinfo *di)
}
dumpsize += PAGE_SIZE;
- /* Determine dump offset on device. */
- if (di->mediasize < SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
- error = ENOSPC;
- goto fail;
+ if ((di->mediaoffset + di->mediasize) == 0)
+ dumplo = 0;
+ else {
+
+ /* Determine dump offset on device. */
+ if (di->mediasize <
+ SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
+ error = ENOSPC;
+ goto fail;
+ }
+ dumplo = di->mediaoffset + di->mediasize - dumpsize;
+ dumplo -= sizeof(kdh) * 2;
}
- dumplo = di->mediaoffset + di->mediasize - dumpsize;
- dumplo -= sizeof(kdh) * 2;
progress = dumpsize;
/* Initialize mdhdr */
Modified: projects/sv/sys/ia64/ia64/dump_machdep.c
==============================================================================
--- projects/sv/sys/ia64/ia64/dump_machdep.c Tue Sep 7 14:43:42 2010 (r212294)
+++ projects/sv/sys/ia64/ia64/dump_machdep.c Tue Sep 7 15:23:00 2010 (r212295)
@@ -231,13 +231,20 @@ dumpsys(struct dumperinfo *di)
dumpsize += fileofs;
hdrgap = fileofs - DEV_ALIGN(hdrsz);
- /* Determine dump offset on device. */
- if (di->mediasize < SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
- error = ENOSPC;
- goto fail;
+ /* If the upper bound is 0, dumper likely will not use disks. */
+ if ((di->mediaoffset + di->mediasize) == 0)
+ dumplo = 0;
+ else {
+
+ /* Determine dump offset on device. */
+ if (di->mediasize <
+ SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
+ error = ENOSPC;
+ goto fail;
+ }
+ dumplo = di->mediaoffset + di->mediasize - dumpsize;
+ dumplo -= sizeof(kdh) * 2;
}
- dumplo = di->mediaoffset + di->mediasize - dumpsize;
- dumplo -= sizeof(kdh) * 2;
mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_IA64_VERSION, dumpsize, di->blocksize);
Modified: projects/sv/sys/sparc64/sparc64/dump_machdep.c
==============================================================================
--- projects/sv/sys/sparc64/sparc64/dump_machdep.c Tue Sep 7 14:43:42 2010 (r212294)
+++ projects/sv/sys/sparc64/sparc64/dump_machdep.c Tue Sep 7 15:23:00 2010 (r212295)
@@ -157,17 +157,22 @@ dumpsys(struct dumperinfo *di)
DEV_BSIZE);
size += hdrsize;
- totsize = size + 2 * sizeof(kdh);
- if (totsize > di->mediasize) {
- printf("Insufficient space on device (need %ld, have %ld), "
- "refusing to dump.\n", (long)totsize,
- (long)di->mediasize);
- error = ENOSPC;
- goto fail;
- }
+ /* If the upper bound is 0, dumper likely will not use disks. */
+ if ((di->mediaoffset + di->mediasize) == 0)
+ dumplo = 0;
+ else {
+ totsize = size + 2 * sizeof(kdh);
+ if (totsize > di->mediasize) {
+ printf("Insufficient space on device (need %ld, "
+ "have %ld), refusing to dump.\n", (long)totsize,
+ (long)di->mediasize);
+ error = ENOSPC;
+ goto fail;
+ }
- /* Determine dump offset on device. */
- dumplo = di->mediaoffset + di->mediasize - totsize;
+ /* Determine dump offset on device. */
+ dumplo = di->mediaoffset + di->mediasize - totsize;
+ }
mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_SPARC64_VERSION, size, di->blocksize);
Modified: projects/sv/sys/sun4v/sun4v/dump_machdep.c
==============================================================================
--- projects/sv/sys/sun4v/sun4v/dump_machdep.c Tue Sep 7 14:43:42 2010 (r212294)
+++ projects/sv/sys/sun4v/sun4v/dump_machdep.c Tue Sep 7 15:23:00 2010 (r212295)
@@ -160,17 +160,22 @@ dumpsys(struct dumperinfo *di)
DEV_BSIZE);
size += hdrsize;
- totsize = size + 2 * sizeof(kdh);
- if (totsize > di->mediasize) {
- printf("Insufficient space on device (need %ld, have %ld), "
- "refusing to dump.\n", (long)totsize,
- (long)di->mediasize);
- error = ENOSPC;
- goto fail;
- }
+ /* If the upper bound is 0, dumper likely will not use disks. */
+ if ((di->mediaoffset + di->mediasize) == 0)
+ dumplo = 0;
+ else {
+ totsize = size + 2 * sizeof(kdh);
+ if (totsize > di->mediasize) {
+ printf("Insufficient space on device (need %ld, "
+ "have %ld), refusing to dump.\n", (long)totsize,
+ (long)di->mediasize);
+ error = ENOSPC;
+ goto fail;
+ }
- /* Determine dump offset on device. */
- dumplo = di->mediaoffset + di->mediasize - totsize;
+ /* Determine dump offset on device. */
+ dumplo = di->mediaoffset + di->mediasize - totsize;
+ }
mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_SPARC64_VERSION, size, di->blocksize);
More information about the svn-src-projects
mailing list