12 Jun, 2013

1 commit

  • Pull kvm bugfixes from Gleb Natapov:
    "There is one more fix for MIPS KVM ABI here, MIPS and PPC build
    breakage fixes and a couple of PPC bug fixes"

    * 'fixes' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
    kvm/ppc/booke: Hold srcu lock when calling gfn functions
    kvm/ppc/booke64: Disable e6500 support
    kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage
    mips/kvm: Use KVM_REG_MIPS and proper size indicators for *_ONE_REG
    kvm: Add definition of KVM_REG_MIPS
    KVM: add kvm_para_available to asm-generic/kvm_para.h

    Linus Torvalds
     

06 Jun, 2013

1 commit

  • Since the introduction of preemptible mmu_gather TLB fast mode has been
    broken. TLB fast mode relies on there being absolutely no concurrency;
    it frees pages first and invalidates TLBs later.

    However now we can get concurrency and stuff goes *bang*.

    This patch removes all tlb_fast_mode() code; it was found the better
    option vs trying to patch the hole by entangling tlb invalidation with
    the scheduler.

    Cc: Thomas Gleixner
    Cc: Russell King
    Cc: Tony Luck
    Reported-by: Max Filippov
    Signed-off-by: Peter Zijlstra
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     

05 Jun, 2013

1 commit

  • According to include/uapi/linux/kvm_para.h architectures should define
    kvm_para_available, so add an implementation to asm-generic/kvm_para.h
    which just returns false.

    This fixes intel8x0.c build failure on mips with KVM enabled.

    Signed-off-by: James Hogan
    Cc: Marcelo Tosatti
    Cc: Gleb Natapov
    Cc: Arnd Bergmann
    Signed-off-by: Gleb Natapov

    James Hogan
     

22 May, 2013

1 commit

  • On s390 the prefix page and absolute zero pages are not correctly
    returned when reading /dev/mem. The reason is that the s390 asm/io.h
    file includes the asm-generic/io.h file which then defines
    xlate_dev_mem_ptr() and therefore overwrites the s390 specific
    version that does the correct swap operation for prefix and absolute
    zero pages. The problem is a regression that was introduced with git
    commit cd248341 (s390/pci: base support).

    To fix the problem add "#ifndef xlate_dev_mem_ptr" in asm-generic/io.h
    and "#define xlate_dev_mem_ptr" in asm/io.h. This ensures that the
    s390 version is used. For completeness also add the "#ifndef"
    construct for xlate_dev_kmem_ptr().

    Signed-off-by: Michael Holzheu
    Signed-off-by: Martin Schwidefsky

    Michael Holzheu
     

06 May, 2013

