22 Dec, 2012

1 commit

  • Pull asm-generic cleanup from Arnd Bergmann:
    "These are a few cleanups for asm-generic:

    - a set of patches from Lars-Peter Clausen to generalize asm/mmu.h
    and use it in the architectures that don't need any special
    handling.
    - A patch from Will Deacon to remove the {read,write}s{b,w,l} as
    discussed during the arm64 review
    - A patch from James Hogan that helps with the meta architecture
    series."

    * tag 'asm-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    xtensa: Use generic asm/mmu.h for nommu
    h8300: Use generic asm/mmu.h
    c6x: Use generic asm/mmu.h
    asm-generic/mmu.h: Add support for FDPIC
    asm-generic/mmu.h: Remove unused vmlist field from mm_context_t
    asm-generic: io: remove {read,write} string functions
    asm-generic/io.h: remove asm/cacheflush.h include

    Linus Torvalds
     

18 Dec, 2012

1 commit

  • The {in,out}s{b,w,l} functions are designed to operate on a stream of
    bytes and therefore should not perform any byte-swapping, regardless of
    the CPU byte order.

    This patch fixes the generic IO header so that {in,out}s{b,w,l} call the
    __raw_{read,write} functions directly rather than going via the
    endian-correcting accessors.

    Signed-off-by: Will Deacon
    Cc: Mike Frysinger
    Acked-by: Arnd Bergmann
    Acked-by: Ben Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Will Deacon
     

17 Dec, 2012

1 commit

  • Pull Automatic NUMA Balancing bare-bones from Mel Gorman:
    "There are three implementations for NUMA balancing, this tree
    (balancenuma), numacore which has been developed in tip/master and
    autonuma which is in aa.git.

    In almost all respects balancenuma is the dumbest of the three because
    its main impact is on the VM side with no attempt to be smart about
    scheduling. In the interest of getting the ball rolling, it would be
    desirable to see this much merged for 3.8 with the view to building
    scheduler smarts on top and adapting the VM where required for 3.9.

    The most recent set of comparisons available from different people are

    mel: https://lkml.org/lkml/2012/12/9/108
    mingo: https://lkml.org/lkml/2012/12/7/331
    tglx: https://lkml.org/lkml/2012/12/10/437
    srikar: https://lkml.org/lkml/2012/12/10/397

    The results are a mixed bag. In my own tests, balancenuma does
    reasonably well. It's dumb as rocks and does not regress against
    mainline. On the other hand, Ingo's tests shows that balancenuma is
    incapable of converging for this workloads driven by perf which is bad
    but is potentially explained by the lack of scheduler smarts. Thomas'
    results show balancenuma improves on mainline but falls far short of
    numacore or autonuma. Srikar's results indicate we all suffer on a
    large machine with imbalanced node sizes.

    My own testing showed that recent numacore results have improved
    dramatically, particularly in the last week but not universally.
    We've butted heads heavily on system CPU usage and high levels of
    migration even when it shows that overall performance is better.
    There are also cases where it regresses. Of interest is that for
    specjbb in some configurations it will regress for lower numbers of
    warehouses and show gains for higher numbers which is not reported by
    the tool by default and sometimes missed in treports. Recently I
    reported for numacore that the JVM was crashing with
    NullPointerExceptions but currently it's unclear what the source of
    this problem is. Initially I thought it was in how numacore batch
    handles PTEs but I'm no longer think this is the case. It's possible
    numacore is just able to trigger it due to higher rates of migration.

    These reports were quite late in the cycle so I/we would like to start
    with this tree as it contains much of the code we can agree on and has
    not changed significantly over the last 2-3 weeks."

    * tag 'balancenuma-v11' of git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux-balancenuma: (50 commits)
    mm/rmap, migration: Make rmap_walk_anon() and try_to_unmap_anon() more scalable
    mm/rmap: Convert the struct anon_vma::mutex to an rwsem
    mm: migrate: Account a transhuge page properly when rate limiting
    mm: numa: Account for failed allocations and isolations as migration failures
    mm: numa: Add THP migration for the NUMA working set scanning fault case build fix
    mm: numa: Add THP migration for the NUMA working set scanning fault case.
    mm: sched: numa: Delay PTE scanning until a task is scheduled on a new node
    mm: sched: numa: Control enabling and disabling of NUMA balancing if !SCHED_DEBUG
    mm: sched: numa: Control enabling and disabling of NUMA balancing
    mm: sched: Adapt the scanning rate if a NUMA hinting fault does not migrate
    mm: numa: Use a two-stage filter to restrict pages being migrated for unlikely tasknode relationships
    mm: numa: migrate: Set last_nid on newly allocated page
    mm: numa: split_huge_page: Transfer last_nid on tail page
    mm: numa: Introduce last_nid to the page frame
    sched: numa: Slowly increase the scanning period as NUMA faults are handled
    mm: numa: Rate limit setting of pte_numa if node is saturated
    mm: numa: Rate limit the amount of memory that is migrated between nodes
    mm: numa: Structures for Migrate On Fault per NUMA migration rate limiting
    mm: numa: Migrate pages handled during a pmd_numa hinting fault
    mm: numa: Migrate on reference policy
    ...

    Linus Torvalds
     

