05 Dec, 2019

14 commits

  • In some drivers we want to have a single operation over bitmap which is
    an equivalent to:

    *dst = (*old & ~(*mask)) | (*new & *mask)

    Introduce bitmap_replace() helper for this.

    Link: http://lkml.kernel.org/r/20191022172922.61232-8-andriy.shevchenko@linux.intel.com
    Signed-off-by: Andy Shevchenko
    Acked-by: Linus Walleij
    Cc: Rasmus Villemoes
    Cc: Bartosz Golaszewski
    Cc: Geert Uytterhoeven
    Cc: Marek Vasut
    Cc: Thomas Petazzoni
    Cc: William Breathitt Gray
    Cc: Yury Norov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • This test case file is about bitmap API, and not printf() facility.

    Link: http://lkml.kernel.org/r/20191022172922.61232-7-andriy.shevchenko@linux.intel.com
    Signed-off-by: Andy Shevchenko
    Acked-by: Linus Walleij
    Cc: Bartosz Golaszewski
    Cc: Geert Uytterhoeven
    Cc: Marek Vasut
    Cc: Rasmus Villemoes
    Cc: Thomas Petazzoni
    Cc: William Breathitt Gray
    Cc: Yury Norov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • Some test cases may re-use predefined exp1 and exp2 bitmaps. Move them
    upper in the file.

    Link: http://lkml.kernel.org/r/20191022172922.61232-6-andriy.shevchenko@linux.intel.com
    Signed-off-by: Andy Shevchenko
    Acked-by: Linus Walleij
    Cc: Bartosz Golaszewski
    Cc: Geert Uytterhoeven
    Cc: Marek Vasut
    Cc: Rasmus Villemoes
    Cc: Thomas Petazzoni
    Cc: William Breathitt Gray
    Cc: Yury Norov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • One function is using exp as local variable. Avoid ambiguous naming by
    rename global one to exp1.

    Link: http://lkml.kernel.org/r/20191022172922.61232-5-andriy.shevchenko@linux.intel.com
    Signed-off-by: Andy Shevchenko
    Acked-by: Linus Walleij
    Cc: Bartosz Golaszewski
    Cc: Geert Uytterhoeven
    Cc: Marek Vasut
    Cc: Rasmus Villemoes
    Cc: Thomas Petazzoni
    Cc: William Breathitt Gray
    Cc: Yury Norov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • EXP_BYTES has been wrongly named. It's a size of the exp array in bits.

    While here, go ahead and rename to EXP1_IN_BITS to avoid double renaming
    when exp will be renamed to exp1 in the next patch

    Link: http://lkml.kernel.org/r/20191022172922.61232-4-andriy.shevchenko@linux.intel.com
    Signed-off-by: Andy Shevchenko
    Acked-by: Linus Walleij
    Cc: Bartosz Golaszewski
    Cc: Geert Uytterhoeven
    Cc: Marek Vasut
    Cc: Rasmus Villemoes
    Cc: Thomas Petazzoni
    Cc: William Breathitt Gray
    Cc: Yury Norov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • There is no need to keep step and ptest macros defined in entire file.

    Link: http://lkml.kernel.org/r/20191022172922.61232-3-andriy.shevchenko@linux.intel.com
    Signed-off-by: Andy Shevchenko
    Acked-by: Linus Walleij
    Cc: Bartosz Golaszewski
    Cc: Geert Uytterhoeven
    Cc: Marek Vasut
    Cc: Rasmus Villemoes
    Cc: Thomas Petazzoni
    Cc: William Breathitt Gray
    Cc: Yury Norov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • Patch series "gpio: pca953x: Convert to bitmap (extended) API", v2.

    While converting gpio-pca953x driver to bitmap API, I noticed that we
    have no function to replace bits.

    So, that's how patch 7 appears.

    First 6 patches are preparatory of the test suite (including some
    warning fixes, etc).

    Patches 8-9 are preparatory for the GPIO driver to be easier converted
    to bitmap API, conversion to which happens in patch 10.

    Patch 11 contains simple indentation fixes.

    This patch (of 11):

    Sparse complains:

    lib/test_bitmap.c:345:58: warning: incorrect type in argument 1 (different address spaces)
    lib/test_bitmap.c:345:58: expected char const [noderef] *ubuf
    lib/test_bitmap.c:345:58: got char const *const in

    Force argument of bitmap_parselist_user() to proper address space.

    Link: http://lkml.kernel.org/r/20191022172922.61232-2-andriy.shevchenko@linux.intel.com
    Signed-off-by: Andy Shevchenko
    Acked-by: Linus Walleij
    Cc: Bartosz Golaszewski
    Cc: Rasmus Villemoes
    Cc: Yury Norov
    Cc: William Breathitt Gray
    Cc: Geert Uytterhoeven
    Cc: Thomas Petazzoni
    Cc: Marek Vasut
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • At the moment, UBSAN report will be serialized using a spin_lock(). On
    RT-systems, spinlocks are turned to rt_spin_lock and may sleep. This
    will result to the following splat if the undefined behavior is in a
    context that can sleep:

    BUG: sleeping function called from invalid context at /src/linux/kernel/locking/rtmutex.c:968
    in_atomic(): 1, irqs_disabled(): 128, pid: 3447, name: make
    1 lock held by make/3447:
    #0: 000000009a966332 (&mm->mmap_sem){++++}, at: do_page_fault+0x140/0x4f8
    irq event stamp: 6284
    hardirqs last enabled at (6283): [] _raw_spin_unlock_irqrestore+0x90/0xa0
    hardirqs last disabled at (6284): [] _raw_spin_lock_irqsave+0x30/0x78
    softirqs last enabled at (2430): [] fpsimd_restore_current_state+0x60/0xe8
    softirqs last disabled at (2427): [] fpsimd_restore_current_state+0x28/0xe8
    Preemption disabled at:
    [] rt_mutex_futex_unlock+0x4c/0xb0
    CPU: 3 PID: 3447 Comm: make Tainted: G W 5.2.14-rt7-01890-ge6e057589653 #911
    Call trace:
    dump_backtrace+0x0/0x148
    show_stack+0x14/0x20
    dump_stack+0xbc/0x104
    ___might_sleep+0x154/0x210
    rt_spin_lock+0x68/0xa0
    ubsan_prologue+0x30/0x68
    handle_overflow+0x64/0xe0
    __ubsan_handle_add_overflow+0x10/0x18
    __lock_acquire+0x1c28/0x2a28
    lock_acquire+0xf0/0x370
    _raw_spin_lock_irqsave+0x58/0x78
    rt_mutex_futex_unlock+0x4c/0xb0
    rt_spin_unlock+0x28/0x70
    get_page_from_freelist+0x428/0x2b60
    __alloc_pages_nodemask+0x174/0x1708
    alloc_pages_vma+0x1ac/0x238
    __handle_mm_fault+0x4ac/0x10b0
    handle_mm_fault+0x1d8/0x3b0
    do_page_fault+0x1c8/0x4f8
    do_translation_fault+0xb8/0xe0
    do_mem_abort+0x3c/0x98
    el0_da+0x20/0x24

    The spin_lock() will protect against multiple CPUs to output a report
    together, I guess to prevent them from being interleaved. However, they
    can still interleave with other messages (and even splat from
    __might_sleep).

    So the lock usefulness seems pretty limited. Rather than trying to
    accomodate RT-system by switching to a raw_spin_lock(), the lock is now
    completely dropped.

    Link: http://lkml.kernel.org/r/20190920100835.14999-1-julien.grall@arm.com
    Signed-off-by: Julien Grall
    Reported-by: Andre Przywara
    Acked-by: Andrey Ryabinin
    Cc: Thomas Gleixner
    Cc: Sebastian Andrzej Siewior
    Cc: Steven Rostedt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julien Grall
     
  • Follow the kernel conventions, rename addr_in_gen_pool to
    gen_pool_has_addr.

    [sjhuang@iluvatar.ai: fix Documentation/ too]
    Link: http://lkml.kernel.org/r/20181229015914.5573-1-sjhuang@iluvatar.ai
    Link: http://lkml.kernel.org/r/20181228083950.20398-1-sjhuang@iluvatar.ai
    Signed-off-by: Huang Shijie
    Reviewed-by: Andrew Morton
    Cc: Russell King
    Cc: Arnd Bergmann
    Cc: Greg Kroah-Hartman
    Cc: Christoph Hellwig
    Cc: Marek Szyprowski
    Cc: Robin Murphy
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Shijie
     
  • We use addr_in_gen_pool() in a driver module. So export it.

    Link: http://lkml.kernel.org/r/20181224070622.22197-2-sjhuang@iluvatar.ai
    Signed-off-by: Huang Shijie
    Reviewed-by: Andrew Morton
    Cc: Alexey Skidanov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Shijie
     
  • In some cases the previous algorithm would not return the closest
    approximation. This would happen when a semi-convergent was the
    closest, as the previous algorithm would only consider convergents.

    As an example, consider an initial value of 5/4, and trying to find the
    closest approximation with a maximum of 4 for numerator and denominator.
    The previous algorithm would return 1/1 as the closest approximation,
    while this version will return the correct answer of 4/3.

    To do this, the main loop performs effectively the same operations as it
    did before. It must now keep track of the last three approximations,
    n2/d2 .. n0/d0, while before it only needed the last two.

    If an exact answer is not found, the algorithm will now calculate the
    best semi-convergent term, t, which is a single expression with two
    divisions:

    min((max_numerator - n0) / n1, (max_denominator - d0) / d1)

    This will be used if it is better than previous convergent. The test
    for this is generally a simple comparison, 2*t > a. But in an edge
    case, where the convergent's final term is even and the best allowable
    semi-convergent has a final term of exactly half the convergent's final
    term, the more complex comparison (d0*dp > d1*d) is used.

    I also wrote some comments explaining the code. While one still needs
    to look up the math elsewhere, they should help a lot to follow how the
    code relates to that math.

    This routine is used in two places in the video4linux code, but in those
    cases it is only used to reduce a fraction to lowest terms, which the
    existing code will do correctly. This could be done more efficiently
    with a different library routine but it would still be the Euclidean
    alogrithm at its heart. So no change.

    The remain users are places where a fractional PLL divider is
    programmed. What would happen is something asked for a clock of X MHz
    but instead gets Y MHz, where Y is close to X but not exactly due to the
    hardware limitations. After this change they might, in some cases, get
    Y' MHz, where Y' is a little closer to X then Y was.

    Users like this are: Three UARTs, in 8250_mid, 8250_lpss, and imx. One
    GPU in vp4_hdmi. And three clock drivers, clk-cdce706, clk-si5351, and
    clk-fractional-divider. The last is a generic clock driver and so would
    have more users referenced via device tree entries.

    I think there's a bug in that one, it's limiting an N bit field that is
    offset-by-1 to the range 0 .. (1<<
    Cc: Oskar Schirmer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Trent Piepho
     
  • kmem_cache_alloc_bulk/kmem_cache_free_bulk are used to make multiple
    allocations of the same size to avoid the overhead of multiple
    kmalloc/kfree calls. Extend the kmem_cache tests to make some calls to
    these APIs.

    Link: http://lkml.kernel.org/r/20191107191447.23058-1-labbott@redhat.com
    Signed-off-by: Laura Abbott
    Reviewed-by: Kees Cook
    Tested-by: Alexander Potapenko
    Cc: Laura Abbott
    Cc: Christoph Lameter
    Cc: Nick Desaulniers
    Cc: Kostya Serebryany
    Cc: Dmitry Vyukov
    Cc: Sandeep Patil
    Cc: Jann Horn
    Cc: Marco Elver
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Laura Abbott
     
  • The introduction of the for_each_set_clump8 macro warrants test cases to
    verify the implementation. This patch adds test case checks for whether
    an out-of-bounds clump index is returned, a zero clump is returned, or
    the returned clump value differs from the expected clump value.

    Link: http://lkml.kernel.org/r/febc0fb8151e3e3fdd61c34da9193d1c4d7e6c12.1570641097.git.vilhelm.gray@gmail.com
    Signed-off-by: William Breathitt Gray
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Linus Walleij
    Tested-by: Andy Shevchenko
    Cc: Rasmus Villemoes
    Cc: Arnd Bergmann
    Cc: Bartosz Golaszewski
    Cc: Geert Uytterhoeven
    Cc: Geert Uytterhoeven
    Cc: Lukas Wunner
    Cc: Masahiro Yamada
    Cc: Mathias Duckeck
    Cc: Morten Hein Tiljeset
    Cc: Phil Reid
    Cc: Sean Nyekjaer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    William Breathitt Gray
     
  • Pach series "Introduce the for_each_set_clump8 macro", v18.

    While adding GPIO get_multiple/set_multiple callback support for various
    drivers, I noticed a pattern of looping manifesting that would be useful
    standardized as a macro.

    This patchset introduces the for_each_set_clump8 macro and utilizes it
    in several GPIO drivers. The for_each_set_clump macro8 facilitates a
    for-loop syntax that iterates over a memory region entire groups of set
    bits at a time.

    For example, suppose you would like to iterate over a 32-bit integer 8
    bits at a time, skipping over 8-bit groups with no set bit, where
    XXXXXXXX represents the current 8-bit group:

    Example: 10111110 00000000 11111111 00110011
    First loop: 10111110 00000000 11111111 XXXXXXXX
    Second loop: 10111110 00000000 XXXXXXXX 00110011
    Third loop: XXXXXXXX 00000000 11111111 00110011

    Each iteration of the loop returns the next 8-bit group that has at
    least one set bit.

    The for_each_set_clump8 macro has four parameters:

    * start: set to the bit offset of the current clump
    * clump: set to the current clump value
    * bits: bitmap to search within
    * size: bitmap size in number of bits

    In this version of the patchset, the for_each_set_clump macro has been
    reimplemented and simplified based on the suggestions provided by Rasmus
    Villemoes and Andy Shevchenko in the version 4 submission.

    In particular, the function of the for_each_set_clump macro has been
    restricted to handle only 8-bit clumps; the drivers that use the
    for_each_set_clump macro only handle 8-bit ports so a generic
    for_each_set_clump implementation is not necessary. Thus, a solution
    for large clumps (i.e. those larger than the width of a bitmap word)
    can be postponed until a driver appears that actually requires such a
    generic for_each_set_clump implementation.

    For what it's worth, a semi-generic for_each_set_clump (i.e. for clumps
    smaller than the width of a bitmap word) can be implemented by simply
    replacing the hardcoded '8' and '0xFF' instances with respective
    variables. I have not yet had a need for such an implementation, and
    since it falls short of a true generic for_each_set_clump function, I
    have decided to forgo such an implementation for now.

    In addition, the bitmap_get_value8 and bitmap_set_value8 functions are
    introduced to get and set 8-bit values respectively. Their use is based
    on the behavior suggested in the patchset version 4 review.

    This patch (of 14):

    This macro iterates for each 8-bit group of bits (clump) with set bits,
    within a bitmap memory region. For each iteration, "start" is set to
    the bit offset of the found clump, while the respective clump value is
    stored to the location pointed by "clump". Additionally, the
    bitmap_get_value8 and bitmap_set_value8 functions are introduced to
    respectively get and set an 8-bit value in a bitmap memory region.

    [gustavo@embeddedor.com: fix potential sign-extension overflow]
    Link: http://lkml.kernel.org/r/20191015184657.GA26541@embeddedor
    [akpm@linux-foundation.org: s/ULL/UL/, per Joe]
    [vilhelm.gray@gmail.com: add for_each_set_clump8 documentation]
    Link: http://lkml.kernel.org/r/20191016161825.301082-1-vilhelm.gray@gmail.com
    Link: http://lkml.kernel.org/r/893c3b4f03266c9496137cc98ac2b1bd27f92c73.1570641097.git.vilhelm.gray@gmail.com
    Signed-off-by: William Breathitt Gray
    Signed-off-by: Gustavo A. R. Silva
    Suggested-by: Andy Shevchenko
    Suggested-by: Rasmus Villemoes
    Suggested-by: Lukas Wunner
    Tested-by: Andy Shevchenko
    Cc: Arnd Bergmann
    Cc: Linus Walleij
    Cc: Bartosz Golaszewski
    Cc: Masahiro Yamada
    Cc: Geert Uytterhoeven
    Cc: Phil Reid
    Cc: Geert Uytterhoeven
    Cc: Mathias Duckeck
    Cc: Morten Hein Tiljeset
    Cc: Sean Nyekjaer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    William Breathitt Gray
     

04 Dec, 2019

1 commit

  • Pull PCI updates from Bjorn Helgaas:
    "Enumeration:

    - Warn if a host bridge has no NUMA info (Yunsheng Lin)

    - Add PCI_STD_NUM_BARS for the number of standard BARs (Denis
    Efremov)

    Resource management:

    - Fix boot-time Embedded Controller GPE storm caused by incorrect
    resource assignment after ACPI Bus Check Notification (Mika
    Westerberg)

    - Protect pci_reassign_bridge_resources() against concurrent
    addition/removal (Benjamin Herrenschmidt)

    - Fix bridge dma_ranges resource list cleanup (Rob Herring)

    - Add "pci=hpmmiosize" and "pci=hpmmioprefsize" parameters to control
    the MMIO and prefetchable MMIO window sizes of hotplug bridges
    independently (Nicholas Johnson)

    - Fix MMIO/MMIO_PREF window assignment that assigned more space than
    desired (Nicholas Johnson)

    - Only enforce bus numbers from bridge EA if the bridge has EA
    devices downstream (Subbaraya Sundeep)

    - Consolidate DT "dma-ranges" parsing and convert all host drivers to
    use shared parsing (Rob Herring)

    Error reporting:

    - Restore AER capability after resume (Mayurkumar Patel)

    - Add PoisonTLPBlocked AER counter (Rajat Jain)

    - Use for_each_set_bit() to simplify AER code (Andy Shevchenko)

    - Fix AER kernel-doc (Andy Shevchenko)

    - Add "pcie_ports=dpc-native" parameter to allow native use of DPC
    even if platform didn't grant control over AER (Olof Johansson)

    Hotplug:

    - Avoid returning prematurely from sysfs requests to enable or
    disable a PCIe hotplug slot (Lukas Wunner)

    - Don't disable interrupts twice when suspending hotplug ports (Mika
    Westerberg)

    - Fix deadlocks when PCIe ports are hot-removed while suspended (Mika
    Westerberg)

    Power management:

    - Remove unnecessary ASPM locking (Bjorn Helgaas)

    - Add support for disabling L1 PM Substates (Heiner Kallweit)

    - Allow re-enabling Clock PM after it has been disabled (Heiner
    Kallweit)

    - Add sysfs attributes for controlling ASPM link states (Heiner
    Kallweit)

    - Remove CONFIG_PCIEASPM_DEBUG, including "link_state" and "clk_ctl"
    sysfs files (Heiner Kallweit)

    - Avoid AMD FCH XHCI USB PME# from D0 defect that prevents wakeup on
    USB 2.0 or 1.1 connect events (Kai-Heng Feng)

    - Move power state check out of pci_msi_supported() (Bjorn Helgaas)

    - Fix incorrect MSI-X masking on resume and revert related nvme quirk
    for Kingston NVME SSD running FW E8FK11.T (Jian-Hong Pan)

    - Always return devices to D0 when thawing to fix hibernation with
    drivers like mlx4 that used legacy power management (previously we
    only did it for drivers with new power management ops) (Dexuan Cui)

    - Clear PCIe PME Status even for legacy power management (Bjorn
    Helgaas)

    - Fix PCI PM documentation errors (Bjorn Helgaas)

    - Use dev_printk() for more power management messages (Bjorn Helgaas)

    - Apply D2 delay as milliseconds, not microseconds (Bjorn Helgaas)

    - Convert xen-platform from legacy to generic power management (Bjorn
    Helgaas)

    - Removed unused .resume_early() and .suspend_late() legacy power
    management hooks (Bjorn Helgaas)

    - Rearrange power management code for clarity (Rafael J. Wysocki)

    - Decode power states more clearly ("4" or "D4" really refers to
    "D3cold") (Bjorn Helgaas)

    - Notice when reading PM Control register returns an error (~0)
    instead of interpreting it as being in D3hot (Bjorn Helgaas)

    - Add missing link delays required by the PCIe spec (Mika Westerberg)

    Virtualization:

    - Move pci_prg_resp_pasid_required() to CONFIG_PCI_PRI (Bjorn
    Helgaas)

    - Allow VFs to use PRI (the PF PRI is shared by the VFs, but the code
    previously didn't recognize that) (Kuppuswamy Sathyanarayanan)

    - Allow VFs to use PASID (the PF PASID capability is shared by the
    VFs, but the code previously didn't recognize that) (Kuppuswamy
    Sathyanarayanan)

    - Disconnect PF and VF ATS enablement, since ATS in PFs and
    associated VFs can be enabled independently (Kuppuswamy
    Sathyanarayanan)

    - Cache PRI and PASID capability offsets (Kuppuswamy Sathyanarayanan)

    - Cache the PRI PRG Response PASID Required bit (Bjorn Helgaas)

    - Consolidate ATS declarations in linux/pci-ats.h (Krzysztof
    Wilczynski)

    - Remove unused PRI and PASID stubs (Bjorn Helgaas)

    - Removed unnecessary EXPORT_SYMBOL_GPL() from ATS, PRI, and PASID
    interfaces that are only used by built-in IOMMU drivers (Bjorn
    Helgaas)

    - Hide PRI and PASID state restoration functions used only inside the
    PCI core (Bjorn Helgaas)

    - Add a DMA alias quirk for the Intel VCA NTB (Slawomir Pawlowski)

    - Serialize sysfs sriov_numvfs reads vs writes (Pierre Crégut)

    - Update Cavium ACS quirk for ThunderX2 and ThunderX3 (George
    Cherian)

    - Fix the UPDCR register address in the Intel ACS quirk (Steffen
    Liebergeld)

    - Unify ACS quirk implementations (Bjorn Helgaas)

    Amlogic Meson host bridge driver:

    - Fix meson PERST# GPIO polarity problem (Remi Pommarel)

    - Add DT bindings for Amlogic Meson G12A (Neil Armstrong)

    - Fix meson clock names to match DT bindings (Neil Armstrong)

    - Add meson support for Amlogic G12A SoC with separate shared PHY
    (Neil Armstrong)

    - Add meson extended PCIe PHY functions for Amlogic G12A USB3+PCIe
    combo PHY (Neil Armstrong)

    - Add arm64 DT for Amlogic G12A PCIe controller node (Neil Armstrong)

    - Add commented-out description of VIM3 USB3/PCIe mux in arm64 DT
    (Neil Armstrong)

    Broadcom iProc host bridge driver:

    - Invalidate iProc PAXB address mapping before programming it
    (Abhishek Shah)

    - Fix iproc-msi and mvebu __iomem annotations (Ben Dooks)

    Cadence host bridge driver:

    - Refactor Cadence PCIe host controller to use as a library for both
    host and endpoint (Tom Joseph)

    Freescale Layerscape host bridge driver:

    - Add layerscape LS1028a support (Xiaowei Bao)

    Intel VMD host bridge driver:

    - Add VMD bus 224-255 restriction decode (Jon Derrick)

    - Add VMD 8086:9A0B device ID (Jon Derrick)

    - Remove Keith from VMD maintainer list (Keith Busch)

    Marvell ARMADA 3700 / Aardvark host bridge driver:

    - Use LTSSM state to build link training flag since Aardvark doesn't
    implement the Link Training bit (Remi Pommarel)

    - Delay before training Aardvark link in case PERST# was asserted
    before the driver probe (Remi Pommarel)

    - Fix Aardvark issues with Root Control reads and writes (Remi
    Pommarel)

    - Don't rely on jiffies in Aardvark config access path since
    interrupts may be disabled (Remi Pommarel)

    - Fix Aardvark big-endian support (Grzegorz Jaszczyk)

    Marvell ARMADA 370 / XP host bridge driver:

    - Make mvebu_pci_bridge_emul_ops static (Ben Dooks)

    Microsoft Hyper-V host bridge driver:

    - Add hibernation support for Hyper-V virtual PCI devices (Dexuan
    Cui)

    - Track Hyper-V pci_protocol_version per-hbus, not globally (Dexuan
    Cui)

    - Avoid kmemleak false positive on hv hbus buffer (Dexuan Cui)

    Mobiveil host bridge driver:

    - Change mobiveil csr_read()/write() function names that conflict
    with riscv arch functions (Kefeng Wang)

    NVIDIA Tegra host bridge driver:

    - Fix Tegra CLKREQ dependency programming (Vidya Sagar)

    Renesas R-Car host bridge driver:

    - Remove unnecessary header include from rcar (Andrew Murray)

    - Tighten register index checking for rcar inbound range programming
    (Marek Vasut)

    - Fix rcar inbound range alignment calculation to improve packing of
    multiple entries (Marek Vasut)

    - Update rcar MACCTLR setting to match documentation (Yoshihiro
    Shimoda)

    - Clear bit 0 of MACCTLR before PCIETCTLR.CFINIT per manual
    (Yoshihiro Shimoda)

    - Add Marek Vasut and Yoshihiro Shimoda as R-Car maintainers (Simon
    Horman)

    Rockchip host bridge driver:

    - Make rockchip 0V9 and 1V8 power regulators non-optional (Robin
    Murphy)

    Socionext UniPhier host bridge driver:

    - Set uniphier to host (RC) mode always (Kunihiko Hayashi)

    Endpoint drivers:

    - Fix endpoint driver sign extension problem when shifting page
    number to phys_addr_t (Alan Mikhak)

    Misc:

    - Add NumaChip SPDX header (Krzysztof Wilczynski)

    - Replace EXTRA_CFLAGS with ccflags-y (Krzysztof Wilczynski)

    - Remove unused includes (Krzysztof Wilczynski)

    - Removed unused sysfs attribute groups (Ben Dooks)

    - Remove PTM and ASPM dependencies on PCIEPORTBUS (Bjorn Helgaas)

    - Add PCIe Link Control 2 register field definitions to replace magic
    numbers in AMDGPU and Radeon CIK/SI (Bjorn Helgaas)

    - Fix incorrect Link Control 2 Transmit Margin usage in AMDGPU and
    Radeon CIK/SI PCIe Gen3 link training (Bjorn Helgaas)

    - Use pcie_capability_read_word() instead of pci_read_config_word()
    in AMDGPU and Radeon CIK/SI (Frederick Lawler)

    - Remove unused pci_irq_get_node() Greg Kroah-Hartman)

    - Make asm/msi.h mandatory and simplify PCI_MSI_IRQ_DOMAIN Kconfig
    (Palmer Dabbelt, Michal Simek)

    - Read all 64 bits of Switchtec part_event_bitmap (Logan Gunthorpe)

    - Fix erroneous intel-iommu dependency on CONFIG_AMD_IOMMU (Bjorn
    Helgaas)

    - Fix bridge emulation big-endian support (Grzegorz Jaszczyk)

    - Fix dwc find_next_bit() usage (Niklas Cassel)

    - Fix pcitest.c fd leak (Hewenliang)

    - Fix typos and comments (Bjorn Helgaas)

    - Fix Kconfig whitespace errors (Krzysztof Kozlowski)"

    * tag 'pci-v5.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (160 commits)
    PCI: Remove PCI_MSI_IRQ_DOMAIN architecture whitelist
    asm-generic: Make msi.h a mandatory include/asm header
    Revert "nvme: Add quirk for Kingston NVME SSD running FW E8FK11.T"
    PCI/MSI: Fix incorrect MSI-X masking on resume
    PCI/MSI: Move power state check out of pci_msi_supported()
    PCI/MSI: Remove unused pci_irq_get_node()
    PCI: hv: Avoid a kmemleak false positive caused by the hbus buffer
    PCI: hv: Change pci_protocol_version to per-hbus
    PCI: hv: Add hibernation support
    PCI: hv: Reorganize the code in preparation of hibernation
    MAINTAINERS: Remove Keith from VMD maintainer
    PCI/ASPM: Remove PCIEASPM_DEBUG Kconfig option and related code
    PCI/ASPM: Add sysfs attributes for controlling ASPM link states
    PCI: Fix indentation
    drm/radeon: Prefer pcie_capability_read_word()
    drm/radeon: Replace numbers with PCI_EXP_LNKCTL2 definitions
    drm/radeon: Correct Transmit Margin masks
    drm/amdgpu: Prefer pcie_capability_read_word()
    PCI: uniphier: Set mode register to host mode
    drm/amdgpu: Replace numbers with PCI_EXP_LNKCTL2 definitions
    ...

    Linus Torvalds
     

