Messages in this thread | | | From | Anup Patel <> | Date | Wed, 10 Apr 2019 09:40:43 +0530 | Subject | Re: [PATCH 2/3] RISC-V: Make setup_vm() independent of GCC code model |
| |
On Tue, Apr 9, 2019 at 10:17 PM Palmer Dabbelt <palmer@sifive.com> wrote: > > On Tue, 12 Mar 2019 15:08:16 PDT (-0700), Anup Patel wrote: > > The setup_vm() must access kernel symbols in a position independent way > > because it will be called from head.S with MMU off. > > > > If we compile kernel with cmodel=medany then PC-relative addressing will > > be used in setup_vm() to access kernel symbols so it works perfectly fine. > > > > Although, if we compile kernel with cmodel=medlow then either absolute > > addressing or PC-relative addressing (based on whichever requires fewer > > instructions) is used to access kernel symbols in setup_vm(). This can > > break setup_vm() whenever any absolute addressing is used to access > > kernel symbols. > > > > With the movement of setup_vm() from kernel/setup.c to mm/init.c, the > > setup_vm() is now broken for cmodel=medlow but it works perfectly fine > > for cmodel=medany. > > > > This patch fixes setup_vm() and makes it independent of GCC code model > > by accessing kernel symbols relative to kernel load address instead of > > assuming PC-relative addressing. > > I think we ended up with a cleaner solution as 387181dcdb6c ("RISC-V: Always > compile mm/init.c with cmodel=medany and notrace"), but let me know if I missed > something here.
Yes, please ignore this patch. I have dropped it in latest version of this patch series.
Regards, Anup
| |