30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

26 Feb, 2010

1 commit


13 Feb, 2010

2 commits

  • Most machine classes want some way to register a block of clk_lookup
    structures, and most do it by implementing a clks_register() type
    function which walks an array, or by open-coding a loop.

    Consolidate all this into clkdev_add_table().

    Acked-by: H Hartley Sweeten
    Reviewed-by: Kevin Hilman
    Acked-by: Eric Miao
    Signed-off-by: Russell King

    Russell King
     
  • Otherwise more complicated uart configuration won't be possible.
    We can use r1 for tmp register for both head.S and debug.S.

    NOTE: This patch depends on another patch to add the the tmp register
    into all debug-macro.S files. That can be done with:

    $ sed -i -e "s/addruart,rx|addruart, rx/addruart, rx, tmp/"
    arch/arm/*/include/*/debug-macro.S

    Signed-off-by: Tony Lindgren
    Signed-off-by: Russell King

    Tony Lindgren
     

23 Sep, 2009

1 commit

  • This moves the mmci platform data definition struct away from
    arch/arm/include/asm/mach/mmc.h into the more proper place among
    the other primecells in include/linux/amba/mmci.h and at the same
    time renames it to "mmci.h", and also the struct in this file
    confusingly named mmc_platform_data has been renamed
    mmci_platform_data for clarity.

    Cc: Catalin Marinas
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     

12 Sep, 2009

1 commit


19 Jul, 2009

1 commit


09 Jul, 2009

1 commit


06 Jul, 2009

1 commit


11 Jun, 2009

1 commit


19 May, 2009

1 commit


07 May, 2009

1 commit

  • Add power management support to the VIC by registering
    each VIC as a system device to get suspend/resume
    events going.

    Since the VIC registeration is done early, we need to
    record the VICs in a static array which is used to add
    the system devices later once the initcalls are run. This
    means there is now a configuration value for the number
    of VICs in the system.

    Signed-off-by: Ben Dooks

    Ben Dooks
     

22 Apr, 2009

1 commit

  • Pass clocksource pointer to the read() callback for clocksources. This
    allows us to share the callback between multiple instances.

    [hugh@veritas.com: fix powerpc build of clocksource pass clocksource mods]
    [akpm@linux-foundation.org: cleanup]
    Signed-off-by: Magnus Damm
    Acked-by: John Stultz
    Cc: Thomas Gleixner
    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Magnus Damm
     

20 Mar, 2009

1 commit

  • OMAP wishes to pass state to the boot loader upon reboot in order to
    instruct it whether to wait for USB-based reflashing or not. There is
    already a facility to do this via the reboot() syscall, except we ignore
    the string passed to machine_restart().

    This patch fixes things to pass this string to arch_reset(). This means
    that we keep the reboot mode limited to telling the kernel _how_ to
    perform the reboot which should be independent of what we request the
    boot loader to do.

    Acked-by: Tony Lindgren
    Signed-off-by: Russell King

    Russell King
     

19 Feb, 2009

1 commit


07 Jan, 2009

1 commit


03 Jan, 2009

1 commit

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

    * 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (66 commits)
    x86: export vector_used_by_percpu_irq
    x86: use logical apicid in x2apic_cluster's x2apic_cpu_mask_to_apicid_and()
    sched: nominate preferred wakeup cpu, fix
    x86: fix lguest used_vectors breakage, -v2
    x86: fix warning in arch/x86/kernel/io_apic.c
    sched: fix warning in kernel/sched.c
    sched: move test_sd_parent() to an SMP section of sched.h
    sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc>0
    sched: activate active load balancing in new idle cpus
    sched: bias task wakeups to preferred semi-idle packages
    sched: nominate preferred wakeup cpu
    sched: favour lower logical cpu number for sched_mc balance
    sched: framework for sched_mc/smt_power_savings=N
    sched: convert BALANCE_FOR_xx_POWER to inline functions
    x86: use possible_cpus=NUM to extend the possible cpus allowed
    x86: fix cpu_mask_to_apicid_and to include cpu_online_mask
    x86: update io_apic.c to the new cpumask code
    x86: Introduce topology_core_cpumask()/topology_thread_cpumask()
    x86: xen: use smp_call_function_many()
    x86: use work_on_cpu in x86/kernel/cpu/mcheck/mce_amd_64.c
    ...

    Fixed up trivial conflict in kernel/time/tick-sched.c manually

    Linus Torvalds
     

13 Dec, 2008

1 commit


30 Nov, 2008

2 commits

  • As Al did for Versatile in 2ad4f86b60b649fd7428265c08d73a3bd360c81b,
    add a typesafe __io implementation for platforms to use. Convert
    platforms to use this new simple typesafe implementation.

    Signed-off-by: Russell King

    Russell King
     
  • When ISA_DMA_API is unset, we're not implementing the ISA DMA API,
    so there's no point in publishing the prototypes via asm/dma.h, nor
    including the machine dependent parts of that API.

    This allows us to remove a lot of mach/dma.h files which don't contain
    any useful code. Unfortunately though, some platforms put their own
    private non-ISA definitions into mach/dma.h, so we leave these behind
    and fix the appropriate #include statments.

    Signed-off-by: Russell King

    Russell King
     

28 Nov, 2008

3 commits


27 Nov, 2008

3 commits


13 Nov, 2008

1 commit


09 Nov, 2008

1 commit


12 Oct, 2008

1 commit

  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (236 commits)
    [ARM] 5300/1: fixup spitz reset during boot
    [ARM] 5295/1: make ZONE_DMA optional
    [ARM] 5239/1: Palm Zire 72 power management support
    [ARM] 5298/1: Drop desc_handle_irq()
    [ARM] 5297/1: [KS8695] Fix two compile-time warnings
    [ARM] 5296/1: [KS8695] Replace macro's with trailing underscores.
    [ARM] pxa: allow multi-machine PCMCIA builds
    [ARM] pxa: add preliminary CPUFREQ support for PXA3xx
    [ARM] pxa: add missing ACCR bit definitions to pxa3xx-regs.h
    [ARM] pxa: rename cpu-pxa.c to cpufreq-pxa2xx.c
    [ARM] pxa/zylonite: add support for USB OHCI
    [ARM] ohci-pxa27x: use ioremap() and offset for register access
    [ARM] ohci-pxa27x: introduce pxa27x_clear_otgph()
    [ARM] ohci-pxa27x: use platform_get_{irq,resource} for the resource
    [ARM] ohci-pxa27x: move OHCI controller specific registers into the driver
    [ARM] ohci-pxa27x: introduce flags to avoid direct access to OHCI registers
    [ARM] pxa: move I2S register and bit definitions into pxa2xx-i2s.c
    [ARM] pxa: simplify DMA register definitions
    [ARM] pxa: make additional DCSR bits valid for PXA3xx
    [ARM] pxa: move i2c register and bit definitions into i2c-pxa.c
    ...

    Fixed up conflicts in
    arch/arm/mach-versatile/core.c
    sound/soc/pxa/pxa2xx-ac97.c
    sound/soc/pxa/pxa2xx-i2s.c
    manually.

    Linus Torvalds
     

10 Oct, 2008

1 commit


09 Oct, 2008

1 commit


25 Sep, 2008

1 commit


06 Sep, 2008

1 commit


07 Aug, 2008

2 commits


19 Apr, 2008

1 commit


02 Jul, 2007

1 commit

  • ARM Versatile PCI config reads of one byte width have the lowest two
    bits of the address cleared and result in reading from a wrong place
    in the config space. This change is to use word size accesses like it is done for halfword reads.

    Byte reads are used for retrieving the IRQ number of a PCI device and the problem was not exposed until 2.6.20 because the value read was discarded in drivers/pci/setup-irq.c (recently fixed).

    Signed-off-by: Andrzej Zaborowski
    Acked-by: Paul Brook
    Signed-off-by: Russell King

    Andrzej Zaborowski
     

09 May, 2007

1 commit


22 Apr, 2007

2 commits