26 Jul, 2008

1 commit

  • Inflate requires some dynamic memory allocation very early in the boot
    process and this is provided with a set of four functions:
    malloc/free/gzip_mark/gzip_release.

    The old inflate code used a mark/release strategy rather than implement
    free. This new version instead keeps a count on the number of outstanding
    allocations and when it hits zero, it resets the malloc arena.

    This allows removing all the mark and release implementations and unifying
    all the malloc/free implementations.

    The architecture-dependent code must define two addresses:
    - free_mem_ptr, the address of the beginning of the area in which
    allocations should be made
    - free_mem_end_ptr, the address of the end of the area in which
    allocations should be made. If set to 0, then no check is made on
    the number of allocations, it just grows as much as needed

    The architecture-dependent code can also provide an arch_decomp_wdog()
    function call. This function will be called several times during the
    decompression process, and allow to notify the watchdog that the system is
    still running. If an architecture provides such a call, then it must
    define ARCH_HAS_DECOMP_WDOG so that the generic inflate code calls
    arch_decomp_wdog().

    Work initially done by Matt Mackall, updated to a recent version of the
    kernel and improved by me.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Thomas Petazzoni
    Cc: Matt Mackall
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Mikael Starvik
    Cc: Jesper Nilsson
    Cc: Haavard Skinnemoen
    Cc: David Howells
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Andi Kleen
    Cc: "H. Peter Anvin"
    Acked-by: Paul Mundt
    Acked-by: Yoshinori Sato
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Petazzoni
     

25 Jul, 2008