03 Dec, 2019

2 commits

  • Pull Kbuild updates from Masahiro Yamada:

    - remove unneeded asm headers from hexagon, ia64

    - add 'dir-pkg' target, which works like 'tar-pkg' but skips archiving

    - add 'helpnewconfig' target, which shows help for new CONFIG options

    - support 'make nsdeps' for external modules

    - make rebuilds faster by deleting $(wildcard $^) checks

    - remove compile tests for kernel-space headers

    - refactor modpost to simplify modversion handling

    - make single target builds faster

    - optimize and clean up scripts/kallsyms.c

    - refactor various Makefiles and scripts

    * tag 'kbuild-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (59 commits)
    MAINTAINERS: update Kbuild/Kconfig maintainer's email address
    scripts/kallsyms: remove redundant initializers
    scripts/kallsyms: put check_symbol_range() calls close together
    scripts/kallsyms: make check_symbol_range() void function
    scripts/kallsyms: move ignored symbol types to is_ignored_symbol()
    scripts/kallsyms: move more patterns to the ignored_prefixes array
    scripts/kallsyms: skip ignored symbols very early
    scripts/kallsyms: add const qualifiers where possible
    scripts/kallsyms: make find_token() return (unsigned char *)
    scripts/kallsyms: replace prefix_underscores_count() with strspn()
    scripts/kallsyms: add sym_name() to mitigate cast ugliness
    scripts/kallsyms: remove unneeded length check for prefix matching
    scripts/kallsyms: remove redundant is_arm_mapping_symbol()
    scripts/kallsyms: set relative_base more effectively
    scripts/kallsyms: shrink table before sorting it
    scripts/kallsyms: fix definitely-lost memory leak
    scripts/kallsyms: remove unneeded #ifndef ARRAY_SIZE
    kbuild: make single target builds even faster
    modpost: respect the previous export when 'exported twice' is warned
    modpost: do not set ->preloaded for symbols from Module.symvers
    ...

    Linus Torvalds
     
  • Pull Documentation updates from Jonathan Corbet:
    "Here are the main documentation changes for 5.5:

    - Various kerneldoc script enhancements.

    - More RST conversions; those are slowing down as we run out of
    things to convert, but we're a ways from done still.

    - Dan's "maintainer profile entry" work landed at last. Now we just
    need to get maintainers to fill in the profiles...

    - A reworking of the parallel build setup to work better with a
    variety of systems (and to not take over huge systems entirely in
    particular).

    - The MAINTAINERS file is now converted to RST during the build.
    Hopefully nobody ever tries to print this thing, or they will need
    to load a lot of paper.

    - A script and documentation making it easy for maintainers to add
    Link: tags at commit time.

    Also included is the removal of a bunch of spurious CR characters"

    * tag 'docs-5.5a' of git://git.lwn.net/linux: (91 commits)
    docs: remove a bunch of stray CRs
    docs: fix up the maintainer profile document
    libnvdimm, MAINTAINERS: Maintainer Entry Profile
    Maintainer Handbook: Maintainer Entry Profile
    MAINTAINERS: Reclaim the P: tag for Maintainer Entry Profile
    docs, parallelism: Rearrange how jobserver reservations are made
    docs, parallelism: Do not leak blocking mode to other readers
    docs, parallelism: Fix failure path and add comment
    Documentation: Remove bootmem_debug from kernel-parameters.txt
    Documentation: security: core.rst: fix warnings
    Documentation/process/howto/kokr: Update for 4.x -> 5.x versioning
    Documentation/translation: Use Korean for Korean translation title
    docs/memory-barriers.txt: Remove remaining references to mmiowb()
    docs/memory-barriers.txt/kokr: Update I/O section to be clearer about CPU vs thread
    docs/memory-barriers.txt/kokr: Fix style, spacing and grammar in I/O section
    Documentation/kokr: Kill all references to mmiowb()
    docs/memory-barriers.txt/kokr: Rewrite "KERNEL I/O BARRIER EFFECTS" section
    docs: Add initial documentation for devfreq
    Documentation: Document how to get links with git am
    docs: Add request_irq() documentation
    ...

    Linus Torvalds
     

