23 Apr, 2015

1 commit

  • Pull module updates from Rusty Russell:
    "Quentin opened a can of worms by adding extable entry checking to
    modpost, but most architectures seem fixed now. Thanks to all
    involved.

    Last minute rebase because I noticed a "[PATCH]" had snuck into a
    commit message somehow"

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    modpost: don't emit section mismatch warnings for compiler optimizations
    modpost: expand pattern matching to support substring matches
    modpost: do not try to match the SHT_NUL section.
    modpost: fix extable entry size calculation.
    modpost: fix inverted logic in is_extable_fault_address().
    modpost: handle -ffunction-sections
    modpost: Whitelist .text.fixup and .exception.text
    params: handle quotes properly for values not of form foo="bar".
    modpost: document the use of struct section_check.
    modpost: handle relocations mismatch in __ex_table.
    scripts: add check_extable.sh script.
    modpost: mismatch_handler: retrieve tosym information only when needed.
    modpost: factorize symbol pretty print in get_pretty_name().
    modpost: add handler function pointer to sectioncheck.
    modpost: add .sched.text and .kprobes.text to the TEXT_SECTIONS list.
    modpost: add strict white-listing when referencing sections.
    module: do not print allocation-fail warning on bogus user buffer size
    kernel/module.c: fix typos in message about unused symbols

    Linus Torvalds
     

22 Apr, 2015

7 commits

  • Currently an allyesconfig build [gcc-4.9.1] can generate the following:

    WARNING: vmlinux.o(.text.unlikely+0x3864): Section mismatch in
    reference from the function cpumask_empty.constprop.3() to the
    variable .init.data:nmi_ipi_mask

    which comes from the cpumask_empty usage in arch/x86/kernel/nmi_selftest.c.

    Normally we would not see a symbol entry for cpumask_empty since it is:

    static inline bool cpumask_empty(const struct cpumask *srcp)

    however in this case, the variant of the symbol gets emitted when GCC does
    constant propagation optimization.

    Fix things up so that any locally optimized constprop variants don't warn
    when accessing variables that live in the __init sections.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: Rusty Russell

    Paul Gortmaker
     
  • Currently the match() function supports a leading * to match any
    prefix and a trailing * to match any suffix. However there currently
    is not a combination of both that can be used to target matches of
    whole families of functions that share a common substring.

    Here we expand the *foo and foo* match to also support *foo* with
    the goal of targeting compiler generated symbol names that contain
    strings like ".constprop." and ".isra."

    Signed-off-by: Paul Gortmaker
    Signed-off-by: Rusty Russell

    Paul Gortmaker
     
  • Trying to match the SHT_NUL section isn't useful and causes build failures
    on parisc and mn10300 since the addition of section strict white-listing
    and __ex_table sanitizing.

    Signed-off-by: Quentin Casasnovas
    Reported-by: Guenter Roeck
    Fixes: 050e57fd5936 ("modpost: add strict white-listing when referencing....")
    Fixes: 52dc0595d540 ("modpost: handle relocations mismatch in __ex_table.")
    Tested-by: Guenter Roeck
    Signed-off-by: Rusty Russell

    Quentin Casasnovas
     
  • As Guenter pointed out, we were never really calculating the extable entry
    size because the pointer arithmetic was simply wrong. We want to check
    we're handling the second relocation in __ex_table to infer an entry size,
    but we were using (void*) pointers instead of Elf_Rel[a]* ones.

    This fixes the problem by moving that check in the caller (since we can
    deal with different types of relocations) and add is_second_extable_reloc()
    to make the whole thing more readable.

    Signed-off-by: Quentin Casasnovas
    Reported-by: Guenter Roeck
    CC: Rusty Russell
    Signed-off-by: Rusty Russell

    Quentin Casasnovas
     
  • As Guenter pointed out, we want to assert that extable_entry_size has been
    discovered and not the other way around. Moreover, this sanity check is
    only valid when we're not dealing with the first relocation in __ex_table,
    since we have not discovered the extable entry size at that point.

    This was leading to a divide-by-zero on some architectures and make the
    build fail.

    Signed-off-by: Quentin Casasnovas
    Reported-by: Guenter Roeck
    CC: Rusty Russell
    Signed-off-by: Rusty Russell

    Quentin Casasnovas
     
  • 52dc0595d540 introduced OTHER_TEXT_SECTIONS for identifying what
    sections could validly have __ex_table entries. Unfortunately, it
    wasn't tested with -ffunction-sections, which some architectures
    use.

    Reported-by: kbuild test robot
    Cc: Quentin Casasnovas
    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • 32-bit and 64-bit ARM use these sections to store executable code, so
    they must be whitelisted in modpost's table of valid text sections.

    Signed-off-by: Thierry Reding
    Signed-off-by: Rusty Russell

    Thierry Reding
     

