28 May, 2020

10 commits

  • As it is a 'struct evsel' method, not part of tools/lib/perf/, aka
    libperf, to whom the perf_ prefix belongs.

    Cc: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • As it is a 'struct evsel' method, not part of tools/lib/perf/, aka
    libperf, to whom the perf_ prefix belongs.

    Cc: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • As it is a 'struct evsel' method, not part of tools/lib/perf/, aka
    libperf, to whom the perf_ prefix belongs.

    Cc: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • As it is a 'struct evsel' method, not part of tools/lib/perf/, aka
    libperf, to whom the perf_ prefix belongs.

    Cc: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • This patch enables AMD Fam17h RAPL support for the Package level metric.
    The support is as per AMD Fam17h Model31h (Zen2) and model 00-ffh (Zen1) PPR.

    The same output is available via the energy-pkg pseudo event:

    $ perf stat -a -I 1000 --per-socket -e power/energy-pkg/

    Signed-off-by: Stephane Eranian
    Signed-off-by: Ingo Molnar
    Link: https://lore.kernel.org/r/20200527224659.206129-6-eranian@google.com

    Stephane Eranian
     
  • This patch modifies perf_probe_msr() by allowing passing of
    struct perf_msr array where some entries are not populated, i.e.,
    they have either an msr address of 0 or no attribute_group pointer.
    This helps with certain call paths, e.g., RAPL.

    In case the grp is NULL, the default sysfs visibility rule
    applies which is to make the group visible. Without the patch,
    you would get a kernel crash with a NULL group.

    Signed-off-by: Stephane Eranian
    Signed-off-by: Ingo Molnar
    Link: https://lore.kernel.org/r/20200527224659.206129-5-eranian@google.com

    Stephane Eranian
     
  • This patch modifies the default visibility of the attribute_group
    for each RAPL event. By default if the grp.is_visible field is NULL,
    sysfs considers that it must display the attribute group.
    If the field is not NULL (callback function), then the return value
    of the callback determines the visibility (0 = not visible). The RAPL
    attribute groups had the field set to NULL, meaning that unless they
    failed the probing from perf_msr_probe(), they would be visible. We want
    to avoid having to specify attribute groups that are not supported by the HW
    in the rapl_msrs[] array, they don't have an MSR address to begin with.

    Therefore, we intialize the visible field of all RAPL attribute groups
    to a callback that returns 0. If the RAPL msr goes through probing
    and succeeds the is_visible field will be set back to NULL (visible).
    If the probing fails the field is set to a callback that return 0 (not visible).

    Signed-off-by: Stephane Eranian
    Signed-off-by: Ingo Molnar
    Link: https://lore.kernel.org/r/20200527224659.206129-4-eranian@google.com

    Stephane Eranian
     
  • This patch modifies the rapl_model struct to include architecture specific
    knowledge in this previously Intel specific structure, and in particular
    it adds the MSR for POWER_UNIT and the rapl_msrs array.

    No functional changes.

    Signed-off-by: Stephane Eranian
    Signed-off-by: Ingo Molnar
    Link: https://lore.kernel.org/r/20200527224659.206129-3-eranian@google.com

    Stephane Eranian
     
  • To prepare for support of both Intel and AMD RAPL.

    As per the AMD PPR, Fam17h support Package RAPL counters to monitor power usage.
    The RAPL counter operates as with Intel RAPL, and as such it is beneficial
    to share the code.

    No change in functionality.

    Signed-off-by: Stephane Eranian
    Signed-off-by: Ingo Molnar
    Link: https://lore.kernel.org/r/20200527224659.206129-2-eranian@google.com

    Stephane Eranian
     
  • Signed-off-by: Ingo Molnar

    Ingo Molnar
     

25 May, 2020

4 commits

  • Linus Torvalds
     
  • Pull EFI fixes from Thomas Gleixner:
    "A set of EFI fixes:

    - Don't return a garbage screen info when EFI framebuffer is not
    available

    - Make the early EFI console work properly with wider fonts instead
    of drawing garbage

    - Prevent a memory buffer leak in allocate_e820()

    - Print the firmware error record properly so it can be decoded by
    users

    - Fix a symbol clash in the host tool build which only happens with
    newer compilers.

    - Add a missing check for the event log version of TPM which caused
    boot failures on several Dell systems due to an attempt to decode
    SHA-1 format with the crypto agile algorithm"

    * tag 'efi-urgent-2020-05-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    tpm: check event log version before reading final events
    efi: Pull up arch-specific prototype efi_systab_show_arch()
    x86/boot: Mark global variables as static
    efi: cper: Add support for printing Firmware Error Record Reference
    efi/libstub/x86: Avoid EFI map buffer alloc in allocate_e820()
    efi/earlycon: Fix early printk for wider fonts
    efi/libstub: Avoid returning uninitialized data from setup_graphics()

    Linus Torvalds
     
  • Pull x86 fixes from Thomas Gleixner:
    "Two fixes for x86:

    - Unbreak stack dumps for inactive tasks by interpreting the special
    first frame left by __switch_to_asm() correctly.

    The recent change not to skip the first frame so ORC and frame
    unwinder behave in the same way caused all entries to be
    unreliable, i.e. prepended with '?'.

    - Use cpumask_available() instead of an implicit NULL check of a
    cpumask_var_t in mmio trace to prevent a Clang build warning"

    * tag 'x86-urgent-2020-05-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/unwind/orc: Fix unwind_get_return_address_ptr() for inactive tasks
    x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables

    Linus Torvalds
     
  • Pull scheduler fixes from Thomas Gleixner:
    "A set of fixes for the scheduler:

    - Fix handling of throttled parents in enqueue_task_fair() completely.

    The recent fix overlooked a corner case where the first iteration
    terminates due to an entity already being on the runqueue which
    makes the list management incomplete and later triggers the
    assertion which checks for completeness.

    - Fix a similar problem in unthrottle_cfs_rq().

    - Show the correct uclamp values in procfs which prints the effective
    value twice instead of requested and effective"

    * tag 'sched-urgent-2020-05-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/fair: Fix unthrottle_cfs_rq() for leaf_cfs_rq list
    sched/debug: Fix requested task uclamp values shown in procfs
    sched/fair: Fix enqueue_task_fair() warning some more

    Linus Torvalds
     

24 May, 2020

