Port-sparc archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
fpstate stack alignment
Hey folks,
"recently" (probably after the last compiler update) my krups kernel
started to fail early during boot when initializing the fpu.
I needed this patch to get past this:
Index: cpu.c
===================================================================
RCS file: /cvsroot/src/sys/arch/sparc/sparc/cpu.c,v
retrieving revision 1.250
diff -u -p -r1.250 cpu.c
--- cpu.c 2 Dec 2017 00:48:05 -0000 1.250
+++ cpu.c 11 Jan 2018 19:12:41 -0000
@@ -956,7 +956,7 @@ mp_resume_cpus_ddb(void)
void
fpu_init(struct cpu_info *sc)
{
- struct fpstate fpstate;
+ struct fpstate fpstate __aligned(16);
int fpuvers;
/*
savefpstate(&fpstate) uses std to store %f0 to the pointer passed, and this
is where it fails for me w/o that alignement.
I guess we have been lucky before - or did we bork stack alignment recently?
With this applied the kernel gets to mounting root, but then just resets
w/o any problem indication - need to investigate that in more detail
another day.
Martin
Home |
Main Index |
Thread Index |
Old Index