13 Apr, 2015

7 commits


31 Mar, 2015

1 commit

  • Add MIPS Common Device Memory Map (CDMM) support in the form of a bus in
    the standard Linux device model. Each device attached via CDMM is
    discoverable via an 8-bit type identifier and may contain a number of
    blocks of memory mapped registers in the CDMM region. IRQs are expected
    to be handled separately.

    Due to the per-cpu (per-VPE for MT cores) nature of the CDMM devices,
    all the driver callbacks take place from workqueues which are run on the
    right CPU for the device in question, so that the driver doesn't need to
    be as concerned about which CPU it is running on. Callbacks also exist
    for when CPUs are taken offline, so that any per-CPU resources used by
    the driver can be disabled so they don't get forcefully migrated. CDMM
    devices are created as children of the CPU device they are attached to.

    Any existing CDMM configuration by the bootloader will be inherited,
    however platforms wishing to enable CDMM should implement the weak
    mips_cdmm_phys_base() function (see asm/cdmm.h) so that the bus driver
    knows where it should put the CDMM region in the physical address space
    if the bootloader hasn't already enabled it.

    A mips_cdmm_early_probe() function is also provided to allow early boot
    or particularly low level code to set up the CDMM region and probe for a
    specific device type, for example early console or KGDB IO drivers for
    the EJTAG Fast Debug Channel (FDC) CDMM device.

    Signed-off-by: James Hogan
    Cc: Greg Kroah-Hartman
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/9599/
    Signed-off-by: Ralf Baechle

    James Hogan
     

08 Oct, 2014

1 commit

  • Pull arm64 updates from Catalin Marinas:
    - eBPF JIT compiler for arm64
    - CPU suspend backend for PSCI (firmware interface) with standard idle
    states defined in DT (generic idle driver to be merged via a
    different tree)
    - Support for CONFIG_DEBUG_SET_MODULE_RONX
    - Support for unmapped cpu-release-addr (outside kernel linear mapping)
    - set_arch_dma_coherent_ops() implemented and bus notifiers removed
    - EFI_STUB improvements when base of DRAM is occupied
    - Typos in KGDB macros
    - Clean-up to (partially) allow kernel building with LLVM
    - Other clean-ups (extern keyword, phys_addr_t usage)

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (51 commits)
    arm64: Remove unneeded extern keyword
    ARM64: make of_device_ids const
    arm64: Use phys_addr_t type for physical address
    aarch64: filter $x from kallsyms
    arm64: Use DMA_ERROR_CODE to denote failed allocation
    arm64: Fix typos in KGDB macros
    arm64: insn: Add return statements after BUG_ON()
    arm64: debug: don't re-enable debug exceptions on return from el1_dbg
    Revert "arm64: dmi: Add SMBIOS/DMI support"
    arm64: Implement set_arch_dma_coherent_ops() to replace bus notifiers
    of: amba: use of_dma_configure for AMBA devices
    arm64: dmi: Add SMBIOS/DMI support
    arm64: Correct ftrace calls to aarch64_insn_gen_branch_imm()
    arm64:mm: initialize max_mapnr using function set_max_mapnr
    setup: Move unmask of async interrupts after possible earlycon setup
    arm64: LLVMLinux: Fix inline arm64 assembly for use with clang
    arm64: pageattr: Correctly adjust unaligned start addresses
    net: bpf: arm64: fix module memory leak when JIT image build fails
    arm64: add PSCI CPU_SUSPEND based cpu_suspend support
    arm64: kernel: introduce cpu_init_idle CPU operation
    ...

    Linus Torvalds
     

