Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Aug 2015 23:31:45 GMT
From:      def@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r289498 - soc2013/def/crashdump-head/sys/kern
Message-ID:  <201508092331.t79NVjDc007839@socsvn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: def
Date: Sun Aug  9 23:31:45 2015
New Revision: 289498
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=289498

Log:
  Add EKCD support for physical dumps.

Modified:
  soc2013/def/crashdump-head/sys/kern/kern_dump.c

Modified: soc2013/def/crashdump-head/sys/kern/kern_dump.c
==============================================================================
--- soc2013/def/crashdump-head/sys/kern/kern_dump.c	Sun Aug  9 23:25:41 2015	(r289497)
+++ soc2013/def/crashdump-head/sys/kern/kern_dump.c	Sun Aug  9 23:31:45 2015	(r289498)
@@ -322,12 +322,14 @@
 	hdrgap = fileofs - DEV_ALIGN(hdrsz);
 
 	/* Determine dump offset on device. */
-	if (di->mediasize < SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
+	if (di->mediasize < SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2 +
+	    kerneldumpkey_size(di->kdk)) {
 		error = ENOSPC;
 		goto fail;
 	}
 	dumplo = di->mediaoffset + di->mediasize - dumpsize;
 	dumplo -= sizeof(kdh) * 2;
+	dumplo -= kerneldumpkey_size(di->kdk);
 
 	mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_ARCH_VERSION, dumpsize,
 	    kerneldumpkey_size(di->kdk), di->blocksize);
@@ -336,11 +338,17 @@
 	    ehdr.e_phnum - DUMPSYS_NUM_AUX_HDRS);
 
 	/* Dump leader */
-	error = dump_write(di, &kdh, 0, dumplo, sizeof(kdh));
+	error = dump_write_header(di, &kdh, 0, dumplo);
 	if (error)
 		goto fail;
 	dumplo += sizeof(kdh);
 
+	/* Dump key */
+	error = dump_write_key(di, di->kdk, 0, dumplo);
+	if (error)
+		goto fail;
+	dumplo += kerneldumpkey_size(di->kdk);
+
 	/* Dump ELF header */
 	error = dumpsys_buf_write(di, (char*)&ehdr, sizeof(ehdr));
 	if (error)
@@ -370,7 +378,7 @@
 		goto fail;
 
 	/* Dump trailer */
-	error = dump_write(di, &kdh, 0, dumplo, sizeof(kdh));
+	error = dump_write_header(di, &kdh, 0, dumplo);
 	if (error)
 		goto fail;
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508092331.t79NVjDc007839>