14 Jun, 2019

2 commits

  • We can not depend on the tcon->open_file_lock here since in multiuser mode
    we may have the same file/inode open via multiple different tcons.

    The current code is race prone and will crash if one user deletes a file
    at the same time a different user opens/create the file.

    To avoid this we need to have a spinlock attached to the inode and not the tcon.

    RHBZ: 1580165

    CC: Stable
    Signed-off-by: Ronnie Sahlberg
    Signed-off-by: Steve French
    Reviewed-by: Pavel Shilovsky

    Ronnie Sahlberg
     
  • RH Bugzilla: 1702264

    We need to protect so that the call to smb2_reconnect() in
    smb2_reconnect_server() does not end up freeing the session
    because it can lead to a use after free and crash.

    Reviewed-by: Aurelien Aptel
    Cc:
    Signed-off-by: Ronnie Sahlberg
    Signed-off-by: Steve French
    Reviewed-by: Pavel Shilovsky

    Ronnie Sahlberg
     

09 Jun, 2019

12 commits

  • Linus Torvalds
     
  • Pull ceph fixes from Ilya Dryomov:
    "A change to call iput() asynchronously to avoid a possible deadlock
    when iput_final() needs to wait for in-flight I/O (e.g. readahead) and
    a fixup for a cleanup that went into -rc1"

    * tag 'ceph-for-5.2-rc4' of git://github.com/ceph/ceph-client:
    ceph: fix error handling in ceph_get_caps()
    ceph: avoid iput_final() while holding mutex or in dispatch thread
    ceph: single workqueue for inode related works

    Linus Torvalds
     
  • Pull xen fix from Juergen Gross:
    "Just one fix for the Xen block frontend driver avoiding allocations
    with order > 0"

    * tag 'for-linus-5.2b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen-blkfront: switch kcalloc to kvcalloc for large array allocation

    Linus Torvalds
     
  • Pull s390 fixes from Heiko Carstens:

    - fix stack unwinder: the stack unwinder rework has on off-by-one bug
    which prevents following stack backchains over more than one context
    (e.g. irq -> process).

    - fix address space detection in exception handler: if user space
    switches to access register mode, which is not supported anymore, the
    exception handler may resolve to the wrong address space.

    * tag 's390-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/unwind: correct stack switching during unwind
    s390/mm: fix address space detection in exception handling

    Linus Torvalds
     
  • Pull MIPS fixes from Paul Burton:

    - Declare ginvt() __always_inline due to its use of an argument as an
    inline asm immediate.

    - A VDSO build fix following Kbuild changes made this cycle.

    - A fix for boot failures on txx9 systems following memory
    initialization changes made this cycle.

    - Bounds check virt_addr_valid() to prevent it spuriously indicating
    that bogus addresses are valid, in turn fixing hardened usercopy
    failures that have been present since v4.12.

    - Build uImage.gz for pistachio systems by default, since this is the
    image we need in order to actually boot on a board.

    - Remove an unused variable in our uprobes code.

    * tag 'mips_fixes_5.2_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
    MIPS: uprobes: remove set but not used variable 'epc'
    MIPS: pistachio: Build uImage.gz by default
    MIPS: Make virt_addr_valid() return bool
    MIPS: Bounds check virt_addr_valid
    MIPS: TXx9: Fix boot crash in free_initmem()
    MIPS: remove a space after -I to cope with header search paths for VDSO
    MIPS: mark ginvt() as __always_inline

    Linus Torvalds
     
  • Pull yet more SPDX updates from Greg KH:
    "Another round of SPDX header file fixes for 5.2-rc4

    These are all more "GPL-2.0-or-later" or "GPL-2.0-only" tags being
    added, based on the text in the files. We are slowly chipping away at
    the 700+ different ways people tried to write the license text. All of
    these were reviewed on the spdx mailing list by a number of different
    people.

    We now have over 60% of the kernel files covered with SPDX tags:
    $ ./scripts/spdxcheck.py -v 2>&1 | grep Files
    Files checked: 64533
    Files with SPDX: 40392
    Files with errors: 0

    I think the majority of the "easy" fixups are now done, it's now the
    start of the longer-tail of crazy variants to wade through"

    * tag 'spdx-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (159 commits)
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 450
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 449
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 448
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 446
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 445
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 444
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 443
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 442
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 440
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 438
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 437
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 436
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 435
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 434
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 433
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 432
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 431
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 430
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 429
    ...

    Linus Torvalds
     
  • Pull char/misc driver fixes from Greg KH:
    "Here are some small char and misc driver fixes for 5.2-rc4 to resolve
    a number of reported issues.

    The most "notable" one here is the kernel headers in proc^Wsysfs
    fixes. Those changes move the header file info into sysfs and fixes
    the build issues that you reported.

    Other than that, a bunch of small habanalabs driver fixes, some fpga
    driver fixes, and a few other tiny driver fixes.

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

    * tag 'char-misc-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    habanalabs: Read upper bits of trace buffer from RWPHI
    habanalabs: Fix virtual address access via debugfs for 2MB pages
    fpga: zynqmp-fpga: Correctly handle error pointer
    habanalabs: fix bug in checking huge page optimization
    habanalabs: Avoid using a non-initialized MMU cache mutex
    habanalabs: fix debugfs code
    uapi/habanalabs: add opcode for enable/disable device debug mode
    habanalabs: halt debug engines on user process close
    test_firmware: Use correct snprintf() limit
    genwqe: Prevent an integer overflow in the ioctl
    parport: Fix mem leak in parport_register_dev_model
    fpga: dfl: expand minor range when registering chrdev region
    fpga: dfl: Add lockdep classes for pdata->lock
    fpga: dfl: afu: Pass the correct device to dma_mapping_error()
    fpga: stratix10-soc: fix use-after-free on s10_init()
    w1: ds2408: Fix typo after 49695ac46861 (reset on output_write retry with readback)
    kheaders: Do not regenerate archive if config is not changed
    kheaders: Move from proc to sysfs
    lkdtm/bugs: Adjust recursion test to avoid elision
    lkdtm/usercopy: Moves the KERNEL_DS test to non-canonical

    Linus Torvalds
     
  • Pull i2c fixes from Wolfram Sang:
    "I2C has a driver bugfix and a MAINTAINERS fix"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    MAINTAINERS: Karthikeyan Ramasubramanian is MIA
    i2c: xiic: Add max_read_len quirk

    Linus Torvalds
     
  • Pull dmaengine fixes from Vinod Koul:

    - jz4780 transfer fix for acking descriptors early

    - fsl-qdma: clean registers on error

    - dw-axi-dmac: null pointer dereference fix

    - mediatek-cqdma: fix sleeping in atomic context

    - tegra210-adma: fix bunch os issues like crashing in driver probe,
    channel FIFO configuration etc.

    - sprd: Fixes for possible crash on descriptor status, block length
    overflow. For 2-stage transfer fix incorrect start, configuration and
    interrupt handling.

    * tag 'dmaengine-fix-5.2-rc4' of git://git.infradead.org/users/vkoul/slave-dma:
    dmaengine: sprd: Add interrupt support for 2-stage transfer
    dmaengine: sprd: Fix the right place to configure 2-stage transfer
    dmaengine: sprd: Fix block length overflow
    dmaengine: sprd: Fix the incorrect start for 2-stage destination channels
    dmaengine: sprd: Add validation of current descriptor in irq handler
    dmaengine: sprd: Fix the possible crash when getting descriptor status
    dmaengine: tegra210-adma: Fix spelling
    dmaengine: tegra210-adma: Fix channel FIFO configuration
    dmaengine: tegra210-adma: Fix crash during probe
    dmaengine: mediatek-cqdma: sleeping in atomic context
    dmaengine: dw-axi-dmac: fix null dereference when pointer first is null
    dmaengine: fsl-qdma: Add improvement
    dmaengine: jz4780: Fix transfers being ACKed too soon

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:

    - Allow symlink from the bfq.weight cgroup parameter to the general
    weight (Angelo)

    - Damien is new skd maintainer (Bart)

    - NVMe pull request from Sagi, with a few small fixes.

    - Ensure we set DMA segment size properly, dma-debug is now tripping on
    these (Christoph)

    - Remove useless debugfs_create() return check (Greg)

    - Remove redundant unlikely() check on IS_ERR() (Kefeng)

    - Fixup request freeing on exit (Ming)

    * tag 'for-linus-20190608' of git://git.kernel.dk/linux-block:
    block, bfq: add weight symlink to the bfq.weight cgroup parameter
    cgroup: let a symlink too be created with a cftype file
    block: free sched's request pool in blk_cleanup_queue
    nvme-rdma: use dynamic dma mapping per command
    nvme: Fix u32 overflow in the number of namespace list calculation
    mmc: also set max_segment_size in the device
    mtip32xx: also set max_segment_size in the device
    rsxx: don't call dma_set_max_seg_size
    nvme-pci: don't limit DMA segement size
    block: Drop unlikely before IS_ERR(_OR_NULL)
    block: aoe: no need to check return value of debugfs_create functions
    nvmet: fix data_len to 0 for bdev-backed write_zeroes
    MAINTAINERS: Hand over skd maintainership
    nvme-tcp: fix queue mapping when queue count is limited
    nvme-rdma: fix queue mapping when queue count is limited

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "Two bug fixes, both for fairly serious problems; the UFS one looks
    like it could be used to exfiltrate data from the kernel, although
    probably only a privileged user has access to the command management
    interface and the missing unlock in smartpqi is long standing and
    probably a little used error path"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: smartpqi: unlock on error in pqi_submit_raid_request_synchronous()
    scsi: ufs: Check that space was properly alloced in copy_query_response

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

    Pull Kselftest fix from Shuah Khan:
    "This consists of a single fix for a vm test build failure regression
    when it is built by itself"

    * tag 'linux-kselftest-5.2-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests: vm: Fix test build failure when built by itself

    Linus Torvalds
     

