12 May, 2019

2 commits


11 May, 2019

12 commits

  • Add missing page operation callbacks to few Realtek drivers.
    This also fixes a NPE after the referenced commit added code to the
    RTL8211E driver that uses phy_select_page().

    Fixes: f81dadbcf7fd ("net: phy: realtek: Add rtl8211e rx/tx delays config")
    Signed-off-by: Heiner Kallweit
    Reviewed-by: Florian Fainelli
    Reported-by: Vicente Bergas
    Signed-off-by: David S. Miller

    Heiner Kallweit
     
  • Petr Štetiar says:

    ====================
    of_get_mac_address fixes

    this patch series is hopefuly the last series of the fixes which are related
    to the introduction of NVMEM support into of_get_mac_address.

    First patch is removing `nvmem-mac-address` property which was wrong idea as
    I've allocated the property with devm_kzalloc and then added it to DT, so then
    2 entities would be refcounting the allocation. So if the driver unbinds, the
    buffer is freed, but DT code would be still referencing that memory.

    Second patch fixes some unwanted references to the Linux API in the DT
    bindings documentation.

    Patches 3-5 should hopefully make compilers and thus kbuild test robot happy.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This patch fixes following (similar) warning reported by kbuild test robot:

    In function ‘memcpy’,
    inlined from ‘smsc75xx_init_mac_address’ at drivers/net/usb/smsc75xx.c:778:3,
    inlined from ‘smsc75xx_bind’ at drivers/net/usb/smsc75xx.c:1501:2:
    ./include/linux/string.h:355:9: warning: argument 2 null where non-null expected [-Wnonnull]
    return __builtin_memcpy(p, q, size);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/net/usb/smsc75xx.c: In function ‘smsc75xx_bind’:
    ./include/linux/string.h:355:9: note: in a call to built-in function ‘__builtin_memcpy’

    I've replaced the offending memcpy with ether_addr_copy, because I'm
    100% sure, that of_get_mac_address can't return NULL as it returns valid
    pointer or ERR_PTR encoded value, nothing else.

    I'm hesitant to just change IS_ERR into IS_ERR_OR_NULL check, as this
    would make the warning disappear also, but it would be confusing to
    check for impossible return value just to make a compiler happy.

    I'm now changing all occurencies of memcpy to ether_addr_copy after the
    of_get_mac_address call, as it's very likely, that we're going to get
    similar reports from kbuild test robot in the future.

    Fixes: d31a36b5f407 ("net: wireless: support of_get_mac_address new ERR_PTR error")
    Reported-by: kbuild test robot
    Signed-off-by: Petr Štetiar
    Signed-off-by: David S. Miller

    Petr Štetiar
     
  • This patch fixes following (similar) warning reported by kbuild test robot:

    In function ‘memcpy’,
    inlined from ‘smsc75xx_init_mac_address’ at drivers/net/usb/smsc75xx.c:778:3,
    inlined from ‘smsc75xx_bind’ at drivers/net/usb/smsc75xx.c:1501:2:
    ./include/linux/string.h:355:9: warning: argument 2 null where non-null expected [-Wnonnull]
    return __builtin_memcpy(p, q, size);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/net/usb/smsc75xx.c: In function ‘smsc75xx_bind’:
    ./include/linux/string.h:355:9: note: in a call to built-in function ‘__builtin_memcpy’

    I've replaced the offending memcpy with ether_addr_copy, because I'm
    100% sure, that of_get_mac_address can't return NULL as it returns valid
    pointer or ERR_PTR encoded value, nothing else.

    I'm hesitant to just change IS_ERR into IS_ERR_OR_NULL check, as this
    would make the warning disappear also, but it would be confusing to
    check for impossible return value just to make a compiler happy.

    I'm now changing all occurencies of memcpy to ether_addr_copy after the
    of_get_mac_address call, as it's very likely, that we're going to get
    similar reports from kbuild test robot in the future.

    Fixes: a51645f70f63 ("net: ethernet: support of_get_mac_address new ERR_PTR error")
    Reported-by: kbuild test robot
    Signed-off-by: Petr Štetiar
    Signed-off-by: David S. Miller

    Petr Štetiar
     
  • This patch fixes following (similar) warning reported by kbuild test robot:

    In function ‘memcpy’,
    inlined from ‘smsc75xx_init_mac_address’ at drivers/net/usb/smsc75xx.c:778:3,
    inlined from ‘smsc75xx_bind’ at drivers/net/usb/smsc75xx.c:1501:2:
    ./include/linux/string.h:355:9: warning: argument 2 null where non-null expected [-Wnonnull]
    return __builtin_memcpy(p, q, size);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/net/usb/smsc75xx.c: In function ‘smsc75xx_bind’:
    ./include/linux/string.h:355:9: note: in a call to built-in function ‘__builtin_memcpy’

    I've replaced the offending memcpy with ether_addr_copy, because I'm
    100% sure, that of_get_mac_address can't return NULL as it returns valid
    pointer or ERR_PTR encoded value, nothing else.

    I'm hesitant to just change IS_ERR into IS_ERR_OR_NULL check, as this
    would make the warning disappear also, but it would be confusing to
    check for impossible return value just to make a compiler happy.

    I'm now changing all occurencies of memcpy to ether_addr_copy after the
    of_get_mac_address call, as it's very likely, that we're going to get
    similar reports from kbuild test robot in the future.

    Fixes: ea168cdf1299 ("powerpc: tsi108: support of_get_mac_address new ERR_PTR error")
    Reported-by: kbuild test robot
    Signed-off-by: Petr Štetiar
    Signed-off-by: David S. Miller

    Petr Štetiar
     
  • In commit 687e3d5550c7 ("dt-bindings: doc: reflect new NVMEM
    of_get_mac_address behaviour") I've kept or added references to Linux
    of_get_mac_address API which is unwanted so this patch fixes that by
    removing those references.

    Fixes: 687e3d5550c7 ("dt-bindings: doc: reflect new NVMEM of_get_mac_address behaviour")
    Suggested-by: Rob Herring
    Signed-off-by: Petr Štetiar
    Signed-off-by: David S. Miller

    Petr Štetiar
     
  • In commit d01f449c008a ("of_net: add NVMEM support to
    of_get_mac_address") I've added `nvmem-mac-address` property which was
    wrong idea as I've allocated the property with devm_kzalloc and then
    added it to DT, so then 2 entities would be refcounting the allocation.
    So if the driver unbinds, the buffer is freed, but DT code would be
    still referencing that memory.

    I'm removing this property completely instead of fixing it, as it's not
    needed to have it.

    Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address")
    Suggested-by: Rob Herring
    Signed-off-by: Petr Štetiar
    Signed-off-by: David S. Miller

    Petr Štetiar
     
  • Only set the device carrier state to on after receiving an up link
    state indication from the underlying adapter. Likewise, if a down
    link indication is receieved, update the carrier state accordingly.
    This fix ensures that accurate carrier state is reported by the driver
    following a link state update by the underlying adapter.

    Signed-off-by: Thomas Falcon
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • It was discovered in testing that the underlying hardware MAC
    address will revert to initial settings following a device reset,
    but the driver fails to resend the current OS MAC settings. This
    oversight can result in dropped packets should the scenario occur.
    Fix this by informing hardware of current MAC address settings
    following any adapter initialization or resets.

    Signed-off-by: Thomas Falcon
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • Fix gcc build error:

    net/dsa/tag_brcm.c:211:16: error: brcm_prepend_netdev_ops undeclared here (not in a function); did you mean brcm_netdev_ops?
    DSA_TAG_DRIVER(brcm_prepend_netdev_ops);
    ^
    ./include/net/dsa.h:708:10: note: in definition of macro DSA_TAG_DRIVER
    .ops = &__ops, \
    ^~~~~
    ./include/net/dsa.h:701:36: warning: dsa_tag_driver_brcm_prepend_netdev_ops defined but not used [-Wunused-variable]
    #define DSA_TAG_DRIVER_NAME(__ops) dsa_tag_driver ## _ ## __ops
    ^
    ./include/net/dsa.h:707:30: note: in expansion of macro DSA_TAG_DRIVER_NAME
    static struct dsa_tag_driver DSA_TAG_DRIVER_NAME(__ops) = { \
    ^~~~~~~~~~~~~~~~~~~
    net/dsa/tag_brcm.c:211:1: note: in expansion of macro DSA_TAG_DRIVER
    DSA_TAG_DRIVER(brcm_prepend_netdev_ops);

    Like the CONFIG_NET_DSA_TAG_BRCM case,
    brcm_prepend_netdev_ops and DSA_TAG_PROTO_BRCM_PREPEND
    should be wrappeed by CONFIG_NET_DSA_TAG_BRCM_PREPEND.

    Reported-by: Hulk Robot
    Fixes: b74b70c44986 ("net: dsa: Support prepended Broadcom tag")
    Signed-off-by: YueHaibing
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    YueHaibing
     
  • Currently error return from kobject_init_and_add() is not followed by a
    call to kobject_put(). This means there is a memory leak. We currently
    set p to NULL so that kfree() may be called on it as a noop, the code is
    arguably clearer if we move the kfree() up closer to where it is
    called (instead of after goto jump).

    Remove a goto label 'err1' and jump to call to kobject_put() in error
    return from kobject_init_and_add() fixing the memory leak. Re-name goto
    label 'put_back' to 'err1' now that we don't use err1, following current
    nomenclature (err1, err2 ...). Move call to kfree out of the error
    code at bottom of function up to closer to where memory was allocated.
    Add comment to clarify call to kfree().

    Signed-off-by: Tobin C. Harding
    Signed-off-by: David S. Miller

    Tobin C. Harding
     
  • This reverts commit c7e0d6cca86581092cbbf2cd868b3601495554cf.

    It was agreed a slightly different fix via the selinux tree.

    v1 -> v2:
    - use the correct reverted commit hash

    Signed-off-by: Paolo Abeni
    Signed-off-by: David S. Miller

    Paolo Abeni
     

10 May, 2019

26 commits

  • Pull powerpc updates from Michael Ellerman:
    "Slightly delayed due to the issue with printk() calling
    probe_kernel_read() interacting with our new user access prevention
    stuff, but all fixed now.

    The only out-of-area changes are the addition of a cpuhp_state, small
    additions to Documentation and MAINTAINERS updates.

    Highlights:

    - Support for Kernel Userspace Access/Execution Prevention (like
    SMAP/SMEP/PAN/PXN) on some 64-bit and 32-bit CPUs. This prevents
    the kernel from accidentally accessing userspace outside
    copy_to/from_user(), or ever executing userspace.

    - KASAN support on 32-bit.

    - Rework of where we map the kernel, vmalloc, etc. on 64-bit hash to
    use the same address ranges we use with the Radix MMU.

    - A rewrite into C of large parts of our idle handling code for
    64-bit Book3S (ie. power8 & power9).

    - A fast path entry for syscalls on 32-bit CPUs, for a 12-17% speedup
    in the null_syscall benchmark.

    - On 64-bit bare metal we have support for recovering from errors
    with the time base (our clocksource), however if that fails
    currently we hang in __delay() and never crash. We now have support
    for detecting that case and short circuiting __delay() so we at
    least panic() and reboot.

    - Add support for optionally enabling the DAWR on Power9, which had
    to be disabled by default due to a hardware erratum. This has the
    effect of enabling hardware breakpoints for GDB, the downside is a
    badly behaved program could crash the machine by pointing the DAWR
    at cache inhibited memory. This is opt-in obviously.

    - xmon, our crash handler, gets support for a read only mode where
    operations that could change memory or otherwise disturb the system
    are disabled.

    Plus many clean-ups, reworks and minor fixes etc.

    Thanks to: Christophe Leroy, Akshay Adiga, Alastair D'Silva, Alexey
    Kardashevskiy, Andrew Donnellan, Aneesh Kumar K.V, Anju T Sudhakar,
    Anton Blanchard, Ben Hutchings, Bo YU, Breno Leitao, Cédric Le Goater,
    Christopher M. Riedl, Christoph Hellwig, Colin Ian King, David Gibson,
    Ganesh Goudar, Gautham R. Shenoy, George Spelvin, Greg Kroah-Hartman,
    Greg Kurz, Horia Geantă, Jagadeesh Pagadala, Joel Stanley, Joe
    Perches, Julia Lawall, Laurentiu Tudor, Laurent Vivier, Lukas Bulwahn,
    Madhavan Srinivasan, Mahesh Salgaonkar, Mathieu Malaterre, Michael
    Neuling, Mukesh Ojha, Nathan Fontenot, Nathan Lynch, Nicholas Piggin,
    Nick Desaulniers, Oliver O'Halloran, Peng Hao, Qian Cai, Ravi
    Bangoria, Rick Lindsley, Russell Currey, Sachin Sant, Stewart Smith,
    Sukadev Bhattiprolu, Thomas Huth, Tobin C. Harding, Tyrel Datwyler,
    Valentin Schneider, Wei Yongjun, Wen Yang, YueHaibing"

    * tag 'powerpc-5.2-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (205 commits)
    powerpc/64s: Use early_mmu_has_feature() in set_kuap()
    powerpc/book3s/64: check for NULL pointer in pgd_alloc()
    powerpc/mm: Fix hugetlb page initialization
    ocxl: Fix return value check in afu_ioctl()
    powerpc/mm: fix section mismatch for setup_kup()
    powerpc/mm: fix redundant inclusion of pgtable-frag.o in Makefile
    powerpc/mm: Fix makefile for KASAN
    powerpc/kasan: add missing/lost Makefile
    selftests/powerpc: Add a signal fuzzer selftest
    powerpc/booke64: set RI in default MSR
    ocxl: Provide global MMIO accessors for external drivers
    ocxl: move event_fd handling to frontend
    ocxl: afu_irq only deals with IRQ IDs, not offsets
    ocxl: Allow external drivers to use OpenCAPI contexts
    ocxl: Create a clear delineation between ocxl backend & frontend
    ocxl: Don't pass pci_dev around
    ocxl: Split pci.c
    ocxl: Remove some unused exported symbols
    ocxl: Remove superfluous 'extern' from headers
    ocxl: read_pasid never returns an error, so make it void
    ...

    Linus Torvalds
     
  • Pull vfs mount fix from Al Viro:
    "Fix for umount -l/mount --move race caught by syzbot yesterday..."

    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    do_move_mount(): fix an unsafe use of is_anon_ns()

    Linus Torvalds
     
  • Pull networking fixes from David Miller:
    "Several bug fixes, many are quick merge-window regression cures:

    - When NLM_F_EXCL is not set, allow same fib rule insertion. From
    Hangbin Liu.

    - Several cures in sja1105 DSA driver (while loop exit condition fix,
    return of negative u8, etc.) from Vladimir Oltean.

    - Handle tx/rx delays in realtek PHY driver properly, from Serge
    Semin.

    - Double free in cls_matchall, from Pieter Jansen van Vuuren.

    - Disable SIOCSHWTSTAMP in macvlan/vlan containers, from Hangbin Liu.

    - Endainness fixes in aqc111, from Oliver Neukum.

    - Handle errors in packet_init properly, from Haibing Yue.

    - Various W=1 warning fixes in kTLS, from Jakub Kicinski"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (34 commits)
    nfp: add missing kdoc
    net/tls: handle errors from padding_length()
    net/tls: remove set but not used variables
    docs/btf: fix the missing section marks
    nfp: bpf: fix static check error through tightening shift amount adjustment
    selftests: bpf: initialize bpf_object pointers where needed
    packet: Fix error path in packet_init
    net/tcp: use deferred jump label for TCP acked data hook
    net: aquantia: fix undefined devm_hwmon_device_register_with_info reference
    aqc111: fix double endianness swap on BE
    aqc111: fix writing to the phy on BE
    aqc111: fix endianness issue in aqc111_change_mtu
    vlan: disable SIOCSHWTSTAMP in container
    macvlan: disable SIOCSHWTSTAMP in container
    tipc: fix hanging clients using poll with EPOLLOUT flag
    tuntap: synchronize through tfiles array instead of tun->numqueues
    tuntap: fix dividing by zero in ebpf queue selection
    dwmac4_prog_mtl_tx_algorithms() missing write operation
    ptp_qoriq: fix NULL access if ptp dt node missing
    net/sched: avoid double free on matchall reoffload
    ...

    Linus Torvalds
     
  • Add missing kdoc for app member.

    Signed-off-by: Jakub Kicinski
    Reviewed-by: Dirk van der Merwe
    Signed-off-by: David S. Miller

    Jakub Kicinski
     
  • Jakub Kicinski says:

    ====================
    net/tls: fix W=1 build warnings

    This small series cleans up two outstanding W=1 build
    warnings in tls code. Both are set but not used variables.
    The first case looks fairly straightforward. In the second
    I think it's better to propagate the error code, even if
    not doing some does not lead to a crash with current code.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • At the time padding_length() is called the record header
    is still part of the message. If malicious TLS 1.3 peer
    sends an all-zero record padding_length() will stop at
    the record header, and return full length of the data
    including the tail_size.

    Subsequent subtraction of prot->overhead_size from rxm->full_len
    will cause rxm->full_len to turn negative. skb accessors,
    however, will always catch resulting out-of-bounds operation,
    so in practice this fix comes down to returning the correct
    error code. It also fixes a set but not used warning.

    This code was added by commit 130b392c6cd6 ("net: tls: Add tls 1.3 support").

    CC: Dave Watson
    Signed-off-by: Jakub Kicinski
    Reviewed-by: Dirk van der Merwe
    Signed-off-by: David S. Miller

    Jakub Kicinski
     
  • Commit 4504ab0e6eb8 ("net/tls: Inform user space about send buffer availability")
    made us report write_space regardless whether partial record
    push was successful or not. Remove the now unused return value
    to clean up the following W=1 warning:

    net/tls/tls_device.c: In function ‘tls_device_write_space’:
    net/tls/tls_device.c:546:6: warning: variable ‘rc’ set but not used [-Wunused-but-set-variable]
    int rc = 0;
    ^~

    CC: Vakul Garg
    CC: Boris Pismenny
    Signed-off-by: Jakub Kicinski
    Reviewed-by: Dirk van der Merwe
    Signed-off-by: David S. Miller

    Jakub Kicinski
     
  • Alexei Starovoitov says:

    ====================
    pull-request: bpf 2019-05-09

    The following pull-request contains BPF updates for your *net* tree.

    The main changes are:

    1) three small fixes from Gary, Jiong and Lorenz.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The section titles of 3.4 and 3.5 are not marked correctly.

    Signed-off-by: Gary Lin
    Signed-off-by: Alexei Starovoitov

    Gary Lin
     
  • NFP shift instruction has something special. If shift direction is left
    then shift amount of 1 to 31 is specified as 32 minus the amount to shift.

    But no need to do this for indirect shift which has shift amount be 0. Even
    after we do this subtraction, shift amount 0 will be turned into 32 which
    will eventually be encoded the same as 0 because only low 5 bits are
    encoded, but shift amount be 32 will fail the FIELD_PREP check done later
    on shift mask (0x1f), due to 32 is out of mask range. Such error has been
    observed when compiling nfp/bpf/jit.c using gcc 8.3 + O3.

    This issue has started when indirect shift support added after which the
    incoming shift amount to __emit_shf could be 0, therefore it is at that
    time shift amount adjustment inside __emit_shf should have been tightened.

    Fixes: 991f5b3651f6 ("nfp: bpf: support logic indirect shifts (BPF_[L|R]SH | BPF_X)")
    Reported-by: Oleksandr Natalenko
    Reported-by: Pablo Cascón
    Reviewed-by: Jakub Kicinski
    Signed-off-by: Jiong Wang
    Signed-off-by: Alexei Starovoitov

    Jiong Wang
     
  • There are a few tests which call bpf_object__close on uninitialized
    bpf_object*, which may segfault. Explicitly zero-initialise these pointers
    to avoid this.

    Signed-off-by: Lorenz Bauer
    Acked-by: Martin KaFai Lau
    Signed-off-by: Alexei Starovoitov

    Lorenz Bauer
     
  • Pull sparc updates from David Miller:
    "Here we go:

    - Fix various long standing issues in the sparc 32-bit IOMMU support
    code, from Christoph Hellwig.

    - Various other code cleanups and simplifications all over. From
    Gustavo A. R. Silva, Jagadeesh Pagadala, Masahiro Yamada, Mauro
    Carvalho Chehab, Mike Rapoport"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: simplify reduce_memory() function
    sparc: use struct_size() in kzalloc()
    docs: sparc: convert to ReST
    sparc/iommu: merge iommu_get_one and __sbus_iommu_map_page
    sparc/iommu: use __sbus_iommu_map_page to implement the map_sg path
    sparc/iommu: fix __sbus_iommu_map_page for highmem pages
    sparc/iommu: move per-page flushing into __sbus_iommu_map_page
    sparc/iommu: pass a physical address to iommu_get_one
    sparc/iommu: create a common helper for map_sg
    sparc/iommu: merge iommu_release_one and sbus_iommu_unmap_page
    sparc/iommu: use sbus_iommu_unmap_page in sbus_iommu_unmap_sg
    sparc/iommu: use !PageHighMem to check if a page has a kernel mapping
    sparc: vdso: add FORCE to the build rule of %.so
    arch:sparc:kernel/uprobes.c : Remove duplicate header

    Linus Torvalds
     
  • Pull clk framework updates from Stephen Boyd:
    "We have a couple new features and changes in the core clk framework
    this time around because we've finally gotten around to fixing some
    long standing issues. There's still work to do though, so this pull
    request is largely laying down the foundation for all the driver
    changes to come in the next merge window.

    The first problem we're alleviating is how parents of clks are
    specified. With the new method, we should see lots of drivers migrate
    away from the current design of string comparisons on the entire clk
    tree to a more direct method where they can use clk_hw pointers or
    more localized names specified in DT or via clkdev. This should reduce
    our reliance on string comparisons for all the topology description
    logic that we've been using for years and hopefully speed some things
    up while avoiding problems we have with generating clk names.

    Beyond that we also got rid of the CLK_IS_BASIC flag because it wasn't
    really helping anyone and we introduced big-endian versions of the
    basic clk types so that we can get rid of clk_{readl,writel}(). Both
    of these are things that driver developers have tried to use over the
    years that I typically bat away during code reviews because they're
    not useful. It's great to see these two things go away so maintainers
    can save time not worrying about these things.

    On the driver side we got the usual collection of new SoC support and
    non-critical fixes and updates to existing code. The big topics that
    stand out are the new driver support for Mediatek MT8183 and MT8516
    SoCs, Amlogic Meson8b and G12a SoCs, and the SiFive FU540 SoC. The
    other patches in the driver pile are mostly fixes for things that are
    being used for the first time or additions for clks that couldn't be
    tested before because there wasn't a consumer driver that exercised
    them. Details are below and also in the sub-maintainer tags.

    Core:
    - Remove clk_readl() and introduce BE versions of basic clk types
    - Rewrite how clk parents can be specified to allow DT/clkdev lookups
    - Removal of the CLK_IS_BASIC clk flag
    - Framework documentation updates and fixes

    New Drivers:
    - Support for STM32F769
    - AT91 sam9x60 PMC support
    - SiFive FU540 PRCI and PLL support
    - Qualcomm QCS404 CDSP clk support
    - Qualcomm QCS404 Turing clk support
    - Mediatek MT8183 clock support
    - Mediatek MT8516 clock support
    - Milbeaut M10V clk controller support
    - Support for Cirrus Logic Lochnagar clks

    Updates:
    - Rework AT91 sckc DT bindings
    - Fix slow RC oscillator issue on sama5d3
    - Mark UFS clk as critical on Hi-Silicon hi3660 SoCs
    - Various static analysis fixes/finds and const markings
    - Video Engine (ECLK) support on Aspeed SoCs
    - Xilinx ZynqMP Versal platform support
    - Convert Xilinx ZynqMP driver to be struct oriented
    - Fixes for Rockchip rk3328 and rk3288 SoCs
    - Sub-type for Rockchip SoCs where mux and divider aren't a single register
    - Remove SNVS clock from i.MX7UPL clock driver and bindings
    - Improve i.MX5 clock driver for i.MX50 support
    - Addition of ADC clock definition for Exynos 5410 SoC (Odroid XU)
    - Export a new clock for the MBUS controller on the A13
    - Allwinner H6 fixes to support a finer clocking of the video and VPU engines
    - Add g12a support in the Amlogic axg audio clock controller
    - Add missing PCI USB clock on Rensas RZ/N1
    - Add Z2 (Cortex-A53) clocks on Rensas R-Car E3 and RZ/G2E
    - A new helper DIV64_U64_ROUND_CLOSEST() in
    - VPU and Video Decoder clocks on Amlogic Meson8b
    - Finally remove the wrong ABP Meson8b clock id
    - Add Video Decoder, PCIe PLL, and CPU Clocks on Amlogic G12A
    - Re-expose SAR_ADC_SEL and CTS_OSCIN on Amlogic G12A AO clock controller
    - Un-expose some Amlogic AXG-Audio input clocks IDs"

    * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (172 commits)
    clk: Cache core in clk_fetch_parent_index() without names
    clk: imx: correct pfdv2 gate_bit/vld_bit operations
    clk: sifive: add a driver for the SiFive FU540 PRCI IP block
    clk: analogbits: add Wide-Range PLL library
    clk: imx: clk-pllv3: mark expected switch fall-throughs
    clk: imx8mq: Add dsi_ipg_div
    clk: imx: pllv4: add fractional-N pll support
    clk: sunxi-ng: Use the correct style for SPDX License Identifier
    clk: sprd: Use the correct style for SPDX License Identifier
    clk: renesas: Use the correct style for SPDX License Identifier
    clk: qcom: Use the correct style for SPDX License Identifier
    clk: davinci: Use the correct style for SPDX License Identifier
    clk: actions: Use the correct style for SPDX License Identifier
    clk: imx: keep uart clock on during system boot
    clk: imx: correct i.MX7D AV PLL num/denom offset
    dt-bindings: clk: add documentation for the SiFive PRCI driver
    clk: stm32mp1: Add ddrperfm clock
    clk: Remove CLK_IS_BASIC clk flag
    clock: milbeaut: Add Milbeaut M10V clock controller
    dt-bindings: clock: milbeaut: add Milbeaut clock description
    ...

    Linus Torvalds
     
  • Pull RTC updates from Alexandre Belloni:
    "A huge series from me this cycle. I went through many drivers to set
    the date and time range supported by the RTC which helps solving HW
    limitation when the time comes (as early as next year for some). This
    time, I focused on drivers using .set_mms and .set_mmss64, allowing me
    to remove those callbacks. About a third of the patches got reviews, I
    actually own the RTCs and I tested another third and the remaining one
    are unlikely to cause any issues.

    Other than that, a single new driver and the usual fixes here and there.

    Summary:

    Subsystem:

    - set_mmss and set_mmss64 rtc_ops removal

    - Fix timestamp value for RTC_TIMESTAMP_BEGIN_1900

    - Use SPDX identifier for the core

    - validate upper bound of tm->tm_year

    New driver:

    - Aspeed BMC SoC RTC

    Drivers:

    - abx80x: use rtc_add_group

    - ds3232: nvram support

    - pcf85063: add alarm, nvram, offset correction and microcrystal
    rv8263 support

    - x1205: add of_match_table

    - Use set_time instead of set_mms/set_mmss64 for: ab3100, coh901331,
    digicolor, ds1672, ds2404, ep93xx, imxdi, jz4740, lpc32xx, mc13xxx,
    mxc, pcap, stmp3xxx, test, wm831x, xgene.

    - Set RTC range for: ab3100, at91sam9, coh901331, da9063, digicolor,
    dm355evm, ds1672, ds2404, ep39xx, goldfish, imxdi, jz4740, lpc32xx,
    mc13xxx, mv, mxc, omap, pcap, pcf85063, pcf85363, ps3, sh,
    stmp3xxx, sun4v, tegra, wm831x, xgene.

    - Switch to rtc_time64_to_tm/rtc_tm_to_time64 for the driver that
    properly set the RTC range.

    - Use dev_get_drvdata instead of multiple indirections"

    * tag 'rtc-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (177 commits)
    rtc: snvs: Use __maybe_unused instead of #if CONFIG_PM_SLEEP
    rtc: imxdi: remove unused variable
    rtc: drop set_mms and set_mmss64
    rtc: pcap: convert to SPDX identifier
    rtc: pcap: use .set_time
    rtc: pcap: switch to rtc_time64_to_tm/rtc_tm_to_time64
    rtc: pcap: set range
    rtc: digicolor: convert to SPDX identifier
    rtc: digicolor: use .set_time
    rtc: digicolor: set range
    rtc: digicolor: fix possible race condition
    rtc: jz4740: convert to SPDX identifier
    rtc: jz4740: rework invalid time detection
    rtc: jz4740: use dev_pm_set_wake_irq() to simplify code
    rtc: jz4740: use .set_time
    rtc: jz4740: remove useless check
    rtc: jz4740: switch to rtc_time64_to_tm/rtc_tm_to_time64
    rtc: jz4740: set range
    rtc: 88pm860x: prevent use-after-free on device remove
    rtc: Use dev_get_drvdata()
    ...

    Linus Torvalds
     
  • Pull i2c updates from Wolfram Sang:

    - API for late atomic transfers (e.g. to shut down via PMIC). We have a
    seperate callback now which is called under clearly defined
    conditions. In-kernel users are converted, too.

    - new driver for the AMD PCIe MP2 I2C controller

    - large refactoring for at91 and bcm-iproc (both gain slave support due
    to this)

    - and a good share of various driver improvements anf fixes

    * 'i2c/for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (57 commits)
    dt-bindings: i2c: riic: document r7s9210 support
    i2c: imx-lpi2c: Use __maybe_unused instead of #if CONFIG_PM_SLEEP
    i2c-piix4: Add Hygon Dhyana SMBus support
    i2c: core: apply 'is_suspended' check for SMBus, too
    i2c: core: ratelimit 'transfer when suspended' errors
    i2c: iproc: Change driver to use 'BIT' macro
    i2c: riic: Add Runtime PM support
    i2c: mux: demux-pinctrl: use struct_size() in devm_kzalloc()
    i2c: mux: pca954x: allow management of device idle state via sysfs
    i2c: mux: pca9541: remove support for unused platform data
    i2c: mux: pca954x: remove support for unused platform data
    dt-bindings: i2c: i2c-mtk: add support for MT8516
    i2c: axxia: use auto cmd for last message
    i2c: gpio: flag atomic capability if possible
    i2c: algo: bit: add flag to whitelist atomic transfers
    i2c: stu300: use xfer_atomic callback to bail out early
    i2c: ocores: enable atomic xfers
    i2c: ocores: refactor setup for polling
    i2c: tegra-bpmp: convert to use new atomic callbacks
    i2c: omap: Add the master_xfer_atomic hook
    ...

    Linus Torvalds
     
  • Pull NFS client updates from Anna Schumaker:
    "Highlights include:

    Stable bugfixes:
    - Fall back to MDS if no deviceid is found rather than aborting # v4.11+
    - NFS4: Fix v4.0 client state corruption when mount

    Features:
    - Much improved handling of soft mounts with NFS v4.0:
    - Reduce risk of false positive timeouts
    - Faster failover of reads and writes after a timeout
    - Added a "softerr" mount option to return ETIMEDOUT instead of
    EIO to the application after a timeout
    - Increase number of xprtrdma backchannel requests
    - Add additional xprtrdma tracepoints
    - Improved send completion batching for xprtrdma

    Other bugfixes and cleanups:
    - Return -EINVAL when NFS v4.2 is passed an invalid dedup mode
    - Reduce usage of GFP_ATOMIC pages in SUNRPC
    - Various minor NFS over RDMA cleanups and bugfixes
    - Use the correct container namespace for upcalls
    - Don't share superblocks between user namespaces
    - Various other container fixes
    - Make nfs_match_client() killable to prevent soft lockups
    - Don't mark all open state for recovery when handling recallable
    state revoked flag"

    * tag 'nfs-for-5.2-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (69 commits)
    SUNRPC: Rebalance a kref in auth_gss.c
    NFS: Fix a double unlock from nfs_match,get_client
    nfs: pass the correct prototype to read_cache_page
    NFSv4: don't mark all open state for recovery when handling recallable state revoked flag
    SUNRPC: Fix an error code in gss_alloc_msg()
    SUNRPC: task should be exit if encode return EKEYEXPIRED more times
    NFS4: Fix v4.0 client state corruption when mount
    PNFS fallback to MDS if no deviceid found
    NFS: make nfs_match_client killable
    lockd: Store the lockd client credential in struct nlm_host
    NFS: When mounting, don't share filesystems between different user namespaces
    NFS: Convert NFSv2 to use the container user namespace
    NFSv4: Convert the NFS client idmapper to use the container user namespace
    NFS: Convert NFSv3 to use the container user namespace
    SUNRPC: Use namespace of listening daemon in the client AUTH_GSS upcall
    SUNRPC: Use the client user namespace when encoding creds
    NFS: Store the credential of the mount process in the nfs_server
    SUNRPC: Cache cred of process creating the rpc_client
    xprtrdma: Remove stale comment
    xprtrdma: Update comments that reference ib_drain_qp
    ...

    Linus Torvalds
     
  • The reduce_memory() function clampls the available memory to a limit
    defined by the "mem=" command line parameter. It takes into account the
    amount of already reserved memory and excludes it from the limit
    calculations.

    Rather than traverse memblocks and remove them by hand, use
    memblock_reserved_size() to account the reserved memory and
    memblock_enforce_memory_limit() to clamp the available memory.

    Signed-off-by: Mike Rapoport
    Acked-by: David S. Miller
    Signed-off-by: David S. Miller

    Mike Rapoport
     
  • One of the more common cases of allocation size calculations is finding the
    size of a structure that has a zero-sized array at the end, along with memory
    for some number of elements for that array. For example:

    struct foo {
    int stuff;
    void *entry[];
    };

    instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);

    Instead of leaving these open-coded and prone to type mistakes, we can now
    use the new struct_size() helper:

    instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL);

    This code was detected with the help of Coccinelle.

    Signed-off-by: Gustavo A. R. Silva
    Signed-off-by: David S. Miller

    Gustavo A. R. Silva
     
  • Pull cgroup updates from Tejun Heo:
    "This includes Roman's cgroup2 freezer implementation.

    It's a separate machanism from cgroup1 freezer. Instead of blocking
    user tasks in arbitrary uninterruptible sleeps, the new implementation
    extends jobctl stop - frozen tasks are trapped in jobctl stop until
    thawed and can be killed and ptraced. Lots of thanks to Oleg for
    sheperding the effort.

    Other than that, there are a few trivial changes"

    * 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: never call do_group_exit() with task->frozen bit set
    kernel: cgroup: fix misuse of %x
    cgroup: get rid of cgroup_freezer_frozen_exit()
    cgroup: prevent spurious transition into non-frozen state
    cgroup: Remove unused cgrp variable
    cgroup: document cgroup v2 freezer interface
    cgroup: add tracing points for cgroup v2 freezer
    cgroup: make TRACE_CGROUP_PATH irq-safe
    kselftests: cgroup: add freezer controller self-tests
    kselftests: cgroup: don't fail on cg_kill_all() error in cg_destroy()
    cgroup: cgroup v2 freezer
    cgroup: protect cgroup->nr_(dying_)descendants by css_set_lock
    cgroup: implement __cgroup_task_count() helper
    cgroup: rename freezer.c into legacy_freezer.c
    cgroup: remove extra cgroup_migrate_finish() call

    Linus Torvalds
     
  • Pull workqueue updates from Tejun Heo:
    "Only three commits, of which two are trivial.

    The non-trivial chagne is Thomas's patch to switch workqueue from
    sched RCU to regular one. The use of sched RCU is mostly historic and
    doesn't really buy us anything noticeable"

    * 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: Use normal rcu
    kernel/workqueue: Document wq_worker_last_func() argument
    kernel/workqueue: Use __printf markup to silence compiler in function 'alloc_workqueue'

    Linus Torvalds
     
  • kernel BUG at lib/list_debug.c:47!
    invalid opcode: 0000 [#1
    CPU: 0 PID: 12914 Comm: rmmod Tainted: G W 5.1.0+ #47
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014
    RIP: 0010:__list_del_entry_valid+0x53/0x90
    Code: 48 8b 32 48 39 fe 75 35 48 8b 50 08 48 39 f2 75 40 b8 01 00 00 00 5d c3 48
    89 fe 48 89 c2 48 c7 c7 18 75 fe 82 e8 cb 34 78 ff 0b 48 89 fe 48 c7 c7 50 75 fe 82 e8 ba 34 78 ff 0f 0b 48 89 f2
    RSP: 0018:ffffc90001c2fe40 EFLAGS: 00010286
    RAX: 000000000000004e RBX: ffffffffa0184000 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: ffff888237a17788 RDI: 00000000ffffffff
    RBP: ffffc90001c2fe40 R08: 0000000000000000 R09: 0000000000000000
    R10: ffffc90001c2fe10 R11: 0000000000000000 R12: 0000000000000000
    R13: ffffc90001c2fe50 R14: ffffffffa0184000 R15: 0000000000000000
    FS: 00007f3d83634540(0000) GS:ffff888237a00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000555c350ea818 CR3: 0000000231677000 CR4: 00000000000006f0
    Call Trace:
    unregister_pernet_operations+0x34/0x120
    unregister_pernet_subsys+0x1c/0x30
    packet_exit+0x1c/0x369 [af_packet
    __x64_sys_delete_module+0x156/0x260
    ? lockdep_hardirqs_on+0x133/0x1b0
    ? do_syscall_64+0x12/0x1f0
    do_syscall_64+0x6e/0x1f0
    entry_SYSCALL_64_after_hwframe+0x49/0xbe

    When modprobe af_packet, register_pernet_subsys
    fails and does a cleanup, ops->list is set to LIST_POISON1,
    but the module init is considered to success, then while rmmod it,
    BUG() is triggered in __list_del_entry_valid which is called from
    unregister_pernet_subsys. This patch fix error handing path in
    packet_init to avoid possilbe issue if some error occur.

    Reported-by: Hulk Robot
    Signed-off-by: YueHaibing
    Signed-off-by: David S. Miller

    YueHaibing
     
  • Pull arch/csky perf update from Guo Ren:
    "Add support for perf unwind-libdw"

    * tag 'csky-for-linus-5.2-perf-unwind-libdw' of git://github.com/c-sky/csky-linux:
    csky: Add support for perf unwind-libdw

    Linus Torvalds
     
  • Restore the kref_get that matches the gss_put_auth(gss_msg->auth)
    done by gss_release_msg().

    Fixes: ac83228a7101 ("SUNRPC: Use namespace of listening daemon ...")
    Signed-off-by: Chuck Lever
    Signed-off-by: Anna Schumaker

    Chuck Lever
     
  • Now that nfs_match_client drops the nfs_client_lock, we should be
    careful
    to always return it in the same condition: locked.

    Fixes: 950a578c6128 ("NFS: make nfs_match_client killable")
    Reported-by: syzbot+228a82b263b5da91883d@syzkaller.appspotmail.com
    Signed-off-by: Benjamin Coddington
    Signed-off-by: Anna Schumaker

    Benjamin Coddington
     
  • Fix the callbacks NFS passes to read_cache_page to actually have the
    proper type expected. Casting around function pointers can easily
    hide typing bugs, and defeats control flow protection.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Anna Schumaker

    Christoph Hellwig
     
  • Only delegations and layouts can be recalled, so it shouldn't be
    necessary to recover all opens when handling the status bit
    SEQ4_STATUS_RECALLABLE_STATE_REVOKED. We'll still wind up calling
    nfs41_open_expired() when a TEST_STATEID returns NFS4ERR_DELEG_REVOKED.

    Signed-off-by: Scott Mayhew
    Reviewed-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Scott Mayhew