2 commits

  • Pull 'full dynticks' support from Ingo Molnar:
    "This tree from Frederic Weisbecker adds a new, (exciting! :-) core
    kernel feature to the timer and scheduler subsystems: 'full dynticks',
    or CONFIG_NO_HZ_FULL=y.

    This feature extends the nohz variable-size timer tick feature from
    idle to busy CPUs (running at most one task) as well, potentially
    reducing the number of timer interrupts significantly.

    This feature got motivated by real-time folks and the -rt tree, but
    the general utility and motivation of full-dynticks runs wider than
    that:

    - HPC workloads get faster: CPUs running a single task should be able
    to utilize a maximum amount of CPU power. A periodic timer tick at
    HZ=1000 can cause a constant overhead of up to 1.0%. This feature
    removes that overhead - and speeds up the system by 0.5%-1.0% on
    typical distro configs even on modern systems.

    - Real-time workload latency reduction: CPUs running critical tasks
    should experience as little jitter as possible. The last remaining
    source of kernel-related jitter was the periodic timer tick.

    - A single task executing on a CPU is a pretty common situation,
    especially with an increasing number of cores/CPUs, so this feature
    helps desktop and mobile workloads as well.

    The cost of the feature is mainly related to increased timer
    reprogramming overhead when a CPU switches its tick period, and thus
    slightly longer to-idle and from-idle latency.

    Configuration-wise a third mode of operation is added to the existing
    two NOHZ kconfig modes:

    - CONFIG_HZ_PERIODIC: [formerly !CONFIG_NO_HZ], now explicitly named
    as a config option. This is the traditional Linux periodic tick
    design: there's a HZ tick going on all the time, regardless of
    whether a CPU is idle or not.

    - CONFIG_NO_HZ_IDLE: [formerly CONFIG_NO_HZ=y], this turns off the
    periodic tick when a CPU enters idle mode.

    - CONFIG_NO_HZ_FULL: this new mode, in addition to turning off the
    tick when a CPU is idle, also slows the tick down to 1 Hz (one
    timer interrupt per second) when only a single task is running on a
    CPU.

    The .config behavior is compatible: existing !CONFIG_NO_HZ and
    CONFIG_NO_HZ=y settings get translated to the new values, without the
    user having to configure anything. CONFIG_NO_HZ_FULL is turned off by
    default.

    This feature is based on a lot of infrastructure work that has been
    steadily going upstream in the last 2-3 cycles: related RCU support
    and non-periodic cputime support in particular is upstream already.

    This tree adds the final pieces and activates the feature. The pull
    request is marked RFC because:

    - it's marked 64-bit only at the moment - the 32-bit support patch is
    small but did not get ready in time.

    - it has a number of fresh commits that came in after the merge
    window. The overwhelming majority of commits are from before the
    merge window, but still some aspects of the tree are fresh and so I
    marked it RFC.

    - it's a pretty wide-reaching feature with lots of effects - and
    while the components have been in testing for some time, the full
    combination is still not very widely used. That it's default-off
    should reduce its regression abilities and obviously there are no
    known regressions with CONFIG_NO_HZ_FULL=y enabled either.

    - the feature is not completely idempotent: there is no 100%
    equivalent replacement for a periodic scheduler/timer tick. In
    particular there's ongoing work to map out and reduce its effects
    on scheduler load-balancing and statistics. This should not impact
    correctness though, there are no known regressions related to this
    feature at this point.

    - it's a pretty ambitious feature that with time will likely be
    enabled by most Linux distros, and we'd like you to make input on
    its design/implementation, if you dislike some aspect we missed.
    Without flaming us to crisp! :-)

    Future plans:

    - there's ongoing work to reduce 1Hz to 0Hz, to essentially shut off
    the periodic tick altogether when there's a single busy task on a
    CPU. We'd first like 1 Hz to be exposed more widely before we go
    for the 0 Hz target though.

    - once we reach 0 Hz we can remove the periodic tick assumption from
    nr_running>=2 as well, by essentially interrupting busy tasks only
    as frequently as the sched_latency constraints require us to do -
    once every 4-40 msecs, depending on nr_running.

    I am personally leaning towards biting the bullet and doing this in
    v3.10, like the -rt tree this effort has been going on for too long -
    but the final word is up to you as usual.

    More technical details can be found in Documentation/timers/NO_HZ.txt"

    * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)
    sched: Keep at least 1 tick per second for active dynticks tasks
    rcu: Fix full dynticks' dependency on wide RCU nocb mode
    nohz: Protect smp_processor_id() in tick_nohz_task_switch()
    nohz_full: Add documentation.
    cputime_nsecs: use math64.h for nsec resolution conversion helpers
    nohz: Select VIRT_CPU_ACCOUNTING_GEN from full dynticks config
    nohz: Reduce overhead under high-freq idling patterns
    nohz: Remove full dynticks' superfluous dependency on RCU tree
    nohz: Fix unavailable tick_stop tracepoint in dynticks idle
    nohz: Add basic tracing
    nohz: Select wide RCU nocb for full dynticks
    nohz: Disable the tick when irq resume in full dynticks CPU
    nohz: Re-evaluate the tick for the new task after a context switch
    nohz: Prepare to stop the tick on irq exit
    nohz: Implement full dynticks kick
    nohz: Re-evaluate the tick from the scheduler IPI
    sched: New helper to prevent from stopping the tick in full dynticks
    sched: Kick full dynticks CPU that have more than one task enqueued.
    perf: New helper to prevent full dynticks CPUs from stopping tick
    perf: Kick full dynticks CPU if events rotation is needed
    ...

    Linus Torvalds
     
  • Pull mudule updates from Rusty Russell:
    "We get rid of the general module prefix confusion with a binary config
    option, fix a remove/insert race which Never Happens, and (my
    favorite) handle the case when we have too many modules for a single
    commandline. Seriously, the kernel is full, please go away!"

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    modpost: fix unwanted VMLINUX_SYMBOL_STR expansion
    X.509: Support parse long form of length octets in Authority Key Identifier
    module: don't unlink the module until we've removed all exposure.
    kernel: kallsyms: memory override issue, need check destination buffer length
    MODSIGN: do not send garbage to stderr when enabling modules signature
    modpost: handle huge numbers of modules.
    modpost: add -T option to read module names from file/stdin.
    modpost: minor cleanup.
    genksyms: pass symbol-prefix instead of arch
    module: fix symbol versioning with symbol prefixes
    CONFIG_SYMBOL_PREFIX: cleanup.

    Linus Torvalds
     

02 May, 2013

1 commit


01 May, 2013