8 commits

  • …el/git/tip/linux-2.6-tip

    * 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    nohz: adjust tick_nohz_stop_sched_tick() call of s390 as well
    nohz: prevent tick stop outside of the idle loop

    Linus Torvalds
     
  • …/git/tip/linux-2.6-tip

    * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    arch/mips/kernel/stacktrace.c: Heiko can't type
    kthread: reduce stack pressure in create_kthread and kthreadd
    fix core/stacktrace changes on avr32, mips, sh

    Linus Torvalds
     
  • This patch introduces the new syscall pipe2 which is like pipe but it also
    takes an additional parameter which takes a flag value. This patch implements
    the handling of O_CLOEXEC for the flag. I did not add support for the new
    syscall for the architectures which have a special sys_pipe implementation. I
    think the maintainers of those archs have the chance to go with the unified
    implementation but that's up to them.

    The implementation introduces do_pipe_flags. I did that instead of changing
    all callers of do_pipe because some of the callers are written in assembler.
    I would probably screw up changing the assembly code. To avoid breaking code
    do_pipe is now a small wrapper around do_pipe_flags. Once all callers are
    changed over to do_pipe_flags the old do_pipe function can be removed.

    The following test must be adjusted for architectures other than x86 and
    x86-64 and in case the syscall numbers changed.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #include
    #include
    #include
    #include

    #ifndef __NR_pipe2
    # ifdef __x86_64__
    # define __NR_pipe2 293
    # elif defined __i386__
    # define __NR_pipe2 331
    # else
    # error "need __NR_pipe2"
    # endif
    #endif

    int
    main (void)
    {
    int fd[2];
    if (syscall (__NR_pipe2, fd, 0) != 0)
    {
    puts ("pipe2(0) failed");
    return 1;
    }
    for (int i = 0; i < 2; ++i)
    {
    int coe = fcntl (fd[i], F_GETFD);
    if (coe == -1)
    {
    puts ("fcntl failed");
    return 1;
    }
    if (coe & FD_CLOEXEC)
    {
    printf ("pipe2(0) set close-on-exit for fd[%d]\n", i);
    return 1;
    }
    }
    close (fd[0]);
    close (fd[1]);

    if (syscall (__NR_pipe2, fd, O_CLOEXEC) != 0)
    {
    puts ("pipe2(O_CLOEXEC) failed");
    return 1;
    }
    for (int i = 0; i < 2; ++i)
    {
    int coe = fcntl (fd[i], F_GETFD);
    if (coe == -1)
    {
    puts ("fcntl failed");
    return 1;
    }
    if ((coe & FD_CLOEXEC) == 0)
    {
    printf ("pipe2(O_CLOEXEC) does not set close-on-exit for fd[%d]\n", i);
    return 1;
    }
    }
    close (fd[0]);
    close (fd[1]);

    puts ("OK");

    return 0;
    }
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Signed-off-by: Ulrich Drepper
    Acked-by: Davide Libenzi
    Cc: Michael Kerrisk
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ulrich Drepper
     
  • Almost all users of this field need a PFN instead of a physical address,
    so replace node_boot_start with node_min_pfn.

    [Lee.Schermerhorn@hp.com: fix spurious BUG_ON() in mark_bootmem()]
    Signed-off-by: Johannes Weiner
    Cc:
    Signed-off-by: Lee Schermerhorn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • Straight forward extensions for huge pages located in the PUD instead of
    PMDs.

    Signed-off-by: Andi Kleen
    Signed-off-by: Nick Piggin
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • The goal of this patchset is to support multiple hugetlb page sizes. This
    is achieved by introducing a new struct hstate structure, which
    encapsulates the important hugetlb state and constants (eg. huge page
    size, number of huge pages currently allocated, etc).

    The hstate structure is then passed around the code which requires these
    fields, they will do the right thing regardless of the exact hstate they
    are operating on.

    This patch adds the hstate structure, with a single global instance of it
    (default_hstate), and does the basic work of converting hugetlb to use the
    hstate.

    Future patches will add more hstate structures to allow for different
    hugetlbfs mounts to have different page sizes.

    [akpm@linux-foundation.org: coding-style fixes]
    Acked-by: Adam Litke
    Acked-by: Nishanth Aravamudan
    Signed-off-by: Andi Kleen
    Signed-off-by: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • There are a lot of places that define either a single bootmem descriptor or an
    array of them. Use only one central array with MAX_NUMNODES items instead.

    Signed-off-by: Johannes Weiner
    Acked-by: Ralf Baechle
    Cc: Ingo Molnar
    Cc: Richard Henderson
    Cc: Russell King
    Cc: Tony Luck
    Cc: Hirokazu Takata
    Cc: Geert Uytterhoeven
    Cc: Kyle McMartin
    Cc: Paul Mackerras
    Cc: Paul Mundt
    Cc: David S. Miller
    Cc: Yinghai Lu
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • Flag platforms as HAVE_CLK (or not) in Kconfig, based on whether they
    support calls, so that otherwise portable drivers which need
    those calls can list that dependency.

    Something like this is a prerequisite for merging the musb_hdrc driver,
    currently used on platforms including Davinci, OMAP2430, OMAP3xx ... and
    the discrete TUSB6010 chip, which doesn't have a natural platform
    dependency. (Used with OMAP 2420 in current Nokia N8x0 tablets.)

    Signed-off-by: David Brownell
    Cc: Russell King
    Acked-by: Haavard Skinnemoen
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Paul Mundt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

24 Jul, 2008

1 commit

  • * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (85 commits)
    [ARM] pxa: add base support for PXA930 Handheld Platform (aka SAAR)
    [ARM] pxa: add base support for PXA930 Evaluation Board (aka TavorEVB)
    [ARM] pxa: add base support for PXA930 (aka Tavor-P)
    [ARM] Update mach-types
    [ARM] pxa: make littleton to use the new smc91x platform data
    [ARM] pxa: make zylonite to use the new smc91x platform data
    [ARM] pxa: make mainstone to use the new smc91x platform data
    [ARM] pxa: make lubbock to use new smc91x platform data
    [NET] smc91x: prepare SMC_USE_PXA_DMA to be specified in platform data
    [NET] smc91x: prepare for SMC_IO_SHIFT to be a platform configurable variable
    [NET] smc91x: add SMC91X_NOWAIT flag to platform data
    [NET] smc91x: favor the use of SMC91X_USE_* instead of SMC_CAN_USE_*
    [NET] smc91x: remove "irq_flags" from "struct smc91x_platdata"
    [ARM] 5146/1: pxa2xx: convert all boards to call pxa2xx_transceiver_mode helper
    Support for LCD on e740 e750 e400 and e800 e-series PDAs
    E-series UDC support
    PXA UDC - allow use of inverted GPIO for pullup
    Add e350 support
    Fix broken e-series build
    E-series GPIO / IRQ definitions.
    ...

    Linus Torvalds
     

22 Jul, 2008

1 commit

  • This allow to dynamically generate attributes and share show/store
    functions between attributes. Right now most attributes are generated
    by special macros and lots of duplicated code. With the attribute
    passed it's instead possible to attach some data to the attribute
    and then use that in shared low level functions to do different things.

    I need this for the dynamically generated bank attributes in the x86
    machine check code, but it'll allow some further cleanups.

    I converted all users in tree to the new show/store prototype. It's a single
    huge patch to avoid unbisectable sections.

    Runtime tested: x86-32, x86-64
    Compiled only: ia64, powerpc
    Not compile tested/only grep converted: sh, arm, avr32

    Signed-off-by: Andi Kleen
    Signed-off-by: Greg Kroah-Hartman

    Andi Kleen
     

19 Jul, 2008

2 commits

  • Ingo Molnar
     
  • Jack Ren and Eric Miao tracked down the following long standing
    problem in the NOHZ code:

    scheduler switch to idle task
    enable interrupts

    Window starts here

    ----> interrupt happens (does not set NEED_RESCHED)
    irq_exit() stops the tick

    ----> interrupt happens (does set NEED_RESCHED)

    return from schedule()

    cpu_idle(): preempt_disable();

    Window ends here

    The interrupts can happen at any point inside the race window. The
    first interrupt stops the tick, the second one causes the scheduler to
    rerun and switch away from idle again and we end up with the tick
    disabled.

    The fact that it needs two interrupts where the first one does not set
    NEED_RESCHED and the second one does made the bug obscure and extremly
    hard to reproduce and analyse. Kudos to Jack and Eric.

    Solution: Limit the NOHZ functionality to the idle loop to make sure
    that we can not run into such a situation ever again.

    cpu_idle()
    {
    preempt_disable();

    while(1) {
    tick_nohz_stop_sched_tick(1); ,
    Debugged-by: eric miao
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

18 Jul, 2008

1 commit

  • Fixes this type of problem:

    CC arch/s390/kernel/stacktrace.o
    arch/s390/kernel/stacktrace.c:84: warning: data definition has no type or storage class
    arch/s390/kernel/stacktrace.c:84: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
    arch/s390/kernel/stacktrace.c:84: warning: parameter names (without types) in function declaration
    arch/s390/kernel/stacktrace.c:97: warning: data definition has no type or storage class
    arch/s390/kernel/stacktrace.c:97: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
    arch/s390/kernel/stacktrace.c:97: warning: parameter names (without types) in function declaration

    caused by "stacktrace: export save_stack_trace[_tsk]"

    Signed-off-by: Heiko Carstens
    Cc: Stephen Rothwell
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Signed-off-by: Ingo Molnar

    Heiko Carstens
     

17 Jul, 2008

1 commit

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (72 commits)
    Revert "x86/PCI: ACPI based PCI gap calculation"
    PCI: remove unnecessary volatile in PCIe hotplug struct controller
    x86/PCI: ACPI based PCI gap calculation
    PCI: include linux/pm_wakeup.h for device_set_wakeup_capable
    PCI PM: Fix pci_prepare_to_sleep
    x86/PCI: Fix PCI config space for domains > 0
    Fix acpi_pm_device_sleep_wake() by providing a stub for CONFIG_PM_SLEEP=n
    PCI: Simplify PCI device PM code
    PCI PM: Introduce pci_prepare_to_sleep and pci_back_from_sleep
    PCI ACPI: Rework PCI handling of wake-up
    ACPI: Introduce new device wakeup flag 'prepared'
    ACPI: Introduce acpi_device_sleep_wake function
    PCI: rework pci_set_power_state function to call platform first
    PCI: Introduce platform_pci_power_manageable function
    ACPI: Introduce acpi_bus_power_manageable function
    PCI: make pci_name use dev_name
    PCI: handle pci_name() being const
    PCI: add stub for pci_set_consistent_dma_mask()
    PCI: remove unused arch pcibios_update_resource() functions
    PCI: fix pci_setup_device()'s sprinting into a const buffer
    ...

    Fixed up conflicts in various files (arch/x86/kernel/setup_64.c,
    arch/x86/pci/irq.c, arch/x86/pci/pci.h, drivers/acpi/sleep/main.c,
    drivers/pci/pci.c, drivers/pci/pci.h, include/acpi/acpi_bus.h) from x86
    and ACPI updates manually.

    Linus Torvalds
     

16 Jul, 2008

2 commits

  • Conflicts:

    arch/powerpc/Kconfig
    arch/s390/kernel/time.c
    arch/x86/kernel/apic_32.c
    arch/x86/kernel/cpu/perfctr-watchdog.c
    arch/x86/kernel/i8259_64.c
    arch/x86/kernel/ldt.c
    arch/x86/kernel/nmi_64.c
    arch/x86/kernel/smpboot.c
    arch/x86/xen/smp.c
    include/asm-x86/hw_irq_32.h
    include/asm-x86/hw_irq_64.h
    include/asm-x86/mach-default/irq_vectors.h
    include/asm-x86/mach-voyager/irq_vectors.h
    include/asm-x86/smp.h
    kernel/Makefile

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • * 'core/stacktrace' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    generic-ipi: powerpc/generic-ipi tree build failure
    stacktrace: fix build failure on sparc64
    stacktrace: export save_stack_trace[_tsk]
    stacktrace: fix modular build, export print_stack_trace and save_stack_trace
    backtrace: replace timer with tasklet + completions
    stacktrace: add saved stack traces to backtrace self-test
    stacktrace: print_stack_trace() cleanup
    debugging: make stacktrace independent from DEBUG_KERNEL
    stacktrace: don't crash on invalid stack trace structs

    Linus Torvalds
     

15 Jul, 2008

3 commits

  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (241 commits)
    [ARM] 5171/1: ep93xx: fix compilation of modules using clocks
    [ARM] 5133/2: at91sam9g20 defconfig file
    [ARM] 5130/4: Support for the at91sam9g20
    [ARM] 5160/1: IOP3XX: gpio/gpiolib support
    [ARM] at91: Fix NAND FLASH timings for at91sam9x evaluation kits.
    [ARM] 5084/1: zylonite: Register AC97 device
    [ARM] 5085/2: PXA: Move AC97 over to the new central device declaration model
    [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC drivers
    [ARM] 5147/1: pxaficp_ir: drop pxa_gpio_mode calls, as pin setting
    [ARM] 5145/1: PXA2xx: provide api to control IrDA pins state
    [ARM] 5144/1: pxaficp_ir: cleanup includes
    [ARM] pxa: remove pxa_set_cken()
    [ARM] pxa: allow clk aliases
    [ARM] Feroceon: don't disable BPU on boot
    [ARM] Orion: LED support for HP mv2120
    [ARM] Orion: add RD88F5181L-FXO support
    [ARM] Orion: add RD88F5181L-GE support
    [ARM] Orion: add Netgear WNR854T support
    [ARM] s3c2410_defconfig: update for current build
    [ARM] Acer n30: Minor style and indentation fixes.
    ...

    Linus Torvalds
     
  • * 'core/rodata' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    move BUG_TABLE into RODATA

    Linus Torvalds
     
  • Jonathan Corbet
     

13 Jul, 2008

2 commits

  • Conflicts:

    arch/arm/configs/em_x270_defconfig
    arch/arm/configs/xm_x270_defconfig

    Russell King
     
  • IRQ trigger type can be specified in the IRQ resource definition by
    IORESOURCE_IRQ_*, we need only one way to specify this.

    This also fixes the following small issue:

    To allow dynamic support for multiple platforms, when those relevant
    macros are not defined for one specific platform, the default case
    will be:

    - SMC_DYNAMIC_BUS_CONFIG defined
    - and SMC_IRQ_FLAGS = IRQF_TRIGGER_RISING

    While if "irq_flags" is missing when defining the smc91x_platdata,
    usually as follows:

    static struct smc91x_platdata xxxx_smc91x_data = {
    .flags = SMC91X_USE_XXBIT,
    };

    The lp->cfg.irq_flags will always be overriden by the above structure
    (due to a memcpy), thus rendering lp->cfg.irq_flags to be "0" always.
    (regardless of the default SMC_IRQ_FLAGS or IORESOURCE_IRQ_* flags)

    Fixes this by forcing to use IORESOURCE_IRQ_* flags if present, and
    make the only user of smc91x_platdata.irq_flags (renesas/migor) to
    use IORESOURCE_IRQ_*.

    Signed-off-by: Eric Miao
    Acked-by: Nicolas Pitre
    Acked-by: Jeff Garzik
    Signed-off-by: Russell King

    Eric Miao
     

10 Jul, 2008

1 commit


03 Jul, 2008

1 commit


28 Jun, 2008

1 commit

  • Russell King did the following back in 2003:

    [PCI] pci-9: Kill per-architecture pcibios_update_resource()

    Kill pcibios_update_resource(), replacing it with pci_update_resource().
    pci_update_resource() uses pcibios_resource_to_bus() to convert a
    resource to a device BAR - the transformation should be exactly the
    same as the transformation used for the PCI bridges.

    pci_update_resource "knows" about 64-bit BARs, but doesn't attempt to
    set the high 32-bits to anything non-zero - currently no architecture
    attempts to do something different. If anyone cares, please fix; I'm
    going to reflect current behaviour for the time being.

    Ivan pointed out the following architectures need to examine their
    pcibios_update_resource() implementation - they should make sure that
    this new implementation does the right thing. #warning's have been
    added where appropriate.

    ia64
    mips
    mips64

    This cset also includes a fix for the problem reported by AKPM where
    64-bit arch compilers complain about the resource mask being placed
    in a u32.

    This patch removes the unused pcibios_update_resource() functions the
    kernel gained since, from FRV, m68k, mips & sh architectures.

    Signed-off-by: Adrian Bunk
    Acked-by: David Howells
    Acked-by: Greg Ungerer
    Acked-by: Paul Mundt
    Acked-by: Ralf Baechle
    Signed-off-by: Jesse Barnes

    Adrian Bunk
     

26 Jun, 2008

3 commits


16 Jun, 2008

1 commit


09 Jun, 2008

4 commits


03 Jun, 2008

2 commits


02 Jun, 2008

3 commits

  • 4k stacks on nommu ends up blowing up with all sorts of interesting
    slab corruption. Disable this by default unless BROKEN is also
    enabled.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Replace the COPY_UNALIGNED_WORD helper.

    Signed-off-by: Harvey Harrison
    Signed-off-by: Paul Mundt

    Harvey Harrison
     
  • This patch fixes the following build error caused by
    commit a1dc4b59fa4af97ae68ee214d4d72bbd7c7ec1dc
    (sh: intc_sh5 depends on cayman board for IRQ priority table.):

    ...
    CC arch/sh/kernel/cpu/irq/intc-sh5.o
    /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/sh/kernel/cpu/irq/intc-sh5.c: In function 'plat_irq_setup':
    /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/sh/kernel/cpu/irq/intc-sh5.c:257: error: expected declaration or statement at end of input
    make[4]: *** [arch/sh/kernel/cpu/irq/intc-sh5.o] Error 1

    Reported-by: Adrian Bunk
    Signed-off-by: Adrian Bunk
    Signed-off-by: Paul Mundt

    Adrian Bunk
     

26 May, 2008

1 commit


25 May, 2008

1 commit