svn commit: r364176 - head/sys/riscv/include
John Baldwin
jhb at FreeBSD.org
Wed Aug 12 18:45:37 UTC 2020
Author: jhb
Date: Wed Aug 12 18:45:36 2020
New Revision: 364176
URL: https://svnweb.freebsd.org/changeset/base/364176
Log:
Correct padding length for RISC-V PCPU data.
There was an additional 7 bytes of compiler-inserted padding at the
end of the structure visible via 'ptype /o' in gdb.
Reviewed by: mhorne
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D25867
Modified:
head/sys/riscv/include/pcpu.h
head/sys/riscv/include/pcpu_aux.h
Modified: head/sys/riscv/include/pcpu.h
==============================================================================
--- head/sys/riscv/include/pcpu.h Wed Aug 12 18:35:21 2020 (r364175)
+++ head/sys/riscv/include/pcpu.h Wed Aug 12 18:45:36 2020 (r364176)
@@ -48,7 +48,7 @@
struct pmap *pc_curpmap; /* Currently active pmap */ \
uint32_t pc_pending_ipis; /* IPIs pending to this CPU */ \
uint32_t pc_hart; /* Hart ID */ \
- char __pad[49]
+ char __pad[56] /* Pad to factor of PAGE_SIZE */
#ifdef _KERNEL
Modified: head/sys/riscv/include/pcpu_aux.h
==============================================================================
--- head/sys/riscv/include/pcpu_aux.h Wed Aug 12 18:35:21 2020 (r364175)
+++ head/sys/riscv/include/pcpu_aux.h Wed Aug 12 18:45:36 2020 (r364176)
@@ -46,6 +46,9 @@
* be a multiple of the size of struct pcpu.
*/
_Static_assert(PAGE_SIZE % sizeof(struct pcpu) == 0, "fix pcpu size");
+_Static_assert(offsetof(struct pcpu, __pad) +
+ sizeof(((struct pcpu *)0)->__pad) == sizeof(struct pcpu),
+ "fix pcpu padding");
extern struct pcpu __pcpu[];
More information about the svn-src-all
mailing list