27 Aug, 2007

2 commits


21 Aug, 2007

1 commit


15 Aug, 2007

2 commits

  • In sun4c_init_clean_mmu(), aligning 'kernel_end' using
    SUN4C_REAL_PGDIR_ALIGN() is unnecessary since the caller
    does this already.

    In sun4c_paging_init(), 4 page sizes of "fluff" were added
    to the address of &end. This was necessary a long time ago
    when sparc32 would allocate some early data structures
    by carving out memory chunks after &end but that no longer
    occurs.

    Signed-off-by: Mark Fortescue
    Signed-off-by: David S. Miller

    Mark
     
  • This mirrors sparc64 commit 715a0ecc29c850d2b2f76e1803d3f22cd5a0ac0d

    sparc_ramdisk_image should always be decremented by KERNBASE.

    Signed-off-by: Mark Fortescue
    Signed-off-by: David S. Miller

    Mark
     

11 Aug, 2007

1 commit


08 Aug, 2007

1 commit


04 Aug, 2007

1 commit


31 Jul, 2007

1 commit

  • This deals with a sun4c issue caused by commit b6a2fea39318e43fee84fa7b0b90d68bed92d2ba:
    mm: variable length argument support.

    The new way the code works means that sun4c_update_mmu_cache gets
    called before a context has been selected, which results in invalid
    operation of the underling mm code.

    Simply ignoring update requests when there is no valid context solves
    the problem.

    Signed-off-by Mark Fortescue
    Signed-off-by: David S. Miller

    Mark
     

30 Jul, 2007

3 commits

  • The string setting code depends upon the original value of the
    "skip" variable, not the one that gets modified by the node
    traversal loop.

    Based upon a patch by Mark Fortescue.

    Signed-off-by: David S. Miller

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

    David S. Miller
     
  • Remove fs.h from mm.h. For this,
    1) Uninline vma_wants_writenotify(). It's pretty huge anyway.
    2) Add back fs.h or less bloated headers (err.h) to files that need it.

    As result, on x86_64 allyesconfig, fs.h dependencies cut down from 3929 files
    rebuilt down to 3444 (-12.3%).

    Cross-compile tested without regressions on my two usual configs and (sigh):

    alpha arm-mx1ads mips-bigsur powerpc-ebony
    alpha-allnoconfig arm-neponset mips-capcella powerpc-g5
    alpha-defconfig arm-netwinder mips-cobalt powerpc-holly
    alpha-up arm-netx mips-db1000 powerpc-iseries
    arm arm-ns9xxx mips-db1100 powerpc-linkstation
    arm-assabet arm-omap_h2_1610 mips-db1200 powerpc-lite5200
    arm-at91rm9200dk arm-onearm mips-db1500 powerpc-maple
    arm-at91rm9200ek arm-picotux200 mips-db1550 powerpc-mpc7448_hpc2
    arm-at91sam9260ek arm-pleb mips-ddb5477 powerpc-mpc8272_ads
    arm-at91sam9261ek arm-pnx4008 mips-decstation powerpc-mpc8313_rdb
    arm-at91sam9263ek arm-pxa255-idp mips-e55 powerpc-mpc832x_mds
    arm-at91sam9rlek arm-realview mips-emma2rh powerpc-mpc832x_rdb
    arm-ateb9200 arm-realview-smp mips-excite powerpc-mpc834x_itx
    arm-badge4 arm-rpc mips-fulong powerpc-mpc834x_itxgp
    arm-carmeva arm-s3c2410 mips-ip22 powerpc-mpc834x_mds
    arm-cerfcube arm-shannon mips-ip27 powerpc-mpc836x_mds
    arm-clps7500 arm-shark mips-ip32 powerpc-mpc8540_ads
    arm-collie arm-simpad mips-jazz powerpc-mpc8544_ds
    arm-corgi arm-spitz mips-jmr3927 powerpc-mpc8560_ads
    arm-csb337 arm-trizeps4 mips-malta powerpc-mpc8568mds
    arm-csb637 arm-versatile mips-mipssim powerpc-mpc85xx_cds
    arm-ebsa110 i386 mips-mpc30x powerpc-mpc8641_hpcn
    arm-edb7211 i386-allnoconfig mips-msp71xx powerpc-mpc866_ads
    arm-em_x270 i386-defconfig mips-ocelot powerpc-mpc885_ads
    arm-ep93xx i386-up mips-pb1100 powerpc-pasemi
    arm-footbridge ia64 mips-pb1500 powerpc-pmac32
    arm-fortunet ia64-allnoconfig mips-pb1550 powerpc-ppc64
    arm-h3600 ia64-bigsur mips-pnx8550-jbs powerpc-prpmc2800
    arm-h7201 ia64-defconfig mips-pnx8550-stb810 powerpc-ps3
    arm-h7202 ia64-gensparse mips-qemu powerpc-pseries
    arm-hackkit ia64-sim mips-rbhma4200 powerpc-up
    arm-integrator ia64-sn2 mips-rbhma4500 s390
    arm-iop13xx ia64-tiger mips-rm200 s390-allnoconfig
    arm-iop32x ia64-up mips-sb1250-swarm s390-defconfig
    arm-iop33x ia64-zx1 mips-sead s390-up
    arm-ixp2000 m68k mips-tb0219 sparc
    arm-ixp23xx m68k-amiga mips-tb0226 sparc-allnoconfig
    arm-ixp4xx m68k-apollo mips-tb0287 sparc-defconfig
    arm-jornada720 m68k-atari mips-workpad sparc-up
    arm-kafa m68k-bvme6000 mips-wrppmc sparc64
    arm-kb9202 m68k-hp300 mips-yosemite sparc64-allnoconfig
    arm-ks8695 m68k-mac parisc sparc64-defconfig
    arm-lart m68k-mvme147 parisc-allnoconfig sparc64-up
    arm-lpd270 m68k-mvme16x parisc-defconfig um-x86_64
    arm-lpd7a400 m68k-q40 parisc-up x86_64
    arm-lpd7a404 m68k-sun3 powerpc x86_64-allnoconfig
    arm-lubbock m68k-sun3x powerpc-cell x86_64-defconfig
    arm-lusl7200 mips powerpc-celleb x86_64-up
    arm-mainstone mips-atlas powerpc-chrp32

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

