Page MenuHomeFreeBSD

D11647.id32195.diff
No OneTemporary

D11647.id32195.diff

Index: head/sys/kern/kern_shutdown.c
===================================================================
--- head/sys/kern/kern_shutdown.c
+++ head/sys/kern/kern_shutdown.c
@@ -1152,51 +1152,25 @@
}
static int
-dump_pad(struct dumperinfo *di, void *virtual, size_t length, void **buf,
- size_t *size)
+dump_write_header(struct dumperinfo *di, struct kerneldumpheader *kdh,
+ vm_offset_t physical, off_t offset)
{
+ void *buf;
+ size_t hdrsz;
- if (length > di->blocksize)
+ hdrsz = sizeof(*kdh);
+ if (hdrsz > di->blocksize)
return (ENOMEM);
- *size = di->blocksize;
- if (length == di->blocksize) {
- *buf = virtual;
- } else {
- *buf = di->blockbuf;
- memcpy(*buf, virtual, length);
- memset((uint8_t *)*buf + length, 0, di->blocksize - length);
+ if (hdrsz == di->blocksize)
+ buf = kdh;
+ else {
+ buf = di->blockbuf;
+ memset(buf, 0, di->blocksize);
+ memcpy(buf, kdh, hdrsz);
}
- return (0);
-}
-
-static int
-dump_raw_write_pad(struct dumperinfo *di, void *virtual, vm_offset_t physical,
- off_t offset, size_t length, size_t *size)
-{
- void *buf;
- int error;
-
- error = dump_pad(di, virtual, length, &buf, size);
- if (error != 0)
- return (error);
-
- return (dump_raw_write(di, buf, physical, offset, *size));
-}
-
-static int
-dump_write_header(struct dumperinfo *di, struct kerneldumpheader *kdh,
- vm_offset_t physical, off_t offset)
-{
- size_t size;
- int ret;
-
- ret = dump_raw_write_pad(di, kdh, physical, offset, sizeof(*kdh),
- &size);
- if (ret == 0 && size != di->blocksize)
- ret = EINVAL;
- return (ret);
+ return (dump_raw_write(di, buf, physical, offset, di->blocksize));
}
/*

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 8, 6:58 AM (6 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29398237
Default Alt Text
D11647.id32195.diff (1 KB)

Event Timeline