24 Feb, 2020

1 commit

  • [ Upstream commit 27796d03c9c4b2b937ed4cc2b10f21559ad5a8c9 ]

    Without this the symbol will not actually end up in .config files.

    Link: http://lkml.kernel.org/r/20200116064531.483522-6-aneesh.kumar@linux.ibm.com
    Fixes: a30e32bd79e9 ("asm-generic/tlb: Provide generic tlb_flush() based on flush_tlb_mm()")
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Aneesh Kumar K.V
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Sasha Levin

    Peter Zijlstra
     

11 Feb, 2020

1 commit

  • commit 0ed1325967ab5f7a4549a2641c6ebe115f76e228 upstream.

    Architectures for which we have hardware walkers of Linux page table
    should flush TLB on mmu gather batch allocation failures and batch flush.
    Some architectures like POWER supports multiple translation modes (hash
    and radix) and in the case of POWER only radix translation mode needs the
    above TLBI. This is because for hash translation mode kernel wants to
    avoid this extra flush since there are no hardware walkers of linux page
    table. With radix translation, the hardware also walks linux page table
    and with that, kernel needs to make sure to TLB invalidate page walk cache
    before page table pages are freed.

    More details in commit d86564a2f085 ("mm/tlb, x86/mm: Support invalidating
    TLB caches for RCU_TABLE_FREE")

    The changes to sparc are to make sure we keep the old behavior since we
    are now removing HAVE_RCU_TABLE_NO_INVALIDATE. The default value for
    tlb_needs_table_invalidate is to always force an invalidate and sparc can
    avoid the table invalidate. Hence we define tlb_needs_table_invalidate to
    false for sparc architecture.

    Link: http://lkml.kernel.org/r/20200116064531.483522-3-aneesh.kumar@linux.ibm.com
    Fixes: a46cc7a90fd8 ("powerpc/mm/radix: Improve TLB/PWC flushes")
    Signed-off-by: Peter Zijlstra (Intel)
    Acked-by: Michael Ellerman [powerpc]
    Cc: [4.14+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Peter Zijlstra
     

25 Sep, 2019

2 commits

  • This commits selects ARCH_HAS_ELF_RANDOMIZE when an arch uses the generic
    topdown mmap layout functions so that this security feature is on by
    default.

    Note that this commit also removes the possibility for arm64 to have elf
    randomization and no MMU: without MMU, the security added by randomization
    is worth nothing.

    Link: http://lkml.kernel.org/r/20190730055113.23635-6-alex@ghiti.fr
    Signed-off-by: Alexandre Ghiti
    Acked-by: Catalin Marinas
    Acked-by: Kees Cook
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Luis Chamberlain
    Cc: Albert Ou
    Cc: Alexander Viro
    Cc: Christoph Hellwig
    Cc: James Hogan
    Cc: Palmer Dabbelt
    Cc: Paul Burton
    Cc: Ralf Baechle
    Cc: Russell King
    Cc: Will Deacon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Ghiti
     
  • arm64 handles top-down mmap layout in a way that can be easily reused by
    other architectures, so make it available in mm. It then introduces a new
    config ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT that can be set by other
    architectures to benefit from those functions. Note that this new config
    depends on MMU being enabled, if selected without MMU support, a warning
    will be thrown.

    Link: http://lkml.kernel.org/r/20190730055113.23635-5-alex@ghiti.fr
    Signed-off-by: Alexandre Ghiti
    Suggested-by: Christoph Hellwig
    Acked-by: Catalin Marinas
    Acked-by: Kees Cook
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Luis Chamberlain
    Cc: Albert Ou
    Cc: Alexander Viro
    Cc: James Hogan
    Cc: Palmer Dabbelt
    Cc: Paul Burton
    Cc: Ralf Baechle
    Cc: Russell King
    Cc: Will Deacon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Ghiti
     

21 Sep, 2019

1 commit

  • Pull powerpc updates from Michael Ellerman:
    "This is a bit late, partly due to me travelling, and partly due to a
    power outage knocking out some of my test systems *while* I was
    travelling.

    - Initial support for running on a system with an Ultravisor, which
    is software that runs below the hypervisor and protects guests
    against some attacks by the hypervisor.

    - Support for building the kernel to run as a "Secure Virtual
    Machine", ie. as a guest capable of running on a system with an
    Ultravisor.

    - Some changes to our DMA code on bare metal, to allow devices with
    medium sized DMA masks (> 32 && < 59 bits) to use more than 2GB of
    DMA space.

    - Support for firmware assisted crash dumps on bare metal (powernv).

    - Two series fixing bugs in and refactoring our PCI EEH code.

    - A large series refactoring our exception entry code to use gas
    macros, both to make it more readable and also enable some future
    optimisations.

    As well as many cleanups and other minor features & fixups.

    Thanks to: Adam Zerella, Alexey Kardashevskiy, Alistair Popple, Andrew
    Donnellan, Aneesh Kumar K.V, Anju T Sudhakar, Anshuman Khandual,
    Balbir Singh, Benjamin Herrenschmidt, Cédric Le Goater, Christophe
    JAILLET, Christophe Leroy, Christopher M. Riedl, Christoph Hellwig,
    Claudio Carvalho, Daniel Axtens, David Gibson, David Hildenbrand,
    Desnes A. Nunes do Rosario, Ganesh Goudar, Gautham R. Shenoy, Greg
    Kurz, Guerney Hunt, Gustavo Romero, Halil Pasic, Hari Bathini, Joakim
    Tjernlund, Jonathan Neuschafer, Jordan Niethe, Leonardo Bras, Lianbo
    Jiang, Madhavan Srinivasan, Mahesh Salgaonkar, Mahesh Salgaonkar,
    Masahiro Yamada, Maxiwell S. Garcia, Michael Anderson, Nathan
    Chancellor, Nathan Lynch, Naveen N. Rao, Nicholas Piggin, Oliver
    O'Halloran, Qian Cai, Ram Pai, Ravi Bangoria, Reza Arbab, Ryan Grimm,
    Sam Bobroff, Santosh Sivaraj, Segher Boessenkool, Sukadev Bhattiprolu,
    Thiago Bauermann, Thiago Jung Bauermann, Thomas Gleixner, Tom
    Lendacky, Vasant Hegde"

    * tag 'powerpc-5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (264 commits)
    powerpc/mm/mce: Keep irqs disabled during lockless page table walk
    powerpc: Use ftrace_graph_ret_addr() when unwinding
    powerpc/ftrace: Enable HAVE_FUNCTION_GRAPH_RET_ADDR_PTR
    ftrace: Look up the address of return_to_handler() using helpers
    powerpc: dump kernel log before carrying out fadump or kdump
    docs: powerpc: Add missing documentation reference
    powerpc/xmon: Fix output of XIVE IPI
    powerpc/xmon: Improve output of XIVE interrupts
    powerpc/mm/radix: remove useless kernel messages
    powerpc/fadump: support holes in kernel boot memory area
    powerpc/fadump: remove RMA_START and RMA_END macros
    powerpc/fadump: update documentation about option to release opalcore
    powerpc/fadump: consider f/w load area
    powerpc/opalcore: provide an option to invalidate /sys/firmware/opal/core file
    powerpc/opalcore: export /sys/firmware/opal/core for analysing opal crashes
    powerpc/fadump: update documentation about CONFIG_PRESERVE_FA_DUMP
    powerpc/fadump: add support to preserve crash data on FADUMP disabled kernel
    powerpc/fadump: improve how crashed kernel's memory is reserved
    powerpc/fadump: consider reserved ranges while releasing memory
    powerpc/fadump: make crash memory ranges array allocation generic
    ...

    Linus Torvalds
     

20 Sep, 2019

2 commits

  • Pull Kbuild updates from Masahiro Yamada:

    - add modpost warn exported symbols marked as 'static' because 'static'
    and EXPORT_SYMBOL is an odd combination

    - break the build early if gold linker is used

    - optimize the Bison rule to produce .c and .h files by a single
    pattern rule

    - handle PREEMPT_RT in the module vermagic and UTS_VERSION

    - warn CONFIG options leaked to the user-space except existing ones

    - make single targets work properly

    - rebuild modules when module linker scripts are updated

    - split the module final link stage into scripts/Makefile.modfinal

    - fix the missed error code in merge_config.sh

    - improve the error message displayed on the attempt of the O= build in
    unclean source tree

    - remove 'clean-dirs' syntax

    - disable -Wimplicit-fallthrough warning for Clang

    - add CONFIG_CC_OPTIMIZE_FOR_SIZE_O3 for ARC

    - remove ARCH_{CPP,A,C}FLAGS variables

    - add $(BASH) to run bash scripts

    - change *CFLAGS_.o to take the relative path to $(obj)
    instead of the basename

    - stop suppressing Clang's -Wunused-function warnings when W=1

    - fix linux/export.h to avoid genksyms calculating CRC of trimmed
    exported symbols

    - misc cleanups

    * tag 'kbuild-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (63 commits)
    genksyms: convert to SPDX License Identifier for lex.l and parse.y
    modpost: use __section in the output to *.mod.c
    modpost: use MODULE_INFO() for __module_depends
    export.h, genksyms: do not make genksyms calculate CRC of trimmed symbols
    export.h: remove defined(__KERNEL__), which is no longer needed
    kbuild: allow Clang to find unused static inline functions for W=1 build
    kbuild: rename KBUILD_ENABLE_EXTRA_GCC_CHECKS to KBUILD_EXTRA_WARN
    kbuild: refactor scripts/Makefile.extrawarn
    merge_config.sh: ignore unwanted grep errors
    kbuild: change *FLAGS_.o to take the path relative to $(obj)
    modpost: add NOFAIL to strndup
    modpost: add guid_t type definition
    kbuild: add $(BASH) to run scripts with bash-extension
    kbuild: remove ARCH_{CPP,A,C}FLAGS
    kbuild,arc: add CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 for ARC
    kbuild: Do not enable -Wimplicit-fallthrough for clang for now
    kbuild: clean up subdir-ymn calculation in Makefile.clean
    kbuild: remove unneeded '+' marker from cmd_clean
    kbuild: remove clean-dirs syntax
    kbuild: check clean srctree even earlier
    ...

    Linus Torvalds
     
  • Pull dma-mapping updates from Christoph Hellwig:

    - add dma-mapping and block layer helpers to take care of IOMMU merging
    for mmc plus subsequent fixups (Yoshihiro Shimoda)

    - rework handling of the pgprot bits for remapping (me)

    - take care of the dma direct infrastructure for swiotlb-xen (me)

    - improve the dma noncoherent remapping infrastructure (me)

    - better defaults for ->mmap, ->get_sgtable and ->get_required_mask
    (me)

    - cleanup mmaping of coherent DMA allocations (me)

    - various misc cleanups (Andy Shevchenko, me)

    * tag 'dma-mapping-5.4' of git://git.infradead.org/users/hch/dma-mapping: (41 commits)
    mmc: renesas_sdhi_internal_dmac: Add MMC_CAP2_MERGE_CAPABLE
    mmc: queue: Fix bigger segments usage
    arm64: use asm-generic/dma-mapping.h
    swiotlb-xen: merge xen_unmap_single into xen_swiotlb_unmap_page
    swiotlb-xen: simplify cache maintainance
    swiotlb-xen: use the same foreign page check everywhere
    swiotlb-xen: remove xen_swiotlb_dma_mmap and xen_swiotlb_dma_get_sgtable
    xen: remove the exports for xen_{create,destroy}_contiguous_region
    xen/arm: remove xen_dma_ops
    xen/arm: simplify dma_cache_maint
    xen/arm: use dev_is_dma_coherent
    xen/arm: consolidate page-coherent.h
    xen/arm: use dma-noncoherent.h calls for xen-swiotlb cache maintainance
    arm: remove wrappers for the generic dma remap helpers
    dma-mapping: introduce a dma_common_find_pages helper
    dma-mapping: always use VM_DMA_COHERENT for generic DMA remap
    vmalloc: lift the arm flag for coherent mappings to common code
    dma-mapping: provide a better default ->get_required_mask
    dma-mapping: remove the dma_declare_coherent_memory export
    remoteproc: don't allow modular build
    ...

    Linus Torvalds
     

17 Sep, 2019

2 commits

  • Pull scheduler updates from Ingo Molnar:

    - MAINTAINERS: Add Mark Rutland as perf submaintainer, Juri Lelli and
    Vincent Guittot as scheduler submaintainers. Add Dietmar Eggemann,
    Steven Rostedt, Ben Segall and Mel Gorman as scheduler reviewers.

    As perf and the scheduler is getting bigger and more complex,
    document the status quo of current responsibilities and interests,
    and spread the review pain^H^H^H^H fun via an increase in the Cc:
    linecount generated by scripts/get_maintainer.pl. :-)

    - Add another series of patches that brings the -rt (PREEMPT_RT) tree
    closer to mainline: split the monolithic CONFIG_PREEMPT dependencies
    into a new CONFIG_PREEMPTION category that will allow the eventual
    introduction of CONFIG_PREEMPT_RT. Still a few more hundred patches
    to go though.

    - Extend the CPU cgroup controller with uclamp.min and uclamp.max to
    allow the finer shaping of CPU bandwidth usage.

    - Micro-optimize energy-aware wake-ups from O(CPUS^2) to O(CPUS).

    - Improve the behavior of high CPU count, high thread count
    applications running under cpu.cfs_quota_us constraints.

    - Improve balancing with SCHED_IDLE (SCHED_BATCH) tasks present.

    - Improve CPU isolation housekeeping CPU allocation NUMA locality.

    - Fix deadline scheduler bandwidth calculations and logic when cpusets
    rebuilds the topology, or when it gets deadline-throttled while it's
    being offlined.

    - Convert the cpuset_mutex to percpu_rwsem, to allow it to be used from
    setscheduler() system calls without creating global serialization.
    Add new synchronization between cpuset topology-changing events and
    the deadline acceptance tests in setscheduler(), which were broken
    before.

    - Rework the active_mm state machine to be less confusing and more
    optimal.

    - Rework (simplify) the pick_next_task() slowpath.

    - Improve load-balancing on AMD EPYC systems.

    - ... and misc cleanups, smaller fixes and improvements - please see
    the Git log for more details.

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (53 commits)
    sched/psi: Correct overly pessimistic size calculation
    sched/fair: Speed-up energy-aware wake-ups
    sched/uclamp: Always use 'enum uclamp_id' for clamp_id values
    sched/uclamp: Update CPU's refcount on TG's clamp changes
    sched/uclamp: Use TG's clamps to restrict TASK's clamps
    sched/uclamp: Propagate system defaults to the root group
    sched/uclamp: Propagate parent clamps
    sched/uclamp: Extend CPU's cgroup controller
    sched/topology: Improve load balancing on AMD EPYC systems
    arch, ia64: Make NUMA select SMP
    sched, perf: MAINTAINERS update, add submaintainers and reviewers
    sched/fair: Use rq_lock/unlock in online_fair_sched_group
    cpufreq: schedutil: fix equation in comment
    sched: Rework pick_next_task() slow-path
    sched: Allow put_prev_task() to drop rq->lock
    sched/fair: Expose newidle_balance()
    sched: Add task_struct pointer to sched_class::set_curr_task
    sched: Rework CPU hotplug task selection
    sched/{rt,deadline}: Fix set_next_task vs pick_next_task
    sched: Fix kerneldoc comment for ia64_set_curr_task
    ...

    Linus Torvalds
     
  • Pull parisc updates from Helge Deller:

    - Make the powerpc implementation to read elf files available as a
    public kexec interface so it can be re-used on other architectures
    (Sven)

    - Implement kexec on parisc (Sven)

    - Add kprobes on ftrace on parisc (Sven)

    - Fix kernel crash with HSC-PCI cards based on card-mode Dino

    - Add assembly implementations for memset, strlen, strcpy, strncpy and
    strcat

    - Some cleanups, documentation updates, warning fixes, ...

    * 'parisc-5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: (25 commits)
    parisc: Have git ignore generated real2.S and firmware.c
    parisc: Disable HP HSC-PCI Cards to prevent kernel crash
    parisc: add support for kexec_file_load() syscall
    parisc: wire up kexec_file_load syscall
    parisc: add kexec syscall support
    parisc: add __pdc_cpu_rendezvous()
    kprobes/parisc: remove arch_kprobe_on_func_entry()
    kexec_elf: support 32 bit ELF files
    kexec_elf: remove unused variable in kexec_elf_load()
    kexec_elf: remove Elf_Rel macro
    kexec_elf: remove PURGATORY_STACK_SIZE
    kexec_elf: remove parsing of section headers
    kexec_elf: change order of elf_*_to_cpu() functions
    kexec: add KEXEC_ELF
    parisc: Save some bytes in dino driver
    parisc: Drop comments which are already in pci.h
    parisc: Convert eisa_enumerator to use pr_cont()
    parisc: Avoid warning when loading hppb driver
    parisc: speed up flush_tlb_all_local with qemu
    parisc: Add ALTERNATIVE_CODE() and ALT_COND_RUN_ON_QEMU
    ...

    Linus Torvalds
     

07 Sep, 2019

1 commit

  • Right now powerpc provides an implementation to read elf files
    with the kexec_file_load() syscall. Make that available as a public
    kexec interface so it can be re-used on other architectures.

    Signed-off-by: Sven Schnelle
    Reviewed-by: Thiago Jung Bauermann
    Signed-off-by: Helge Deller

    Sven Schnelle
     

04 Sep, 2019

1 commit

  • CONFIG_ARCH_NO_COHERENT_DMA_MMAP is now functionally identical to
    !CONFIG_MMU, so remove the separate symbol. The only difference is that
    arm did not set it for !CONFIG_MMU, but arm uses a separate dma mapping
    implementation including its own mmap method, which is handled by moving
    the CONFIG_MMU check in dma_can_mmap so that is only applies to the
    dma-direct case, just as the other ifdefs for it.

    Signed-off-by: Christoph Hellwig
    Acked-by: Geert Uytterhoeven # m68k

    Christoph Hellwig
     

22 Aug, 2019

1 commit

  • Add CONFIG_ASM_MODVERSIONS. This allows to remove one if-conditional
    nesting in scripts/Makefile.build.

    scripts/Makefile.build is run every time Kbuild descends into a
    sub-directory. So, I want to avoid $(wildcard ...) evaluation
    where possible although computing $(wildcard ...) is so cheap that
    it may not make measurable performance difference.

    Signed-off-by: Masahiro Yamada
    Acked-by: Geert Uytterhoeven

    Masahiro Yamada
     

09 Aug, 2019

1 commit


05 Aug, 2019

1 commit

  • RELR is a relocation packing format for relative relocations.
    The format is described in a generic-abi proposal:
    https://groups.google.com/d/topic/generic-abi/bX460iggiKg/discussion

    The LLD linker can be instructed to pack relocations in the RELR
    format by passing the flag --pack-dyn-relocs=relr.

    This patch adds a new config option, CONFIG_RELR. Enabling this option
    instructs the linker to pack vmlinux's relative relocations in the RELR
    format, and causes the kernel to apply the relocations at startup along
    with the RELA relocations. RELA relocations still need to be applied
    because the linker will emit RELA relative relocations if they are
    unrepresentable in the RELR format (i.e. address not a multiple of 2).

    Enabling CONFIG_RELR reduces the size of a defconfig kernel image
    with CONFIG_RANDOMIZE_BASE by 3.5MB/16% uncompressed, or 550KB/5%
    compressed (lz4).

    Signed-off-by: Peter Collingbourne
    Tested-by: Nick Desaulniers
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Will Deacon

    Peter Collingbourne
     

01 Aug, 2019

1 commit

  • CONFIG_PREEMPTION is selected by CONFIG_PREEMPT and by
    CONFIG_PREEMPT_RT. Both PREEMPT and PREEMPT_RT require the same
    functionality which today depends on CONFIG_PREEMPT.

    Switch the conditionals in RCU to use CONFIG_PREEMPTION.

    That's the first step towards RCU on RT. The further tweaks are work in
    progress. This neither touches the selftest bits which need a closer look
    by Paul.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Masami Hiramatsu
    Cc: Paolo Bonzini
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/20190726212124.210156346@linutronix.de
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     

21 Jul, 2019

1 commit

  • Pull CONFIG_PREEMPT_RT stub config from Thomas Gleixner:
    "The real-time preemption patch set exists for almost 15 years now and
    while the vast majority of infrastructure and enhancements have found
    their way into the mainline kernel, the final integration of RT is
    still missing.

    Over the course of the last few years, we have worked on reducing the
    intrusivenness of the RT patches by refactoring kernel infrastructure
    to be more real-time friendly. Almost all of these changes were
    benefitial to the mainline kernel on their own, so there was no
    objection to integrate them.

    Though except for the still ongoing printk refactoring, the remaining
    changes which are required to make RT a first class mainline citizen
    are not longer arguable as immediately beneficial for the mainline
    kernel. Most of them are either reordering code flows or adding RT
    specific functionality.

    But this now has hit a wall and turned into a classic hen and egg
    problem:

    Maintainers are rightfully wary vs. these changes as they make only
    sense if the final integration of RT into the mainline kernel takes
    place.

    Adding CONFIG_PREEMPT_RT aims to solve this as a clear sign that RT
    will be fully integrated into the mainline kernel. The final
    integration of the missing bits and pieces will be of course done with
    the same careful approach as we have used in the past.

    While I'm aware that you are not entirely enthusiastic about that, I
    think that RT should receive the same treatment as any other widely
    used out of tree functionality, which we have accepted into mainline
    over the years.

    RT has become the de-facto standard real-time enhancement and is
    shipped by enterprise, embedded and community distros. It's in use
    throughout a wide range of industries: telecommunications, industrial
    automation, professional audio, medical devices, data acquisition,
    automotive - just to name a few major use cases.

    RT development is backed by a Linuxfoundation project which is
    supported by major stakeholders of this technology. The funding will
    continue over the actual inclusion into mainline to make sure that the
    functionality is neither introducing regressions, regressing itself,
    nor becomes subject to bitrot. There is also a lifely user community
    around RT as well, so contrary to the grim situation 5 years ago, it's
    a healthy project.

    As RT is still a good vehicle to exercise rarely used code paths and
    to detect hard to trigger issues, you could at least view it as a QA
    tool if nothing else"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/rt, Kconfig: Introduce CONFIG_PREEMPT_RT

    Linus Torvalds
     

19 Jul, 2019

3 commits

  • Add a new entry to the preemption menu which enables the real-time support
    for the kernel. The choice is only enabled when an architecture supports
    it.

    It selects PREEMPT as the RT features depend on it. To achieve that the
    existing PREEMPT choice is renamed to PREEMPT_LL which select PREEMPT as
    well.

    No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Paul E. McKenney
    Acked-by: Steven Rostedt (VMware)
    Acked-by: Clark Williams
    Acked-by: Daniel Bristot de Oliveira
    Acked-by: Frederic Weisbecker
    Acked-by: Peter Zijlstra (Intel)
    Acked-by: Marc Zyngier
    Acked-by: Daniel Wagner
    Acked-by: Luis Claudio R. Goncalves
    Acked-by: Julia Cartwright
    Acked-by: Tom Zanussi
    Acked-by: Gratian Crisan
    Acked-by: Sebastian Siewior
    Cc: Andrew Morton
    Cc: Christoph Hellwig
    Cc: Greg Kroah-Hartman
    Cc: Linus Torvalds
    Cc: Lukas Bulwahn
    Cc: Mike Galbraith
    Cc: Tejun Heo
    Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1907172200190.1778@nanos.tec.linutronix.de
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     
  • Pull RISC-V updates from Paul Walmsley:

    - Hugepage support

    - "Image" header support for RISC-V kernel binaries, compatible with
    the current ARM64 "Image" header

    - Initial page table setup now split into two stages

    - CONFIG_SOC support (starting with SiFive SoCs)

    - Avoid reserving memory between RAM start and the kernel in
    setup_bootmem()

    - Enable high-res timers and dynamic tick in the RV64 defconfig

    - Remove long-deprecated gate area stubs

    - MAINTAINERS updates to switch to the newly-created shared RISC-V git
    tree, and to fix a get_maintainers.pl issue for patches involving
    SiFive E-mail addresses

    Also, one integration fix to resolve a build problem introduced during
    in the v5.3-rc1 merge window:

    - Fix build break after macro-to-function conversion in
    asm-generic/cacheflush.h

    * tag 'riscv/for-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
    riscv: fix build break after macro-to-function conversion in generic cacheflush.h
    RISC-V: Add an Image header that boot loader can parse.
    RISC-V: Setup initial page tables in two stages
    riscv: remove free_initrd_mem
    riscv: ccache: Remove unused variable
    riscv: Introduce huge page support for 32/64bit kernel
    x86, arm64: Move ARCH_WANT_HUGE_PMD_SHARE config in arch/Kconfig
    RISC-V: Fix memory reservation in setup_bootmem()
    riscv: defconfig: enable SOC_SIFIVE
    riscv: select SiFive platform drivers with SOC_SIFIVE
    arch: riscv: add config option for building SiFive's SoC resource
    riscv: Remove gate area stubs
    MAINTAINERS: change the arch/riscv git tree to the new shared tree
    MAINTAINERS: don't automatically patches involving SiFive to the linux-riscv list
    RISC-V: defconfig: Enable NO_HZ_IDLE and HIGH_RES_TIMERS

    Linus Torvalds
     
  • Pull tracing updates from Steven Rostedt:
    "The main changes in this release include:

    - Add user space specific memory reading for kprobes

    - Allow kprobes to be executed earlier in boot

    The rest are mostly just various clean ups and small fixes"

    * tag 'trace-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (33 commits)
    tracing: Make trace_get_fields() global
    tracing: Let filter_assign_type() detect FILTER_PTR_STRING
    tracing: Pass type into tracing_generic_entry_update()
    ftrace/selftest: Test if set_event/ftrace_pid exists before writing
    ftrace/selftests: Return the skip code when tracing directory not configured in kernel
    tracing/kprobe: Check registered state using kprobe
    tracing/probe: Add trace_event_call accesses APIs
    tracing/probe: Add probe event name and group name accesses APIs
    tracing/probe: Add trace flag access APIs for trace_probe
    tracing/probe: Add trace_event_file access APIs for trace_probe
    tracing/probe: Add trace_event_call register API for trace_probe
    tracing/probe: Add trace_probe init and free functions
    tracing/uprobe: Set print format when parsing command
    tracing/kprobe: Set print format right after parsed command
    kprobes: Fix to init kprobes in subsys_initcall
    tracepoint: Use struct_size() in kmalloc()
    ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS
    ftrace: Enable trampoline when rec count returns back to one
    tracing/kprobe: Do not run kprobe boot tests if kprobe_event is on cmdline
    tracing: Make a separate config for trace event self tests
    ...

    Linus Torvalds
     

04 Jul, 2019

1 commit


03 Jun, 2019

1 commit


28 May, 2019

1 commit

  • Commit c19fa94a8fed ("Add HAVE_64BIT_ALIGNED_ACCESS") added the config for
    architectures that required 64bit aligned access for all 64bit words. As
    the ftrace ring buffer stores data on 4 byte alignment, this config option
    was used to force it to store data on 8 byte alignment to make sure the data
    being stored and written directly into the ring buffer was 8 byte aligned as
    it would cause issues trying to write an 8 byte word on a 4 not 8 byte
    aligned memory location.

    But with the removal of the metag architecture, which was the only
    architecture to use this, there is no architecture supported by Linux that
    requires 8 byte aligne access for all 8 byte words (4 byte alignment is good
    enough). Removing this config can simplify the code a bit.

    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     

17 May, 2019

1 commit


15 May, 2019

1 commit

  • No need to handle the freeing disable in arch code when we already have a
    core hook (and a different name for the option) for it.

    Link: http://lkml.kernel.org/r/20190213174621.29297-7-hch@lst.de
    Signed-off-by: Christoph Hellwig
    Acked-by: Catalin Marinas [arm64]
    Acked-by: Mike Rapoport
    Cc: Geert Uytterhoeven [m68k]
    Cc: Steven Price
    Cc: Alexander Viro
    Cc: Guan Xuetao
    Cc: Russell King
    Cc: Will Deacon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

07 May, 2019

2 commits

  • Pull x86 mm updates from Ingo Molnar:
    "The changes in here are:

    - text_poke() fixes and an extensive set of executability lockdowns,
    to (hopefully) eliminate the last residual circumstances under
    which we are using W|X mappings even temporarily on x86 kernels.
    This required a broad range of surgery in text patching facilities,
    module loading, trampoline handling and other bits.

    - tweak page fault messages to be more informative and more
    structured.

    - remove DISCONTIGMEM support on x86-32 and make SPARSEMEM the
    default.

    - reduce KASLR granularity on 5-level paging kernels from 512 GB to
    1 GB.

    - misc other changes and updates"

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
    x86/mm: Initialize PGD cache during mm initialization
    x86/alternatives: Add comment about module removal races
    x86/kprobes: Use vmalloc special flag
    x86/ftrace: Use vmalloc special flag
    bpf: Use vmalloc special flag
    modules: Use vmalloc special flag
    mm/vmalloc: Add flag for freeing of special permsissions
    mm/hibernation: Make hibernation handle unmapped pages
    x86/mm/cpa: Add set_direct_map_*() functions
    x86/alternatives: Remove the return value of text_poke_*()
    x86/jump-label: Remove support for custom text poker
    x86/modules: Avoid breaking W^X while loading modules
    x86/kprobes: Set instruction page as executable
    x86/ftrace: Set trampoline pages as executable
    x86/kgdb: Avoid redundant comparison of patched code
    x86/alternatives: Use temporary mm for text poking
    x86/alternatives: Initialize temporary mm for patching
    fork: Provide a function for copying init_mm
    uprobes: Initialize uprobes earlier
    x86/mm: Save debug registers when loading a temporary mm
    ...

    Linus Torvalds
     
  • Pull locking updates from Ingo Molnar:
    "Here are the locking changes in this cycle:

    - rwsem unification and simpler micro-optimizations to prepare for
    more intrusive (and more lucrative) scalability improvements in
    v5.3 (Waiman Long)

    - Lockdep irq state tracking flag usage cleanups (Frederic
    Weisbecker)

    - static key improvements (Jakub Kicinski, Peter Zijlstra)

    - misc updates, cleanups and smaller fixes"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits)
    locking/lockdep: Remove unnecessary unlikely()
    locking/static_key: Don't take sleeping locks in __static_key_slow_dec_deferred()
    locking/static_key: Factor out the fast path of static_key_slow_dec()
    locking/static_key: Add support for deferred static branches
    locking/lockdep: Test all incompatible scenarios at once in check_irq_usage()
    locking/lockdep: Avoid bogus Clang warning
    locking/lockdep: Generate LOCKF_ bit composites
    locking/lockdep: Use expanded masks on find_usage_*() functions
    locking/lockdep: Map remaining magic numbers to lock usage mask names
    locking/lockdep: Move valid_state() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING
    locking/rwsem: Prevent unneeded warning during locking selftest
    locking/rwsem: Optimize rwsem structure for uncontended lock acquisition
    locking/rwsem: Enable lock event counting
    locking/lock_events: Don't show pvqspinlock events on bare metal
    locking/lock_events: Make lock_events available for all archs & other locks
    locking/qspinlock_stat: Introduce generic lockevent_*() counting APIs
    locking/rwsem: Enhance DEBUG_RWSEMS_WARN_ON() macro
    locking/rwsem: Add debug check for __down_read*()
    locking/rwsem: Micro-optimize rwsem_try_read_lock_unqueued()
    locking/rwsem: Move rwsem internal function declarations to rwsem-xadd.h
    ...

    Linus Torvalds
     

30 Apr, 2019

2 commits

  • Add two new functions set_direct_map_default_noflush() and
    set_direct_map_invalid_noflush() for setting the direct map alias for the
    page to its default valid permissions and to an invalid state that cannot
    be cached in a TLB, respectively. These functions do not flush the TLB.

    Note, __kernel_map_pages() does something similar but flushes the TLB and
    doesn't reset the permission bits to default on all architectures.

    Also add an ARCH config ARCH_HAS_SET_DIRECT_MAP for specifying whether
    these have an actual implementation or a default empty one.

    Signed-off-by: Rick Edgecombe
    Signed-off-by: Peter Zijlstra (Intel)
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Dave Hansen
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Nadav Amit
    Cc: Rik van Riel
    Cc: Thomas Gleixner
    Link: https://lkml.kernel.org/r/20190426001143.4983-15-namit@vmware.com
    Signed-off-by: Ingo Molnar

    Rick Edgecombe
     
  • As Stepan Golosunov points out, there is a small mistake in the
    get_timespec64() function in the kernel. It was originally added under the
    assumption that CONFIG_64BIT_TIME would get enabled on all 32-bit and
    64-bit architectures, but when the conversion was done, it was only turned
    on for 32-bit ones.

    The effect is that the get_timespec64() function never clears the upper
    half of the tv_nsec field for 32-bit tasks in compat mode. Clearing this is
    required for POSIX compliant behavior of functions that pass a 'timespec'
    structure with a 64-bit tv_sec and a 32-bit tv_nsec, plus uninitialized
    padding.

    The easiest fix for linux-5.1 is to just make the Kconfig symbol
    unconditional, as it was originally intended. As a follow-up, the #ifdef
    CONFIG_64BIT_TIME can be removed completely..

    Note: for native 32-bit mode, no change is needed, this works as
    designed and user space should never need to clear the upper 32
    bits of the tv_nsec field, in or out of the kernel.

    Fixes: 00bf25d693e7 ("y2038: use time32 syscall names on 32-bit")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Thomas Gleixner
    Cc: Joseph Myers
    Cc: libc-alpha@sourceware.org
    Cc: linux-api@vger.kernel.org
    Cc: Deepa Dinamani
    Cc: Lukasz Majewski
    Cc: Stepan Golosunov
    Link: https://lore.kernel.org/lkml/20190422090710.bmxdhhankurhafxq@sghpc.golosunov.pp.ru/
    Link: https://lkml.kernel.org/r/20190429131951.471701-1-arnd@arndb.de

    Arnd Bergmann
     

10 Apr, 2019

2 commits

  • Add lock event counting calls so that we can track the number of lock
    events happening in the rwsem code.

    With CONFIG_LOCK_EVENT_COUNTS on and booting a 4-socket 112-thread x86-64
    system, the rwsem counts after system bootup were as follows:

    rwsem_opt_fail=261
    rwsem_opt_wlock=50636
    rwsem_rlock=445
    rwsem_rlock_fail=0
    rwsem_rlock_fast=22
    rwsem_rtrylock=810144
    rwsem_sleep_reader=441
    rwsem_sleep_writer=310
    rwsem_wake_reader=355
    rwsem_wake_writer=2335
    rwsem_wlock=261
    rwsem_wlock_fail=0
    rwsem_wtrylock=20583

    It can be seen that most of the lock acquisitions in the slowpath were
    write-locks in the optimistic spinning code path with no sleeping at
    all. For this system, over 97% of the locks are acquired via optimistic
    spinning. It illustrates the importance of optimistic spinning in
    improving the performance of rwsem.

    Signed-off-by: Waiman Long
    Acked-by: Peter Zijlstra
    Acked-by: Davidlohr Bueso
    Cc: Andrew Morton
    Cc: Arnd Bergmann
    Cc: Borislav Petkov
    Cc: Davidlohr Bueso
    Cc: Linus Torvalds
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tim Chen
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20190404174320.22416-11-longman@redhat.com
    Signed-off-by: Ingo Molnar

    Waiman Long
     
  • The QUEUED_LOCK_STAT option to report queued spinlocks event counts
    was previously allowed only on x86 architecture. To make the locking
    event counting code more useful, it is now renamed to a more generic
    LOCK_EVENT_COUNTS config option. This new option will be available to
    all the architectures that use qspinlock at the moment.

    Other locking code can now start to use the generic locking event
    counting code by including lock_events.h and put the new locking event
    names into the lock_events_list.h header file.

    My experience with lock event counting is that it gives valuable insight
    on how the locking code works and what can be done to make it better. I
    would like to extend this benefit to other locking code like mutex and
    rwsem in the near future.

    The PV qspinlock specific code will stay in qspinlock_stat.h. The
    locking event counters will now reside in the /lock_event_counts
    directory.

    Signed-off-by: Waiman Long
    Acked-by: Peter Zijlstra
    Acked-by: Davidlohr Bueso
    Cc: Andrew Morton
    Cc: Arnd Bergmann
    Cc: Borislav Petkov
    Cc: Davidlohr Bueso
    Cc: Linus Torvalds
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tim Chen
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20190404174320.22416-9-longman@redhat.com
    Signed-off-by: Ingo Molnar

    Waiman Long
     

03 Apr, 2019

3 commits

  • Add the Kconfig option HAVE_MMU_GATHER_NO_GATHER to the generic
    mmu_gather code. If the option is set the mmu_gather will not
    track individual pages for delayed page free anymore. A platform
    that enables the option needs to provide its own implementation
    of the __tlb_remove_page_size() function to free pages.

    No change in behavior intended.

    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Peter Zijlstra (Intel)
    Acked-by: Will Deacon
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Dave Hansen
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Rik van Riel
    Cc: Thomas Gleixner
    Cc: aneesh.kumar@linux.vnet.ibm.com
    Cc: heiko.carstens@de.ibm.com
    Cc: linux@armlinux.org.uk
    Cc: npiggin@gmail.com
    Link: http://lkml.kernel.org/r/20180918125151.31744-2-schwidefsky@de.ibm.com
    Signed-off-by: Ingo Molnar

    Martin Schwidefsky
     
  • Make issuing a TLB invalidate for page-table pages the normal case.

    The reason is twofold:

    - too many invalidates is safer than too few,
    - most architectures use the linux page-tables natively
    and would thus require this.

    Make it an opt-out, instead of an opt-in.

    No change in behavior intended.

    Signed-off-by: Peter Zijlstra (Intel)
    Acked-by: Will Deacon
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Dave Hansen
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Rik van Riel
    Cc: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Move the mmu_gather::page_size things into the generic code instead of
    PowerPC specific bits.

    No change in behavior intended.

    Signed-off-by: Peter Zijlstra (Intel)
    Acked-by: Will Deacon
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Aneesh Kumar K.V
    Cc: Borislav Petkov
    Cc: Dave Hansen
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Nick Piggin
    Cc: Peter Zijlstra
    Cc: Rik van Riel
    Cc: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

07 Mar, 2019

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the big char/misc driver patch pull request for 5.1-rc1.

    The largest thing by far is the new habanalabs driver for their AI
    accelerator chip. For now it is in the drivers/misc directory but will
    probably move to a new directory soon along with other drivers of this
    type.

    Other than that, just the usual set of individual driver updates and
    fixes. There's an "odd" merge in here from the DRM tree that they
    asked me to do as the MEI driver is starting to interact with the i915
    driver, and it needed some coordination. All of those patches have
    been properly acked by the relevant subsystem maintainers.

    All of these have been in linux-next with no reported issues, most for
    quite some time"

    * tag 'char-misc-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (219 commits)
    habanalabs: adjust Kconfig to fix build errors
    habanalabs: use %px instead of %p in error print
    habanalabs: use do_div for 64-bit divisions
    intel_th: gth: Fix an off-by-one in output unassigning
    habanalabs: fix little-endiancpu conversion warnings
    habanalabs: use NULL to initialize array of pointers
    habanalabs: fix little-endiancpu conversion warnings
    habanalabs: soft-reset device if context-switch fails
    habanalabs: print pointer using %p
    habanalabs: fix memory leak with CBs with unaligned size
    habanalabs: return correct error code on MMU mapping failure
    habanalabs: add comments in uapi/misc/habanalabs.h
    habanalabs: extend QMAN0 job timeout
    habanalabs: set DMA0 completion to SOB 1007
    habanalabs: fix validation of WREG32 to DMA completion
    habanalabs: fix mmu cache registers init
    habanalabs: disable CPU access on timeouts
    habanalabs: add MMU DRAM default page mapping
    habanalabs: Dissociate RAZWI info from event types
    misc/habanalabs: adjust Kconfig to fix build errors
    ...

    Linus Torvalds
     

06 Mar, 2019

1 commit

  • Pull EFI updates from Ingo Molnar:
    "The main EFI changes in this cycle were:

    - Use 32-bit alignment for efi_guid_t

    - Allow the SetVirtualAddressMap() call to be omitted

    - Implement earlycon=efifb based on existing earlyprintk code

    - Various minor fixes and code cleanups from Sai, Ard and me"

    * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    efi: Fix build error due to enum collision between efi.h and ima.h
    efi/x86: Convert x86 EFI earlyprintk into generic earlycon implementation
    x86: Make ARCH_USE_MEMREMAP_PROT a generic Kconfig symbol
    efi/arm/arm64: Allow SetVirtualAddressMap() to be omitted
    efi: Replace GPL license boilerplate with SPDX headers
    efi/fdt: Apply more cleanups
    efi: Use 32-bit alignment for efi_guid_t
    efi/memattr: Don't bail on zero VA if it equals the region's PA
    x86/efi: Mark can_free_region() as an __init function

    Linus Torvalds
     

19 Feb, 2019

1 commit

  • All new 32-bit architectures should have 64-bit userspace off_t type, but
    existing architectures has 32-bit ones.

    To enforce the rule, new config option is added to arch/Kconfig that defaults
    ARCH_32BIT_OFF_T to be disabled for new 32-bit architectures. All existing
    32-bit architectures enable it explicitly.

    New option affects force_o_largefile() behaviour. Namely, if userspace
    off_t is 64-bits long, we have no reason to reject user to open big files.

    Note that even if architectures has only 64-bit off_t in the kernel
    (arc, c6x, h8300, hexagon, nios2, openrisc, and unicore32),
    a libc may use 32-bit off_t, and therefore want to limit the file size
    to 4GB unless specified differently in the open flags.

    Signed-off-by: Yury Norov
    Acked-by: Arnd Bergmann
    Signed-off-by: Yury Norov
    Signed-off-by: Arnd Bergmann

    Yury Norov
     

07 Feb, 2019

1 commit

  • This is the big flip, where all 32-bit architectures set COMPAT_32BIT_TIME
    and use the _time32 system calls from the former compat layer instead
    of the system calls that take __kernel_timespec and similar arguments.

    The temporary redirects for __kernel_timespec, __kernel_itimerspec
    and __kernel_timex can get removed with this.

    It would be easy to split this commit by architecture, but with the new
    generated system call tables, it's easy enough to do it all at once,
    which makes it a little easier to check that the changes are the same
    in each table.

    Acked-by: Geert Uytterhoeven
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

04 Feb, 2019

1 commit

  • Turn ARCH_USE_MEMREMAP_PROT into a generic Kconfig symbol, and fix the
    dependency expression to reflect that AMD_MEM_ENCRYPT depends on it,
    instead of the other way around. This will permit ARCH_USE_MEMREMAP_PROT
    to be selected by other architectures.

    Note that the encryption related early memremap routines in
    arch/x86/mm/ioremap.c cannot be built for 32-bit x86 without triggering
    the following warning:

    arch/x86//mm/ioremap.c: In function 'early_memremap_encrypted':
    >> arch/x86/include/asm/pgtable_types.h:193:27: warning: conversion from
    'long long unsigned int' to 'long unsigned int' changes
    value from '9223372036854776163' to '355' [-Woverflow]
    #define __PAGE_KERNEL_ENC (__PAGE_KERNEL | _PAGE_ENC)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    arch/x86//mm/ioremap.c:713:46: note: in expansion of macro '__PAGE_KERNEL_ENC'
    return early_memremap_prot(phys_addr, size, __PAGE_KERNEL_ENC);

    which essentially means they are 64-bit only anyway. However, we cannot
    make them dependent on CONFIG_ARCH_HAS_MEM_ENCRYPT, since that is always
    defined, even for i386 (and changing that results in a slew of build errors)

    So instead, build those routines only if CONFIG_AMD_MEM_ENCRYPT is
    defined.

    Signed-off-by: Ard Biesheuvel
    Cc: AKASHI Takahiro
    Cc: Alexander Graf
    Cc: Bjorn Andersson
    Cc: Borislav Petkov
    Cc: Heinrich Schuchardt
    Cc: Jeffrey Hugo
    Cc: Lee Jones
    Cc: Leif Lindholm
    Cc: Linus Torvalds
    Cc: Matt Fleming
    Cc: Peter Jones
    Cc: Peter Zijlstra
    Cc: Sai Praneeth Prakhya
    Cc: Thomas Gleixner
    Cc: linux-efi@vger.kernel.org
    Link: http://lkml.kernel.org/r/20190202094119.13230-9-ard.biesheuvel@linaro.org
    Signed-off-by: Ingo Molnar

    Ard Biesheuvel
     

22 Jan, 2019

1 commit


06 Jan, 2019

1 commit

  • Currently, CONFIG_JUMP_LABEL just means "I _want_ to use jump label".

    The jump label is controlled by HAVE_JUMP_LABEL, which is defined
    like this:

    #if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL)
    # define HAVE_JUMP_LABEL
    #endif

    We can improve this by testing 'asm goto' support in Kconfig, then
    make JUMP_LABEL depend on CC_HAS_ASM_GOTO.

    Ugly #ifdef HAVE_JUMP_LABEL will go away, and CONFIG_JUMP_LABEL will
    match to the real kernel capability.

    Signed-off-by: Masahiro Yamada
    Acked-by: Michael Ellerman (powerpc)
    Tested-by: Sedat Dilek

    Masahiro Yamada