1 commit

  • Pull compat cleanup from Al Viro:
    "Mostly about syscall wrappers this time; there will be another pile
    with patches in the same general area from various people, but I'd
    rather push those after both that and vfs.git pile are in."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
    syscalls.h: slightly reduce the jungles of macros
    get rid of union semop in sys_semctl(2) arguments
    make do_mremap() static
    sparc: no need to sign-extend in sync_file_range() wrapper
    ppc compat wrappers for add_key(2) and request_key(2) are pointless
    x86: trim sys_ia32.h
    x86: sys32_kill and sys32_mprotect are pointless
    get rid of compat_sys_semctl() and friends in case of ARCH_WANT_OLD_COMPAT_IPC
    merge compat sys_ipc instances
    consolidate compat lookup_dcookie()
    convert vmsplice to COMPAT_SYSCALL_DEFINE
    switch getrusage() to COMPAT_SYSCALL_DEFINE
    switch epoll_pwait to COMPAT_SYSCALL_DEFINE
    convert sendfile{,64} to COMPAT_SYSCALL_DEFINE
    switch signalfd{,4}() to COMPAT_SYSCALL_DEFINE
    make SYSCALL_DEFINE-generated wrappers do asmlinkage_protect
    make HAVE_SYSCALL_WRAPPERS unconditional
    consolidate cond_syscall and SYSCALL_ALIAS declarations
    teach SYSCALL_DEFINE how to deal with long long/unsigned long long
    get rid of duplicate logics in __SC_....[1-6] definitions

    Linus Torvalds
     

30 Apr, 2013

2 commits

  • On architectures where a pgd entry may be shared between user and kernel
    (e.g. ARM+LPAE), freeing page tables needs a ceiling other than 0.
    This patch introduces a generic USER_PGTABLES_CEILING that arch code can
    override. It is the responsibility of the arch code setting the ceiling
    to ensure the complete freeing of the page tables (usually in
    pgd_free()).

    [catalin.marinas@arm.com: commit log; shift_arg_pages(), asm-generic/pgtables.h changes]
    Signed-off-by: Hugh Dickins
    Signed-off-by: Catalin Marinas
    Cc: Russell King
    Cc: [3.3+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Commit abf09bed3cce ("s390/mm: implement software dirty bits")
    introduced another difference in the pte layout vs. the pmd layout on
    s390, thoroughly breaking the s390 support for hugetlbfs. This requires
    replacing some more pte_xxx functions in mm/hugetlbfs.c with a
    huge_pte_xxx version.

    This patch introduces those huge_pte_xxx functions and their generic
    implementation in asm-generic/hugetlb.h, which will now be included on
    all architectures supporting hugetlbfs apart from s390. This change
    will be a no-op for those architectures.

    [akpm@linux-foundation.org: fix warning]
    Signed-off-by: Gerald Schaefer
    Cc: Mel Gorman
    Cc: Hugh Dickins
    Cc: Hillf Danton
    Acked-by: Michal Hocko [for !s390 parts]
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Paul Mundt
    Cc: "David S. Miller"
    Cc: Chris Metcalf
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gerald Schaefer
     

27 Apr, 2013

1 commit

  • For the nsec resolution conversions to be useable on non 64-bit
    architectures, the helpers in need to be used so the
    right arch-specific 64-bit math helpers can be used (e.g. do_div())

    Signed-off-by: Kevin Hilman
    Cc: Christoph Lameter
    Cc: Hakan Akkan
    Cc: Ingo Molnar
    Cc: Kevin Hilman
    Cc: Li Zhong
    Cc: Paul E. McKenney
    Cc: Paul Gortmaker
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Thomas Gleixner
    Signed-off-by: Frederic Weisbecker

    Kevin Hilman
     

13 Apr, 2013

1 commit

  • This patch attempts to fix:

    https://bugzilla.kernel.org/show_bug.cgi?id=56461

    The symptom is a crash and messages like this:

    chrome: Corrupted page table at address 34a03000
    *pdpt = 0000000000000000 *pde = 0000000000000000
    Bad pagetable: 000f [#1] PREEMPT SMP

    Ingo guesses this got introduced by commit 611ae8e3f520 ("x86/tlb:
    enable tlb flush range support for x86") since that code started to free
    unused pagetables.

    On x86-32 PAE kernels, that new code has the potential to free an entire
    PMD page and will clear one of the four page-directory-pointer-table
    (aka pgd_t entries).

    The hardware aggressively "caches" these top-level entries and invlpg
    does not actually affect the CPU's copy. If we clear one we *HAVE* to
    do a full TLB flush, otherwise we might continue using a freed pmd page.
    (note, we do this properly on the population side in pud_populate()).

    This patch tracks whenever we clear one of these entries in the 'struct
    mmu_gather', and ensures that we follow up with a full tlb flush.

    BTW, I disassembled and checked that:

    if (tlb->fullmm == 0)
    and
    if (!tlb->fullmm && !tlb->need_flush_all)

    generate essentially the same code, so there should be zero impact there
    to the !PAE case.

    Signed-off-by: Dave Hansen
    Cc: Peter Anvin
    Cc: Ingo Molnar
    Cc: Artem S Tashkinov
    Signed-off-by: Linus Torvalds

    Dave Hansen
     

15 Mar, 2013

1 commit

  • We have CONFIG_SYMBOL_PREFIX, which three archs define to the string
    "_". But Al Viro broke this in "consolidate cond_syscall and
    SYSCALL_ALIAS declarations" (in linux-next), and he's not the first to
    do so.

    Using CONFIG_SYMBOL_PREFIX is awkward, since we usually just want to
    prefix it so something. So various places define helpers which are
    defined to nothing if CONFIG_SYMBOL_PREFIX isn't set:

    1) include/asm-generic/unistd.h defines __SYMBOL_PREFIX.
    2) include/asm-generic/vmlinux.lds.h defines VMLINUX_SYMBOL(sym)
    3) include/linux/export.h defines MODULE_SYMBOL_PREFIX.
    4) include/linux/kernel.h defines SYMBOL_PREFIX (which differs from #7)
    5) kernel/modsign_certificate.S defines ASM_SYMBOL(sym)
    6) scripts/modpost.c defines MODULE_SYMBOL_PREFIX
    7) scripts/Makefile.lib defines SYMBOL_PREFIX on the commandline if
    CONFIG_SYMBOL_PREFIX is set, so that we have a non-string version
    for pasting.

    (arch/h8300/include/asm/linkage.h defines SYMBOL_NAME(), too).

    Let's solve this properly:
    1) No more generic prefix, just CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX.
    2) Make linux/export.h usable from asm.
    3) Define VMLINUX_SYMBOL() and VMLINUX_SYMBOL_STR().
    4) Make everyone use them.

    Signed-off-by: Rusty Russell
    Reviewed-by: James Hogan
    Tested-by: James Hogan (metag)

    Rusty Russell
     