25 Jul, 2007

4 commits

  • Sparc optimized memset (arch/sparc/lib/memset.S) does not fill last
    byte of the memory area, if area size is less than 8 bytes and start
    address is not word (4-bytes) aligned.

    Here is code chunk where bug located:
    /* %o0 - memory address, %o1 - size, %g3 - value */
    8:
    add %o0, 1, %o0
    subcc %o1, 1, %o1
    bne,a 8b
    stb %g3, [%o0 - 1]

    This code should write byte every loop iteration, but last time delay
    instruction stb is not executed because branch instruction sets
    "annul" bit.

    Patch replaces bne,a by bne instruction.

    Error can be reproduced by simple kernel module:

    --------------------
    #include
    #include
    #include
    #include
    #include

    static void do_memset(void **p, int size)
    {
    memset(p, 0x00, size);
    }

    static int __init memset_test_init(void)
    {
    char fooc[8];
    int *fooi;
    memset(fooc, 0xba, sizeof(fooc));

    do_memset((void**)(fooc + 3), 1);

    fooi = (int*) fooc;
    printk("%08X %08X\n", fooi[0], fooi[1]);

    return -1;
    }

    static void __exit memset_test_cleanup(void)
    {
    return;
    }

    module_init(memset_test_init);
    module_exit(memset_test_cleanup);

    MODULE_LICENSE("GPL");
    EXPORT_NO_SYMBOLS;
    --------------------

    Signed-off-by: Alexander Shmelev
    Signed-off-by: David S. Miller

    Alexander Shmelev
     
  • This fixes boot failures when the build-id LD option is
    actually used, because without it we end up with multiple
    PT_LOAD sections which the SILO boot loader cannot handle.

    Signed-off-by: David S. Miller

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

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

    Al Viro
     

22 Jul, 2007

4 commits


21 Jul, 2007

3 commits

  • Signed-off-by: David S. Miller

    David S. Miller
     
  • The current scheme works on static interpretation of text names, which
    is wrong.

    The output-device setting, for example, must be resolved via an alias
    or similar to a full path name to the console device.

    Paths also contain an optional set of 'options', which starts with a
    colon at the end of the path. The option area is used to specify
    which of two serial ports ('a' or 'b') the path refers to when a
    device node drives multiple ports. 'a' is assumed if the option
    specification is missing.

    This was caught by the UltraSPARC-T1 simulator. The 'output-device'
    property was set to 'ttya' and we didn't pick upon the fact that this
    is an OBP alias set to '/virtual-devices/console'. Instead we saw it
    as the first serial console device, instead of the hypervisor console.

    The infrastructure is now there to take advantage of this to resolve
    the console correctly even in multi-head situations in fbcon too.

    Thanks to Greg Onufer for the bug report.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/sfr/ofcons:
    Create drivers/of/platform.c
    Create linux/of_platorm.h
    [SPARC/64] Rename some functions like PowerPC
    Begin consolidation of of_device.h
    Begin to consolidate of_device.c
    Consolidate of_find_node_by routines
    Consolidate of_get_next_child
    Consolidate of_get_parent
    Consolidate of_find_property
    Consolidate of_device_is_compatible
    Start split out of common open firmware code
    Split out common parts of prom.h

    Linus Torvalds
     

20 Jul, 2007

12 commits

  • Signed-off-by: David S. Miller

    David S. Miller
     
  • and populate it with the common parts from PowerPC and Sparc[64].

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • This is to make the of merge easier. Also rename of_bus_type.

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

    Stephen Rothwell
     
  • This moves all the common parts for the Sparc, Sparc64 and PowerPC
    of_device.c files into drivers/of/device.c.

    Apart from the simple move, Sparc gains of_match_node() and a call to
    of_node_put in of_release_dev(). PowerPC gains better recovery if
    device_create_file() fails in of_device_register().

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • This consolidates the routines of_find_node_by_path, of_find_node_by_name,
    of_find_node_by_type and of_find_compatible_device. Again, the comparison
    of strings are done differently by Sparc and PowerPC and also these add
    read_locks around the iterations.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • This adds a read_lock around the child/next accesses on Sparc.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • This requires creating dummy of_node_{get,put} routines for sparc and
    sparc64. It also adds a read_lock around the parent accesses.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • The only change here is that a readlock is taken while the property list
    is being traversed on Sparc where it was not taken previously.

    Also, Sparc uses strcasecmp to compare property names while PowerPC
    uses strcmp.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • The only difference here is that Sparc uses strncmp to match compatibility
    names while PowerPC uses strncasecmp.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • This creates drivers/of/base.c (depending on CONFIG_OF) and puts
    the first trivially common bits from the prom.c files into it.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • per cpu data section contains two types of data. One set which is
    exclusively accessed by the local cpu and the other set which is per cpu,
    but also shared by remote cpus. In the current kernel, these two sets are
    not clearely separated out. This can potentially cause the same data
    cacheline shared between the two sets of data, which will result in
    unnecessary bouncing of the cacheline between cpus.

    One way to fix the problem is to cacheline align the remotely accessed per
    cpu data, both at the beginning and at the end. Because of the padding at
    both ends, this will likely cause some memory wastage and also the
    interface to achieve this is not clean.

    This patch:

    Moves the remotely accessed per cpu data (which is currently marked
    as ____cacheline_aligned_in_smp) into a different section, where all the data
    elements are cacheline aligned. And as such, this differentiates the local
    only data and remotely accessed data cleanly.

    Signed-off-by: Fenghua Yu
    Acked-by: Suresh Siddha
    Cc: Rusty Russell
    Cc: Christoph Lameter
    Cc:
    Cc: "Luck, Tony"
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fenghua Yu
     
  • This patch completes Linus's wish that the fault return codes be made into
    bit flags, which I agree makes everything nicer. This requires requires
    all handle_mm_fault callers to be modified (possibly the modifications
    should go further and do things like fault accounting in handle_mm_fault --
    however that would be for another patch).

    [akpm@linux-foundation.org: fix alpha build]
    [akpm@linux-foundation.org: fix s390 build]
    [akpm@linux-foundation.org: fix sparc build]
    [akpm@linux-foundation.org: fix sparc64 build]
    [akpm@linux-foundation.org: fix ia64 build]
    Signed-off-by: Nick Piggin
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Russell King
    Cc: Ian Molton
    Cc: Bryan Wu
    Cc: Mikael Starvik
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: "Luck, Tony"
    Cc: Hirokazu Takata
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Cc: Greg Ungerer
    Cc: Matthew Wilcox
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Richard Curnow
    Cc: William Lee Irwin III
    Cc: "David S. Miller"
    Cc: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Cc: Miles Bader
    Cc: Chris Zankel
    Acked-by: Kyle McMartin
    Acked-by: Haavard Skinnemoen
    Acked-by: Ralf Baechle
    Acked-by: Andi Kleen
    Signed-off-by: Andrew Morton
    [ Still apparently needs some ARM and PPC loving - Linus ]
    Signed-off-by: Linus Torvalds

    Nick Piggin
     

18 Jul, 2007

3 commits


17 Jul, 2007

1 commit

  • Kill pte_rdprotect(), pte_exprotect(), pte_mkread(), pte_mkexec(), pte_read(),
    pte_exec(), and pte_user() except where arch-specific code is making use of
    them.

    Signed-off-by: Jan Beulich
    Cc: Andi Kleen
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Beulich
     

12 Jul, 2007

1 commit