14 Dec, 2012

1 commit

  • Pull s390 update from Martin Schwidefsky:
    "Add support to generate code for the latest machine zEC12, MOD and XOR
    instruction support for the BPF jit compiler, the dasd safe offline
    feature and the big one: the s390 architecture gets PCI support!!
    Right before the world ends on the 21st ;-)"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (41 commits)
    s390/qdio: rename the misleading PCI flag of qdio devices
    s390/pci: remove obsolete email addresses
    s390/pci: speed up __iowrite64_copy by using pci store block insn
    s390/pci: enable NEED_DMA_MAP_STATE
    s390/pci: no msleep in potential IRQ context
    s390/pci: fix potential NULL pointer dereference in dma_free_seg_table()
    s390/pci: use kmem_cache_zalloc instead of kmem_cache_alloc/memset
    s390/bpf,jit: add support for XOR instruction
    s390/bpf,jit: add support MOD instruction
    s390/cio: fix pgid reserved check
    vga: compile fix, disable vga for s390
    s390/pci: add PCI Kconfig options
    s390/pci: s390 specific PCI sysfs attributes
    s390/pci: PCI hotplug support via SCLP
    s390/pci: CHSC PCI support for error and availability events
    s390/pci: DMA support
    s390/pci: PCI adapter interrupts for MSI/MSI-X
    s390/bitops: find leftmost bit instruction support
    s390/pci: CLP interface
    s390/pci: base support
    ...

    Linus Torvalds
     

13 Dec, 2012

2 commits

  • We have two different implementation of is_zero_pfn() and my_zero_pfn()
    helpers: for architectures with and without zero page coloring.

    Let's consolidate them in .

    Signed-off-by: Kirill A. Shutemov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • Pull big execve/kernel_thread/fork unification series from Al Viro:
    "All architectures are converted to new model. Quite a bit of that
    stuff is actually shared with architecture trees; in such cases it's
    literally shared branch pulled by both, not a cherry-pick.

    A lot of ugliness and black magic is gone (-3KLoC total in this one):

    - kernel_thread()/kernel_execve()/sys_execve() redesign.

    We don't do syscalls from kernel anymore for either kernel_thread()
    or kernel_execve():

    kernel_thread() is essentially clone(2) with callback run before we
    return to userland, the callbacks either never return or do
    successful do_execve() before returning.

    kernel_execve() is a wrapper for do_execve() - it doesn't need to
    do transition to user mode anymore.

    As a result kernel_thread() and kernel_execve() are
    arch-independent now - they live in kernel/fork.c and fs/exec.c
    resp. sys_execve() is also in fs/exec.c and it's completely
    architecture-independent.

    - daemonize() is gone, along with its parts in fs/*.c

    - struct pt_regs * is no longer passed to do_fork/copy_process/
    copy_thread/do_execve/search_binary_handler/->load_binary/do_coredump.

    - sys_fork()/sys_vfork()/sys_clone() unified; some architectures
    still need wrappers (ones with callee-saved registers not saved in
    pt_regs on syscall entry), but the main part of those suckers is in
    kernel/fork.c now."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (113 commits)
    do_coredump(): get rid of pt_regs argument
    print_fatal_signal(): get rid of pt_regs argument
    ptrace_signal(): get rid of unused arguments
    get rid of ptrace_signal_deliver() arguments
    new helper: signal_pt_regs()
    unify default ptrace_signal_deliver
    flagday: kill pt_regs argument of do_fork()
    death to idle_regs()
    don't pass regs to copy_process()
    flagday: don't pass regs to copy_thread()
    bfin: switch to generic vfork, get rid of pointless wrappers
    xtensa: switch to generic clone()
    openrisc: switch to use of generic fork and clone
    unicore32: switch to generic clone(2)
    score: switch to generic fork/vfork/clone
    c6x: sanitize copy_thread(), get rid of clone(2) wrapper, switch to generic clone()
    take sys_fork/sys_vfork/sys_clone prototypes to linux/syscalls.h
    mn10300: switch to generic fork/vfork/clone
    h8300: switch to generic fork/vfork/clone
    tile: switch to generic clone()
    ...

    Conflicts:
    arch/microblaze/include/asm/Kbuild

    Linus Torvalds
     

12 Dec, 2012

2 commits

  • Pull perf updates from Ingo Molnar:
    "Lots of activity:

    211 files changed, 8328 insertions(+), 4116 deletions(-)

    most of it on the tooling side.

    Main changes:

    * ftrace enhancements and fixes from Steve Rostedt.

    * uprobes fixes, cleanups and preparation for the ARM port from Oleg
    Nesterov.

    * UAPI fixes, from David Howels - prepares the arch/x86 UAPI
    transition

    * Separate perf tests into multiple objects, one per test, from Jiri
    Olsa.

    * Make hardware event translations available in sysfs, from Jiri
    Olsa.

    * Fixes to /proc/pid/maps parsing, preparatory to supporting data
    maps, from Namhyung Kim

    * Implement ui_progress for GTK, from Namhyung Kim

    * Add framework for automated perf_event_attr tests, where tools with
    different command line options will be run from a 'perf test', via
    python glue, and the perf syscall will be intercepted to verify
    that the perf_event_attr fields set by the tool are those expected,
    from Jiri Olsa

    * Add a 'link' method for hists, so that we can have the leader with
    buckets for all the entries in all the hists. This new method is
    now used in the default 'diff' output, making the sum of the
    'baseline' column be 100%, eliminating blind spots.

    * libtraceevent fixes for compiler warnings trying to make perf it
    build on some distros, like fedora 14, 32-bit, some of the warnings
    really pointed to real bugs.

    * Add a browser for 'perf script' and make it available from the
    report and annotate browsers. It does filtering to find the
    scripts that handle events found in the perf.data file used. From
    Feng Tang

    * perf inject changes to allow showing where a task sleeps, from
    Andrew Vagin.

    * Makefile improvements from Namhyung Kim.

    * Add --pre and --post command hooks in 'stat', from Peter Zijlstra.

    * Don't stop synthesizing threads when one vanishes, this is for the
    existing threads when we start a tool like trace.

    * Use sched:sched_stat_runtime to provide a thread summary, this
    produces the same output as the 'trace summary' subcommand of
    tglx's original "trace" tool.

    * Support interrupted syscalls in 'trace'

    * Add an event duration column and filter in 'trace'.

    * There are references to the man pages in some tools, so try to
    build Documentation when installing, warning the user if that is
    not possible, from Borislav Petkov.

    * Give user better message if precise is not supported, from David
    Ahern.

    * Try to find cross-built objdump path by using the session
    environment information in the perf.data file header, from Irina
    Tirdea, original patch and idea by Namhyung Kim.

    * Diplays more output on features check for make V=1, so that one can
    figure out what is happening by looking at gcc output, etc. From
    Jiri Olsa.

    * Add on_exit implementation for systems without one, e.g. Android,
    from Bernhard Rosenkraenzer.

    * Only process events for vcpus of interest, helps handling large
    number of events, from David Ahern.

    * Cross compilation fixes for Android, from Irina Tirdea.

    * Add documentation on compiling for Android, from Irina Tirdea.

    * perf diff improvements from Jiri Olsa.

    * Target (task/user/cpu/syswide) handling improvements, from Namhyung
    Kim.

    * Add support in 'trace' for tracing workload given by command line,
    from Namhyung Kim.

    * ... and much more."

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (194 commits)
    uprobes: Use percpu_rw_semaphore to fix register/unregister vs dup_mmap() race
    perf evsel: Introduce is_group_member method
    perf powerpc: Use uapi/unistd.h to fix build error
    tools: Pass the target in descend
    tools: Honour the O= flag when tool build called from a higher Makefile
    tools: Define a Makefile function to do subdir processing
    perf ui: Always compile browser setup code
    perf ui: Add ui_progress__finish()
    perf ui gtk: Implement ui_progress functions
    perf ui: Introduce generic ui_progress helper
    perf ui tui: Move progress.c under ui/tui directory
    perf tools: Add basic event modifier sanity check
    perf tools: Omit group members from perf_evlist__disable/enable
    perf tools: Ensure single disable call per event in record comand
    perf tools: Fix 'disabled' attribute config for record command
    perf tools: Fix attributes for '{}' defined event groups
    perf tools: Use sscanf for parsing /proc/pid/maps
    perf tools: Add gtk. config option for launching GTK browser
    perf tools: Fix compile error on NO_NEWT=1 build
    perf hists: Initialize all of he->stat with zeroes
    ...

    Linus Torvalds
     
  • Pull GPIO updates from Grant Likely:
    "GPIO follow up patch and type change for v3.5 merge window

    Primarily device driver additions, features and bug fixes. Not much
    touching gpio common subsystem support. Should not be scary."

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6: (34 commits)
    gpio: Provide the STMPE GPIO driver with its own IRQ Domain
    gpio: add TS-5500 DIO blocks support
    gpio: pcf857x: use client->irq for gpio_to_irq()
    gpio: stmpe: Add DT support for stmpe gpio
    gpio: pl061 depends on ARM
    gpio/pl061: remove old comment
    gpio: SPEAr: add spi chipselect control driver
    gpio: gpio-max710x: Support device tree probing
    gpio: twl4030: Use only TWL4030_MODULE_LED for LED configuration
    gpio: tegra: read output value when gpio is set in direction_out
    gpio: pca953x: Add compatible strings to gpio-pca953x driver
    gpio: pca953x: Register an IRQ domain
    gpio: mvebu: Set free callback for gpio_chip
    gpio: tegra: Drop exporting static functions
    gpio: tegra: Staticize non-exported symbols
    gpio: tegra: fix suspend/resume apis
    gpio-pch: Set parent dev for gpio chip
    gpio: em: Fix build errors
    GPIO: clps711x: use platform_device_unregister in gpio_clps711x_init()
    gpio/tc3589x: convert to use the simple irqdomain
    ...

    Linus Torvalds
     

11 Dec, 2012

2 commits

  • Implement pte_numa and pmd_numa.

    We must atomically set the numa bit and clear the present bit to
    define a pte_numa or pmd_numa.

    Once a pte or pmd has been set as pte_numa or pmd_numa, the next time
    a thread touches a virtual address in the corresponding virtual range,
    a NUMA hinting page fault will trigger. The NUMA hinting page fault
    will clear the NUMA bit and set the present bit again to resolve the
    page fault.

    The expectation is that a NUMA hinting page fault is used as part
    of a placement policy that decides if a page should remain on the
    current node or migrated to a different node.

    Acked-by: Rik van Riel
    Signed-off-by: Andrea Arcangeli
    Signed-off-by: Mel Gorman

    Andrea Arcangeli
     
  • We need pte_present to return true for _PAGE_PROTNONE pages, to indicate that
    the pte is associated with a page.

    However, for TLB flushing purposes, we would like to know whether the pte
    points to an actually accessible page. This allows us to skip remote TLB
    flushes for pages that are not actually accessible.

    Fill in this method for x86 and provide a safe (but slower) method
    on other architectures.

    Signed-off-by: Rik van Riel
    Signed-off-by: Peter Zijlstra
    Fixed-by: Linus Torvalds
    Cc: Andrew Morton
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-66p11te4uj23gevgh4j987ip@git.kernel.org
    [ Added Linus's review fixes. ]
    Signed-off-by: Ingo Molnar

    Rik van Riel
     

10 Dec, 2012

2 commits


30 Nov, 2012

1 commit

  • Add PCI support for s390, (only 64 bit mode is supported by hardware):
    - PCI facility tests
    - PCI instructions: pcilg, pcistg, pcistb, stpcifc, mpcifc, rpcit
    - map readb/w/l/q and writeb/w/l/q to pcilg and pcistg instructions
    - pci_iomap implementation
    - memcpy_fromio/toio
    - pci_root_ops using special pcilg/pcistg
    - device, bus and domain allocation

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     

29 Nov, 2012

4 commits


21 Nov, 2012

2 commits

  • To be crystal clear on what the arguments mean in this
    funtion dealing with both GPIO and PIN ranges with confusing
    naming, we now have gpio_offset and pin_offset and we are
    on the clear that these are offsets into the specific GPIO
    and pin controller respectively. The GPIO chip itself will
    of course keep track of the base offset into the global
    GPIO number space.

    Reviewed-by: Viresh Kumar
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • Like with commit 3c739ad0df5eb41cd7adad879eda6aa09879eb76
    it is not always enough to specify all the pins of a gpio_chip
    from offset zero to be added to a pin map range, since the
    mapping from GPIO to pin controller may not be linear at all,
    but need to be broken into a few consecutive sub-ranges or
    1-pin entries for complicated cases. The ranges may also be
    sparse.

    This alters the signature of the function to accept offsets
    into both the GPIO-chip local pinspace and the pin controller
    local pinspace.

    Reviewed-by: Stephen Warren
    Reviewed-by: Viresh Kumar
    Signed-off-by: Linus Walleij

    Linus Walleij
     

14 Nov, 2012

1 commit

  • In order to promote interoperability between userspace tracers and ftrace,
    add a trace_clock that reports raw TSC values which will then be recorded
    in the ring buffer. Userspace tracers that also record TSCs are then on
    exactly the same time base as the kernel and events can be unambiguously
    interlaced.

    Tested: Enabled a tracepoint and the "tsc" trace_clock and saw very large
    timestamp values.

    v2:
    Move arch-specific bits out of generic code.
    v3:
    Rename "x86-tsc", cleanups
    v7:
    Generic arch bits in Kbuild.

    Google-Bug-Id: 6980623
    Link: http://lkml.kernel.org/r/1352837903-32191-1-git-send-email-dhsharp@google.com

    Acked-by: Ingo Molnar
    Cc: Masami Hiramatsu
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Signed-off-by: David Sharp
    Signed-off-by: Steven Rostedt

    David Sharp
     

12 Nov, 2012

4 commits

  • The includes are updated again: now we need to account
    for the problem introduced by commit:
    595679a8038584df7b9398bf34f61db3c038bfea
    "gpiolib: fix up function prototypes etc"

    Actually we need static inlines in include/asm-generic/gpio.h
    as well since we may have GPIOLIB but not PINCTRL.
    Make sure to move all the CONFIG_PINCTRL business
    to the end of the file so we are sure we have
    declared struct gpio_chip.

    And we need to keep the static inlines in
    but here for the !CONFIG_GENERIC_GPIO case, and then we
    may as well throw in a few warnings like the other
    prototypes there, if someone would have the bad taste
    of compiling without GENERIC_GPIO even.

    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • The fact that of_gpiochip_add_pin_range() and
    gpiochip_add_pin_range() share too much code is fragile and
    will invariably mean that bugs need to be fixed in two places
    instead of one.

    So separate the concerns of gpiolib.c and gpiolib-of.c and
    have the latter call the former as back-end. This is necessary
    also when going forward with other device descriptions such
    as ACPI.

    This is done by:

    - Adding a return code to gpiochip_add_pin_range() so we can
    reliably check whether this succeeds.

    - Get rid of the custom of_pinctrl_add_gpio_range() from
    pinctrl. Instead create of_pinctrl_get() to just retrive the
    pin controller per se from an OF node. This composite
    function was just begging to be deleted, it was way to
    purpose-specific.

    - Use pinctrl_dev_get_name() to get the name of the retrieved
    pin controller and use that to call back into the generic
    gpiochip_add_pin_range().

    Now the pin range is only allocated and tied to a pin
    controller from the core implementation in gpiolib.c.

    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • Commit 69e1601bca88809dc118abd1becb02c15a02ec71
    "gpiolib: provide provision to register pin ranges"

    Got most of it's function prototypes wrong, so fix this up by:

    - Moving the void declarations into static inlines in
    (previously the actual prototypes were declared
    here...)

    - Declare the gpiochip_add_pin_range() and
    gpiochip_remove_pin_ranges() functions in
    together with the pin range struct declaration itself.

    - Actually only implement these very functions in gpiolib.c
    if CONFIG_PINCTRL is set.

    - Additionally export the symbols since modules will need to
    be able to do this.

    Reviewed-by: Stephen Warren
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • pinctrl subsystem needs gpio chip base to prepare set of gpio
    pin ranges, which a given pinctrl driver can handle. This is
    important to handle pinctrl gpio request calls in order to
    program a given pin properly for gpio operation.

    As gpio base is allocated dynamically during gpiochip
    registration, presently there exists no clean way to pass this
    information to the pinctrl subsystem.

    After few discussions from [1], it was concluded that may be
    gpio controller reporting the pin range it supports, is a
    better way than pinctrl subsystem directly registering it.

    [1] http://comments.gmane.org/gmane.linux.ports.arm.kernel/184816

    Cc: Grant Likely
    Signed-off-by: Viresh Kumar
    Signed-off-by: Shiraz Hashim
    [Edited documentation a bit]
    Signed-off-by: Linus Walleij

    Shiraz Hashim
     

26 Oct, 2012

2 commits

  • The {read,write}s{b,w,l} functions are not defined across all
    architectures and therefore shouldn't be used by portable drivers. We
    should encourage driver writers to use the io{read,write}{8,16,32}_rep
    functions instead.

    This patch removes the {read,write} string functions for the generic IO
    header as they have no place in a new architecture port.

    Cc: Arnd Bergmann
    Cc: Mike Frysinger
    Cc: Ben Herrenschmidt
    Signed-off-by: Will Deacon

    Will Deacon
     
  • Add .get_direction callback to gpio_chip. This allows gpiolib
    to check the current direction of a gpio.
    Used to show the correct gpio direction in sysfs and debug entries.

    If callback is not set then gpiolib will work as previously;
    e.g. guessing everything is input until a direction is set.

    Signed-off-by: Mathias Nyman
    Signed-off-by: Linus Walleij

    Mathias Nyman
     

25 Oct, 2012

1 commit

  • Including from prevents
    cacheflush.h being able to use I/O functions like readl and writel due
    to circular include dependencies. It doesn't appear as if anything from
    cacheflush.h is actually used by the generic io.h, so remove the
    include.

    I've compile tested a defconfig compilation of blackfin, openrisc (which
    needed including from it's to get the PAGE_*
    definitions), and xtensa.

    Other architectures which use asm-generic/io.h are score and unicore32,
    and looking at their io.h I don't see any obvious problems.

    Signed-off-by: James Hogan
    Acked-by: Jonas Bonn
    Cc: Chris Zankel
    Cc: Max Filippov
    Cc: Mike Frysinger
    Cc: Chen Liqin
    Cc: Lennox Wu
    Cc: Guan Xuetao
    Signed-off-by: Arnd Bergmann

    James Hogan
     

17 Oct, 2012

1 commit

  • Remove non-UAPI Kbuild files that have become empty as a result of UAPI
    disintegration. They used to have only header-y lines in them and those have
    now moved to the Kbuild files in the corresponding uapi/ directories.

    Possibly these should not be removed but rather have a comment inserted to say
    they are intentionally left blank. This would make it easier to add generated
    header lines in future without having to restore the infrastructure.

    Note that at this point not all the UAPI disintegration parts have been merged,
    so it is likely that more empty Kbuild files will turn up.

    It is probably necessary to make the files non-empty to prevent the patch
    program from automatically deleting them when it reduces them to nothing.

    Signed-off-by: David Howells

    David Howells
     

15 Oct, 2012

2 commits

  • Pull MIPS update from Ralf Baechle:
    "Cleanups and fixes for breakage that occured earlier during this merge
    phase. Also a few patches that didn't make the first pull request.
    Of those is the Alchemy work that merges code for many of the SOCs and
    evaluation boards thus among other code shrinkage, reduces the number
    of MIPS defconfigs by 5."

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (22 commits)
    MIPS: SNI: Switch RM400 serial to SCCNXP driver
    MIPS: Remove unused empty_bad_pmd_table[] declaration.
    MIPS: MT: Remove kspd.
    MIPS: Malta: Fix section mismatch.
    MIPS: asm-offset.c: Delete unused irq_cpustat_t struct offsets.
    MIPS: Alchemy: Merge PB1100/1500 support into DB1000 code.
    MIPS: Alchemy: merge PB1550 support into DB1550 code
    MIPS: Alchemy: Single kernel for DB1200/1300/1550
    MIPS: Optimize TLB refill for RI/XI configurations.
    MIPS: proc: Cleanup printing of ASEs.
    MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required.
    MIPS: Add detection of DSP ASE Revision 2.
    MIPS: Optimize pgd_init and pmd_init
    MIPS: perf: Add perf functionality for BMIPS5000
    MIPS: perf: Split the Kconfig option CONFIG_MIPS_MT_SMP
    MIPS: perf: Remove unnecessary #ifdef
    MIPS: perf: Add cpu feature bit for PCI (performance counter interrupt)
    MIPS: perf: Change the "mips_perf_event" table unsupported indicator.
    MIPS: Align swapper_pg_dir to 64K for better TLB Refill code.
    vmlinux.lds.h: Allow architectures to add sections to the front of .bss
    ...

    Linus Torvalds
     
  • Pull module signing support from Rusty Russell:
    "module signing is the highlight, but it's an all-over David Howells frenzy..."

    Hmm "Magrathea: Glacier signing key". Somebody has been reading too much HHGTTG.

    * 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (37 commits)
    X.509: Fix indefinite length element skip error handling
    X.509: Convert some printk calls to pr_devel
    asymmetric keys: fix printk format warning
    MODSIGN: Fix 32-bit overflow in X.509 certificate validity date checking
    MODSIGN: Make mrproper should remove generated files.
    MODSIGN: Use utf8 strings in signer's name in autogenerated X.509 certs
    MODSIGN: Use the same digest for the autogen key sig as for the module sig
    MODSIGN: Sign modules during the build process
    MODSIGN: Provide a script for generating a key ID from an X.509 cert
    MODSIGN: Implement module signature checking
    MODSIGN: Provide module signing public keys to the kernel
    MODSIGN: Automatically generate module signing keys if missing
    MODSIGN: Provide Kconfig options
    MODSIGN: Provide gitignore and make clean rules for extra files
    MODSIGN: Add FIPS policy
    module: signature checking hook
    X.509: Add a crypto key parser for binary (DER) X.509 certificates
    MPILIB: Provide a function to read raw data into an MPI
    X.509: Add an ASN.1 decoder
    X.509: Add simple ASN.1 grammar compiler
    ...

    Linus Torvalds
     

11 Oct, 2012

1 commit

  • Follow-on MIPS patch will put an object here that needs 64K alignment
    to minimize padding.

    For those architectures that don't define BSS_FIRST_SECTIONS, there is
    no change.

    Signed-off-by: David Daney
    Cc: linux-mips@linux-mips.org
    Cc: linux-arch@vger.kernel.org,
    Cc: linux-kernel@vger.kernel.org
    Acked-by: Arnd Bergmann
    Patchwork: https://patchwork.linux-mips.org/patch/4221/
    Signed-off-by: Ralf Baechle

    David Daney
     

09 Oct, 2012

7 commits

  • Merge patches from Andrew Morton:
    "A few misc things and very nearly all of the MM tree. A tremendous
    amount of stuff (again), including a significant rbtree library
    rework."

    * emailed patches from Andrew Morton : (160 commits)
    sparc64: Support transparent huge pages.
    mm: thp: Use more portable PMD clearing sequenece in zap_huge_pmd().
    mm: Add and use update_mmu_cache_pmd() in transparent huge page code.
    sparc64: Document PGD and PMD layout.
    sparc64: Eliminate PTE table memory wastage.
    sparc64: Halve the size of PTE tables
    sparc64: Only support 4MB huge pages and 8KB base pages.
    memory-hotplug: suppress "Trying to free nonexistent resource " warning
    mm: memcg: clean up mm_match_cgroup() signature
    mm: document PageHuge somewhat
    mm: use %pK for /proc/vmallocinfo
    mm, thp: fix mlock statistics
    mm, thp: fix mapped pages avoiding unevictable list on mlock
    memory-hotplug: update memory block's state and notify userspace
    memory-hotplug: preparation to notify memory block's state at memory hot remove
    mm: avoid section mismatch warning for memblock_type_name
    make GFP_NOTRACK definition unconditional
    cma: decrease cc.nr_migratepages after reclaiming pagelist
    CMA: migrate mlocked pages
    kpageflags: fix wrong KPF_THP on non-huge compound pages
    ...

    Linus Torvalds
     
  • The CONFIG_TRANSPARENT_HUGEPAGE implementation of pmdp_get_and_clear()
    calls pmd_clear() with 3 arguments instead of 1.

    This happens only for !__HAVE_ARCH_PMDP_GET_AND_CLEAR which doesn't seem
    to happen because x86 defines this and it uses pmd_update.

    [mhocko@suse.cz: changelog addition]
    Signed-off-by: Catalin Marinas
    Signed-off-by: Steve Capper
    Signed-off-by: Will Deacon
    Cc: Arnd Bergmann
    Reviewed-by: Michal Hocko
    Reviewed-by: Kirill A. Shutemov
    Cc: Gerald Schaefer
    Reviewed-by: Andrea Arcangeli
    Cc: Chris Metcalf
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Catalin Marinas
     
  • On s390, a valid page table entry must not be changed while it is attached
    to any CPU. So instead of pmd_mknotpresent() and set_pmd_at(), an IDTE
    operation would be necessary there. This patch introduces the
    pmdp_invalidate() function, to allow architecture-specific
    implementations.

    Signed-off-by: Gerald Schaefer
    Cc: Andrea Arcangeli
    Cc: Andi Kleen
    Cc: Hugh Dickins
    Cc: Hillf Danton
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gerald Schaefer
     
  • The thp page table pre-allocation code currently assumes that pgtable_t is
    of type "struct page *". This may not be true for all architectures, so
    this patch removes that assumption by replacing the functions
    prepare_pmd_huge_pte() and get_pmd_huge_pte() with two new functions that
    can be defined architecture-specific.

    It also removes two VM_BUG_ON checks for page_count() and page_mapcount()
    operating on a pgtable_t. Apart from the VM_BUG_ON removal, there will be
    no functional change introduced by this patch.

    Signed-off-by: Gerald Schaefer
    Cc: Andrea Arcangeli
    Cc: Andi Kleen
    Cc: Hugh Dickins
    Cc: Hillf Danton
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gerald Schaefer
     
  • Replace the generic vma-flag VM_PFN_AT_MMAP with x86-only VM_PAT.

    We can toss mapping address from remap_pfn_range() into
    track_pfn_vma_new(), and collect all PAT-related logic together in
    arch/x86/.

    This patch also restores orignal frustration-free is_cow_mapping() check
    in remap_pfn_range(), as it was before commit v2.6.28-rc8-88-g3c8bb73
    ("x86: PAT: store vm_pgoff for all linear_over_vma_region mappings - v3")

    is_linear_pfn_mapping() checks can be removed from mm/huge_memory.c,
    because it already handled by VM_PFNMAP in VM_NO_THP bit-mask.

    [suresh.b.siddha@intel.com: Reset the VM_PAT flag as part of untrack_pfn_vma()]
    Signed-off-by: Konstantin Khlebnikov
    Signed-off-by: Suresh Siddha
    Cc: Venkatesh Pallipadi
    Cc: H. Peter Anvin
    Cc: Nick Piggin
    Cc: Ingo Molnar
    Cc: Alexander Viro
    Cc: Carsten Otte
    Cc: Chris Metcalf
    Cc: Cyrill Gorcunov
    Cc: Eric Paris
    Cc: Hugh Dickins
    Cc: James Morris
    Cc: Jason Baron
    Cc: Kentaro Takeda
    Cc: Matt Helsley
    Cc: Oleg Nesterov
    Cc: Peter Zijlstra
    Cc: Robert Richter
    Cc: Tetsuo Handa
    Cc: Venkatesh Pallipadi
    Acked-by: Linus Torvalds
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • With PAT enabled, vm_insert_pfn() looks up the existing pfn memory
    attribute and uses it. Expectation is that the driver reserves the
    memory attributes for the pfn before calling vm_insert_pfn().

    remap_pfn_range() (when called for the whole vma) will setup a new
    attribute (based on the prot argument) for the specified pfn range.
    This addresses the legacy usage which typically calls remap_pfn_range()
    with a desired memory attribute. For ranges smaller than the vma size
    (which is typically not the case), remap_pfn_range() will use the
    existing memory attribute for the pfn range.

    Expose two different API's for these different behaviors.
    track_pfn_insert() for tracking the pfn attribute set by vm_insert_pfn()
    and track_pfn_remap() for the remap_pfn_range().

    This cleanup also prepares the ground for the track/untrack pfn vma
    routines to take over the ownership of setting PAT specific vm_flag in
    the 'vma'.

    [khlebnikov@openvz.org: Clear checks in track_pfn_remap()]
    [akpm@linux-foundation.org: tweak a few comments]
    Signed-off-by: Suresh Siddha
    Signed-off-by: Konstantin Khlebnikov
    Cc: Venkatesh Pallipadi
    Cc: H. Peter Anvin
    Cc: Nick Piggin
    Cc: Ingo Molnar
    Cc: Alexander Viro
    Cc: Carsten Otte
    Cc: Chris Metcalf
    Cc: Cyrill Gorcunov
    Cc: Eric Paris
    Cc: Hugh Dickins
    Cc: James Morris
    Cc: Jason Baron
    Cc: Kentaro Takeda
    Cc: Konstantin Khlebnikov
    Cc: Matt Helsley
    Cc: Oleg Nesterov
    Cc: Peter Zijlstra
    Cc: Robert Richter
    Cc: Suresh Siddha
    Cc: Tetsuo Handa
    Acked-by: Linus Torvalds
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Suresh Siddha
     
  • Pull asm-generic updates from Arnd Bergmann:
    "This has three changes for asm-generic that did not really fit into
    any other branch as normal asm-generic changes do. One is a fix for a
    build warning, the other two are more interesting:

    * A patch from Mark Brown to allow using the common clock
    infrastructure on all architectures, so we can use the clock API in
    architecture independent device drivers.

    * The UAPI split patches from David Howells for the asm-generic
    files. There are other architecture specific series that are going
    through the arch maintainer tree and that depend on this one.

    There may be a few small merge conflicts between Mark's patch and the
    following arch header file split patches. In each case the solution
    will be to keep the new "generic-y += clkdev.h" line, even if it ends
    up being the only line in the Kbuild file."

    * tag 'asm-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    UAPI: (Scripted) Disintegrate include/asm-generic
    asm-generic: Add default clkdev.h
    asm-generic: xor: mark static functions as __maybe_unused

    Linus Torvalds
     

08 Oct, 2012

1 commit

  • Provide count_leading/trailing_zeros() macros based on extant arch bit scanning
    functions rather than reimplementing from scratch in MPILIB.

    Whilst we're at it, turn count_foo_zeros(n, x) into n = count_foo_zeros(x).

    Also move the definition to asm-generic as other people may be interested in
    using it.

    Signed-off-by: David Howells
    Cc: David S. Miller
    Cc: Dmitry Kasatkin
    Cc: Arnd Bergmann
    Signed-off-by: Rusty Russell

    David Howells
     

07 Oct, 2012

1 commit

  • Pull UAPI disintegration fixes from David Howells:
    "There are three main parts:

    (1) I found I needed some more fixups in the wake of testing Arm64
    (some asm/unistd.h files had weird guards that caused problems -
    mostly in arches for which I don't have a compiler) and some
    __KERNEL__ splitting needed to take place in Arm64.

    (2) I found that c6x was missing some __KERNEL__ guards in its
    asm/signal.h. Mark Salter pointed me at a tree with a patch to
    remove that file entirely and use the asm-generic variant instead.

    (3) Lastly, m68k turned out to have a header installation problem due
    to it lacking a kvm_para.h file.

    The conditional installation bits for linux/kvm_para.h, linux/kvm.h
    and linux/a.out.h weren't very well specified - and didn't work if
    an arch didn't have the asm/ version of that file, but there *was*
    an asm-generic/ version.

    It seems the "ifneq $((wildcard ...),)" for each of those three
    headers in include/kernel/Kbuild is invoked twice during header
    installation, and the second time it matches on the just installed
    asm-generic/kvm_para.h file and thus incorrectly installs
    linux/kvm_para.h as well.

    Most arches actually have an asm/kvm_para.h, so this wasn't
    detectable in those."

    * 'uapi-prep' of git://git.infradead.org/users/dhowells/linux-headers:
    UAPI: Fix conditional header installation handling (notably kvm_para.h on m68k)
    c6x: remove c6x signal.h
    UAPI: Split compound conditionals containing __KERNEL__ in Arm64
    UAPI: Fix the guards on various asm/unistd.h files
    c6x: make dsk6455 the default config

    Linus Torvalds