13 Mar, 2013

1 commit

  • asm/cmpxchg.h can be included on its own and needs to be self-consistent.
    The definitions for the cmpxchg*_local macros, as such, need to be part
    of this file.

    This fixes a build issue on OpenRISC since the system.h smashing patch
    96f951edb1f1bdbbc99b0cd458f9808bb83d58ae that introdued the direct inclusion
    asm/cmpxchg.h into linux/llist.h.

    CC: David Howells
    Signed-off-by: Jonas Bonn
    Acked-by: Arnd Bergmann

    Jonas Bonn
     

04 Mar, 2013

2 commits

  • take them to asm/linkage.h, with default in linux/linkage.h

    Signed-off-by: Al Viro

    Al Viro
     
  • Pull new ImgTec Meta architecture from James Hogan:
    "This adds core architecture support for Imagination's Meta processor
    cores, followed by some later miscellaneous arch/metag cleanups and
    fixes which I kept separate to ease review:

    - Support for basic Meta 1 (ATP) and Meta 2 (HTP) core architecture
    - A few fixes all over, particularly for symbol prefixes
    - A few privilege protection fixes
    - Several cleanups (setup.c includes, split out a lot of
    metag_ksyms.c)
    - Fix some missing exports
    - Convert hugetlb to use vm_unmapped_area()
    - Copy device tree to non-init memory
    - Provide dma_get_sgtable()"

    * tag 'metag-v3.9-rc1-v4' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: (61 commits)
    metag: Provide dma_get_sgtable()
    metag: prom.h: remove declaration of metag_dt_memblock_reserve()
    metag: copy devicetree to non-init memory
    metag: cleanup metag_ksyms.c includes
    metag: move mm/init.c exports out of metag_ksyms.c
    metag: move usercopy.c exports out of metag_ksyms.c
    metag: move setup.c exports out of metag_ksyms.c
    metag: move kick.c exports out of metag_ksyms.c
    metag: move traps.c exports out of metag_ksyms.c
    metag: move irq enable out of irqflags.h on SMP
    genksyms: fix metag symbol prefix on crc symbols
    metag: hugetlb: convert to vm_unmapped_area()
    metag: export clear_page and copy_page
    metag: export metag_code_cache_flush_all
    metag: protect more non-MMU memory regions
    metag: make TXPRIVEXT bits explicit
    metag: kernel/setup.c: sort includes
    perf: Enable building perf tools for Meta
    metag: add boot time LNKGET/LNKSET check
    metag: add __init to metag_cache_probe()
    ...

    Linus Torvalds
     

03 Mar, 2013

2 commits

  • Some architectures have symbol prefixes and set CONFIG_SYMBOL_PREFIX,
    but this wasn't taken into account by the generic cond_syscall. It's
    easy enough to fix in a generic fashion, so add the symbol prefix to
    symbol names in cond_syscall when CONFIG_SYMBOL_PREFIX is set.

    Signed-off-by: James Hogan
    Acked-by: Arnd Bergmann
    Acked-by: Mike Frysinger

    James Hogan
     
  • Make asm-generic/io.h check CONFIG_VIRT_TO_BUS before defining
    virt_to_bus() and bus_to_virt(), otherwise it's easy to accidentally
    have a silently failing incorrect direct mapped definition rather then
    no definition at all.

    Signed-off-by: James Hogan
    Acked-by: Arnd Bergmann

    James Hogan
     

02 Mar, 2013

1 commit

  • Pull new ARC architecture from Vineet Gupta:
    "Initial ARC Linux port with some fixes on top for 3.9-rc1:

    I would like to introduce the Linux port to ARC Processors (from
    Synopsys) for 3.9-rc1. The patch-set has been discussed on the public
    lists since Nov and has received a fair bit of review, specially from
    Arnd, tglx, Al and other subsystem maintainers for DeviceTree, kgdb...

    The arch bits are in arch/arc, some asm-generic changes (acked by
    Arnd), a minor change to PARISC (acked by Helge).

    The series is a touch bigger for a new port for 2 main reasons:

    1. It enables a basic kernel in first sub-series and adds
    ptrace/kgdb/.. later

    2. Some of the fallout of review (DeviceTree support, multi-platform-
    image support) were added on top of orig series, primarily to
    record the revision history.

    This updated pull request additionally contains

    - fixes due to our GNU tools catching up with the new syscall/ptrace
    ABI

    - some (minor) cross-arch Kconfig updates."

    * tag 'arc-v3.9-rc1-late' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: (82 commits)
    ARC: split elf.h into uapi and export it for userspace
    ARC: Fixup the current ABI version
    ARC: gdbserver using regset interface possibly broken
    ARC: Kconfig cleanup tracking cross-arch Kconfig pruning in merge window
    ARC: make a copy of flat DT
    ARC: [plat-arcfpga] DT arc-uart bindings change: "baud" => "current-speed"
    ARC: Ensure CONFIG_VIRT_TO_BUS is not enabled
    ARC: Fix pt_orig_r8 access
    ARC: [3.9] Fallout of hlist iterator update
    ARC: 64bit RTSC timestamp hardware issue
    ARC: Don't fiddle with non-existent caches
    ARC: Add self to MAINTAINERS
    ARC: Provide a default serial.h for uart drivers needing BASE_BAUD
    ARC: [plat-arcfpga] defconfig for fully loaded ARC Linux
    ARC: [Review] Multi-platform image #8: platform registers SMP callbacks
    ARC: [Review] Multi-platform image #7: SMP common code to use callbacks
    ARC: [Review] Multi-platform image #6: cpu-to-dma-addr optional
    ARC: [Review] Multi-platform image #5: NR_IRQS defined by ARC core
    ARC: [Review] Multi-platform image #4: Isolate platform headers
    ARC: [Review] Multi-platform image #3: switch to board callback
    ...

    Linus Torvalds
     

27 Feb, 2013

3 commits

  • Pull microblaze update from Michal Simek:
    "Microblaze changes.

    After my discussion with Arnd I have also added there asm-generic io
    patch which is Acked by him and Geert."

    * 'next' of git://git.monstr.eu/linux-2.6-microblaze:
    asm-generic: io: Fix ioread16/32be and iowrite16/32be
    microblaze: Do not use module.h in files which are not modules
    microblaze: Fix coding style issues
    microblaze: Add missing return from debugfs_tlb
    microblaze: Makefile clean
    microblaze: Add .gitignore entries for auto-generated files
    microblaze: Fix strncpy_from_user macro

    Linus Torvalds
     
  • Pull scheduler fixes from Ingo Molnar.

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    cputime: Use local_clock() for full dynticks cputime accounting
    cputime: Constify timeval_to_cputime(timeval) argument
    sched: Move RR_TIMESLICE from sysctl.h to rt.h
    sched: Fix /proc/sched_debug failure on very very large systems
    sched: Fix /proc/sched_stat failure on very very large systems
    sched/core: Remove the obsolete and unused nr_uninterruptible() function

    Linus Torvalds
     
  • Pull GPIO changes from Grant Likely:
    "This branch contains the usual set of individual driver improvements
    and bug fixes, as well as updates to the core code. The more notable
    changes include:

    - Internally add new API for referencing GPIOs by gpio_desc instead
    of number. Eventually this will become a public API

    - ACPI GPIO binding support"

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux: (33 commits)
    arm64: select ARCH_WANT_OPTIONAL_GPIOLIB
    gpio: em: Use irq_domain_add_simple() to fix runtime error
    gpio: using common order: let 'static const' instead of 'const static'
    gpio/vt8500: memory cleanup missing
    gpiolib: Fix locking on gpio debugfs files
    gpiolib: let gpio_chip reference its descriptors
    gpiolib: use descriptors internally
    gpiolib: use gpio_chips list in gpiochip_find_base
    gpiolib: use gpio_chips list in sysfs ops
    gpiolib: use gpio_chips list in gpiochip_find
    gpiolib: use gpio_chips list in gpiolib_sysfs_init
    gpiolib: link all gpio_chips using a list
    gpio/langwell: cleanup driver
    gpio/langwell: Add Cloverview ids to pci device table
    gpio/lynxpoint: add chipset gpio driver.
    gpiolib: add missing braces in gpio_direction_show
    gpiolib-acpi: Fix error checks in interrupt requesting
    gpio: mpc8xxx: don't set IRQ_TYPE_NONE when creating irq mapping
    gpiolib: remove gpiochip_reserve()
    arm: pxa: tosa: do not use gpiochip_reserve()
    ...

    Linus Torvalds
     

24 Feb, 2013