03 Oct, 2014

1 commit

  • Similar to ARM, AArch64 is generating $x and $d syms... which isn't
    terribly helpful when looking at %pF output and the like. Filter those
    out in kallsyms, modpost and when looking at module symbols.

    Seems simplest since none of these check EM_ARM anyway, to just add it
    to the strchr used, rather than trying to make things overly
    complicated.

    initcall_debug improves:
    dmesg_before.txt: initcall $x+0x0/0x154 [sg] returned 0 after 26331 usecs
    dmesg_after.txt: initcall init_sg+0x0/0x154 [sg] returned 0 after 15461 usecs

    Signed-off-by: Kyle McMartin
    Acked-by: Rusty Russell
    Signed-off-by: Catalin Marinas

    Kyle McMartin
     

27 Aug, 2014

2 commits

  • Avoid the variable length array (vla), just use PATH_MAX instead.
    This not only makes this code clang friedly, it also leads to a
    code size reduction:

    text data bss dec hex filename
    51765 2224 12416 66405 10365 scripts/mod/modpost.old
    51677 2224 12416 66317 1030d scripts/mod/modpost.new

    Signed-off-by: Mathias Krause
    Signed-off-by: Rusty Russell

    Mathias Krause
     
  • Internally used symbols of modpost don't need to be externally visible;
    make them static. Also constify the string arrays so they resist in the
    r/o section instead of being runtime writable.

    Those changes lead to a small size reduction as can be seen below:

    text data bss dec hex filename
    51381 2640 12416 66437 10385 scripts/mod/modpost.old
    51765 2224 12416 66405 10365 scripts/mod/modpost.new

    Signed-off-by: Mathias Krause
    Signed-off-by: Rusty Russell

    Mathias Krause
     

27 Jul, 2014

2 commits

  • For several years, the pattern "foo$" has effectively been treated as
    equivalent to "foo" due to a bug in the (misnamed) helper
    number_prefix(). This hasn't been observed to cause any problems, so
    remove the broken $ functionality and change all foo$ patterns to foo.

    Signed-off-by: Rasmus Villemoes
    Signed-off-by: Rusty Russell

    Rasmus Villemoes
     
  • The scripts/mod/modpost.c triggers the following warning:

    scripts/mod/modpost.c: In function ‘remove_dot’:
    scripts/mod/modpost.c:1710:10: warning: ignoring return value of ‘strtoul’, declared with attribute warn_unused_result [-Wunused-result]

    The remove_dot function that calls strtoul does not care about the
    numeric value of the string that is parsed but only looks for the
    end of the numeric sequence. As such, it's equivalent to just skip
    over all digits.

    Signed-off-by: Michal Nazarewicz
    Signed-off-by: Rusty Russell

    Michal Nazarewicz
     

13 Jun, 2014

1 commit

  • Pull kbuild misc updates from Michal Marek:
    "This is the non-critical part of kbuild for v3.16-rc1:
    - make deb-pkg can do s390x and arm64
    - new patterns in scripts/tags.sh
    - scripts/tags.sh skips userspace tools' sources (which sometimes
    have copies of kernel structures) and symlinks
    - improvements to the objdiff tool
    - two new coccinelle patches
    - other minor fixes"

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    scripts: objdiff: support directories for the augument of record command
    scripts: objdiff: fix a comment
    scripts: objdiff: change the extension of disassembly from .o to .dis
    scripts: objdiff: improve path flexibility for record command
    scripts: objdiff: remove unnecessary code
    scripts: objdiff: direct error messages to stderr
    scripts: objdiff: get the path to .tmp_objdiff more simply
    deb-pkg: Add automatic support for s390x architecture
    coccicheck: Add unneeded return variable test
    kbuild: Fix a typo in documentation
    kbuild: trivial - use tabs for code indent where possible
    kbuild: trivial - remove trailing empty lines
    coccinelle: Check for missing NULL terminators in of_device_id tables
    scripts/tags.sh: ignore symlink'ed source files
    scripts/tags.sh: add regular expression replacement pattern for memcg
    builddeb: add arm64 in the supported architectures
    builddeb: use $OBJCOPY variable instead of objcopy
    scripts/tags.sh: ignore code of user space tools
    scripts/tags.sh: add pattern for DEFINE_HASHTABLE
    .gitignore: ignore Module.symvers in all directories

    Linus Torvalds
     

12 Jun, 2014

1 commit

  • Pull module updates from Rusty Russell:
    "Most of this is cleaning up various driver sysfs permissions so we can
    re-add the perm check (we unified the module param and sysfs checks,
    but the module ones were stronger so we weakened them temporarily).

    Param parsing gets documented, and also "--" now forces args to be
    handed to init (and ignored by the kernel).

    Module NX/RO protections get tightened: we now set them before calling
    parse_args()"

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    module: set nx before marking module MODULE_STATE_COMING.
    samples/kobject/: avoid world-writable sysfs files.
    drivers/hid/hid-picolcd_fb: avoid world-writable sysfs files.
    drivers/staging/speakup/: avoid world-writable sysfs files.
    drivers/regulator/virtual: avoid world-writable sysfs files.
    drivers/scsi/pm8001/pm8001_ctl.c: avoid world-writable sysfs files.
    drivers/hid/hid-lg4ff.c: avoid world-writable sysfs files.
    drivers/video/fbdev/sm501fb.c: avoid world-writable sysfs files.
    drivers/mtd/devices/docg3.c: avoid world-writable sysfs files.
    speakup: fix incorrect perms on speakup_acntsa.c
    cpumask.h: silence warning with -Wsign-compare
    Documentation: Update kernel-parameters.tx
    param: hand arguments after -- straight to init
    modpost: Fix resource leak in read_dump()

    Linus Torvalds
     

10 Jun, 2014

2 commits


04 Jun, 2014

1 commit

  • Pull trivial tree changes from Jiri Kosina:
    "Usual pile of patches from trivial tree that make the world go round"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (23 commits)
    staging: go7007: remove reference to CONFIG_KMOD
    aic7xxx: Remove obsolete preprocessor define
    of: dma: doc fixes
    doc: fix incorrect formula to calculate CommitLimit value
    doc: Note need of bc in the kernel build from 3.10 onwards
    mm: Fix printk typo in dmapool.c
    modpost: Fix comment typo "Modules.symvers"
    Kconfig.debug: Grammar s/addition/additional/
    wimax: Spelling s/than/that/, wording s/destinatary/recipient/
    aic7xxx: Spelling s/termnation/termination/
    arm64: mm: Remove superfluous "the" in comment
    of: Spelling s/anonymouns/anonymous/
    dma: imx-sdma: Spelling s/determnine/determine/
    ath10k: Improve grammar in comments
    ath6kl: Spelling s/determnine/determine/
    of: Improve grammar for of_alias_get_id() documentation
    drm/exynos: Spelling s/contro/control/
    radio-bcm2048.c: fix wrong overflow check
    doc: printk-formats: do not mention casts for u64/s64
    doc: spelling error changes
    ...

    Linus Torvalds
     

05 May, 2014

1 commit


28 Apr, 2014

1 commit


07 Apr, 2014

1 commit

  • Pull module updates from Rusty Russell:
    "Nothing major: the stricter permissions checking for sysfs broke a
    staging driver; fix included. Greg KH said he'd take the patch but
    hadn't as the merge window opened, so it's included here to avoid
    breaking build"

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    staging: fix up speakup kobject mode
    Use 'E' instead of 'X' for unsigned module taint flag.
    VERIFY_OCTAL_PERMISSIONS: stricter checking for sysfs perms.
    kallsyms: fix percpu vars on x86-64 with relocation.
    kallsyms: generalize address range checking
    module: LLVMLinux: Remove unused function warning from __param_check macro
    Fix: module signature vs tracepoints: add new TAINT_UNSIGNED_MODULE
    module: remove MODULE_GENERIC_TABLE
    module: allow multiple calls to MODULE_DEVICE_TABLE() per module
    module: use pr_cont

    Linus Torvalds
     

02 Apr, 2014

1 commit

  • Pull driver core and sysfs updates from Greg KH:
    "Here's the big driver core / sysfs update for 3.15-rc1.

    Lots of kernfs updates to make it useful for other subsystems, and a
    few other tiny driver core patches.

    All have been in linux-next for a while"

    * tag 'driver-core-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (42 commits)
    Revert "sysfs, driver-core: remove unused {sysfs|device}_schedule_callback_owner()"
    kernfs: cache atomic_write_len in kernfs_open_file
    numa: fix NULL pointer access and memory leak in unregister_one_node()
    Revert "driver core: synchronize device shutdown"
    kernfs: fix off by one error.
    kernfs: remove duplicate dir.c at the top dir
    x86: align x86 arch with generic CPU modalias handling
    cpu: add generic support for CPU feature based module autoloading
    sysfs: create bin_attributes under the requested group
    driver core: unexport static function create_syslog_header
    firmware: use power efficient workqueue for unloading and aborting fw load
    firmware: give a protection when map page failed
    firmware: google memconsole driver fixes
    firmware: fix google/gsmi duplicate efivars_sysfs_init()
    drivers/base: delete non-required instances of include
    kernfs: fix kernfs_node_from_dentry()
    ACPI / platform: drop redundant ACPI_HANDLE check
    kernfs: fix hash calculation in kernfs_rename_ns()
    kernfs: add CONFIG_KERNFS
    sysfs, kobject: add sysfs wrapper for kernfs_enable_ns()
    ...

    Linus Torvalds
     

01 Apr, 2014

1 commit

  • Pull x86 LTO changes from Peter Anvin:
    "More infrastructure work in preparation for link-time optimization
    (LTO). Most of these changes is to make sure symbols accessed from
    assembly code are properly marked as visible so the linker doesn't
    remove them.

    My understanding is that the changes to support LTO are still not
    upstream in binutils, but are on the way there. This patchset should
    conclude the x86-specific changes, and remaining patches to actually
    enable LTO will be fed through the Kbuild tree (other than keeping up
    with changes to the x86 code base, of course), although not
    necessarily in this merge window"

    * 'x86-asmlinkage-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
    Kbuild, lto: Handle basic LTO in modpost
    Kbuild, lto: Disable LTO for asm-offsets.c
    Kbuild, lto: Add a gcc-ld script to let run gcc as ld
    Kbuild, lto: add ld-version and ld-ifversion macros
    Kbuild, lto: Drop .number postfixes in modpost
    Kbuild, lto, workaround: Don't warn for initcall_reference in modpost
    lto: Disable LTO for sys_ni
    lto: Handle LTO common symbols in module loader
    lto, workaround: Add workaround for initcall reordering
    lto: Make asmlinkage __visible
    x86, lto: Disable LTO for the x86 VDSO
    initconst, x86: Fix initconst mistake in ts5500 code
    initconst: Fix initconst mistake in dcdbas
    asmlinkage: Make trace_hardirqs_on/off_caller visible
    asmlinkage, x86: Fix 32bit memcpy for LTO
    asmlinkage Make __stack_chk_failed and memcmp visible
    asmlinkage: Mark rwsem functions that can be called from assembler asmlinkage
    asmlinkage: Make main_extable_sort_needed visible
    asmlinkage, mutex: Mark __visible
    asmlinkage: Make trace_hardirq visible
    ...

    Linus Torvalds
     

13 Mar, 2014

1 commit

  • Commit 78551277e4df5: "Input: i8042 - add PNP modaliases" had a bug, where the
    second call to MODULE_DEVICE_TABLE() overrode the first resulting in not all
    the modaliases being exposed.

    This fixes the problem by including the name of the device_id table in the
    __mod_*_device_table alias, allowing us to export several device_id tables
    per module.

    Suggested-by: Kay Sievers
    Acked-by: Greg Kroah-Hartman
    Cc: Dmitry Torokhov
    Signed-off-by: Tom Gundersen
    Signed-off-by: Rusty Russell

    Tom Gundersen
     

08 Mar, 2014

1 commit

  • Pull ARM fixes from Russell King:
    "A number of ARM updates for -rc, covering mostly ARM specific code,
    but with one change to modpost.c to allow Thumb section mismatches to
    be detected.

    ARM changes include reporting when an attempt is made to boot a LPAE
    kernel on hardware which does not support LPAE, rather than just being
    silent about it.

    A number of other minor fixes are included too"

    * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: 7992/1: boot: compressed: ignore bswapsdi2.S
    ARM: 7991/1: sa1100: fix compile problem on Collie
    ARM: fix noMMU kallsyms symbol filtering
    ARM: 7980/1: kernel: improve error message when LPAE config doesn't match CPU
    ARM: 7964/1: Detect section mismatches in thumb relocations
    ARM: 7963/1: mm: report both sections from PMD

    Linus Torvalds
     

19 Feb, 2014

3 commits

  • The x86 CPU feature modalias handling existed before it was reimplemented
    generically. This patch aligns the x86 handling so that it
    (a) reuses some more code that is now generic;
    (b) uses the generic format for the modalias module metadata entry, i.e., it
    now uses 'cpu:type:x86,venVVVVfamFFFFmodMMMM:feature:,XXXX,YYYY' instead of
    the 'x86cpu:vendor:VVVV:family:FFFF:model:MMMM:feature:,XXXX,YYYY' that was
    used before.

    Signed-off-by: Ard Biesheuvel
    Acked-by: H. Peter Anvin
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • This patch adds support for advertising optional CPU features over udev
    using the modalias, and for declaring compatibility with/dependency upon
    such a feature in a module.

    The mapping between feature numbers and actual features should be provided
    by the architecture in a file called which exports the
    following functions/macros:
    - cpu_feature(FEAT), a preprocessor macro that maps token FEAT to a
    numeric index;
    - bool cpu_have_feature(n), returning whether this CPU has support for
    feature #n;
    - MAX_CPU_FEATURES, an upper bound for 'n' in the previous function.

    The feature can then be enabled by setting CONFIG_GENERIC_CPU_AUTOPROBE
    for the architecture.

    For instance, a module that registers its module init function using

    module_cpu_feature_match(FEAT_X, module_init_function)

    will be probed automatically when the CPU's support for the 'FEAT_X'
    feature is advertised over udev, and will only allow the module to be
    loaded by hand if the 'FEAT_X' feature is supported.

    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • Add processing for normally encountered thumb relocation types so that
    section mismatches will be detected.

    Comment from Rusty Russell follows:

    Happiest for this to go through an ARM tree, so:

    Signed-off-by: David A. Long
    Acked-by: Rusty Russell
    Signed-off-by: Russell King

    David A. Long
     

14 Feb, 2014

3 commits

  • - Don't warn about LTO marker symbols. modpost runs before
    the linker, so the module is not necessarily LTOed yet.
    - Don't complain about .gnu.lto* sections

    Signed-off-by: Andi Kleen
    Link: http://lkml.kernel.org/r/1391846481-31491-13-git-send-email-ak@linux.intel.com
    Signed-off-by: H. Peter Anvin

    Andi Kleen
     
  • LTO turns all global symbols effectively into statics. This
    has the side effect that they all have a .NUMBER postfix to make
    them unique. In modpost drop this postfix because it confuses
    it.

    Signed-off-by: Andi Kleen
    Link: http://lkml.kernel.org/r/1391846481-31491-8-git-send-email-ak@linux.intel.com
    Signed-off-by: H. Peter Anvin

    Andi Kleen
     
  • This reference is discarded, but can cause warnings when it refers to
    exit. Ignore for now.

    This is a workaround and can be removed once we get rid of
    -fno-toplevel-reorder

    Signed-off-by: Andi Kleen
    Link: http://lkml.kernel.org/r/1391846481-31491-7-git-send-email-ak@linux.intel.com
    Signed-off-by: H. Peter Anvin

    Andi Kleen