02 Dec, 2019

6 commits

  • Merge updates from Andrew Morton:
    "Incoming:

    - a small number of updates to scripts/, ocfs2 and fs/buffer.c

    - most of MM

    I still have quite a lot of material (mostly not MM) staged after
    linux-next due to -next dependencies. I'll send those across next week
    as the preprequisites get merged up"

    * emailed patches from Andrew Morton : (135 commits)
    mm/page_io.c: annotate refault stalls from swap_readpage
    mm/Kconfig: fix trivial help text punctuation
    mm/Kconfig: fix indentation
    mm/memory_hotplug.c: remove __online_page_set_limits()
    mm: fix typos in comments when calling __SetPageUptodate()
    mm: fix struct member name in function comments
    mm/shmem.c: cast the type of unmap_start to u64
    mm: shmem: use proper gfp flags for shmem_writepage()
    mm/shmem.c: make array 'values' static const, makes object smaller
    userfaultfd: require CAP_SYS_PTRACE for UFFD_FEATURE_EVENT_FORK
    fs/userfaultfd.c: wp: clear VM_UFFD_MISSING or VM_UFFD_WP during userfaultfd_register()
    userfaultfd: wrap the common dst_vma check into an inlined function
    userfaultfd: remove unnecessary WARN_ON() in __mcopy_atomic_hugetlb()
    userfaultfd: use vma_pagesize for all huge page size calculation
    mm/madvise.c: use PAGE_ALIGN[ED] for range checking
    mm/madvise.c: replace with page_size() in madvise_inject_error()
    mm/mmap.c: make vma_merge() comment more easy to understand
    mm/hwpoison-inject: use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs fops
    autonuma: reduce cache footprint when scanning page tables
    autonuma: fix watermark checking in migrate_balanced_pgdat()
    ...

    Linus Torvalds
     
  • Pull MFD updates from Lee Jones:
    "Core Frameworks:
    - Add support for a "resource managed strongly uncachable ioremap"
    call
    - Provide a collection of MFD helper macros
    - Remove mfd_clone_cell() from MFD core
    - Add NULL de-reference protection in MFD core
    - Remove superfluous function fd_platform_add_cell() from MFD core
    - Honour Device Tree's request to disable a device

    New Drivers:
    - Add support for MediaTek MT6323 PMIC

    New Device Support:
    - Add support for Gemini Lake to Intel LPSS PCI
    - Add support for Cherry Trail Crystal Cover PMIC to Intel SoC PMIC
    CRC
    - Add support for PM{I}8950 to Qualcomm SPMI PMIC
    - Add support for U8420 to ST-Ericsson DB8500
    - Add support for Comet Lake PCH-H to Intel LPSS PCI

    New Functionality:
    - Add support for requested supply clocks; madera-core

    Fix-ups:
    - Lower interrupt priority; rk808
    - Use provided helpers (macros, group functions, defines); rk808,
    ipaq-micro, ab8500-core, db8500-prcmu, mt6397-core, cs5535-mfd
    - Only allocate IRQs on request; max77620
    - Use simplified API; arizona-core
    - Remove redundant and/or duplicated code; wm8998-tables, arizona,
    syscon
    - Device Tree binding fix-ups; madera, max77650, max77693
    - Remove mfd_cell->id abuse hack; cs5535-mfd
    - Remove only user of mfd_clone_cell(); cs5535-mfd
    - Make resources static; rohm-bd70528

    Bug Fixes:
    - Fix product ID for RK818; rk808
    - Fix Power Key; rk808
    - Fix booting on the BananaPi; mt6397-core
    - Endian fix-ups; twl.h
    - Fix static error checker warnings; ti_am335x_tscadc"

    * tag 'mfd-next-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (47 commits)
    Revert "mfd: syscon: Set name of regmap_config"
    mfd: ti_am335x_tscadc: Fix static checker warning
    mfd: bd70528: Staticize bit value definitions
    mfd: mfd-core: Honour Device Tree's request to disable a child-device
    dt-bindings: mfd: max77693: Fix missing curly brace
    mfd: intel-lpss: Add Intel Comet Lake PCH-H PCI IDs
    mfd: db8500-prcmu: Support U8420-sysclk firmware
    dt-bindings: mfd: max77650: Convert the binding document to yaml
    mfd: mfd-core: Move pdev->mfd_cell creation back into mfd_add_device()
    mfd: mfd-core: Remove usage counting for .{en,dis}able() call-backs
    x86: olpc-xo1-sci: Remove invocation of MFD's .enable()/.disable() call-backs
    x86: olpc-xo1-pm: Remove invocation of MFD's .enable()/.disable() call-backs
    mfd: mfd-core: Remove mfd_clone_cell()
    mfd: mfd-core: Protect against NULL call-back function pointer
    mfd: cs5535-mfd: Register clients using their own dedicated MFD cell entries
    mfd: cs5535-mfd: Request shared IO regions centrally
    mfd: cs5535-mfd: Remove mfd_cell->id hack
    mfd: cs5535-mfd: Use PLATFORM_DEVID_* defines and tidy error message
    mfd: intel_soc_pmic_crc: Add "cht_crystal_cove_pmic" cell to CHT cells
    mfd: madera: Add support for requesting the supply clocks
    ...

    Linus Torvalds
     
  • Pull y2038 cleanups from Arnd Bergmann:
    "y2038 syscall implementation cleanups

    This is a series of cleanups for the y2038 work, mostly intended for
    namespace cleaning: the kernel defines the traditional time_t, timeval
    and timespec types that often lead to y2038-unsafe code. Even though
    the unsafe usage is mostly gone from the kernel, having the types and
    associated functions around means that we can still grow new users,
    and that we may be missing conversions to safe types that actually
    matter.

    There are still a number of driver specific patches needed to get the
    last users of these types removed, those have been submitted to the
    respective maintainers"

    Link: https://lore.kernel.org/lkml/20191108210236.1296047-1-arnd@arndb.de/

    * tag 'y2038-cleanups-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (26 commits)
    y2038: alarm: fix half-second cut-off
    y2038: ipc: fix x32 ABI breakage
    y2038: fix typo in powerpc vdso "LOPART"
    y2038: allow disabling time32 system calls
    y2038: itimer: change implementation to timespec64
    y2038: move itimer reset into itimer.c
    y2038: use compat_{get,set}_itimer on alpha
    y2038: itimer: compat handling to itimer.c
    y2038: time: avoid timespec usage in settimeofday()
    y2038: timerfd: Use timespec64 internally
    y2038: elfcore: Use __kernel_old_timeval for process times
    y2038: make ns_to_compat_timeval use __kernel_old_timeval
    y2038: socket: use __kernel_old_timespec instead of timespec
    y2038: socket: remove timespec reference in timestamping
    y2038: syscalls: change remaining timeval to __kernel_old_timeval
    y2038: rusage: use __kernel_old_timeval
    y2038: uapi: change __kernel_time_t to __kernel_old_time_t
    y2038: stat: avoid 'time_t' in 'struct stat'
    y2038: ipc: remove __kernel_time_t reference from headers
    y2038: vdso: powerpc: avoid timespec references
    ...

    Linus Torvalds
     
  • Pull removal of most of fs/compat_ioctl.c from Arnd Bergmann:
    "As part of the cleanup of some remaining y2038 issues, I came to
    fs/compat_ioctl.c, which still has a couple of commands that need
    support for time64_t.

    In completely unrelated work, I spent time on cleaning up parts of
    this file in the past, moving things out into drivers instead.

    After Al Viro reviewed an earlier version of this series and did a lot
    more of that cleanup, I decided to try to completely eliminate the
    rest of it and move it all into drivers.

    This series incorporates some of Al's work and many patches of my own,
    but in the end stops short of actually removing the last part, which
    is the scsi ioctl handlers. I have patches for those as well, but they
    need more testing or possibly a rewrite"

    * tag 'compat-ioctl-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (42 commits)
    scsi: sd: enable compat ioctls for sed-opal
    pktcdvd: add compat_ioctl handler
    compat_ioctl: move SG_GET_REQUEST_TABLE handling
    compat_ioctl: ppp: move simple commands into ppp_generic.c
    compat_ioctl: handle PPPIOCGIDLE for 64-bit time_t
    compat_ioctl: move PPPIOCSCOMPRESS to ppp_generic
    compat_ioctl: unify copy-in of ppp filters
    tty: handle compat PPP ioctls
    compat_ioctl: move SIOCOUTQ out of compat_ioctl.c
    compat_ioctl: handle SIOCOUTQNSD
    af_unix: add compat_ioctl support
    compat_ioctl: reimplement SG_IO handling
    compat_ioctl: move WDIOC handling into wdt drivers
    fs: compat_ioctl: move FITRIM emulation into file systems
    gfs2: add compat_ioctl support
    compat_ioctl: remove unused convert_in_user macro
    compat_ioctl: remove last RAID handling code
    compat_ioctl: remove /dev/raw ioctl translation
    compat_ioctl: remove PCI ioctl translation
    compat_ioctl: remove joystick ioctl translation
    ...

    Linus Torvalds
     
  • Test kasan vmalloc support by adding a new test to the module.

    Link: http://lkml.kernel.org/r/20191031093909.9228-3-dja@axtens.net
    Signed-off-by: Daniel Axtens
    Reviewed-by: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: Christophe Leroy
    Cc: Dmitry Vyukov
    Cc: Mark Rutland
    Cc: Vasily Gorbik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Axtens
     
  • Patch series "kasan: support backing vmalloc space with real shadow
    memory", v11.

    Currently, vmalloc space is backed by the early shadow page. This means
    that kasan is incompatible with VMAP_STACK.

    This series provides a mechanism to back vmalloc space with real,
    dynamically allocated memory. I have only wired up x86, because that's
    the only currently supported arch I can work with easily, but it's very
    easy to wire up other architectures, and it appears that there is some
    work-in-progress code to do this on arm64 and s390.

    This has been discussed before in the context of VMAP_STACK:
    - https://bugzilla.kernel.org/show_bug.cgi?id=202009
    - https://lkml.org/lkml/2018/7/22/198
    - https://lkml.org/lkml/2019/7/19/822

    In terms of implementation details:

    Most mappings in vmalloc space are small, requiring less than a full
    page of shadow space. Allocating a full shadow page per mapping would
    therefore be wasteful. Furthermore, to ensure that different mappings
    use different shadow pages, mappings would have to be aligned to
    KASAN_SHADOW_SCALE_SIZE * PAGE_SIZE.

    Instead, share backing space across multiple mappings. Allocate a
    backing page when a mapping in vmalloc space uses a particular page of
    the shadow region. This page can be shared by other vmalloc mappings
    later on.

    We hook in to the vmap infrastructure to lazily clean up unused shadow
    memory.

    Testing with test_vmalloc.sh on an x86 VM with 2 vCPUs shows that:

    - Turning on KASAN, inline instrumentation, without vmalloc, introuduces
    a 4.1x-4.2x slowdown in vmalloc operations.

    - Turning this on introduces the following slowdowns over KASAN:
    * ~1.76x slower single-threaded (test_vmalloc.sh performance)
    * ~2.18x slower when both cpus are performing operations
    simultaneously (test_vmalloc.sh sequential_test_order=1)

    This is unfortunate but given that this is a debug feature only, not the
    end of the world. The benchmarks are also a stress-test for the vmalloc
    subsystem: they're not indicative of an overall 2x slowdown!

    This patch (of 4):

    Hook into vmalloc and vmap, and dynamically allocate real shadow memory
    to back the mappings.

    Most mappings in vmalloc space are small, requiring less than a full
    page of shadow space. Allocating a full shadow page per mapping would
    therefore be wasteful. Furthermore, to ensure that different mappings
    use different shadow pages, mappings would have to be aligned to
    KASAN_SHADOW_SCALE_SIZE * PAGE_SIZE.

    Instead, share backing space across multiple mappings. Allocate a
    backing page when a mapping in vmalloc space uses a particular page of
    the shadow region. This page can be shared by other vmalloc mappings
    later on.

    We hook in to the vmap infrastructure to lazily clean up unused shadow
    memory.

    To avoid the difficulties around swapping mappings around, this code
    expects that the part of the shadow region that covers the vmalloc space
    will not be covered by the early shadow page, but will be left unmapped.
    This will require changes in arch-specific code.

    This allows KASAN with VMAP_STACK, and may be helpful for architectures
    that do not have a separate module space (e.g. powerpc64, which I am
    currently working on). It also allows relaxing the module alignment
    back to PAGE_SIZE.

    Testing with test_vmalloc.sh on an x86 VM with 2 vCPUs shows that:

    - Turning on KASAN, inline instrumentation, without vmalloc, introuduces
    a 4.1x-4.2x slowdown in vmalloc operations.

    - Turning this on introduces the following slowdowns over KASAN:
    * ~1.76x slower single-threaded (test_vmalloc.sh performance)
    * ~2.18x slower when both cpus are performing operations
    simultaneously (test_vmalloc.sh sequential_test_order=3D1)

    This is unfortunate but given that this is a debug feature only, not the
    end of the world.

    The full benchmark results are:

    Performance

    No KASAN KASAN original x baseline KASAN vmalloc x baseline x KASAN

    fix_size_alloc_test 662004 11404956 17.23 19144610 28.92 1.68
    full_fit_alloc_test 710950 12029752 16.92 13184651 18.55 1.10
    long_busy_list_alloc_test 9431875 43990172 4.66 82970178 8.80 1.89
    random_size_alloc_test 5033626 23061762 4.58 47158834 9.37 2.04
    fix_align_alloc_test 1252514 15276910 12.20 31266116 24.96 2.05
    random_size_align_alloc_te 1648501 14578321 8.84 25560052 15.51 1.75
    align_shift_alloc_test 147 830 5.65 5692 38.72 6.86
    pcpu_alloc_test 80732 125520 1.55 140864 1.74 1.12
    Total Cycles 119240774314 763211341128 6.40 1390338696894 11.66 1.82

    Sequential, 2 cpus

    No KASAN KASAN original x baseline KASAN vmalloc x baseline x KASAN

    fix_size_alloc_test 1423150 14276550 10.03 27733022 19.49 1.94
    full_fit_alloc_test 1754219 14722640 8.39 15030786 8.57 1.02
    long_busy_list_alloc_test 11451858 52154973 4.55 107016027 9.34 2.05
    random_size_alloc_test 5989020 26735276 4.46 68885923 11.50 2.58
    fix_align_alloc_test 2050976 20166900 9.83 50491675 24.62 2.50
    random_size_align_alloc_te 2858229 17971700 6.29 38730225 13.55 2.16
    align_shift_alloc_test 405 6428 15.87 26253 64.82 4.08
    pcpu_alloc_test 127183 151464 1.19 216263 1.70 1.43
    Total Cycles 54181269392 308723699764 5.70 650772566394 12.01 2.11
    fix_size_alloc_test 1420404 14289308 10.06 27790035 19.56 1.94
    full_fit_alloc_test 1736145 14806234 8.53 15274301 8.80 1.03
    long_busy_list_alloc_test 11404638 52270785 4.58 107550254 9.43 2.06
    random_size_alloc_test 6017006 26650625 4.43 68696127 11.42 2.58
    fix_align_alloc_test 2045504 20280985 9.91 50414862 24.65 2.49
    random_size_align_alloc_te 2845338 17931018 6.30 38510276 13.53 2.15
    align_shift_alloc_test 472 3760 7.97 9656 20.46 2.57
    pcpu_alloc_test 118643 132732 1.12 146504 1.23 1.10
    Total Cycles 54040011688 309102805492 5.72 651325675652 12.05 2.11

    [dja@axtens.net: fixups]
    Link: http://lkml.kernel.org/r/20191120052719.7201-1-dja@axtens.net
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D202009
    Link: http://lkml.kernel.org/r/20191031093909.9228-2-dja@axtens.net
    Signed-off-by: Mark Rutland [shadow rework]
    Signed-off-by: Daniel Axtens
    Co-developed-by: Mark Rutland
    Acked-by: Vasily Gorbik
    Reviewed-by: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: Dmitry Vyukov
    Cc: Christophe Leroy
    Cc: Qian Cai
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Axtens
     

