05 Dec, 2008

40 commits

  • A closer inspection revealed that these two files had identical
    functionality - but the implementation of it differed slightly.

    Base it on the sparc version as it was the best.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • It is always equals y so no need to test for it

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • of_node_put is needed before discarding a value received from
    of_find_node_by_name, eg in error handling code or when the device
    node is no longer used.

    The semantic match that catches the bug is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @r exists@
    local idexpression struct device_node *n;
    position p1, p2;
    struct device_node *n1;
    statement S;
    identifier f;
    expression E;
    expression *ptr != NULL;
    @@

    n@p1 = of_find_node_by_name(...)
    ...
    if (!n) S
    ... when != of_node_put(n)
    when != n1 = f(n,...)
    when != E = n
    when any
    when strict
    (
    return \(0\|\|ptr\);
    |
    return@p2 ...;
    |
    of_node_put(n);
    |
    n1 = f(n,...)
    |
    E = n
    )

    @script:python@
    p1 << r.p1;
    p2 << r.p2;
    @@

    print "* file: %s of_find_node_by_name %s return %s" % (p1[0].file,p1[0].line,p2[0].line)
    //

    Signed-off-by: Nicolas Palix
    Signed-off-by: Julia Lawall
    Signed-off-by: David S. Miller

    Nicolas Palix
     
  • Simple unification:
    o renamed piggyback to *_32.c/*_64.c
    o copied content of Makefile from sparc64 to sparc and guard it
    o updated sparc/boot/.gitignore
    o deleted remaining files in sparc64/boot

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • o Move all files from sparc64/kernel/ to sparc/kernel
    - rename as appropriate
    o Update sparc/Makefile to the changes
    o Update sparc/kernel/Makefile to include the sparc64 files

    NOTE: This commit changes link order on sparc64!

    Link order had to change for either of sparc32 and sparc64.
    And assuming sparc64 see more testing than sparc32 change link
    order on sparc64 where issues will be caught faster.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • o sparc32 files with identical names to sparc64 renamed to _32.S
    o introduced a few Kconfig helpers to simplify Makefile logic
    o refactored Makefile to prepare for unification
    - use obj-$(CONFIG_SPARC32) for sparc32 specific files
    - use _$(BITS) for files where sparc64 has a _64 variant
    - sparc64 directly include a few files where sparc32 builds them,
    refer to these files directly (no BITS)
    - sneaked in -Werror as used by sparc64
    o modified sparc/Makefile to use the new names for head/init_task

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • o Renamed files in sparc64 to _64.S when identical
    to sparc32 files.
    o iomap.c were equal for sparc32 and sparc64
    o adjusted sparc/Makefile now we have only one lib/

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • Identical named files renamed to _32.S
    Refactored Makefile to prepare for unification.

    Linking order was altered slightly - but this is a lib.a file so
    it should not matter.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • - all files with identical names copied and renamed to *_64.c
    - the remaning files copied as is
    - added sparc64 specific files to sparc/prom/Makefile
    - teach sparc64 Makefile to look into sparc/prom/
    - delete unused Makefile from sparc64/prom/

    linking order was not kept for sparc64 with this change.
    It was not possible to keep linking order for both sparc and sparc64
    and as sparc64 see more testing than sparc it was natural to
    break linking order on sparc64. Should it have any effect it
    would be detected sooner this way.

    printf_32.c and printf_64.c are obvious candidates to be merged
    but they are not 100% equal so that was left for later

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • - rename files where sparc64 uses identical names to *_32.c
    - refactor Makefile (but keep linking order)

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • To unify Makefile for sparc and sparc64 a few other steps was needed:
    1) separate defconfig files for sparc and sparc64 is required,
    so locate these in arch/sparc/configs
    2) removoval of hack in toplevel Makefile to deal with that
    headers was in a separate directory compared to the rest

    The unification of the Makefile required usage of several

    foo-$(CONFIG_SPARCnn) +=

    due to a few directories pending unification.
    This will be cleaned up when we unify the remaining directories.

    Included in this patch are the deletion of a few files in
    sparc64 as they are no longer needed: Makefile + Kconfig.
    arch/sparc64/ will after this patch is applied only
    have four directories (prom, lib, kernel, boot)

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • With this 'git status' no longer reports any new files
    At least not for a sparc allnoconfig build

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • Leave all cleaning to boot/Makefile
    and delete zImage too when we do a 'make clean'

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • The btfixup step needs knowledge of all the .o files,
    but there is no need to pass them in independent variables.
    Simplify it to use only two variables.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • sparc64 does not use constants generated from asm-offsets
    but to prepare it to do so the parts that could be
    shared do now generate constants for sparc64 too.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • Previous commit made them identical so use the sparc version

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • This patch makes the two vmlinux.lds.S files identical
    and serve as documentation for the changes in each file.

    This mainly add stuffs to sparc32 that is otherwise only
    used by sparc64 and thus it should have no effect.

    Build tested only.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • And this allows us to indicate HAVE_LATENCYTOP_SUPPORT.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Signed-off-by: Al Viro
    Signed-off-by: David S. Miller

    Al Viro
     
  • Just do it once.

    Pointed out by Al Viro.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This is complicated a little because compat_audit.c wants to see only
    the 32bit syscall numbers, but is being built in a 64bit compile.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: David S. Miller

    Stephen Rothwell
     
  • We use clock cycle counter, adjusted to HZ.

    This can be extended to sun4v based processors as well, as they
    also have a proper overflow interrupt facility for the performance
    counters.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • It writes the %pic register, keeping mind of processor bugs.

    Implement reset_pic() in terms of it.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • In these instructions we load the new thread register, switch
    the register window, and setup the new frame pointer.

    All of these must appear atomic, and things will explode if
    we take a PIL=15 NMI interrupt in the middle of this sequence.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • We don't want the rtrap path to try and run softirqs or
    anything like that when returning from a PIL==15 NMI.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • So that we can profile code even in a local_irq_disable() section,
    only write 14 (instead of 15) into the %pil register to disable IRQs.

    This allows PIL level 15 to serve as a pseudo NMI.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Stephen Rothwell pointed out that pcmcia can't be enabled on sparc64.

    There is an empty non-prompt PCMCIA explicit entry in
    arch/sparc/Kconfig but that doesn't do anything.

    32-bit sparc needs a small hack to make this work, since it doesn't
    use the generic IRQ layer yes. We have to provide a dummy definition
    of probe_irq_mask(), since this is used by the yenta socket driver.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • Add a sysctl to tweak the RSS limit used to decide when to grow
    the TSB for an address space.

    In order to avoid expensive divides and multiplies only simply
    positive and negative powers of two are supported.

    The function computed takes the number of TSB translations that will
    fit at one time in the TSB of a given size, and either adds or
    subtracts a percentage of entries. This final value is the
    RSS limit.

    See tsb_size_to_rss_limit().

    Signed-off-by: David S. Miller

    David S. Miller
     
  • - move all sparc64/mm/ files to arch/sparc/mm/
    - commonly named files are named _64.c
    - add files to sparc/mm/Makefile preserving link order
    - delete now unused sparc64/mm/Makefile
    - sparc64 now finds mm/ in sparc

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • - rename files where sparc64 has similar files to _32.c
    - Restructure Makefile
    - Sneak in -Werror as we have for sparc64

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • A simple:

    diff arch/sparc64/oprofile/init.c arch/sparc/oprofile/init.c
    diff arch/sparc64/oprofile/Makefile arch/sparc/oprofile/Makefile

    revealed that the directories were equal.
    So let sparc64 point to the sparc version and drop the sparc64 oprofile dir

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • Move relavent files to sparc/math-emu and
    adjust path/include accordingly.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • Add _32 to filenames to make them 32 bit unique

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • - Drop unused assignment from Makefile
    - Replace EXTRA_CFLAGS with ccflags-y
    - Delete unused file

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • BITS will be used to simplify unified Makefiles

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • Merge all of sparc64 Kconfig to sparc Kconfig.
    The merge was checked by:
    - visual inspection in menuconfig
    - result of allnoconfig, allmodconfig, allyesconfig was checked before and after
    - result of a number of randconfig was checked before and after

    scripts/diffconfig was used to check if the config differed before and after

    The validity of the test was checked by on purpose introducing
    a few bugs - and they were all caught by first run.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • To align with sparc64 add a "Bus options" menu
    This has the additiona advantage that all
    bus options are kept together

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg