All of lore.kernel.org
 help / color / mirror / Atom feed
* Unify module.*
@ 2008-12-22 22:07 Sam Ravnborg
  2008-12-22 22:31 ` Sam Ravnborg
  2008-12-22 22:34 ` Chris Torek
  0 siblings, 2 replies; 3+ messages in thread
From: Sam Ravnborg @ 2008-12-22 22:07 UTC (permalink / raw)
  To: sparclinux

Following patchset unifies module.h and module.c.

The unification is done in a few smaller steps to make
it obvious what is happeing.

The first two patches unify module.h and prepare for
unification of module.c.

The third and fourth patch do all the preparations of module_64.c
without introducing any sparc32 specific code but all
sparc64 specific code is ifdef'ed.


I really did not like this part:
#ifdef CONFIG_SPARC64
                BUG_ON(((u64)location >> (u64)32) != (u64)0);
#endif /* CONFIG_SPARC64 */

I think it should be safe to do:

		BUG_ON(((unsigned long)location >> (unsigned long)32) !		       (unsigned long)0);

As to my best understanding unsigned long
is 32 bit on sparc32 and 64 bit on sparc64.
So we should with the above code not get any warnings.

But I did not really see the point of the BUG_ON in the first place,
and my limited digging did not turn up when it was added.

So to be safe I kept the ugly ifdef for now.
If is easy to spot/remove.

The final patch that unifies module.c adds one specific entry
to the case that is sparc32 specific:

                case R_SPARC_32:
+               case R_SPARC_UA32:

But this should not cause any problems.

The patch serie is build tested on a defconfig for
sparc and sparc64.

	Sam

Sam Ravnborg (5):
      sparc: introduce CONFIG_BITS
      sparc: unify module.h
      sparc64: use bit neutral Elf symbols
      sparc64: prepare module_64.c for unification
      sparc: unify module.c

 arch/sparc/Kconfig                          |    6 +-
 arch/sparc/include/asm/module.h             |   32 ++++--
 arch/sparc/include/asm/module_32.h          |    7 -
 arch/sparc/include/asm/module_64.h          |    7 -
 arch/sparc/kernel/Makefile                  |    2 +-
 arch/sparc/kernel/{module_64.c => module.c} |  112 +++++++++++++------
 arch/sparc/kernel/module_32.c               |  163 ---------------------------
 7 files changed, 107 insertions(+), 222 deletions(-)

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-12-22 22:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-22 22:07 Unify module.* Sam Ravnborg
2008-12-22 22:31 ` Sam Ravnborg
2008-12-22 22:34 ` Chris Torek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.