01 Dec, 2019

3 commits

  • When a process updates the RSS of a different process, the rss_stat
    tracepoint appears in the context of the process doing the update. This
    can confuse userspace that the RSS of process doing the update is
    updated, while in reality a different process's RSS was updated.

    This issue happens in reclaim paths such as with direct reclaim or
    background reclaim.

    This patch adds more information to the tracepoint about whether the mm
    being updated belongs to the current process's context (curr field). We
    also include a hash of the mm pointer so that the process who the mm
    belongs to can be uniquely identified (mm_id field).

    Also vsprintf.c is refactored a bit to allow reuse of hashing code.

    [akpm@linux-foundation.org: remove unused local `str']
    [joelaf@google.com: inline call to ptr_to_hashval]
    Link: http://lore.kernel.org/r/20191113153816.14b95acd@gandalf.local.home
    Link: http://lkml.kernel.org/r/20191114164622.GC233237@google.com
    Link: http://lkml.kernel.org/r/20191106024452.81923-1-joel@joelfernandes.org
    Signed-off-by: Joel Fernandes (Google)
    Reported-by: Ioannis Ilkos
    Acked-by: Petr Mladek [lib/vsprintf.c]
    Cc: Tim Murray
    Cc: Michal Hocko
    Cc: Carmen Jackson
    Cc: Mayank Gupta
    Cc: Daniel Colascione
    Cc: Steven Rostedt (VMware)
    Cc: Minchan Kim
    Cc: "Aneesh Kumar K.V"
    Cc: Dan Williams
    Cc: Jerome Glisse
    Cc: Matthew Wilcox
    Cc: Ralph Campbell
    Cc: Vlastimil Babka
    Cc: Steven Rostedt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joel Fernandes (Google)
     
  • Pull Hyper-V updates from Sasha Levin:

    - support for new VMBus protocols (Andrea Parri)

    - hibernation support (Dexuan Cui)

    - latency testing framework (Branden Bonaby)

    - decoupling Hyper-V page size from guest page size (Himadri Pandya)

    * tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux: (22 commits)
    Drivers: hv: vmbus: Fix crash handler reset of Hyper-V synic
    drivers/hv: Replace binary semaphore with mutex
    drivers: iommu: hyperv: Make HYPERV_IOMMU only available on x86
    HID: hyperv: Add the support of hibernation
    hv_balloon: Add the support of hibernation
    x86/hyperv: Implement hv_is_hibernation_supported()
    Drivers: hv: balloon: Remove dependencies on guest page size
    Drivers: hv: vmbus: Remove dependencies on guest page size
    x86: hv: Add function to allocate zeroed page for Hyper-V
    Drivers: hv: util: Specify ring buffer size using Hyper-V page size
    Drivers: hv: Specify receive buffer size using Hyper-V page size
    tools: hv: add vmbus testing tool
    drivers: hv: vmbus: Introduce latency testing
    video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver
    video: hyperv: hyperv_fb: Obtain screen resolution from Hyper-V host
    hv_netvsc: Add the support of hibernation
    hv_sock: Add the support of hibernation
    video: hyperv_fb: Add the support of hibernation
    scsi: storvsc: Add the support of hibernation
    Drivers: hv: vmbus: Add module parameter to cap the VMBus version
    ...

    Linus Torvalds
     
  • …ux/kernel/git/dhowells/linux-fs

    Pull pipe rework from David Howells:
    "This is my set of preparatory patches for building a general
    notification queue on top of pipes. It makes a number of significant
    changes:

    - It removes the nr_exclusive argument from __wake_up_sync_key() as
    this is always 1. This prepares for the next step:

    - Adds wake_up_interruptible_sync_poll_locked() so that poll can be
    woken up from a function that's holding the poll waitqueue
    spinlock.

    - Change the pipe buffer ring to be managed in terms of unbounded
    head and tail indices rather than bounded index and length. This
    means that reading the pipe only needs to modify one index, not
    two.

    - A selection of helper functions are provided to query the state of
    the pipe buffer, plus a couple to apply updates to the pipe
    indices.

    - The pipe ring is allowed to have kernel-reserved slots. This allows
    many notification messages to be spliced in by the kernel without
    allowing userspace to pin too many pages if it writes to the same
    pipe.

    - Advance the head and tail indices inside the pipe waitqueue lock
    and use wake_up_interruptible_sync_poll_locked() to poke poll
    without having to take the lock twice.

    - Rearrange pipe_write() to preallocate the buffer it is going to
    write into and then drop the spinlock. This allows kernel
    notifications to then be added the ring whilst it is filling the
    buffer it allocated. The read side is stalled because the pipe
    mutex is still held.

    - Don't wake up readers on a pipe if there was already data in it
    when we added more.

    - Don't wake up writers on a pipe if the ring wasn't full before we
    removed a buffer"

    * tag 'notifications-pipe-prep-20191115' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
    pipe: Remove sync on wake_ups
    pipe: Increase the writer-wakeup threshold to reduce context-switch count
    pipe: Check for ring full inside of the spinlock in pipe_write()
    pipe: Remove redundant wakeup from pipe_write()
    pipe: Rearrange sequence in pipe_write() to preallocate slot
    pipe: Conditionalise wakeup in pipe_read()
    pipe: Advance tail pointer inside of wait spinlock in pipe_read()
    pipe: Allow pipes to have kernel-reserved slots
    pipe: Use head and tail pointers for the ring, not cursor and length
    Add wake_up_interruptible_sync_poll_locked()
    Remove the nr_exclusive argument from __wake_up_sync_key()
    pipe: Reduce #inclusion of pipe_fs_i.h

    Linus Torvalds
     

29 Nov, 2019

1 commit

  • Pull generic ioremap support from Christoph Hellwig:
    "This adds the remaining bits for an entirely generic ioremap and
    iounmap to lib/ioremap.c. To facilitate that, it cleans up the giant
    mess of weird ioremap variants we had with no users outside the arch
    code.

    For now just the three newest ports use the code, but there is more
    than a handful others that can be converted without too much work.

    Summary:

    - clean up various obsolete ioremap and iounmap variants

    - add a new generic ioremap implementation and switch csky, nds32 and
    riscv over to it"

    * tag 'ioremap-5.5' of git://git.infradead.org/users/hch/ioremap: (21 commits)
    nds32: use generic ioremap
    csky: use generic ioremap
    csky: remove ioremap_cache
    riscv: use the generic ioremap code
    lib: provide a simple generic ioremap implementation
    sh: remove __iounmap
    nios2: remove __iounmap
    hexagon: remove __iounmap
    m68k: rename __iounmap and mark it static
    arch: rely on asm-generic/io.h for default ioremap_* definitions
    asm-generic: don't provide ioremap for CONFIG_MMU
    asm-generic: ioremap_uc should behave the same with and without MMU
    xtensa: clean up ioremap
    x86: Clean up ioremap()
    parisc: remove __ioremap
    nios2: remove __ioremap
    alpha: remove the unused __ioremap wrapper
    hexagon: clean up ioremap
    ia64: rename ioremap_nocache to ioremap_uc
    unicore32: remove ioremap_cached
    ...

    Linus Torvalds
     

28 Nov, 2019

3 commits

  • - Protect pci_reassign_bridge_resources() against concurrent
    addition/removal (Benjamin Herrenschmidt)

    - Fix bridge dma_ranges resource list cleanup (Rob Herring)

    - Add PCI_STD_NUM_BARS for the number of standard BARs (Denis Efremov)

    - Add "pci=hpmmiosize" and "pci=hpmmioprefsize" parameters to control the
    MMIO and prefetchable MMIO window sizes of hotplug bridges
    independently (Nicholas Johnson)

    - Fix MMIO/MMIO_PREF window assignment that assigned more space than
    desired (Nicholas Johnson)

    - Only enforce bus numbers from bridge EA if the bridge has EA devices
    downstream (Subbaraya Sundeep)

    * pci/resource:
    PCI: Do not use bus number zero from EA capability
    PCI: Avoid double hpmemsize MMIO window assignment
    PCI: Add "pci=hpmmiosize" and "pci=hpmmioprefsize" parameters
    PCI: Add PCI_STD_NUM_BARS for the number of standard BARs
    PCI: Fix missing bridge dma_ranges resource list cleanup
    PCI: Protect pci_reassign_bridge_resources() against concurrent addition/removal

    Bjorn Helgaas
     
  • Pull tracing updates from Steven Rostedt:
    "New tracing features:

    - New PERMANENT flag to ftrace_ops when attaching a callback to a
    function.

    As /proc/sys/kernel/ftrace_enabled when set to zero will disable
    all attached callbacks in ftrace, this has a detrimental impact on
    live kernel tracing, as it disables all that it patched. If a
    ftrace_ops is registered to ftrace with the PERMANENT flag set, it
    will prevent ftrace_enabled from being disabled, and if
    ftrace_enabled is already disabled, it will prevent a ftrace_ops
    with PREMANENT flag set from being registered.

    - New register_ftrace_direct().

    As eBPF would like to register its own trampolines to be called by
    the ftrace nop locations directly, without going through the ftrace
    trampoline, this function has been added. This allows for eBPF
    trampolines to live along side of ftrace, perf, kprobe and live
    patching. It also utilizes the ftrace enabled_functions file that
    keeps track of functions that have been modified in the kernel, to
    allow for security auditing.

    - Allow for kernel internal use of ftrace instances.

    Subsystems in the kernel can now create and destroy their own
    tracing instances which allows them to have their own tracing
    buffer, and be able to record events without worrying about other
    users from writing over their data.

    - New seq_buf_hex_dump() that lets users use the hex_dump() in their
    seq_buf usage.

    - Notifications now added to tracing_max_latency to allow user space
    to know when a new max latency is hit by one of the latency
    tracers.

    - Wider spread use of generic compare operations for use of bsearch
    and friends.

    - More synthetic event fields may be defined (32 up from 16)

    - Use of xarray for architectures with sparse system calls, for the
    system call trace events.

    This along with small clean ups and fixes"

    * tag 'trace-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (51 commits)
    tracing: Enable syscall optimization for MIPS
    tracing: Use xarray for syscall trace events
    tracing: Sample module to demonstrate kernel access to Ftrace instances.
    tracing: Adding new functions for kernel access to Ftrace instances
    tracing: Fix Kconfig indentation
    ring-buffer: Fix typos in function ring_buffer_producer
    ftrace: Use BIT() macro
    ftrace: Return ENOTSUPP when DYNAMIC_FTRACE_WITH_DIRECT_CALLS is not configured
    ftrace: Rename ftrace_graph_stub to ftrace_stub_graph
    ftrace: Add a helper function to modify_ftrace_direct() to allow arch optimization
    ftrace: Add helper find_direct_entry() to consolidate code
    ftrace: Add another check for match in register_ftrace_direct()
    ftrace: Fix accounting bug with direct->count in register_ftrace_direct()
    ftrace/selftests: Fix spelling mistake "wakeing" -> "waking"
    tracing: Increase SYNTH_FIELDS_MAX for synthetic_events
    ftrace/samples: Add a sample module that implements modify_ftrace_direct()
    ftrace: Add modify_ftrace_direct()
    tracing: Add missing "inline" in stub function of latency_fsnotify()
    tracing: Remove stray tab in TRACE_EVAL_MAP_FILE's help text
    tracing: Use seq_buf_hex_dump() to dump buffers
    ...

    Linus Torvalds
     
  • Pull driver core updates from Greg KH:
    "Here is the "big" set of driver core patches for 5.5-rc1

    There's a few minor cleanups and fixes in here, but the majority of
    the patches in here fall into two buckets:

    - debugfs api cleanups and fixes

    - driver core device link support for boot dependancy issues

    The debugfs api cleanups are working to slowly refactor the debugfs
    apis so that it is even harder to use incorrectly. That work has been
    happening for the past few kernel releases and will continue over
    time, it's a long-term project/goal

    The driver core device link support missed 5.4 by just a bit, so it's
    been sitting and baking for many months now. It's from Saravana Kannan
    to help resolve the problems that DT-based systems have at boot time
    with dependancy graphs and kernel modules. Turns out that no one has
    actually tried to build a generic arm64 kernel with loads of modules
    and have it "just work" for a variety of platforms (like a distro
    kernel). The big problem turned out to be a lack of dependency
    information between different areas of DT entries, and the work here
    resolves that problem and now allows devices to boot properly, and
    quicker than a monolith kernel.

    All of these patches have been in linux-next for a long time with no
    reported issues"

    * tag 'driver-core-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (68 commits)
    tracing: Remove unnecessary DEBUG_FS dependency
    of: property: Add device link support for interrupt-parent, dmas and -gpio(s)
    debugfs: Fix !DEBUG_FS debugfs_create_automount
    of: property: Add device link support for "iommu-map"
    of: property: Fix the semantics of of_is_ancestor_of()
    i2c: of: Populate fwnode in of_i2c_get_board_info()
    drivers: base: Fix Kconfig indentation
    firmware_loader: Fix labels with comma for builtin firmware
    driver core: Allow device link operations inside sync_state()
    driver core: platform: Declare ret variable only once
    cpu-topology: declare parse_acpi_topology in
    crypto: hisilicon: no need to check return value of debugfs_create functions
    driver core: platform: use the correct callback type for bus_find_device
    firmware_class: make firmware caching configurable
    driver core: Clarify documentation for fwnode_operations.add_links()
    mailbox: tegra: Fix superfluous IRQ error message
    net: caif: Fix debugfs on 64-bit platforms
    mac80211: Use debugfs_create_xul() helper
    media: c8sectpfe: no need to check return value of debugfs_create functions
    of: property: Add device link support for iommus, mboxes and io-channels
    ...

    Linus Torvalds
     

27 Nov, 2019

4 commits

  • Pull device properties framework updates from Rafael Wysocki:
    "Add support for printing fwnode names using a new conversion specifier
    "%pfw" (Sakari Ailus), clean up the software node and
    efi/apple-properties code in preparation for improved software node
    reference properties handling (Dmitry Torokhov) and fix the struct
    fwnode_operations description (Heikki Krogerus)"

    * tag 'devprop-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (22 commits)
    software node: simplify property_entry_read_string_array()
    software node: unify PROPERTY_ENTRY_XXX macros
    software node: remove property_entry_read_uNN_array functions
    software node: get rid of property_set_pointer()
    software node: clean up property_copy_string_array()
    software node: mark internal macros with double underscores
    efi/apple-properties: use PROPERTY_ENTRY_U8_ARRAY_LEN
    software node: introduce PROPERTY_ENTRY_XXX_ARRAY_LEN()
    software node: remove DEV_PROP_MAX
    device property: Fix the description of struct fwnode_operations
    lib/test_printf: Add tests for %pfw printk modifier
    lib/vsprintf: Add %pfw conversion specifier for printing fwnode names
    lib/vsprintf: OF nodes are first and foremost, struct device_nodes
    lib/vsprintf: Make use of fwnode API to obtain node names and separators
    lib/vsprintf: Add a note on re-using %pf or %pF
    lib/vsprintf: Remove support for %pF and %pf in favour of %pS and %ps
    device property: Add a function to obtain a node's prefix
    device property: Add fwnode_get_name for returning the name of a node
    device property: Add functions for accessing node's parents
    device property: Move fwnode_get_parent() up
    ...

    Linus Torvalds
     
  • Pull ACPI updates from Rafael Wysocki:
    "These update the ACPICA code in the kernel to upstream revision
    20191018, add support for EFI specific purpose memory, update the ACPI
    EC driver to make it work on systems with hardware-reduced ACPI,
    improve ACPI-based device enumeration for some platforms, rework the
    lid blacklist handling in the button driver and add more lid quirks to
    it, unify ACPI _HID/_UID matching, fix assorted issues and clean up
    the code and documentation.

    Specifics:

    - Update the ACPICA code in the kernel to upstream revision 20191018
    including:
    * Fixes for Clang warnings (Bob Moore)
    * Fix for possible overflow in get_tick_count() (Bob Moore)
    * Introduction of acpi_unload_table() (Bob Moore)
    * Debugger and utilities updates (Erik Schmauss)
    * Fix for unloading tables loaded via configfs (Nikolaus Voss)

    - Add support for EFI specific purpose memory to optionally allow
    either application-exclusive or core-kernel-mm managed access to
    differentiated memory (Dan Williams)

    - Fix and clean up processing of the HMAT table (Brice Goglin, Qian
    Cai, Tao Xu)

    - Update the ACPI EC driver to make it work on systems with
    hardware-reduced ACPI (Daniel Drake)

    - Always build in support for the Generic Event Device (GED) to allow
    one kernel binary to work both on systems with full hardware ACPI
    and hardware-reduced ACPI (Arjan van de Ven)

    - Fix the table unload mechanism to unregister platform devices
    created when the given table was loaded (Andy Shevchenko)

    - Rework the lid blacklist handling in the button driver and add more
    lid quirks to it (Hans de Goede)

    - Improve ACPI-based device enumeration for some platforms based on
    Intel BayTrail SoCs (Hans de Goede)

    - Add an OpRegion driver for the Cherry Trail Crystal Cove PMIC and
    prevent handlers from being registered for unhandled PMIC OpRegions
    (Hans de Goede)

    - Unify ACPI _HID/_UID matching (Andy Shevchenko)

    - Clean up documentation and comments (Cao jin, James Pack, Kacper
    Piwiński)"

    * tag 'acpi-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (52 commits)
    ACPI: OSI: Shoot duplicate word
    ACPI: HMAT: use %u instead of %d to print u32 values
    ACPI: NUMA: HMAT: fix a section mismatch
    ACPI: HMAT: don't mix pxm and nid when setting memory target processor_pxm
    ACPI: NUMA: HMAT: Register "soft reserved" memory as an "hmem" device
    ACPI: NUMA: HMAT: Register HMAT at device_initcall level
    device-dax: Add a driver for "hmem" devices
    dax: Fix alloc_dax_region() compile warning
    lib: Uplevel the pmem "region" ida to a global allocator
    x86/efi: Add efi_fake_mem support for EFI_MEMORY_SP
    arm/efi: EFI soft reservation to memblock
    x86/efi: EFI soft reservation to E820 enumeration
    efi: Common enable/disable infrastructure for EFI soft reservation
    x86/efi: Push EFI_MEMMAP check into leaf routines
    efi: Enumerate EFI_MEMORY_SP
    ACPI: NUMA: Establish a new drivers/acpi/numa/ directory
    ACPICA: Update version to 20191018
    ACPICA: debugger: remove leading whitespaces when converting a string to a buffer
    ACPICA: acpiexec: initialize all simple types and field units from user input
    ACPICA: debugger: add field unit support for acpi_db_get_next_token
    ...

    Linus Torvalds
     
  • Pull locking updates from Ingo Molnar:
    "The main changes in this cycle were:

    - A comprehensive rewrite of the robust/PI futex code's exit handling
    to fix various exit races. (Thomas Gleixner et al)

    - Rework the generic REFCOUNT_FULL implementation using
    atomic_fetch_* operations so that the performance impact of the
    cmpxchg() loops is mitigated for common refcount operations.

    With these performance improvements the generic implementation of
    refcount_t should be good enough for everybody - and this got
    confirmed by performance testing, so remove ARCH_HAS_REFCOUNT and
    REFCOUNT_FULL entirely, leaving the generic implementation enabled
    unconditionally. (Will Deacon)

    - Other misc changes, fixes, cleanups"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
    lkdtm: Remove references to CONFIG_REFCOUNT_FULL
    locking/refcount: Remove unused 'refcount_error_report()' function
    locking/refcount: Consolidate implementations of refcount_t
    locking/refcount: Consolidate REFCOUNT_{MAX,SATURATED} definitions
    locking/refcount: Move saturation warnings out of line
    locking/refcount: Improve performance of generic REFCOUNT_FULL code
    locking/refcount: Move the bulk of the REFCOUNT_FULL implementation into the header
    locking/refcount: Remove unused refcount_*_checked() variants
    locking/refcount: Ensure integer operands are treated as signed
    locking/refcount: Define constants for saturation and max refcount values
    futex: Prevent exit livelock
    futex: Provide distinct return value when owner is exiting
    futex: Add mutex around futex exit
    futex: Provide state handling for exec() as well
    futex: Sanitize exit state handling
    futex: Mark the begin of futex exit explicitly
    futex: Set task::futex_state to DEAD right after handling futex exit
    futex: Split futex_mm_release() for exit/exec
    exit/exec: Seperate mm_release()
    futex: Replace PF_EXITPIDONE with a state
    ...

    Linus Torvalds
     
  • Pull x86 asm updates from Ingo Molnar:
    "The main changes in this cycle were:

    - Cross-arch changes to move the linker sections for NOTES and
    EXCEPTION_TABLE into the RO_DATA area, where they belong on most
    architectures. (Kees Cook)

    - Switch the x86 linker fill byte from x90 (NOP) to 0xcc (INT3), to
    trap jumps into the middle of those padding areas instead of
    sliding execution. (Kees Cook)

    - A thorough cleanup of symbol definitions within x86 assembler code.
    The rather randomly named macros got streamlined around a
    (hopefully) straightforward naming scheme:

    SYM_START(name, linkage, align...)
    SYM_END(name, sym_type)

    SYM_FUNC_START(name)
    SYM_FUNC_END(name)

    SYM_CODE_START(name)
    SYM_CODE_END(name)

    SYM_DATA_START(name)
    SYM_DATA_END(name)

    etc - with about three times of these basic primitives with some
    label, local symbol or attribute variant, expressed via postfixes.

    No change in functionality intended. (Jiri Slaby)

    - Misc other changes, cleanups and smaller fixes"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (67 commits)
    x86/entry/64: Remove pointless jump in paranoid_exit
    x86/entry/32: Remove unused resume_userspace label
    x86/build/vdso: Remove meaningless CFLAGS_REMOVE_*.o
    m68k: Convert missed RODATA to RO_DATA
    x86/vmlinux: Use INT3 instead of NOP for linker fill bytes
    x86/mm: Report actual image regions in /proc/iomem
    x86/mm: Report which part of kernel image is freed
    x86/mm: Remove redundant address-of operators on addresses
    xtensa: Move EXCEPTION_TABLE to RO_DATA segment
    powerpc: Move EXCEPTION_TABLE to RO_DATA segment
    parisc: Move EXCEPTION_TABLE to RO_DATA segment
    microblaze: Move EXCEPTION_TABLE to RO_DATA segment
    ia64: Move EXCEPTION_TABLE to RO_DATA segment
    h8300: Move EXCEPTION_TABLE to RO_DATA segment
    c6x: Move EXCEPTION_TABLE to RO_DATA segment
    arm64: Move EXCEPTION_TABLE to RO_DATA segment
    alpha: Move EXCEPTION_TABLE to RO_DATA segment
    x86/vmlinux: Move EXCEPTION_TABLE to RO_DATA segment
    x86/vmlinux: Actually use _etext for the end of the text segment
    vmlinux.lds.h: Allow EXCEPTION_TABLE to live in RO_DATA
    ...

    Linus Torvalds
     

26 Nov, 2019

6 commits

  • * acpi-mm:
    ACPI: HMAT: use %u instead of %d to print u32 values
    ACPI: NUMA: HMAT: fix a section mismatch
    ACPI: HMAT: don't mix pxm and nid when setting memory target processor_pxm
    ACPI: NUMA: HMAT: Register "soft reserved" memory as an "hmem" device
    ACPI: NUMA: HMAT: Register HMAT at device_initcall level
    device-dax: Add a driver for "hmem" devices
    dax: Fix alloc_dax_region() compile warning
    lib: Uplevel the pmem "region" ida to a global allocator
    x86/efi: Add efi_fake_mem support for EFI_MEMORY_SP
    arm/efi: EFI soft reservation to memblock
    x86/efi: EFI soft reservation to E820 enumeration
    efi: Common enable/disable infrastructure for EFI soft reservation
    x86/efi: Push EFI_MEMMAP check into leaf routines
    efi: Enumerate EFI_MEMORY_SP
    ACPI: NUMA: Establish a new drivers/acpi/numa/ directory

    Rafael J. Wysocki
     
  • Pull networking updates from David Miller:
    "Another merge window, another pull full of stuff:

    1) Support alternative names for network devices, from Jiri Pirko.

    2) Introduce per-netns netdev notifiers, also from Jiri Pirko.

    3) Support MSG_PEEK in vsock/virtio, from Matias Ezequiel Vara
    Larsen.

    4) Allow compiling out the TLS TOE code, from Jakub Kicinski.

    5) Add several new tracepoints to the kTLS code, also from Jakub.

    6) Support set channels ethtool callback in ena driver, from Sameeh
    Jubran.

    7) New SCTP events SCTP_ADDR_ADDED, SCTP_ADDR_REMOVED,
    SCTP_ADDR_MADE_PRIM, and SCTP_SEND_FAILED_EVENT. From Xin Long.

    8) Add XDP support to mvneta driver, from Lorenzo Bianconi.

    9) Lots of netfilter hw offload fixes, cleanups and enhancements,
    from Pablo Neira Ayuso.

    10) PTP support for aquantia chips, from Egor Pomozov.

    11) Add UDP segmentation offload support to igb, ixgbe, and i40e. From
    Josh Hunt.

    12) Add smart nagle to tipc, from Jon Maloy.

    13) Support L2 field rewrite by TC offloads in bnxt_en, from Venkat
    Duvvuru.

    14) Add a flow mask cache to OVS, from Tonghao Zhang.

    15) Add XDP support to ice driver, from Maciej Fijalkowski.

    16) Add AF_XDP support to ice driver, from Krzysztof Kazimierczak.

    17) Support UDP GSO offload in atlantic driver, from Igor Russkikh.

    18) Support it in stmmac driver too, from Jose Abreu.

    19) Support TIPC encryption and auth, from Tuong Lien.

    20) Introduce BPF trampolines, from Alexei Starovoitov.

    21) Make page_pool API more numa friendly, from Saeed Mahameed.

    22) Introduce route hints to ipv4 and ipv6, from Paolo Abeni.

    23) Add UDP segmentation offload to cxgb4, Rahul Lakkireddy"

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1857 commits)
    libbpf: Fix usage of u32 in userspace code
    mm: Implement no-MMU variant of vmalloc_user_node_flags
    slip: Fix use-after-free Read in slip_open
    net: dsa: sja1105: fix sja1105_parse_rgmii_delays()
    macvlan: schedule bc_work even if error
    enetc: add support Credit Based Shaper(CBS) for hardware offload
    net: phy: add helpers phy_(un)lock_mdio_bus
    mdio_bus: don't use managed reset-controller
    ax88179_178a: add ethtool_op_get_ts_info()
    mlxsw: spectrum_router: Fix use of uninitialized adjacency index
    mlxsw: spectrum_router: After underlay moves, demote conflicting tunnels
    bpf: Simplify __bpf_arch_text_poke poke type handling
    bpf: Introduce BPF_TRACE_x helper for the tracing tests
    bpf: Add bpf_jit_blinding_enabled for !CONFIG_BPF_JIT
    bpf, testing: Add various tail call test cases
    bpf, x86: Emit patchable direct jump as tail call
    bpf: Constant map key tracking for prog array pokes
    bpf: Add poke dependency tracking for prog array maps
    bpf: Add initial poke descriptor table for jit images
    bpf: Move owner type, jited info into array auxiliary data
    ...

    Linus Torvalds
     
  • Pull crypto updates from Herbert Xu:
    "API:
    - Add library interfaces of certain crypto algorithms for WireGuard
    - Remove the obsolete ablkcipher and blkcipher interfaces
    - Move add_early_randomness() out of rng_mutex

    Algorithms:
    - Add blake2b shash algorithm
    - Add blake2s shash algorithm
    - Add curve25519 kpp algorithm
    - Implement 4 way interleave in arm64/gcm-ce
    - Implement ciphertext stealing in powerpc/spe-xts
    - Add Eric Biggers's scalar accelerated ChaCha code for ARM
    - Add accelerated 32r2 code from Zinc for MIPS
    - Add OpenSSL/CRYPTOGRAMS poly1305 implementation for ARM and MIPS

    Drivers:
    - Fix entropy reading failures in ks-sa
    - Add support for sam9x60 in atmel
    - Add crypto accelerator for amlogic GXL
    - Add sun8i-ce Crypto Engine
    - Add sun8i-ss cryptographic offloader
    - Add a host of algorithms to inside-secure
    - Add NPCM RNG driver
    - add HiSilicon HPRE accelerator
    - Add HiSilicon TRNG driver"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (285 commits)
    crypto: vmx - Avoid weird build failures
    crypto: lib/chacha20poly1305 - use chacha20_crypt()
    crypto: x86/chacha - only unregister algorithms if registered
    crypto: chacha_generic - remove unnecessary setkey() functions
    crypto: amlogic - enable working on big endian kernel
    crypto: sun8i-ce - enable working on big endian
    crypto: mips/chacha - select CRYPTO_SKCIPHER, not CRYPTO_BLKCIPHER
    hwrng: ks-sa - Enable COMPILE_TEST
    crypto: essiv - remove redundant null pointer check before kfree
    crypto: atmel-aes - Change data type for "lastc" buffer
    crypto: atmel-tdes - Set the IV after {en,de}crypt
    crypto: sun4i-ss - fix big endian issues
    crypto: sun4i-ss - hide the Invalid keylen message
    crypto: sun4i-ss - use crypto_ahash_digestsize
    crypto: sun4i-ss - remove dependency on not 64BIT
    crypto: sun4i-ss - Fix 64-bit size_t warnings on sun4i-ss-hash.c
    MAINTAINERS: Add maintainer for HiSilicon SEC V2 driver
    crypto: hisilicon - add DebugFS for HiSilicon SEC
    Documentation: add DebugFS doc for HiSilicon SEC
    crypto: hisilicon - add SRIOV for HiSilicon SEC
    ...

    Linus Torvalds
     
  • …t/livepatching/livepatching

    Pull livepatching updates from Petr Mladek:

    - New API to track system state changes done be livepatch callbacks. It
    helps to maintain compatibility between livepatches.

    - Update Kconfig help text. ORC is another reliable unwinder.

    - Disable generic selftest timeout. Livepatch selftests have their own
    per-operation fine-grained timeouts.

    * tag 'livepatching-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
    x86/stacktrace: update kconfig help text for reliable unwinders
    livepatch: Selftests of the API for tracking system state changes
    livepatch: Documentation of the new API for tracking system state changes
    livepatch: Allow to distinguish different version of system state changes
    livepatch: Basic API to track system state changes
    livepatch: Keep replaced patches until post_patch callback is called
    selftests/livepatch: Disable the timeout

    Linus Torvalds
     
  • Pull printk updates from Petr Mladek:

    - Allow to print symbolic error names via new %pe modifier.

    - Use pr_warn() instead of the remaining pr_warning() calls. Fix
    formatting of the related lines.

    - Add VSPRINTF entry to MAINTAINERS.

    * tag 'printk-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (32 commits)
    checkpatch: don't warn about new vsprintf pointer extension '%pe'
    MAINTAINERS: Add VSPRINTF
    tools lib api: Renaming pr_warning to pr_warn
    ASoC: samsung: Use pr_warn instead of pr_warning
    lib: cpu_rmap: Use pr_warn instead of pr_warning
    trace: Use pr_warn instead of pr_warning
    dma-debug: Use pr_warn instead of pr_warning
    vgacon: Use pr_warn instead of pr_warning
    fs: afs: Use pr_warn instead of pr_warning
    sh/intc: Use pr_warn instead of pr_warning
    scsi: Use pr_warn instead of pr_warning
    platform/x86: intel_oaktrail: Use pr_warn instead of pr_warning
    platform/x86: asus-laptop: Use pr_warn instead of pr_warning
    platform/x86: eeepc-laptop: Use pr_warn instead of pr_warning
    oprofile: Use pr_warn instead of pr_warning
    of: Use pr_warn instead of pr_warning
    macintosh: Use pr_warn instead of pr_warning
    idsn: Use pr_warn instead of pr_warning
    ide: Use pr_warn instead of pr_warning
    crypto: n2: Use pr_warn instead of pr_warning
    ...

    Linus Torvalds
     
  • …kernel/git/shuah/linux-kselftest

    Pull kselftest KUnit support gtom Shuah Khan:
    "This adds KUnit, a lightweight unit testing and mocking framework for
    the Linux kernel from Brendan Higgins.

    KUnit is not an end-to-end testing framework. It is currently
    supported on UML and sub-systems can write unit tests and run them in
    UML env. KUnit documentation is included in this update.

    In addition, this Kunit update adds 3 new kunit tests:

    - proc sysctl test from Iurii Zaikin

    - the 'list' doubly linked list test from David Gow

    - ext4 tests for decoding extended timestamps from Iurii Zaikin

    In the future KUnit will be linked to Kselftest framework to provide a
    way to trigger KUnit tests from user-space"

    * tag 'linux-kselftest-5.5-rc1-kunit' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (23 commits)
    lib/list-test: add a test for the 'list' doubly linked list
    ext4: add kunit test for decoding extended timestamps
    Documentation: kunit: Fix verification command
    kunit: Fix '--build_dir' option
    kunit: fix failure to build without printk
    MAINTAINERS: add proc sysctl KUnit test to PROC SYSCTL section
    kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec()
    MAINTAINERS: add entry for KUnit the unit testing framework
    Documentation: kunit: add documentation for KUnit
    kunit: defconfig: add defconfigs for building KUnit tests
    kunit: tool: add Python wrappers for running KUnit tests
    kunit: test: add tests for KUnit managed resources
    kunit: test: add the concept of assertions
    kunit: test: add tests for kunit test abort
    kunit: test: add support for test abort
    objtool: add kunit_try_catch_throw to the noreturn list
    kunit: test: add initial tests
    lib: enable building KUnit in lib/
    kunit: test: add the concept of expectations
    kunit: test: add assertion printing library
    ...

    Linus Torvalds