>
> On a related topic, I've been wondering how to make instruction
> patching sections work with initdata without warning. I have
> a bunch of assembler patches in the main kernel image that go
> something like this:
>
> 661: ldx [%g7 + TRAP_PER_CPU_TSB_HUGE], %g5
> nop
> .section .sun4v_2insn_patch, "ax"
> .word 661b
> mov SCRATCHPAD_UTSBREG2, %g5
> ldxa [%g5] ASI_SCRATCHPAD, %g5
> .previous
>
> And then an __init function walks the tables in the
> ".sun4v_2insn_patch" instruction to patch things as
> needed.
>
> I don't need to do this patching in modules or anything
> complicated like that, just in the static kernel image.
>
> The problem is if I put one of these patches into __init assembler
> code, the modpost.c thing warns. As you can see, these patch sections
> in between __init_begin and __init_end.
>
> I see that IA64 has something similar, and they prepend their
> patch section names with ".data." would that help me with the
> modpost.c warning issue?
>
> The history behind this is that I want to make the assembler in
> arch/sparc64/kernel/trampoline.S __init to fix one modpost.c
> warning, but once I dod that I hit this patching section issue
> which makes more warnings that the original problem :-)
First off. I tried building a sparc64 kernel from -linus using
defconfig and got no section mismatch warnings.
Building a ia64 kernel now...
What we can do in modpost is to define that references from a certain
section or sections that start with for example ".patch_insn."
to .init.text / .init.data will be ignored.
Avoiding hardcoding ".sun4v_*" would be preferred and maybe
we could move paravirt over to use a section with the same naming
convention.
Trying to cheat modpost is only a source of confusion and thats
not the way to do it.
Sam
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html