2 commits

  • Saw the following compiler warning on the linux-next tree:

    kernel/itimer.c: In function 'set_cpu_itimer':
    kernel/itimer.c:152:2: warning: passing argument 1 of 'timeval_to_cputime' discards 'const' qualifier from pointer target type [enabled by default]
    ...

    timeval_to_cputime() is always passed a constant timeval in
    argument, we need to teach the nsecs based cputime
    implementation about that.

    Signed-off-by: Li Zhong
    Signed-off-by: Frederic Weisbecker
    Cc: Steven Rostedt
    Cc: Kevin Hilman
    Link: http://lkml.kernel.org/r/1361636925-22288-2-git-send-email-fweisbec@gmail.com
    Signed-off-by: Ingo Molnar
    Cc: Steven Rostedt
    Cc: Kevin Hilman

    Li Zhong
     
  • Pull signal handling cleanups from Al Viro:
    "This is the first pile; another one will come a bit later and will
    contain SYSCALL_DEFINE-related patches.

    - a bunch of signal-related syscalls (both native and compat)
    unified.

    - a bunch of compat syscalls switched to COMPAT_SYSCALL_DEFINE
    (fixing several potential problems with missing argument
    validation, while we are at it)

    - a lot of now-pointless wrappers killed

    - a couple of architectures (cris and hexagon) forgot to save
    altstack settings into sigframe, even though they used the
    (uninitialized) values in sigreturn; fixed.

    - microblaze fixes for delivery of multiple signals arriving at once

    - saner set of helpers for signal delivery introduced, several
    architectures switched to using those."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (143 commits)
    x86: convert to ksignal
    sparc: convert to ksignal
    arm: switch to struct ksignal * passing
    alpha: pass k_sigaction and siginfo_t using ksignal pointer
    burying unused conditionals
    make do_sigaltstack() static
    arm64: switch to generic old sigaction() (compat-only)
    arm64: switch to generic compat rt_sigaction()
    arm64: switch compat to generic old sigsuspend
    arm64: switch to generic compat rt_sigqueueinfo()
    arm64: switch to generic compat rt_sigpending()
    arm64: switch to generic compat rt_sigprocmask()
    arm64: switch to generic sigaltstack
    sparc: switch to generic old sigsuspend
    sparc: COMPAT_SYSCALL_DEFINE does all sign-extension as well as SYSCALL_DEFINE
    sparc: kill sign-extending wrappers for native syscalls
    kill sparc32_open()
    sparc: switch to use of generic old sigaction
    sparc: switch sys_compat_rt_sigaction() to COMPAT_SYSCALL_DEFINE
    mips: switch to generic sys_fork() and sys_clone()
    ...

    Linus Torvalds
     

23 Feb, 2013

1 commit

  • Pull core locking changes from Ingo Molnar:
    "The biggest change is the rwsem lock-steal improvements, both to the
    assembly optimized and the spinlock based variants.

    The other notable change is the clean up of the seqlock implementation
    to be based on the seqcount infrastructure.

    The rest is assorted smaller debuggability, cleanup and continued -rt
    locking changes."

    * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    rwsem-spinlock: Implement writer lock-stealing for better scalability
    futex: Revert "futex: Mark get_robust_list as deprecated"
    generic: Use raw local irq variant for generic cmpxchg
    lockdep: Selftest: convert spinlock to raw spinlock
    seqlock: Use seqcount infrastructure
    seqlock: Remove unused functions
    ntp: Make ntp_lock raw
    intel_idle: Convert i7300_idle_lock to raw_spinlock
    locking: Various static lock initializer fixes
    lockdep: Print more info when MAX_LOCK_DEPTH is exceeded
    rwsem: Implement writer lock-stealing for better scalability
    lockdep: Silence warning if CONFIG_LOCKDEP isn't set
    watchdog: Use local_clock for get_timestamp()
    lockdep: Rename print_unlock_inbalance_bug() to print_unlock_imbalance_bug()
    locking/stat: Fix a typo

    Linus Torvalds
     

22 Feb, 2013