08 Jun, 2019

15 commits

  • Pull drm fixes from Dave Airlie:
    "A small bit more lively this week but not majorly so. I'm away in
    Japan next week for family holiday, so I'll be pretty disconnected,
    I've asked Daniel to do fixes for the week while I'm out.

    The nouveau firmware changes are a bit large, but they address a big
    problem where a whole set of boards don't load with the driver, and
    the new firmware fixes that, so I think it's worth trying to land it
    now.

    core:
    - Allow fb changes in async commits (drivers as well)

    udmabuf:
    - Unmap scatterlist when unmapping udmabuf

    nouveau:
    - firmware loading fixes for secboot firmware on new GPU revision.

    komeda:
    - oops, dma mapping and warning fixes

    arm-hdlcd:
    - clock fixes
    - mode validation fix

    i915:
    - Add a missing Icelake workaround
    - GVT - DMA map fault fix and enforcement fixes

    amdgpu:
    - DCE resume fix
    - New raven variation updates"

    * tag 'drm-fixes-2019-06-07-1' of git://anongit.freedesktop.org/drm/drm: (33 commits)
    drm/nouveau/secboot/gp10[2467]: support newer FW to fix SEC2 failures on some boards
    drm/nouveau/secboot: enable loading of versioned LS PMU/SEC2 ACR msgqueue FW
    drm/nouveau/secboot: split out FW version-specific LS function pointers
    drm/nouveau/secboot: pass max supported FW version to LS load funcs
    drm/nouveau/core: support versioned firmware loading
    drm/nouveau/core: pass subdev into nvkm_firmware_get, rather than device
    drm/komeda: Potential error pointer dereference
    drm/komeda: remove set but not used variable 'kcrtc'
    drm/amd/amdgpu: add RLC firmware to support raven1 refresh
    drm/amd/powerplay: add set_power_profile_mode for raven1_refresh
    drm/amdgpu: fix ring test failure issue during s3 in vce 3.0 (V2)
    udmabuf: actually unmap the scatterlist
    drm/arm/hdlcd: Allow a bit of clock tolerance
    drm/arm/hdlcd: Actually validate CRTC modes
    drm/arm/mali-dp: Add a loop around the second set CVAL and try 5 times
    drm/komeda: fixing of DMA mapping sg segment warning
    drm: don't block fb changes for async plane updates
    drm/vc4: fix fb references in async update
    drm/msm: fix fb references in async update
    drm/amd: fix fb references in async update
    ...

    Linus Torvalds
     
  • A mail just bounced back with "user unknown":

    550 5.1.1 User doesn't exist

    I also couldn't find a more recent address in git history. So, remove
    this stale entry.

    Signed-off-by: Wolfram Sang

    Wolfram Sang
     
  • This driver does not support reading more than 255 bytes at once because
    the register for storing the number of bytes to read is only 8 bits. Add
    a max_read_len quirk to enforce this.

    This was found when using this driver with the SFP driver, which was
    previously reading all 256 bytes in the SFP EEPROM in one transaction.
    This caused a bunch of hard-to-debug errors in the xiic driver since the
    driver/logic was treating the number of bytes to read as zero.
    Rejecting transactions that aren't supported at least allows the problem
    to be diagnosed more easily.

    Signed-off-by: Robert Hancock
    Reviewed-by: Michal Simek
    Signed-off-by: Wolfram Sang
    Cc: stable@kernel.org

    Robert Hancock
     
  • Pull hwmon fixes from Guenter Roeck:

    - Fix a couple of inconsistencies and locking problems in pmbus driver

    - Register with thermal subsystem only on systems supporting devicetree

    * tag 'hwmon-for-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (pmbus/core) Treat parameters as paged if on multiple pages
    hwmon: (pmbus/core) mutex_lock write in pmbus_set_samples
    hwmon: (core) add thermal sensors only if dev->of_node is present

    Linus Torvalds
     
  • The lockref cmpxchg loop is unbound as long as the spinlock is not
    taken. Depending on the hardware implementation of compare-and-swap
    a high number of loop retries might happen.

    Add an upper bound to the loop to force the fallback to spinlocks
    after some time. A retry value of 100 should not impact any hardware
    that does not have this issue.

    With the retry limit the performance of an open-close testcase
    improved between 60-70% on ThunderX2.

    Suggested-by: Linus Torvalds
    Signed-off-by: Jan Glauber
    Signed-off-by: Linus Torvalds

    Jan Glauber
     
  • Architectures that support memory tagging have a need to perform untagging
    (stripping the tag) in various parts of the kernel. This patch adds an
    untagged_addr() macro, which is defined as noop for architectures that do
    not support memory tagging. The oncoming patch series will define it at
    least for sparc64 and arm64.

    Acked-by: Catalin Marinas
    Reviewed-by: Khalid Aziz
    Signed-off-by: Andrey Konovalov
    Signed-off-by: Linus Torvalds

    Andrey Konovalov
     
  • Pull xtensa fix from Max Filippov:
    "Fix a section mismatch between memblock_reserve and mem_reserve.

    This fixes tinyconfig xtensa builds"

    * tag 'xtensa-20190607' of git://github.com/jcmvbkbc/linux-xtensa:
    xtensa: Fix section mismatch between memblock_reserve and mem_reserve

    Linus Torvalds
     
  • Pull NVMe fixes from Sagi.

    * 'nvme-5.2-rc-next' of git://git.infradead.org/nvme:
    nvme-rdma: use dynamic dma mapping per command
    nvme: Fix u32 overflow in the number of namespace list calculation
    nvmet: fix data_len to 0 for bdev-backed write_zeroes
    nvme-tcp: fix queue mapping when queue count is limited
    nvme-rdma: fix queue mapping when queue count is limited

    Jens Axboe
     
  • …/masahiroy/linux-kbuild

    Pull more Kbuild fixes from Masahiro Yamada:

    - fix kselftest-merge to find config fragments in deeper directories

    - fix kconfig unit test, which was broken by SPDX tag addition

    - add + prefix to buildtar to suppress jobserver unavailable warning

    - fix checkstack.pl to recognize arch=arm64

    - suppress noisy warning from cc-cross-prefix

    * tag 'kbuild-fixes-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: use more portable 'command -v' for cc-cross-prefix
    scripts/checkstack.pl: Fix arm64 wrong or unknown architecture
    kbuild: tar-pkg: enable communication with jobserver
    kconfig: tests: fix recursive inclusion unit test
    kbuild: teach kselftest-merge to find nested config files

    Linus Torvalds
     
  • Pull MMC fixes from Ulf Hansson:
    "Here's a couple of MMC and MEMSTICK fixes:

    MMC host:
    - sdhci: Fix SDIO IRQ thread deadlock
    - sdhci-tegra: Fix a warning message
    - sdhci_am654: Fix SLOTTYPE write
    - meson-gx: Fix IRQ ack
    - tmio: Fix SCC error handling to avoid false positive CRC error

    MEMSTICK core:
    - mspro_block: Fix returning a correct error code"

    * tag 'mmc-v5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
    mmc: sdhci_am654: Fix SLOTTYPE write
    mmc: sdhci: Fix SDIO IRQ thread deadlock
    mmc: meson-gx: fix irq ack
    mmc: tmio: fix SCC error handling to avoid false positive CRC error
    mmc: tegra: Fix a warning message
    memstick: mspro_block: Fix an error code in mspro_block_issue_req()

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "These fix a crash during resume from hibernation introduced during the
    4.19 cycle, cause the new Performance and Energy Bias Hint (EPB) code
    to be built only if CONFIG_PM is set and add a few missing kerneldoc
    comments.

    Specifics:

    - Fix a crash that occurs when a kernel with 'nosmt' in the command
    line is used to resume the system from hibernation (as the
    "restore" kernel), because memory mapping differences between the
    restore and image kernels cause SMT siblings to be woken up from
    idle states and subsequently they try to fetch instructions from
    incorrect memory locations (Jiri Kosina).

    - Cause the new Performance and Energy Bias Hint (EPB) code to be
    built only if CONFIG_PM is set, because that code is not really
    necessary otherwise (Rafael Wysocki).

    - Add kerneldoc comments to documents some helper functions related
    to system-wide suspend to avoid possible confusion regarding their
    purpose (Rafael Wysocki)"

    * tag 'pm-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    x86/power: Fix 'nosmt' vs hibernation triple fault during resume
    PM: sleep: Add kerneldoc comments to some functions
    x86: intel_epb: Do not build when CONFIG_PM is unset

    Linus Torvalds
     
  • get_desc() computes a pointer into the LDT while holding a lock that
    protects the LDT from being freed, but then drops the lock and returns the
    (now potentially dangling) pointer to its caller.

    Fix it by giving the caller a copy of the LDT entry instead.

    Fixes: 670f928ba09b ("x86/insn-eval: Add utility function to get segment descriptor")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jann Horn
    Signed-off-by: Linus Torvalds

    Jann Horn
     
  • Pull networking fixes from David Miller:

    1) Free AF_PACKET po->rollover properly, from Willem de Bruijn.

    2) Read SFP eeprom in max 16 byte increments to avoid problems with
    some SFP modules, from Russell King.

    3) Fix UDP socket lookup wrt. VRF, from Tim Beale.

    4) Handle route invalidation properly in s390 qeth driver, from Julian
    Wiedmann.

    5) Memory leak on unload in RDS, from Zhu Yanjun.

    6) sctp_process_init leak, from Neil HOrman.

    7) Fix fib_rules rule insertion semantic change that broke Android,
    from Hangbin Liu.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (33 commits)
    pktgen: do not sleep with the thread lock held.
    net: mvpp2: Use strscpy to handle stat strings
    net: rds: fix memory leak in rds_ib_flush_mr_pool
    ipv6: fix EFAULT on sendto with icmpv6 and hdrincl
    ipv6: use READ_ONCE() for inet->hdrincl as in ipv4
    Revert "fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied"
    net: aquantia: fix wol configuration not applied sometimes
    ethtool: fix potential userspace buffer overflow
    Fix memory leak in sctp_process_init
    net: rds: fix memory leak when unload rds_rdma
    ipv6: fix the check before getting the cookie in rt6_get_cookie
    ipv4: not do cache for local delivery if bc_forwarding is enabled
    s390/qeth: handle error when updating TX queue count
    s390/qeth: fix VLAN attribute in bridge_hostnotify udev event
    s390/qeth: check dst entry before use
    s390/qeth: handle limited IPv4 broadcast in L3 TX path
    net: fix indirect calls helpers for ptype list hooks.
    net: ipvlan: Fix ipvlan device tso disabled while NETIF_F_IP_CSUM is set
    udp: only choose unbound UDP socket for multicast when not in a VRF
    net/tls: replace the sleeping lock around RX resync with a bit lock
    ...

    Linus Torvalds
     
  • Pull rdma fixes from Jason Gunthorpe:
    "Things are looking pretty quiet here in RDMA, not too many bug fixes
    rolling in right now. The usual driver bug fixes and fixes for a
    couple of regressions introduced in 5.2:

    - Fix a race on bootup with RDMA device renaming and srp. SRP also
    needs to rename its internal sys files

    - Fix a memory leak in hns

    - Don't leak resources in efa on certain error unwinds

    - Don't panic in certain error unwinds in ib_register_device

    - Various small user visible bug fix patches for the hfi and efa
    drivers

    - Fix the 32 bit compilation break"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
    RDMA/efa: Remove MAYEXEC flag check from mmap flow
    mlx5: avoid 64-bit division
    IB/hfi1: Validate page aligned for a given virtual address
    IB/{qib, hfi1, rdmavt}: Correct ibv_devinfo max_mr value
    IB/hfi1: Insure freeze_work work_struct is canceled on shutdown
    IB/rdmavt: Fix alloc_qpn() WARN_ON()
    RDMA/core: Fix panic when port_data isn't initialized
    RDMA/uverbs: Pass udata on uverbs error unwind
    RDMA/core: Clear out the udata before error unwind
    RDMA/hns: Fix PD memory leak for internal allocation
    RDMA/srp: Rename SRP sysfs name after IB device rename trigger

    Linus Torvalds
     
  • Pull arm64 fixes from Will Deacon:
    "Another round of mostly-benign fixes, the exception being a boot crash
    on SVE2-capable CPUs (although I don't know where you'd find such a
    thing, so maybe it's benign too).

    We're in the process of resolving some big-endian ptrace breakage, so
    I'll probably have some more for you next week.

    Summary:

    - Fix boot crash on platforms with SVE2 due to missing register
    encoding

    - Fix architected timer accessors when CONFIG_OPTIMIZE_INLINING=y

    - Move cpu_logical_map into smp.h for use by upcoming irqchip drivers

    - Trivial typo fix in comment

    - Disable some useless, noisy warnings from GCC 9"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: Silence gcc warnings about arch ABI drift
    ARM64: trivial: s/TIF_SECOMP/TIF_SECCOMP/ comment typo fix
    arm64: arch_timer: mark functions as __always_inline
    arm64: smp: Moved cpu_logical_map[] to smp.h
    arm64: cpufeature: Fix missing ZFR0 in __read_sysreg_by_encoding()

    Linus Torvalds
     

07 Jun, 2019

11 commits

  • To print the pathname that will be used by shell in the current
    environment, 'command -v' is a standardized way. [1]

    'which' is also often used in scripts, but it is less portable.

    When I worked on commit bd55f96fa9fc ("kbuild: refactor cc-cross-prefix
    implementation"), I was eager to use 'command -v' but it did not work.
    (The reason is explained below.)

    I kept 'which' as before but got rid of '> /dev/null 2>&1' as I
    thought it was no longer needed. Sorry, I was wrong.

    It works well on my Ubuntu machine, but Alexey Brodkin reports noisy
    warnings on CentOS7 when 'which' fails to find the given command in
    the PATH environment.

    $ which foo
    which: no foo in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)

    Given that behavior of 'which' depends on system (and it may not be
    installed by default), I want to try 'command -v' once again.

    The specification [1] clearly describes the behavior of 'command -v'
    when the given command is not found:

    Otherwise, no output shall be written and the exit status shall reflect
    that the name was not found.

    However, we need a little magic to use 'command -v' from Make.

    $(shell ...) passes the argument to a subshell for execution, and
    returns the standard output of the command.

    Here is a trick. GNU Make may optimize this by executing the command
    directly instead of forking a subshell, if no shell special characters
    are found in the command and omitting the subshell will not change the
    behavior.

    In this case, no shell special character is used. So, Make will try
    to run it directly. However, 'command' is a shell-builtin command,
    then Make would fail to find it in the PATH environment:

    $ make ARCH=m68k defconfig
    make: command: Command not found
    make: command: Command not found
    make: command: Command not found

    In fact, Make has a table of shell-builtin commands because it must
    ask the shell to execute them.

    Until recently, 'command' was missing in the table.

    This issue was fixed by the following commit:

    | commit 1af314465e5dfe3e8baa839a32a72e83c04f26ef
    | Author: Paul Smith
    | Date: Sun Nov 12 18:10:28 2017 -0500
    |
    | * job.c: Add "command" as a known shell built-in.
    |
    | This is not a POSIX shell built-in but it's common in UNIX shells.
    | Reported by Nick Bowler .

    Because the latest release is GNU Make 4.2.1 in 2016, this commit is
    not included in any released versions. (But some distributions may
    have back-ported it.)

    We need to trick Make to spawn a subshell. There are various ways to
    do so:

    1) Use a shell special character '~' as dummy

    $(shell : ~; command -v $(c)gcc)

    2) Use a variable reference that always expands to the empty string
    (suggested by David Laight)

    $(shell command$${x:+} -v $(c)gcc)

    3) Use redirect

    $(shell command -v $(c)gcc 2>/dev/null)

    I chose 3) to not confuse people. The stderr would not be polluted
    anyway, but it will provide extra safety, and is easy to understand.

    Tested on Make 3.81, 3.82, 4.0, 4.1, 4.2, 4.2.1

    [1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html

    Fixes: bd55f96fa9fc ("kbuild: refactor cc-cross-prefix implementation")
    Cc: linux-stable # 5.1
    Reported-by: Alexey Brodkin
    Signed-off-by: Masahiro Yamada
    Tested-by: Alexey Brodkin

    Masahiro Yamada
     
  • Adjust conditions in on_stack function. That fixes backchain unwinder
    which was unable to read pt_regs at the very bottom of the stack and
    hence couldn't follow stacks (e.g. from async stack to a task stack).

    Fixes: 78c98f907413 ("s390/unwind: introduce stack unwind API")
    Reported-by: Julian Wiedmann
    Reviewed-by: Heiko Carstens
    Signed-off-by: Vasily Gorbik
    Signed-off-by: Heiko Carstens

    Vasily Gorbik
     
  • * pm-x86:
    x86/power: Fix 'nosmt' vs hibernation triple fault during resume
    x86: intel_epb: Do not build when CONFIG_PM is unset

    Rafael J. Wysocki
     
  • Many userspace tools and services use the proportional-share policy of
    the blkio/io cgroups controller. The CFQ I/O scheduler implemented
    this policy for the legacy block layer. To modify the weight of a
    group in case CFQ was in charge, the 'weight' parameter of the group
    must be modified. On the other hand, the BFQ I/O scheduler implements
    the same policy in blk-mq, but, with BFQ, the parameter to modify has
    a different name: bfq.weight (forced choice until legacy block was
    present, because two different policies cannot share a common parameter
    in cgroups).

    Due to CFQ legacy, most if not all userspace configurations still use
    the parameter 'weight', and for the moment do not seem likely to be
    changed. But, when CFQ went away with legacy block, such a parameter
    ceased to exist.

    So, a simple workaround has been proposed [1] to make all
    configurations work: add a symlink, named weight, to bfq.weight. This
    commit adds such a symlink.

    [1] https://lkml.org/lkml/2019/4/8/555

    Suggested-by: Johannes Thumshirn
    Signed-off-by: Angelo Ruocco
    Signed-off-by: Paolo Valente
    Signed-off-by: Jens Axboe

    Angelo Ruocco
     
  • This commit enables a cftype to have a symlink (of any name) that
    points to the file associated with the cftype.

    Signed-off-by: Angelo Ruocco
    Signed-off-by: Paolo Valente
    Signed-off-by: Jens Axboe

    Angelo Ruocco
     
  • " This is a bit more than I'd like to be pushing at this point in a
    cycle, but it's a fairly important issue. There's been numerous
    reports of more recent GP10[2467] boards failing to load, and I've
    worked with NVIDIA FW engineers and tracked this down to the FW we've
    been using not properly supporting the boards in question.

    I've pushed an update to linux-firmware with the new FW version, which
    unfortunately contains API changes vs the older firmware.

    This series teaches the ACR subsystem inside nouveau enough to be able
    to deal with supporting multiple incompatible FW revisions, and adds
    support to the relevant chipsets for loading the newer FW revision, if
    it's available."

    Signed-off-by: Dave Airlie
    From: Ben Skeggs
    Link: https://patchwork.freedesktop.org/patch/msgid/CACAvsv7pG+vur0Kn_TyU3ainnkvJVw07upnnaQNOToF+kzQtDQ@mail.gmail.com

    Dave Airlie
     
  • Some newer boards with these chipsets aren't compatible with the prior
    version of the SEC2 FW, and fail to load as a result.

    This newer FW is actually the one we already use on >=GP108.

    Unfortunately, there are interface differences in GP108's FW, making it
    impossible to simply move files around in linux-firmware to solve this.

    We need to be able to keep compatibility with all linux-firmware/kernel
    combinations, which means supporting both firmwares.

    Signed-off-by: Ben Skeggs

    Ben Skeggs
     
  • Some chipsets will be switching to updated SEC2 LS firmware, so we need to
    plumb that through.

    Signed-off-by: Ben Skeggs

    Ben Skeggs
     
  • It's not enough to have per-falcon structures anymore, we have multiple
    versions of some firmware now that have interface differences.

    Signed-off-by: Ben Skeggs

    Ben Skeggs
     
  • Will be passed to the FW loader function as an upper bound on the supported
    FW version to attempt to load.

    Signed-off-by: Ben Skeggs

    Ben Skeggs
     
  • We have a need for this now with updated SEC2 LS FW images that have an
    incompatible interface from the previous version.

    Signed-off-by: Ben Skeggs

    Ben Skeggs