26 commits

  • Pull networking fixes from David Miller:

    1) Fix RCU warnings in ipv6 multicast router code, from Madhuparna
    Bhowmik.

    2) Nexthop attributes aren't being checked properly because of
    mis-initialized iterator, from David Ahern.

    3) Revert iop_idents_reserve() change as it caused performance
    regressions and was just working around what is really a UBSAN bug
    in the compiler. From Yuqi Jin.

    4) Read MAC address properly from ROM in bmac driver (double iteration
    proceeds past end of address array), from Jeremy Kerr.

    5) Add Microsoft Surface device IDs to r8152, from Marc Payne.

    6) Prevent reference to freed SKB in __netif_receive_skb_core(), from
    Boris Sukholitko.

    7) Fix ACK discard behavior in rxrpc, from David Howells.

    8) Preserve flow hash across packet scrubbing in wireguard, from Jason
    A. Donenfeld.

    9) Cap option length properly for SO_BINDTODEVICE in AX25, from Eric
    Dumazet.

    10) Fix encryption error checking in kTLS code, from Vadim Fedorenko.

    11) Missing BPF prog ref release in flow dissector, from Jakub Sitnicki.

    12) dst_cache must be used with BH disabled in tipc, from Eric Dumazet.

    13) Fix use after free in mlxsw driver, from Jiri Pirko.

    14) Order kTLS key destruction properly in mlx5 driver, from Tariq
    Toukan.

    15) Check devm_platform_ioremap_resource() return value properly in
    several drivers, from Tiezhu Yang.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (71 commits)
    net: smsc911x: Fix runtime PM imbalance on error
    net/mlx4_core: fix a memory leak bug.
    net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning during suspend
    net: phy: mscc: fix initialization of the MACsec protocol mode
    net: stmmac: don't attach interface until resume finishes
    net: Fix return value about devm_platform_ioremap_resource()
    net/mlx5: Fix error flow in case of function_setup failure
    net/mlx5e: CT: Correctly get flow rule
    net/mlx5e: Update netdev txq on completions during closure
    net/mlx5: Annotate mutex destroy for root ns
    net/mlx5: Don't maintain a case of del_sw_func being null
    net/mlx5: Fix cleaning unmanaged flow tables
    net/mlx5: Fix memory leak in mlx5_events_init
    net/mlx5e: Fix inner tirs handling
    net/mlx5e: kTLS, Destroy key object after destroying the TIS
    net/mlx5e: Fix allowed tc redirect merged eswitch offload cases
    net/mlx5: Avoid processing commands before cmdif is ready
    net/mlx5: Fix a race when moving command interface to events mode
    net/mlx5: Add command entry handling completion
    rxrpc: Fix a memory leak in rxkad_verify_response()
    ...

    Linus Torvalds
     
  • Remove runtime PM usage counter decrement when the
    increment function has not been called to keep the
    counter balanced.

    Signed-off-by: Dinghao Liu
    Signed-off-by: David S. Miller

    Dinghao Liu
     
  • Saeed Mahameed says:

    ====================
    mlx5 fixes 2020-05-22

    This series introduces some fixes to mlx5 driver.

    Please pull and let me know if there is any problem.

    For -stable v4.13
    ('net/mlx5: Add command entry handling completion')

    For -stable v5.2
    ('net/mlx5: Fix error flow in case of function_setup failure')
    ('net/mlx5: Fix memory leak in mlx5_events_init')

    For -stable v5.3
    ('net/mlx5e: Update netdev txq on completions during closure')
    ('net/mlx5e: kTLS, Destroy key object after destroying the TIS')
    ('net/mlx5e: Fix inner tirs handling')

    For -stable v5.6
    ('net/mlx5: Fix cleaning unmanaged flow tables')
    ('net/mlx5: Fix a race when moving command interface to events mode')
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • In function mlx4_opreq_action(), pointer "mailbox" is not released,
    when mlx4_cmd_box() return and error, causing a memory leak bug.
    Fix this issue by going to "out" label, mlx4_free_cmd_mailbox() can
    free this pointer.

    Fixes: fe6f700d6cbb ("net/mlx4_core: Respond to operation request by firmware")
    Signed-off-by: Qiushi Wu
    Signed-off-by: David S. Miller

    Qiushi Wu
     
  • vlan_for_each() are required to be called with rtnl_lock taken, otherwise
    ASSERT_RTNL() warning will be triggered - which happens now during System
    resume from suspend:
    cpsw_suspend()
    |- cpsw_ndo_stop()
    |- __hw_addr_ref_unsync_dev()
    |- cpsw_purge_all_mc()
    |- vlan_for_each()
    |- ASSERT_RTNL();

    Hence, fix it by surrounding cpsw_ndo_stop() by rtnl_lock/unlock() calls.

    Fixes: 15180eca569b ("net: ethernet: ti: cpsw: fix vlan mcast")
    Signed-off-by: Grygorii Strashko
    Signed-off-by: David S. Miller

    Grygorii Strashko
     
  • At the very end of the MACsec block initialization in the MSCC PHY
    driver, the MACsec "protocol mode" is set. This setting should be set
    based on the PHY id within the package, as the bank used to access the
    register used depends on this. This was not done correctly, and only the
    first bank was used leading to the two upper PHYs being unstable when
    using the VSC8584. This patch fixes it.

    Fixes: 1bbe0ecc2a1a ("net: phy: mscc: macsec initialization")
    Signed-off-by: Antoine Tenart
    Signed-off-by: David S. Miller

    Antoine Tenart
     
  • Commit 14b41a2959fb ("net: stmmac: Delete txtimer in suspend") was the
    first attempt to fix a race between mod_timer() and setup_timer()
    during stmmac_resume(). However the issue still exists as the commit
    only addressed half of the issue.

    Same race can still happen as stmmac_resume() re-attaches interface
    way too early - even before hardware is fully initialized. Worse,
    doing so allows network traffic to restart and stmmac_tx_timer_arm()
    being called in the middle of stmmac_resume(), which re-init tx timers
    in stmmac_init_coalesce(). timer_list will be corrupted and system
    crashes as a result of race between mod_timer() and setup_timer().

    systemd--1995 2.... 552950018us : stmmac_suspend: 4994
    ksoftirq-9 0..s2 553123133us : stmmac_tx_timer_arm: 2276
    systemd--1995 0.... 553127896us : stmmac_resume: 5101
    systemd--320 7...2 553132752us : stmmac_tx_timer_arm: 2276
    (sd-exec-1999 5...2 553135204us : stmmac_tx_timer_arm: 2276
    ---------------------------------
    pc : run_timer_softirq+0x468/0x5e0
    lr : run_timer_softirq+0x570/0x5e0
    Call trace:
    run_timer_softirq+0x468/0x5e0
    __do_softirq+0x124/0x398
    irq_exit+0xd8/0xe0
    __handle_domain_irq+0x6c/0xc0
    gic_handle_irq+0x60/0xb0
    el1_irq+0xb8/0x180
    arch_cpu_idle+0x38/0x230
    default_idle_call+0x24/0x3c
    do_idle+0x1e0/0x2b8
    cpu_startup_entry+0x28/0x48
    secondary_start_kernel+0x1b4/0x208

    Fix this by deferring netif_device_attach() to the end of
    stmmac_resume().

    Signed-off-by: Leon Yu
    Signed-off-by: David S. Miller

    Leon Yu
     
  • When call function devm_platform_ioremap_resource(), we should use IS_ERR()
    to check the return value and return PTR_ERR() if failed.

    Signed-off-by: Tiezhu Yang
    Signed-off-by: David S. Miller

    Tiezhu Yang
     
  • The srmmu_nocache_init() uses __nocache_fix() macro to add an offset to
    page table entry to access srmmu_nocache_pool.

    But since sparc32 has only three actual page table levels, pgd, p4d and
    pud are essentially the same thing and pgd_offset() and p4d_offset() are
    no-ops, the __nocache_fix() should be done only at PUD level.

    Remove __nocache_fix() for p4d_offset() and pud_offset() and keep it
    only for PUD and lower levels.

    Fixes: c2bc26f7ca1f ("sparc32: use PUD rather than PGD to get PMD in srmmu_nocache_init()")
    Signed-off-by: Mike Rapoport
    Cc: David S. Miller
    Cc: Anatoly Pugachev
    Cc:
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • Merge misc fixes from Andrew Morton:
    "11 fixes"

    * emailed patches from Andrew Morton :
    MAINTAINERS: add files related to kdump
    z3fold: fix use-after-free when freeing handles
    sparc32: use PUD rather than PGD to get PMD in srmmu_nocache_init()
    MAINTAINERS: update email address for Naoya Horiguchi
    sh: include linux/time_types.h for sockios
    kasan: disable branch tracing for core runtime
    selftests/vm/write_to_hugetlbfs.c: fix unused variable warning
    selftests/vm/.gitignore: add mremap_dontunmap
    rapidio: fix an error in get_user_pages_fast() error handling
    x86: bitops: fix build regression
    device-dax: don't leak kernel memory to user space after unloading kmem

    Linus Torvalds
     
  • Pull driver core fixes from Greg KH:
    "So, turns out the kobject fix didn't quite work, so here are four
    patches that in the end, result in just two driver core fixes for
    reported issues that no one has had problems with.

    The kobject patch that was originally in here has now been reverted,
    as Guenter reported boot problems with it on some of his systems"

    * tag 'driver-core-5.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    Revert "kobject: Make sure the parent does not get released before its children"
    kobject: Make sure the parent does not get released before its children
    driver core: Fix handling of SYNC_STATE_ONLY + STATELESS device links
    driver core: Fix SYNC_STATE_ONLY device link implementation

    Linus Torvalds
     
  • Pull char/misc fixes from Greg KH:
    "Here are some small char/misc driver fixes for 5.7-rc7 that resolve
    some reported issues. Included in here are tiny fixes for the mei,
    coresight, rtsx, ipack, and mhi drivers.

    All of these have been in linux-next with no reported issues"

    * tag 'char-misc-5.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    misc: rtsx: Add short delay after exit from ASPM
    bus: mhi: core: Fix some error return code
    ipack: tpci200: fix error return code in tpci200_register()
    coresight: cti: remove incorrect NULL return check
    mei: release me_cl object reference

    Linus Torvalds
     
  • Pull staging/iio fixes from Greg KH:
    "Here are some small staging and IIO driver fixes for 5.7-rc7

    Nothing major, just a collection of IIO driver fixes for reported
    issues, and a few small staging driver fixes that people have found.
    Full details are in the shortlog.

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

    * tag 'staging-5.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: wfx: unlock on error path
    staging: greybus: Fix uninitialized scalar variable
    staging: kpc2000: fix error return code in kp2000_pcie_probe()
    iio: sca3000: Remove an erroneous 'get_device()'
    iio: adc: stm32-dfsdm: fix device used to request dma
    iio: adc: stm32-adc: fix device used to request dma
    iio: adc: ti-ads8344: Fix channel selection
    staging: iio: ad2s1210: Fix SPI reading
    iio: dac: vf610: Fix an error handling path in 'vf610_dac_probe()'
    iio: imu: st_lsm6dsx: unlock on error in st_lsm6dsx_shub_write_raw()
    iio: chemical: atlas-sensor: correct DO-SM channels

    Linus Torvalds
     
  • Pull tty/serial fix from Greg KH:
    "Here is a single serial driver fix for 5.7-rc7. It resolves an issue
    with the SiFive serial console init sequence that was reported a
    number of times.

    It has been in linux-next for a while now with no reported issues"

    * tag 'tty-5.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    tty: serial: add missing spin_lock_init for SiFive serial console

    Linus Torvalds
     
  • Pull s390 fixes from Vasily Gorbik:

    - Add missing R_390_JMP_SLOT relocation type in KASLR code.

    - Fix set_huge_pte_at for empty ptes issue which has been uncovered
    with arch page table helper tests.

    - Correct initrd location for kdump kernel.

    - Fix s390_mmio_read/write with MIO in PCI code.

    * tag 's390-5.7-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/kaslr: add support for R_390_JMP_SLOT relocation type
    s390/mm: fix set_huge_pte_at() for empty ptes
    s390/kexec_file: fix initrd location for kdump kernel
    s390/pci: Fix s390_mmio_read/write with MIO

    Linus Torvalds
     
  • Kdump is implemented based on kexec, however some files are only related
    to crash dumping and missing, add them to KDUMP entry.

    Signed-off-by: Baoquan He
    Signed-off-by: Andrew Morton
    Acked-by: Dave Young
    Link: http://lkml.kernel.org/r/20200520103633.GW5029@MiWiFi-R3L-srv
    Signed-off-by: Linus Torvalds

    Baoquan He
     
  • free_handle() for a foreign handle may race with inter-page compaction,
    what can lead to memory corruption.

    To avoid that, take write lock not read lock in free_handle to be
    synchronized with __release_z3fold_page().

    For example KASAN can detect it:

    ==================================================================
    BUG: KASAN: use-after-free in LZ4_decompress_safe+0x2c4/0x3b8
    Read of size 1 at addr ffffffc976695ca3 by task GoogleApiHandle/4121

    CPU: 0 PID: 4121 Comm: GoogleApiHandle Tainted: P S OE 4.19.81-perf+ #162
    Hardware name: Sony Mobile Communications. PDX-203(KONA) (DT)
    Call trace:
    LZ4_decompress_safe+0x2c4/0x3b8
    lz4_decompress_crypto+0x3c/0x70
    crypto_decompress+0x58/0x70
    zcomp_decompress+0xd4/0x120
    ...

    Apart from that, initialize zhdr->mapped_count in init_z3fold_page() and
    remove "newpage" variable because it is not used anywhere.

    Signed-off-by: Uladzislau Rezki
    Signed-off-by: Vitaly Wool
    Signed-off-by: Andrew Morton
    Cc: Qian Cai
    Cc: Raymond Jennings
    Cc:
    Link: http://lkml.kernel.org/r/20200520082100.28876-1-vitaly.wool@konsulko.com
    Signed-off-by: Linus Torvalds

    Uladzislau Rezki
     
  • The kbuild test robot reported the following warning:

    arch/sparc/mm/srmmu.c: In function 'srmmu_nocache_init': arch/sparc/mm/srmmu.c:300:9: error: variable 'pud' set but not used [-Werror=unused-but-set-variable]
    300 | pud_t *pud;

    This warning is caused by misprint in the page table traversal in
    srmmu_nocache_init() function which accessed a PMD entry using PGD
    rather than PUD.

    Since sparc32 has only 3 page table levels, the PGD and PUD are
    essentially the same and usage of __nocache_fix() removed the type
    checking.

    Use PUD for the consistency and to silence the compiler warning.

    Fixes: 7235db268a2777bc38 ("sparc32: use pgtable-nopud instead of 4level-fixup")
    Reported-by: kbuild test robot
    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Cc: David S. Miller
    Cc: Anatoly Pugachev
    Cc:
    Link: http://lkml.kernel.org/r/20200520132005.GM1059226@linux.ibm.com
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • My email address has changed due to system upgrade, so please update it
    in MAINTAINERS list. My old address (n-horiguchi@ah.jp.nec.com) will be
    still active for a few months.

    Note that my email system has some encoding issue and can't send patches
    in raw format via git-send-email. So patches from me will be delivered
    via my free address (nao.horiguchi@gmail.com) or GitHub.

    Signed-off-by: Naoya Horiguchi
    Signed-off-by: Andrew Morton
    Link: http://lkml.kernel.org/r/1589874488-9247-1-git-send-email-naoya.horiguchi@nec.com
    Signed-off-by: Linus Torvalds

    Naoya Horiguchi
     
  • Using the socket ioctls on arch/sh (and only there) causes build time
    problems when __kernel_old_timeval/__kernel_old_timespec are not already
    visible to the compiler.

    Add an explict include line for the header that defines these
    structures.

    Fixes: 8c709f9a0693 ("y2038: sh: remove timeval/timespec usage from headers")
    Fixes: 0768e17073dc ("net: socket: implement 64-bit timestamps")
    Reported-by: John Paul Adrian Glaubitz
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Tested-by: John Paul Adrian Glaubitz
    Cc: Yoshinori Sato
    Cc: Rich Felker
    Cc: "David S. Miller"
    Cc: John Paul Adrian Glaubitz
    Cc:
    Link: http://lkml.kernel.org/r/20200519131327.1836482-1-arnd@arndb.de
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     
  • During early boot, while KASAN is not yet initialized, it is possible to
    enter reporting code-path and end up in kasan_report().

    While uninitialized, the branch there prevents generating any reports,
    however, under certain circumstances when branches are being traced
    (TRACE_BRANCH_PROFILING), we may recurse deep enough to cause kernel
    reboots without warning.

    To prevent similar issues in future, we should disable branch tracing
    for the core runtime.

    [elver@google.com: remove duplicate DISABLE_BRANCH_PROFILING, per Qian Cai]
    Link: https://lore.kernel.org/lkml/20200517011732.GE24705@shao2-debian/
    Link: http://lkml.kernel.org/r/20200522075207.157349-1-elver@google.com
    Reported-by: kernel test robot
    Signed-off-by: Marco Elver
    Signed-off-by: Andrew Morton
    Reviewed-by: Andrey Konovalov
    Cc: Dmitry Vyukov
    Cc: Alexander Potapenko
    Cc: Andrey Ryabinin
    Cc: Qian Cai
    Cc:
    Link: http://lkml.kernel.org/r//20200517011732.GE24705@shao2-debian/
    Link: http://lkml.kernel.org/r/20200519182459.87166-1-elver@google.com
    Signed-off-by: Linus Torvalds

    Marco Elver
     
  • Remove unused variable "i", which was triggering a compiler warning.

    Fixes: 29750f71a9b4 ("hugetlb_cgroup: add hugetlb_cgroup reservation tests")
    Signed-off-by: John Hubbard
    Signed-off-by: Andrew Morton
    Reviewed-By: Mina Almasry
    Cc: Brian Geffon
    Cc: "Kirill A . Shutemov"
    Cc: Shuah Khan
    Cc: Ralph Campbell
    Link: http://lkml.kernel.org/r/20200517001245.361762-2-jhubbard@nvidia.com
    Signed-off-by: Linus Torvalds

    John Hubbard
     
  • Add mremap_dontunmap to .gitignore.

    Fixes: 0c28759ee3c9 ("selftests: add MREMAP_DONTUNMAP selftest")
    Signed-off-by: John Hubbard
    Signed-off-by: Andrew Morton
    Cc: Kirill A. Shutemov
    Cc: Brian Geffon
    Link: http://lkml.kernel.org/r/20200517002509.362401-2-jhubbard@nvidia.com
    Signed-off-by: Linus Torvalds

    John Hubbard
     
  • In the case of get_user_pages_fast() returning fewer pages than
    requested, rio_dma_transfer() does not quite do the right thing. It
    attempts to release all the pages that were requested, rather than just
    the pages that were pinned.

    Fix the error handling so that only the pages that were successfully
    pinned are released.

    Fixes: e8de370188d0 ("rapidio: add mport char device driver")
    Signed-off-by: John Hubbard
    Signed-off-by: Andrew Morton
    Reviewed-by: Andrew Morton
    Cc: Matt Porter
    Cc: Alexandre Bounine
    Cc: Sumit Semwal
    Cc: Dan Carpenter
    Cc:
    Link: http://lkml.kernel.org/r/20200517235620.205225-2-jhubbard@nvidia.com
    Signed-off-by: Linus Torvalds

    John Hubbard
     
  • This is easily reproducible via CC=clang + CONFIG_STAGING=y +
    CONFIG_VT6656=m.

    It turns out that if your config tickles __builtin_constant_p via
    differences in choices to inline or not, these statements produce
    invalid assembly:

    $ cat foo.c
    long a(long b, long c) {
    asm("orb %1, %0" : "+q"(c): "r"(b));
    return c;
    }
    $ gcc foo.c
    foo.c: Assembler messages:
    foo.c:2: Error: `%rax' not allowed with `orb'

    Use the `%b` "x86 Operand Modifier" to instead force register allocation
    to select a lower-8-bit GPR operand.

    The "q" constraint only has meaning on -m32 otherwise is treated as
    "r". Not all GPRs have low-8-bit aliases for -m32.

    Fixes: 1651e700664b4 ("x86: Fix bitops.h warning with a moved cast")
    Reported-by: kernelci.org bot
    Suggested-by: Andy Shevchenko
    Suggested-by: Brian Gerst
    Suggested-by: H. Peter Anvin
    Suggested-by: Ilie Halip
    Signed-off-by: Nick Desaulniers
    Signed-off-by: Andrew Morton
    Tested-by: Sedat Dilek
    Tested-by: Nathan Chancellor [build, clang-11]
    Reviewed-by: Nathan Chancellor
    Reviewed-By: Brian Gerst
    Reviewed-by: Jesse Brandeburg
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Borislav Petkov
    Cc: Marco Elver
    Cc: "Paul E. McKenney"
    Cc: Andrey Ryabinin
    Cc: Luc Van Oostenryck
    Cc: Masahiro Yamada
    Cc: Daniel Axtens
    Cc: "Peter Zijlstra (Intel)"
    Link: http://lkml.kernel.org/r/20200508183230.229464-1-ndesaulniers@google.com
    Link: https://github.com/ClangBuiltLinux/linux/issues/961
    Link: https://lore.kernel.org/lkml/20200504193524.GA221287@google.com/
    Link: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#x86Operandmodifiers
    Signed-off-by: Linus Torvalds

    Nick Desaulniers
     
  • Assume we have kmem configured and loaded:

    [root@localhost ~]# cat /proc/iomem
    ...
    140000000-33fffffff : Persistent Memory$
    140000000-1481fffff : namespace0.0
    150000000-33fffffff : dax0.0
    150000000-33fffffff : System RAM

    Assume we try to unload kmem. This force-unloading will work, even if
    memory cannot get removed from the system.

    [root@localhost ~]# rmmod kmem
    [ 86.380228] removing memory fails, because memory [0x0000000150000000-0x0000000157ffffff] is onlined
    ...
    [ 86.431225] kmem dax0.0: DAX region [mem 0x150000000-0x33fffffff] cannot be hotremoved until the next reboot

    Now, we can reconfigure the namespace:

    [root@localhost ~]# ndctl create-namespace --force --reconfig=namespace0.0 --mode=devdax
    [ 131.409351] nd_pmem namespace0.0: could not reserve region [mem 0x140000000-0x33fffffff]dax
    [ 131.410147] nd_pmem: probe of namespace0.0 failed with error -16namespace0.0 --mode=devdax
    ...

    This fails as expected due to the busy memory resource, and the memory
    cannot be used. However, the dax0.0 device is removed, and along its
    name.

    The name of the memory resource now points at freed memory (name of the
    device):

    [root@localhost ~]# cat /proc/iomem
    ...
    140000000-33fffffff : Persistent Memory
    140000000-1481fffff : namespace0.0
    150000000-33fffffff : �_�^7_��/_��wR��WQ���^��� ...
    150000000-33fffffff : System RAM

    We have to make sure to duplicate the string. While at it, remove the
    superfluous setting of the name and fixup a stale comment.

    Fixes: 9f960da72b25 ("device-dax: "Hotremove" persistent memory that is used like normal RAM")
    Signed-off-by: David Hildenbrand
    Signed-off-by: Andrew Morton
    Cc: Dan Williams
    Cc: Vishal Verma
    Cc: Dave Jiang
    Cc: Pavel Tatashin
    Cc: Andrew Morton
    Cc: [5.3]
    Link: http://lkml.kernel.org/r/20200508084217.9160-2-david@redhat.com
    Signed-off-by: Linus Torvalds

    David Hildenbrand