Page MenuHomeFreeBSD

D54920.id170616.diff
No OneTemporary

D54920.id170616.diff

diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c
--- a/sys/arm/arm/machdep.c
+++ b/sys/arm/arm/machdep.c
@@ -653,7 +653,7 @@
}
#endif
- return ((void *)STACKALIGN(thread0.td_pcb));
+ return (STACKALIGN(thread0.td_pcb));
}
#endif /* FDT */
diff --git a/sys/arm/arm/vm_machdep.c b/sys/arm/arm/vm_machdep.c
--- a/sys/arm/arm/vm_machdep.c
+++ b/sys/arm/arm/vm_machdep.c
@@ -129,7 +129,7 @@
pcb2->pcb_regs.sf_r4 = (register_t)fork_return;
pcb2->pcb_regs.sf_r5 = (register_t)td2;
pcb2->pcb_regs.sf_lr = (register_t)fork_trampoline;
- pcb2->pcb_regs.sf_sp = STACKALIGN(td2->td_frame);
+ pcb2->pcb_regs.sf_sp = (register_t)STACKALIGN(td2->td_frame);
pcb2->pcb_regs.sf_tpidrurw = (register_t)get_tls();
#ifdef VFP
@@ -194,7 +194,7 @@
td->td_pcb->pcb_regs.sf_r4 = (register_t)fork_return;
td->td_pcb->pcb_regs.sf_r5 = (register_t)td;
td->td_pcb->pcb_regs.sf_lr = (register_t)fork_trampoline;
- td->td_pcb->pcb_regs.sf_sp = STACKALIGN(td->td_frame);
+ td->td_pcb->pcb_regs.sf_sp = (register_t)STACKALIGN(td->td_frame);
td->td_frame->tf_spsr &= ~PSR_C;
td->td_frame->tf_r0 = 0;
diff --git a/sys/arm/include/param.h b/sys/arm/include/param.h
--- a/sys/arm/include/param.h
+++ b/sys/arm/include/param.h
@@ -47,7 +47,7 @@
#include <sys/_align.h>
#define STACKALIGNBYTES (8 - 1)
-#define STACKALIGN(p) ((u_int)(p) & ~STACKALIGNBYTES)
+#define STACKALIGN(p) (__align_down(p, STACKALIGNBYTES + 1))
#ifndef MACHINE
#define MACHINE "arm"
diff --git a/sys/arm64/arm64/exec_machdep.c b/sys/arm64/arm64/exec_machdep.c
--- a/sys/arm64/arm64/exec_machdep.c
+++ b/sys/arm64/arm64/exec_machdep.c
@@ -838,7 +838,7 @@
/* Make room, keeping the stack aligned */
fp = (struct sigframe *)addr;
fp--;
- fp = (struct sigframe *)STACKALIGN(fp);
+ fp = STACKALIGN(fp);
/* Copy the sigframe out to the user's stack. */
if (copyout(&frame, fp, sizeof(*fp)) != 0) {
diff --git a/sys/arm64/arm64/vm_machdep.c b/sys/arm64/arm64/vm_machdep.c
--- a/sys/arm64/arm64/vm_machdep.c
+++ b/sys/arm64/arm64/vm_machdep.c
@@ -100,7 +100,7 @@
ptrauth_fork(td2, td1);
- tf = (struct trapframe *)STACKALIGN((struct trapframe *)pcb2 - 1);
+ tf = STACKALIGN((struct trapframe *)pcb2 - 1);
bcopy(td1->td_frame, tf, sizeof(*tf));
tf->tf_x[0] = 0;
tf->tf_x[1] = 0;
diff --git a/sys/arm64/include/param.h b/sys/arm64/include/param.h
--- a/sys/arm64/include/param.h
+++ b/sys/arm64/include/param.h
@@ -41,7 +41,7 @@
#include <sys/_align.h>
#define STACKALIGNBYTES (16 - 1)
-#define STACKALIGN(p) ((uint64_t)(p) & ~STACKALIGNBYTES)
+#define STACKALIGN(p) (__align_down(p, STACKALIGNBYTES + 1))
#ifndef MACHINE
#define MACHINE "arm64"
diff --git a/sys/arm64/linux/linux_sysvec.c b/sys/arm64/linux/linux_sysvec.c
--- a/sys/arm64/linux/linux_sysvec.c
+++ b/sys/arm64/linux/linux_sysvec.c
@@ -338,7 +338,7 @@
/* Make room, keeping the stack aligned */
fp--;
- fp = (struct l_sigframe *)STACKALIGN(fp);
+ fp = STACKALIGN(fp);
get_mcontext(td, &uc.uc_mcontext, 0);
uc.uc_sigmask = *mask;
diff --git a/sys/riscv/include/param.h b/sys/riscv/include/param.h
--- a/sys/riscv/include/param.h
+++ b/sys/riscv/include/param.h
@@ -37,7 +37,7 @@
#include <sys/_align.h>
#define STACKALIGNBYTES (16 - 1)
-#define STACKALIGN(p) ((uint64_t)(p) & ~STACKALIGNBYTES)
+#define STACKALIGN(p) (__align_down(p, STACKALIGNBYTES + 1))
#ifndef MACHINE
#define MACHINE "riscv"
diff --git a/sys/riscv/riscv/exec_machdep.c b/sys/riscv/riscv/exec_machdep.c
--- a/sys/riscv/riscv/exec_machdep.c
+++ b/sys/riscv/riscv/exec_machdep.c
@@ -370,7 +370,7 @@
/* Make room, keeping the stack aligned */
fp--;
- fp = (struct sigframe *)STACKALIGN(fp);
+ fp = STACKALIGN(fp);
/* Fill in the frame to copy out */
bzero(&frame, sizeof(frame));

File Metadata

Mime Type
text/plain
Expires
Wed, Sep 30, 6:25 PM (2 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39964556
Default Alt Text
D54920.id170616.diff (3 KB)

Event Timeline