2 commits

  • Pull s390 update from Martin Schwidefsky:
    "The most prominent change in this patch set is the software dirty bit
    patch for s390. It removes __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY and
    the page_test_and_clear_dirty primitive which makes the common memory
    management code a bit less obscure.

    Heiko fixed most of the PCI related fallout, more often than not
    missing GENERIC_HARDIRQS dependencies. Notable is one of the 3270
    patches which adds an export to tty_io to be able to resize a tty.

    The rest is the usual bunch of cleanups and bug fixes."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (42 commits)
    s390/module: Add missing R_390_NONE relocation type
    drivers/gpio: add missing GENERIC_HARDIRQ dependency
    drivers/input: add couple of missing GENERIC_HARDIRQS dependencies
    s390/cleanup: rename SPP to LPP
    s390/mm: implement software dirty bits
    s390/mm: Fix crst upgrade of mmap with MAP_FIXED
    s390/linker skript: discard exit.data at runtime
    drivers/media: add missing GENERIC_HARDIRQS dependency
    s390/bpf,jit: add vlan tag support
    drivers/net,AT91RM9200: add missing GENERIC_HARDIRQS dependency
    iucv: fix kernel panic at reboot
    s390/Kconfig: sort list of arch selected config options
    phylib: remove !S390 dependeny from Kconfig
    uio: remove !S390 dependency from Kconfig
    dasd: fix sysfs cleanup in dasd_generic_remove
    s390/pci: fix hotplug module init
    s390/pci: cleanup clp page allocation
    s390/pci: cleanup clp inline assembly
    s390/perf: cpum_cf: fallback to software sampling events
    s390/mm: provide PAGE_SHARED define
    ...

    Linus Torvalds
     
  • Pull ARM SoC cleanups from Arnd Bergmann:
    "A large number of cleanups, all over the platforms. This is dominated
    largely by the Samsung platforms (s3c, s5p, exynos) and a few of the
    others moving code out of arch/arm into more appropriate subsystems.

    The clocksource and irqchip drivers are now abstracted to the point
    where platforms that are already cleaned up do not need to even
    specify the driver they use, it can all get configured from the device
    tree as we do for normal device drivers. The clocksource changes
    basically touch every single platform in the process.

    We further clean up the use of platform specific header files here,
    with the goal of turning more of the platforms over to being
    "multiplatform" enabled, which implies that they cannot expose their
    headers to architecture independent code any more.

    It is expected that no functional changes are part of the cleanup.
    The overall reduction in total code lines is mostly the result of
    removing broken and obsolete code."

    * tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (133 commits)
    ARM: mvebu: correct gated clock documentation
    ARM: kirkwood: add missing include for nsa310
    ARM: exynos: move exynos4210-combiner to drivers/irqchip
    mfd: db8500-prcmu: update resource passing
    drivers/db8500-cpufreq: delete dangling include
    ARM: at91: remove NEOCORE 926 board
    sunxi: Cleanup the reset code and add meaningful registers defines
    ARM: S3C24XX: header mach/regs-mem.h local
    ARM: S3C24XX: header mach/regs-power.h local
    ARM: S3C24XX: header mach/regs-s3c2412-mem.h local
    ARM: S3C24XX: Remove plat-s3c24xx directory in arch/arm/
    ARM: S3C24XX: transform s3c2443 subirqs into new structure
    ARM: S3C24XX: modify s3c2443 irq init to initialize all irqs
    ARM: S3C24XX: move s3c2443 irq code to irq.c
    ARM: S3C24XX: transform s3c2416 irqs into new structure
    ARM: S3C24XX: modify s3c2416 irq init to initialize all irqs
    ARM: S3C24XX: move s3c2416 irq init to common irq code
    ARM: S3C24XX: Modify s3c_irq_wake to use the hwirq property
    ARM: S3C24XX: Move irq syscore-ops to irq-pm
    clocksource: always define CLOCKSOURCE_OF_DECLARE
    ...

    Linus Torvalds
     

21 Feb, 2013

1 commit

  • Pull clock framework update from Michael Turquette:
    "The common clock framework changes for 3.9 are almost entirely fixes.

    None are dire enough to be Cc'd to stable which may be interpreted to
    mean that users of the framework are reaching stability. Lots of new
    adoption of this framework is via DeviceTree data and that comes
    through the respective architecture and platform trees instead of
    through the clk framework tree.

    Two new features are improved debugfs output and an improvement to how
    DT clocks are initialized by reusing a common method."

    * tag 'clk-for-linus' of git://git.linaro.org/people/mturquette/linux: (25 commits)
    clk: sunxi: remove stale Makefile entry
    clk: vexpress: Use common of_clk_init() function
    clk: zynq: Use common of_clk_init() function
    clk: vt8500: Use common of_clk_init() function
    clk: highbank: Use common of_clk_init() function
    clk: sunxi: Use common of_clk_init() function
    clk: add common of_clk_init() function
    clk: Deduplicate exit code in clk_set_rate
    clk: beautify Makefile
    clk-divider: fix macros
    clk: prima2: enable dt-binding clkdev mapping
    clk: mxs: Index is always positive
    clk: max77686: Avoid double free at remove time
    clk: remove exported function from __init section
    clk: vt8500: Add support for WM8750/WM8850 PLL clocks
    clk: vt8500: Fix division-by-0 when requested rate=0
    clk: vt8500: Fix device clock divisor calculations
    clk: vt8500: Fix error in PLL calculations on non-exact match.
    clk: max77686: Remove unnecessary NULL checking for container_of()
    clk: JSON debugfs clock tree summary
    ...

    Linus Torvalds
     

19 Feb, 2013

1 commit


14 Feb, 2013

3 commits

  • The s390 architecture is unique in respect to dirty page detection,
    it uses the change bit in the per-page storage key to track page
    modifications. All other architectures track dirty bits by means
    of page table entries. This property of s390 has caused numerous
    problems in the past, e.g. see git commit ef5d437f71afdf4a
    "mm: fix XFS oops due to dirty pages without buffers on s390".

    To avoid future issues in regard to per-page dirty bits convert
    s390 to a fault based software dirty bit detection mechanism. All
    user page table entries which are marked as clean will be hardware
    read-only, even if the pte is supposed to be writable. A write by
    the user process will trigger a protection fault which will cause
    the user pte to be marked as dirty and the hardware read-only bit
    is removed.

    With this change the dirty bit in the storage key is irrelevant
    for Linux as a host, but the storage key is still required for
    KVM guests. The effect is that page_test_and_clear_dirty and the
    related code can be removed. The referenced bit in the storage
    key is still used by the page_test_and_clear_young primitive to
    provide page age information.

    For page cache pages of mappings with mapping_cap_account_dirty
    there will not be any change in behavior as the dirty bit tracking
    already uses read-only ptes to control the amount of dirty pages.
    Only for swap cache pages and pages of mappings without
    mapping_cap_account_dirty there can be additional protection faults.
    To avoid an excessive number of additional faults the mk_pte
    primitive checks for PageDirty if the pgprot value allows for writes
    and pre-dirties the pte. That avoids all additional faults for
    tmpfs and shmem pages until these pages are added to the swap cache.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • E.g. readl is defined like this

    #define readl(addr) __le32_to_cpu(__raw_readl(addr))

    If a there is a readl() call that doesn't check the return value
    this will cause a compile warning on big endian machines due to
    the __le32_to_cpu macro magic.

    E.g. code like this:

    readl(addr);

    will generate the following compile warning:

    warning: value computed is not used [-Wunused-value]

    With this patch we get rid of dozens of compile warnings on s390.

    Signed-off-by: Heiko Carstens
    Acked-by: Arnd Bergmann
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • __ARCH_WANT_SYS_RT_SIGACTION,
    __ARCH_WANT_SYS_RT_SIGSUSPEND,
    __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND,
    __ARCH_WANT_COMPAT_SYS_SCHED_RR_GET_INTERVAL - not used anymore
    CONFIG_GENERIC_{SIGALTSTACK,COMPAT_RT_SIG{ACTION,QUEUEINFO,PENDING,PROCMASK}} -
    can be assumed always set.

    Al Viro
     

12 Feb, 2013

2 commits

  • Fix ioreadXXbe and iowriteXXbe functions which did
    additional little endian conversion on native big endian systems.
    Using be_to_cpu (cpu_to_be) conversions with __raw_read/write
    functions have resolved it.

    Signed-off-by: Michal Simek
    Acked-by: Arnd Bergmann
    Acked-by: Geert Uytterhoeven
    CC: Benjamin Herrenschmidt
    CC: Will Deacon
    CC: linux-arch@vger.kernel.org

    Michal Simek
     
  • Add a pointer to the gpio_chip structure that references the array of
    GPIO descriptors belonging to the chip, and update gpiolib code to use
    this pointer instead of the global gpio_desc[] array. This is another
    step towards the removal of the gpio_desc[] global array.

    Signed-off-by: Alexandre Courbot
    Reviewed-by: Linus Walleij
    Signed-off-by: Grant Likely

    Alexandre Courbot
     

11 Feb, 2013

3 commits


09 Feb, 2013

1 commit

  • Add a list member to gpio_chip that allows all chips to be parsed
    quickly. The current method requires parsing the entire GPIO integer
    space, which is painfully slow. Using a list makes many chip operations
    that involve lookup or parsing faster, and also simplifies the code. It
    is also necessary to eventually get rid of the global gpio_desc[] array.

    The list of gpio_chips is always ordered by base GPIO number to ensure
    chips traversal is done in the right order.

    Signed-off-by: Alexandre Courbot
    Reviewed-by: Linus Walleij
    Signed-off-by: Grant Likely

    Alexandre Courbot
     

05 Feb, 2013

2 commits

  • …usw/linux-gpio.git into gpio/next

    Device driver features, cleanups and bug fixes.

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

    Grant Likely
     
  • …x/kernel/git/frederic/linux-dynticks into sched/core

    Pull full-dynticks (user-space execution is undisturbed and
    receives no timer IRQs) preparation changes that convert the
    cputime accounting code to be full-dynticks ready,
    from Frederic Weisbecker:

    "This implements the cputime accounting on full dynticks CPUs.

    Typical cputime stats infrastructure relies on the timer tick and
    its periodic polling on the CPU to account the amount of time
    spent by the CPUs and the tasks per high level domains such as
    userspace, kernelspace, guest, ...

    Now we are preparing to implement full dynticks capability on
    Linux for Real Time and HPC users who want full CPU isolation.
    This feature requires a cputime accounting that doesn't depend
    on the timer tick.

    To implement it, this new cputime infrastructure plugs into
    kernel/user/guest boundaries to take snapshots of cputime and
    flush these to the stats when needed. This performs pretty
    much like CONFIG_VIRT_CPU_ACCOUNTING except that context location
    and cputime snaphots are synchronized between write and read
    side such that the latter can safely retrieve the pending tickless
    cputime of a task and add it to its latest cputime snapshot to
    return the correct result to the user."

    Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar