Re: RTL9300 (mips) fails to boot with commit d4a7f2510ff4 ("vmlinux.lds.h: Adjust symbol ordering in text output section")

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I sent out a patch using the __HEAD method. Compared to the
"*head.o(.text)", this only places
__kernel_entry at the beginning of the text section, and leaves others
reordered by the linker script.
I think it should work. Chris: Could you test it?

Thanks,

-Rong


On Mon, Nov 25, 2024 at 11:26 AM Chris Packham
<chris.packham@xxxxxxxxxxxxxxxxxxx> wrote:
>
>
> On 26/11/24 07:48, Rong Xu wrote:
> > Thanks for confirming this! It looks like we do need to put all
> > symbols from head.o before any other symbols.
> > To be clear, the patch I mentioned was not trying to do that -- it
> > just makes sure the _stext is in the right places.
> Looking at other architectures it may just be a matter of adding __HEAD
> to an appropriate place in arch/mips/kernel/head.S and HEAD_TEXT_SECTION
> to arch/mips/kernel/vmlinux.lds.S. It might even be possible to drop
> mips from scripts/head-object-list.txt.
>
> > I'll draft a patch for this.
>
> I can give any patch a quick test on my setup.
>
> >
> > On Sun, Nov 24, 2024 at 12:40 PM Chris Packham
> > <Chris.Packham@xxxxxxxxxxxxxxxxxxx> wrote:
> >> Hi Rong,
> >>
> >> On 22/11/24 18:02, Rong Xu wrote:
> >>> Does the following patch fix your issue?
> >>> https://lore.kernel.org/lkml/CAK7LNAQSpM2hh2=Wgribb92nHF5_peRb+gxdO1Bt1MkeL8N+hw@xxxxxxxxxxxxxx/t/
> >>>
> >>> Masahiro Yamada already applied the patch to kbuild-tree.
> >>>
> >>> I also proposed a similar fix as yours. But we believe the above patch
> >>> should also work (and probably is better).
> >>>
> >>> Please try and let us know.
> >> Looks like linux-next already has that patch and no it doesn't fix my
> >> issue. For the record here's the start of my System.map
> >>
> >> $ head System.map
> >> ffffffff80100000 T __split_text_end
> >> ffffffff80100000 T __split_text_start
> >> ffffffff80100000 T __unlikely_text_start
> >> ffffffff80100000 T _stext
> >> ffffffff80100000 T _text
> >> ffffffff80100000 t run_init_process
> >> ffffffff80100138 t try_to_run_init_process
> >> ffffffff8010018c t put_page
> >> ffffffff801001d0 t nr_blocks.isra.0
> >> ffffffff80100208 T ack_bad_irq
> >>
> >> It does look like whatever is supposed to put head.o first isn't kicking
> >> in for me.
> >>
> >>> Thanks!
> >>>
> >>> -Rong
> >>>
> >>> On Thu, Nov 21, 2024 at 6:29 PM Chris Packham
> >>> <chris.packham@xxxxxxxxxxxxxxxxxxx> wrote:
> >>>> On 22/11/24 14:58, Chris Packham wrote:
> >>>>> Hi Rong,
> >>>>>
> >>>>> I was just trying some of my in-flight changes against linux-next and
> >>>>> found that my RTL9300* based board no longer boots (nothing on the
> >>>>> serial console after U-Boot hands off to the kernel).
> >>>>>
> >>>>> A bisect between Linus's tree and linux-next/master points to commit
> >>>>> d4a7f2510ff4 ("vmlinux.lds.h: Adjust symbol ordering in text output
> >>>>> section"). A build on d4a7f2510ff4^ boots successfully. That series is
> >>>>> well beyond my area of knowledge, there may be something that the MIPS
> >>>>> SoCs are doing (or not doing) that is being affected by the sections
> >>>>> moving.
> >>>> Based on the sparc change that accompanied this commit the following
> >>>> does seem to restore working order for me:
> >>>>
> >>>> diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
> >>>> index d575f945d422..e90b0f68290c 100644
> >>>> --- a/arch/mips/kernel/vmlinux.lds.S
> >>>> +++ b/arch/mips/kernel/vmlinux.lds.S
> >>>> @@ -62,6 +62,8 @@ SECTIONS
> >>>>            _text = .;      /* Text and read-only data */
> >>>>            _stext = .;
> >>>>            .text : {
> >>>> +               /* Match text section symbols in head.S first */
> >>>> +               *head.o(.text)
> >>>>                    TEXT_TEXT
> >>>>                    SCHED_TEXT
> >>>>                    LOCK_TEXT
> >>>>
> >>>> No idea if that's appropriate
> >>>>





[Index of Archives]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux