09 Apr, 2020

2 commits

  • Analogix_dp driver acquires all its resources in the ->bind() callback,
    what is a bit against the component driver based approach, where the
    driver initialization is split into a probe(), where all resources are
    gathered, and a bind(), where all objects are created and a compound
    driver is initialized.

    Extract all the resource related operations to analogix_dp_probe() and
    analogix_dp_remove(), then call them before/after registration of the
    device components from the main Exynos DP and Rockchip DP drivers. Also
    move the plat_data initialization to the probe() to make it available for
    the analogix_dp_probe() function.

    This fixes the multiple calls to the bind() of the DRM compound driver
    when the DP PHY driver is not yet loaded/probed:

    [drm] Exynos DRM: using 14400000.fimd device for DMA mapping operations
    exynos-drm exynos-drm: bound 14400000.fimd (ops fimd_component_ops [exynosdrm])
    exynos-drm exynos-drm: bound 14450000.mixer (ops mixer_component_ops [exynosdrm])
    exynos-dp 145b0000.dp-controller: no DP phy configured
    exynos-drm exynos-drm: failed to bind 145b0000.dp-controller (ops exynos_dp_ops [exynosdrm]): -517
    exynos-drm exynos-drm: master bind failed: -517
    ...
    [drm] Exynos DRM: using 14400000.fimd device for DMA mapping operations
    exynos-drm exynos-drm: bound 14400000.fimd (ops hdmi_enable [exynosdrm])
    exynos-drm exynos-drm: bound 14450000.mixer (ops hdmi_enable [exynosdrm])
    exynos-drm exynos-drm: bound 145b0000.dp-controller (ops hdmi_enable [exynosdrm])
    exynos-drm exynos-drm: bound 14530000.hdmi (ops hdmi_enable [exynosdrm])
    [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    Console: switching to colour frame buffer device 170x48
    exynos-drm exynos-drm: fb0: exynosdrmfb frame buffer device
    [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on minor 1
    ...

    Signed-off-by: Marek Szyprowski
    Acked-by: Andy Yan
    Reviewed-by: Andrzej Hajda
    Signed-off-by: Andrzej Hajda
    Link: https://patchwork.freedesktop.org/patch/msgid/20200310103427.26048-1-m.szyprowski@samsung.com
    (cherry picked from commit 83a196773b8bc6702f49df1eddc848180e350340)
    Signed-off-by: Maxime Ripard

    Marek Szyprowski
     
  • drm_local_map.offset is not only used for resource_size_t but also
    dma_addr_t which may be of different sizes.

    Reported-by: Nathan Chancellor
    Fixes: 8e4ff9b56957 ("drm: Remove the dma_alloc_coherent wrapper for internal usage")
    Tested-by: Nathan Chancellor # build
    Signed-off-by: Chris Wilson
    Cc: Dave Airlie
    Cc: Nathan Chancellor
    Cc: Linus Torvalds
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20200402215926.30714-1-chris@chris-wilson.co.uk

    Chris Wilson
     

03 Apr, 2020

1 commit


31 Mar, 2020

1 commit


30 Mar, 2020

2 commits

  • Merge vm fixes from Andrew Morton:
    "5 fixes"

    * emailed patches from Andrew Morton :
    mm/sparse: fix kernel crash with pfn_section_valid check
    mm: fork: fix kernel_stack memcg stats for various stack implementations
    hugetlb_cgroup: fix illegal access to memory
    drivers/base/memory.c: indicate all memory blocks as removable
    mm/swapfile.c: move inode_lock out of claim_swapfile

    Linus Torvalds
     
  • Depending on CONFIG_VMAP_STACK and the THREAD_SIZE / PAGE_SIZE ratio the
    space for task stacks can be allocated using __vmalloc_node_range(),
    alloc_pages_node() and kmem_cache_alloc_node().

    In the first and the second cases page->mem_cgroup pointer is set, but
    in the third it's not: memcg membership of a slab page should be
    determined using the memcg_from_slab_page() function, which looks at
    page->slab_cache->memcg_params.memcg . In this case, using
    mod_memcg_page_state() (as in account_kernel_stack()) is incorrect:
    page->mem_cgroup pointer is NULL even for pages charged to a non-root
    memory cgroup.

    It can lead to kernel_stack per-memcg counters permanently showing 0 on
    some architectures (depending on the configuration).

    In order to fix it, let's introduce a mod_memcg_obj_state() helper,
    which takes a pointer to a kernel object as a first argument, uses
    mem_cgroup_from_obj() to get a RCU-protected memcg pointer and calls
    mod_memcg_state(). It allows to handle all possible configurations
    (CONFIG_VMAP_STACK and various THREAD_SIZE/PAGE_SIZE values) without
    spilling any memcg/kmem specifics into fork.c .

    Note: This is a special version of the patch created for stable
    backports. It contains code from the following two patches:
    - mm: memcg/slab: introduce mem_cgroup_from_obj()
    - mm: fork: fix kernel_stack memcg stats for various stack implementations

    [guro@fb.com: introduce mem_cgroup_from_obj()]
    Link: http://lkml.kernel.org/r/20200324004221.GA36662@carbon.dhcp.thefacebook.com
    Fixes: 4d96ba353075 ("mm: memcg/slab: stop setting page->mem_cgroup pointer for slab pages")
    Signed-off-by: Roman Gushchin
    Signed-off-by: Andrew Morton
    Reviewed-by: Shakeel Butt
    Acked-by: Johannes Weiner
    Cc: Michal Hocko
    Cc: Bharata B Rao
    Cc: Shakeel Butt
    Cc:
    Link: http://lkml.kernel.org/r/20200303233550.251375-1-guro@fb.com
    Signed-off-by: Linus Torvalds

    Roman Gushchin
     

29 Mar, 2020

2 commits

  • Pull networking fixes from David Miller:

    1) Fix memory leak in vti6, from Torsten Hilbrich.

    2) Fix double free in xfrm_policy_timer, from YueHaibing.

    3) NL80211_ATTR_CHANNEL_WIDTH attribute is put with wrong type, from
    Johannes Berg.

    4) Wrong allocation failure check in qlcnic driver, from Xu Wang.

    5) Get ks8851-ml IO operations right, for real this time, from Marek
    Vasut.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (22 commits)
    r8169: fix PHY driver check on platforms w/o module softdeps
    net: ks8851-ml: Fix IO operations, again
    mlxsw: spectrum_mr: Fix list iteration in error path
    qlcnic: Fix bad kzalloc null test
    mac80211: set IEEE80211_TX_CTRL_PORT_CTRL_PROTO for nl80211 TX
    mac80211: mark station unauthorized before key removal
    mac80211: Check port authorization in the ieee80211_tx_dequeue() case
    cfg80211: Do not warn on same channel at the end of CSA
    mac80211: drop data frames without key on encrypted links
    ieee80211: fix HE SPR size calculation
    nl80211: fix NL80211_ATTR_CHANNEL_WIDTH attribute type
    xfrm: policy: Fix doulbe free in xfrm_policy_timer
    bpf: Explicitly memset some bpf info structures declared on the stack
    bpf: Explicitly memset the bpf_attr structure
    bpf: Sanitize the bpf_struct_ops tcp-cc name
    vti6: Fix memory leak of skb if input policy check fails
    esp: remove the skb from the chain when it's enqueued in cryptd_wq
    ipv6: xfrm6_tunnel.c: Use built-in RCU list checking
    xfrm: add the missing verify_sec_ctx_len check in xfrm_add_acquire
    xfrm: fix uctx len check in verify_sec_ctx_len
    ...

    Linus Torvalds
     
  • Pull i2c fixes from Wolfram Sang:
    "Three more driver bugfixes, and two doc improvements fixing build
    warnings while we are here"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: pca-platform: Use platform_irq_get_optional
    i2c: st: fix missing struct parameter description
    i2c: nvidia-gpu: Handle timeout correctly in gpu_i2c_check_status()
    i2c: fix a doc warning
    i2c: hix5hd2: add missed clk_disable_unprepare in remove

    Linus Torvalds
     

28 Mar, 2020

2 commits

  • Daniel Borkmann says:

    ====================
    pull-request: bpf 2020-03-27

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

    We've added 3 non-merge commits during the last 4 day(s) which contain
    a total of 4 files changed, 25 insertions(+), 20 deletions(-).

    The main changes are:

    1) Explicitly memset the bpf_attr structure on bpf() syscall to avoid
    having to rely on compiler to do so. Issues have been noticed on
    some compilers with padding and other oddities where the request was
    then unexpectedly rejected, from Greg Kroah-Hartman.

    2) Sanitize the bpf_struct_ops TCP congestion control name in order to
    avoid problematic characters such as whitespaces, from Martin KaFai Lau.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull clk fixes from Stephen Boyd:
    "A handful of clk driver fixes.

    Mostly they're around the i.MX drivers fixing the parents of a few
    clks and making KASAN happy with how the message passing code works.

    Besides that we have a TI driver fix for the RTC parent and a fix for
    the basic gate type registration functions introduced this release
    where they didn't actually pass the arguments in the right places to
    the multiplexer function down below"

    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
    clk: imx: Align imx sc clock parent msg structs to 4
    clk: imx: Align imx sc clock msg structs to 4
    clk: Pass correct arguments to __clk_hw_register_gate()
    clk: ti: am43xx: Fix clock parent for RTC clock
    clk: imx8mp: Correct the enet_qos parent clock
    clk: imx8mp: Correct IMX8MP_CLK_HDMI_AXI clock parent

    Linus Torvalds
     

27 Mar, 2020

4 commits

  • Pull input fixes from Dmitry Torokhov:

    - a fix to generate proper timestamps on key autorepeat events that
    were broken recently

    - a fix for Synaptics driver to only activate reduced reporting mode
    when explicitly requested

    - a new keycode for "selective screenshot" function

    - other assorted fixes

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: fix stale timestamp on key autorepeat events
    Input: move the new KEY_SELECTIVE_SCREENSHOT keycode
    Input: avoid BIT() macro usage in the serio.h UAPI header
    Input: synaptics-rmi4 - set reduced reporting mode only when requested
    Input: synaptics - enable RMI on HP Envy 13-ad105ng
    Input: allocate keycode for "Selective Screenshot" key
    Input: tm2-touchkey - add support for Coreriver TC360 variant
    dt-bindings: input: add Coreriver TC360 binding
    dt-bindings: vendor-prefixes: Add Coreriver vendor prefix
    Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger()

    Linus Torvalds
     
  • Pull ceph fixes from Ilya Dryomov:
    "A patch for a rather old regression in fullness handling and two
    memory leak fixes, marked for stable"

    * tag 'ceph-for-5.6-rc8' of git://github.com/ceph/ceph-client:
    ceph: fix memory leak in ceph_cleanup_snapid_map()
    libceph: fix alloc_msg_with_page_vector() memory leaks
    ceph: check POOL_FLAG_FULL/NEARFULL in addition to OSDMAP_FULL/NEARFULL

    Linus Torvalds
     
  • We should try to keep keycodes sequential unless there is a reason to leave
    a gap in numbering, so let's move it from 0x280 to 0x27a while we still
    can.

    Fixes: 3b059da9835c ("Input: allocate keycode for Selective Screenshot key")
    Acked-by: Rajat Jain
    Link: https://lore.kernel.org/r/20200326182711.GA259753@dtor-ws
    Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     
  • …rnel/git/jberg/mac80211

    Johannes Berg says:

    ====================
    We have the following fixes:
    * drop data packets if there's no key for them anymore, after
    there had been one, to avoid sending them in clear when
    hostapd removes the key before it removes the station and
    the packets are still queued
    * check port authorization again after dequeue, to avoid
    sending packets if the station is no longer authorized
    * actually remove the authorization flag before the key so
    packets are also dropped properly because of this
    * fix nl80211 control port packet tagging to handle them as
    packets allowed to go out without encryption
    * fix NL80211_ATTR_CHANNEL_WIDTH outgoing netlink attribute
    width (should be 32 bits, not 8)
    * don't WARN in a CSA scenario that happens on some APs
    * fix HE spatial reuse element size calculation
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     

26 Mar, 2020

3 commits

  • I copy/pasted these macros and forgot to update the argument
    names and where they're passed to. Fix it so that these macros make
    sense.

    Reported-by: Maxime Ripard
    Fixes: 194efb6e2667 ("clk: gate: Add support for specifying parents via DT/pointers")
    Signed-off-by: Stephen Boyd
    Link: https://lkml.kernel.org/r/20200325022257.148244-1-sboyd@kernel.org
    Tested-by: Maxime Ripard

    Stephen Boyd
     
  • Pull networking fixes from David Miller:

    1) Fix deadlock in bpf_send_signal() from Yonghong Song.

    2) Fix off by one in kTLS offload of mlx5, from Tariq Toukan.

    3) Add missing locking in iwlwifi mvm code, from Avraham Stern.

    4) Fix MSG_WAITALL handling in rxrpc, from David Howells.

    5) Need to hold RTNL mutex in tcindex_partial_destroy_work(), from Cong
    Wang.

    6) Fix producer race condition in AF_PACKET, from Willem de Bruijn.

    7) cls_route removes the wrong filter during change operations, from
    Cong Wang.

    8) Reject unrecognized request flags in ethtool netlink code, from
    Michal Kubecek.

    9) Need to keep MAC in reset until PHY is up in bcmgenet driver, from
    Doug Berger.

    10) Don't leak ct zone template in act_ct during replace, from Paul
    Blakey.

    11) Fix flushing of offloaded netfilter flowtable flows, also from Paul
    Blakey.

    12) Fix throughput drop during tx backpressure in cxgb4, from Rahul
    Lakkireddy.

    13) Don't let a non-NULL skb->dev leave the TCP stack, from Eric
    Dumazet.

    14) TCP_QUEUE_SEQ socket option has to update tp->copied_seq as well,
    also from Eric Dumazet.

    15) Restrict macsec to ethernet devices, from Willem de Bruijn.

    16) Fix reference leak in some ethtool *_SET handlers, from Michal
    Kubecek.

    17) Fix accidental disabling of MSI for some r8169 chips, from Heiner
    Kallweit.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (138 commits)
    net: Fix CONFIG_NET_CLS_ACT=n and CONFIG_NFT_FWD_NETDEV={y, m} build
    net: ena: Add PCI shutdown handler to allow safe kexec
    selftests/net/forwarding: define libs as TEST_PROGS_EXTENDED
    selftests/net: add missing tests to Makefile
    r8169: re-enable MSI on RTL8168c
    net: phy: mdio-bcm-unimac: Fix clock handling
    cxgb4/ptp: pass the sign of offset delta in FW CMD
    net: dsa: tag_8021q: replace dsa_8021q_remove_header with __skb_vlan_pop
    net: cbs: Fix software cbs to consider packet sending time
    net/mlx5e: Do not recover from a non-fatal syndrome
    net/mlx5e: Fix ICOSQ recovery flow with Striding RQ
    net/mlx5e: Fix missing reset of SW metadata in Striding RQ reset
    net/mlx5e: Enhance ICOSQ WQE info fields
    net/mlx5_core: Set IB capability mask1 to fix ib_srpt connection failure
    selftests: netfilter: add nfqueue test case
    netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress
    netfilter: nft_fwd_netdev: validate family and chain type
    netfilter: nft_set_rbtree: Detect partial overlaps on insertion
    netfilter: nft_set_rbtree: Introduce and use nft_rbtree_interval_start()
    netfilter: nft_set_pipapo: Separate partial and complete overlap cases on insertion
    ...

    Linus Torvalds
     
  • net/netfilter/nft_fwd_netdev.c: In function ‘nft_fwd_netdev_eval’:
    net/netfilter/nft_fwd_netdev.c:32:10: error: ‘struct sk_buff’ has no member named ‘tc_redirected’
    pkt->skb->tc_redirected = 1;
    ^~
    net/netfilter/nft_fwd_netdev.c:33:10: error: ‘struct sk_buff’ has no member named ‘tc_from_ingress’
    pkt->skb->tc_from_ingress = 1;
    ^~

    To avoid a direct dependency with tc actions from netfilter, wrap the
    redirect bits around CONFIG_NET_REDIRECT and move helpers to
    include/linux/skbuff.h. Turn on this toggle from the ifb driver, the
    only existing client of these bits in the tree.

    This patch adds skb_set_redirected() that sets on the redirected bit
    on the skbuff, it specifies if the packet was redirect from ingress
    and resets the timestamp (timestamp reset was originally missing in the
    netfilter bugfix).

    Fixes: bcfabee1afd99484 ("netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress")
    Reported-by: noreply@ellerman.id.au
    Reported-by: Geert Uytterhoeven
    Signed-off-by: Pablo Neira Ayuso
    Signed-off-by: David S. Miller

    Pablo Neira Ayuso
     

25 Mar, 2020

8 commits

  • The he_sr_control field is just a u8, so le32_to_cpu()
    shouldn't be applied to it; this was evidently copied
    from ieee80211_he_oper_size(). Fix it, and also adjust
    the type of the local variable.

    Fixes: ef11a931bd1c ("mac80211: HE: add Spatial Reuse element parsing support")
    Signed-off-by: Johannes Berg
    Link: https://lore.kernel.org/r/20200325090918.dfe483b49e06.Ia53622f23b2610a2ae6ea39a199866196fe946c1@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Not only did this wheel did not need reinventing, but there is also
    an issue with it: It doesn't remove the VLAN header in a way that
    preserves the L2 payload checksum when that is being provided by the DSA
    master hw. It should recalculate checksum both for the push, before
    removing the header, and for the pull afterwards. But the current
    implementation is quite dizzying, with pulls followed immediately
    afterwards by pushes, the memmove is done before the push, etc. This
    makes a DSA master with RX checksumming offload to print stack traces
    with the infamous 'hw csum failure' message.

    So remove the dsa_8021q_remove_header function and replace it with
    something that actually works with inet checksumming.

    Fixes: d461933638ae ("net: dsa: tag_8021q: Create helper function for removing VLAN header")
    Signed-off-by: Vladimir Oltean
    Signed-off-by: David S. Miller

    Vladimir Oltean
     
  • The commit 19ba1eb15a2a ("Input: psmouse - add a custom serio protocol
    to send extra information") introduced usage of the BIT() macro
    for SERIO_* flags; this macro is not provided in UAPI headers.
    Replace if with similarly defined _BITUL() macro defined
    in .

    Fixes: 19ba1eb15a2a ("Input: psmouse - add a custom serio protocol to send extra information")
    Signed-off-by: Eugene Syromiatnikov
    Cc: # v5.0+
    Link: https://lore.kernel.org/r/20200324041341.GA32335@asgard.redhat.com
    Signed-off-by: Dmitry Torokhov

    Eugene Syromiatnikov
     
  • Unaligned virtual addresses makes it unlikely that huge page-table entries
    can be used.
    So align virtual buffer object address huge page boundaries to the
    underlying physical address huge page boundaries taking buffer object
    sizes into account to determine when it might be possible to use huge
    page-table entries.

    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: "Matthew Wilcox (Oracle)"
    Cc: "Kirill A. Shutemov"
    Cc: Ralph Campbell
    Cc: "Jérôme Glisse"
    Cc: "Christian König"
    Cc: Dan Williams
    Signed-off-by: Thomas Hellstrom (VMware)
    Reviewed-by: Roland Scheidegger
    Acked-by: Christian König

    Thomas Hellstrom (VMware)
     
  • Support huge (PMD-size and PUD-size) page-table entries by providing a
    huge_fault() callback.
    We still support private mappings and write-notify by splitting the huge
    page-table entries on write-access.

    Note that for huge page-faults to occur, either the kernel needs to be
    compiled with trans-huge-pages always enabled, or the kernel needs to be
    compiled with trans-huge-pages enabled using madvise, and the user-space
    app needs to call madvise() to enable trans-huge pages on a per-mapping
    basis.

    Furthermore huge page-faults will not succeed unless buffer objects and
    user-space addresses are aligned on huge page size boundaries.

    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: "Matthew Wilcox (Oracle)"
    Cc: "Kirill A. Shutemov"
    Cc: Ralph Campbell
    Cc: "Jérôme Glisse"
    Cc: "Christian König"
    Cc: Dan Williams
    Signed-off-by: Thomas Hellstrom (VMware)
    Reviewed-by: Roland Scheidegger
    Reviewed-by: Christian König

    Thomas Hellstrom (VMware)
     
  • For graphics drivers needing to modify the page-protection, add
    huge page-table entries counterparts to vmf_insert_pfn_prot().

    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: "Matthew Wilcox (Oracle)"
    Cc: "Kirill A. Shutemov"
    Cc: Ralph Campbell
    Cc: "Jérôme Glisse"
    Cc: "Christian König"
    Cc: Dan Williams
    Signed-off-by: Thomas Hellstrom (VMware)
    Acked-by: Christian König
    Acked-by: Andrew Morton

    Thomas Hellstrom (VMware)
     
  • For VM_PFNMAP and VM_MIXEDMAP vmas that want to support transhuge pages
    and -page table entries, introduce vma_is_special_huge() that takes the
    same codepaths as vma_is_dax().

    The use of "special" follows the definition in memory.c, vm_normal_page():
    "Special" mappings do not wish to be associated with a "struct page"
    (either it doesn't exist, or it exists but they don't want to touch it)

    For PAGE_SIZE pages, "special" is determined per page table entry to be
    able to deal with COW pages. But since we don't have huge COW pages,
    we can classify a vma as either "special huge" or "normal huge".

    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: "Matthew Wilcox (Oracle)"
    Cc: "Kirill A. Shutemov"
    Cc: Ralph Campbell
    Cc: "Jérôme Glisse"
    Cc: "Christian König"
    Cc: Dan Williams
    Signed-off-by: Thomas Hellstrom (VMware)
    Acked-by: Christian König
    Acked-by: Andrew Morton

    Thomas Hellstrom (VMware)
     
  • The function is used by upcoming vma_is_special_huge() with which we want
    to use a const vma argument. Since for vma_is_dax() the vma argument is
    only dereferenced for reading, constify it.

    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: "Matthew Wilcox (Oracle)"
    Cc: "Kirill A. Shutemov"
    Cc: Ralph Campbell
    Cc: "Jérôme Glisse"
    Cc: "Christian König"
    Cc: Dan Williams
    Signed-off-by: Thomas Hellstrom (VMware)
    Reviewed-by: Roland Scheidegger
    Acked-by: Christian König

    Thomas Hellstrom (VMware)
     

24 Mar, 2020

3 commits

  • Unlike NL_SET_ERR_* macros, nl_set_extack_cookie_u64() and
    nl_set_extack_cookie_u32() helpers do not check extack argument for null
    and neither do their callers, as syzbot recently discovered for
    ethnl_parse_header().

    Instead of fixing the callers and leaving the trap in place, add check of
    null extack to both helpers to make them consistent with NL_SET_ERR_*
    macros.

    v2: drop incorrect second Fixes tag

    Fixes: 2363d73a2f3e ("ethtool: reject unrecognized request flags")
    Reported-by: syzbot+258a9089477493cea67b@syzkaller.appspotmail.com
    Signed-off-by: Michal Kubecek
    Signed-off-by: David S. Miller

    Michal Kubecek
     
  • Add a new param for user-space to determine if kernel module is SM5
    capable.

    Signed-off-by: Deepak Rawat
    Reviewed-by: Thomas Hellström (VMware)
    Reviewed-by: Roland Scheidegger
    Signed-off-by: Roland Scheidegger

    Deepak Rawat
     
  • Surface define v4 added new member buffer_byte_stride. With this patch
    add buffer_byte_stride in surface metadata and create surface using new
    command if support is available.

    Also with this patch replace device specific data types with kernel
    types.

    Signed-off-by: Deepak Rawat
    Reviewed-by: Thomas Hellström (VMware)
    Reviewed-by: Roland Scheidegger
    Signed-off-by: Roland Scheidegger

    Deepak Rawat
     

23 Mar, 2020

4 commits

  • Make it so that CEPH_MSG_DATA_PAGES data item can own pages,
    fixing a bunch of memory leaks for a page vector allocated in
    alloc_msg_with_page_vector(). Currently, only watch-notify
    messages trigger this allocation, and normally the page vector
    is freed either in handle_watch_notify() or by the caller of
    ceph_osdc_notify(). But if the message is freed before that
    (e.g. if the session faults while reading in the message or
    if the notify is stale), we leak the page vector.

    This was supposed to be fixed by switching to a message-owned
    pagelist, but that never happened.

    Fixes: 1907920324f1 ("libceph: support for sending notifies")
    Reported-by: Roman Penyaev
    Signed-off-by: Ilya Dryomov
    Reviewed-by: Roman Penyaev

    Ilya Dryomov
     
  • CEPH_OSDMAP_FULL/NEARFULL aren't set since mimic, so we need to consult
    per-pool flags as well. Unfortunately the backwards compatibility here
    is lacking:

    - the change that deprecated OSDMAP_FULL/NEARFULL went into mimic, but
    was guarded by require_osd_release >= RELEASE_LUMINOUS
    - it was subsequently backported to luminous in v12.2.2, but that makes
    no difference to clients that only check OSDMAP_FULL/NEARFULL because
    require_osd_release is not client-facing -- it is for OSDs

    Since all kernels are affected, the best we can do here is just start
    checking both map flags and pool flags and send that to stable.

    These checks are best effort, so take osdc->lock and look up pool flags
    just once. Remove the FIXME, since filesystem quotas are checked above
    and RADOS quotas are reflected in POOL_FLAG_FULL: when the pool reaches
    its quota, both POOL_FLAG_FULL and POOL_FLAG_FULL_QUOTA are set.

    Cc: stable@vger.kernel.org
    Reported-by: Yanhu Cao
    Signed-off-by: Ilya Dryomov
    Reviewed-by: Jeff Layton
    Acked-by: Sage Weil

    Ilya Dryomov
     
  • Don't let non-letters inside a literal block without escaping it, as
    the toolchain would mis-interpret it:

    ./include/linux/i2c.h:518: WARNING: Inline strong start-string without end-string.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Wolfram Sang

    Mauro Carvalho Chehab
     
  • Merge misc fixes from Andrew Morton:
    "10 fixes"

    * emailed patches from Andrew Morton :
    x86/mm: split vmalloc_sync_all()
    mm, slub: prevent kmalloc_node crashes and memory leaks
    mm/mmu_notifier: silence PROVE_RCU_LIST warnings
    epoll: fix possible lost wakeup on epoll_ctl() path
    mm: do not allow MADV_PAGEOUT for CoW pages
    mm, memcg: throttle allocators based on ancestral memory.high
    mm, memcg: fix corruption on 64-bit divisor in memory.high throttling
    page-flags: fix a crash at SetPageError(THP_SWAP)
    mm/hotplug: fix hot remove failure in SPARSEMEM|!VMEMMAP case
    memcg: fix NULL pointer dereference in __mem_cgroup_usage_unregister_event

    Linus Torvalds
     

22 Mar, 2020

3 commits

  • Commit 3f8fd02b1bf1 ("mm/vmalloc: Sync unmappings in
    __purge_vmap_area_lazy()") introduced a call to vmalloc_sync_all() in
    the vunmap() code-path. While this change was necessary to maintain
    correctness on x86-32-pae kernels, it also adds additional cycles for
    architectures that don't need it.

    Specifically on x86-64 with CONFIG_VMAP_STACK=y some people reported
    severe performance regressions in micro-benchmarks because it now also
    calls the x86-64 implementation of vmalloc_sync_all() on vunmap(). But
    the vmalloc_sync_all() implementation on x86-64 is only needed for newly
    created mappings.

    To avoid the unnecessary work on x86-64 and to gain the performance
    back, split up vmalloc_sync_all() into two functions:

    * vmalloc_sync_mappings(), and
    * vmalloc_sync_unmappings()

    Most call-sites to vmalloc_sync_all() only care about new mappings being
    synchronized. The only exception is the new call-site added in the
    above mentioned commit.

    Shile Zhang directed us to a report of an 80% regression in reaim
    throughput.

    Fixes: 3f8fd02b1bf1 ("mm/vmalloc: Sync unmappings in __purge_vmap_area_lazy()")
    Reported-by: kernel test robot
    Reported-by: Shile Zhang
    Signed-off-by: Joerg Roedel
    Signed-off-by: Andrew Morton
    Tested-by: Borislav Petkov
    Acked-by: Rafael J. Wysocki [GHES]
    Cc: Dave Hansen
    Cc: Andy Lutomirski
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc:
    Link: http://lkml.kernel.org/r/20191009124418.8286-1-joro@8bytes.org
    Link: https://lists.01.org/hyperkitty/list/lkp@lists.01.org/thread/4D3JPPHBNOSPFK2KEPC6KGKS6J25AIDB/
    Link: http://lkml.kernel.org/r/20191113095530.228959-1-shile.zhang@linux.alibaba.com
    Signed-off-by: Linus Torvalds

    Joerg Roedel
     
  • Commit bd4c82c22c36 ("mm, THP, swap: delay splitting THP after swapped
    out") supported writing THP to a swap device but forgot to upgrade an
    older commit df8c94d13c7e ("page-flags: define behavior of FS/IO-related
    flags on compound pages") which could trigger a crash during THP
    swapping out with DEBUG_VM_PGFLAGS=y,

    kernel BUG at include/linux/page-flags.h:317!

    page dumped because: VM_BUG_ON_PAGE(1 && PageCompound(page))
    page:fffff3b2ec3a8000 refcount:512 mapcount:0 mapping:000000009eb0338c index:0x7f6e58200 head:fffff3b2ec3a8000 order:9 compound_mapcount:0 compound_pincount:0
    anon flags: 0x45fffe0000d8454(uptodate|lru|workingset|owner_priv_1|writeback|head|reclaim|swapbacked)

    end_swap_bio_write()
    SetPageError(page)
    VM_BUG_ON_PAGE(1 && PageCompound(page))


    bio_endio+0x297/0x560
    dec_pending+0x218/0x430 [dm_mod]
    clone_endio+0xe4/0x2c0 [dm_mod]
    bio_endio+0x297/0x560
    blk_update_request+0x201/0x920
    scsi_end_request+0x6b/0x4b0
    scsi_io_completion+0x509/0x7e0
    scsi_finish_command+0x1ed/0x2a0
    scsi_softirq_done+0x1c9/0x1d0
    __blk_mqnterrupt+0xf/0x20

    Fix by checking PF_NO_TAIL in those places instead.

    Fixes: bd4c82c22c36 ("mm, THP, swap: delay splitting THP after swapped out")
    Signed-off-by: Qian Cai
    Signed-off-by: Andrew Morton
    Reviewed-by: David Hildenbrand
    Acked-by: "Huang, Ying"
    Acked-by: Rafael Aquini
    Cc:
    Link: http://lkml.kernel.org/r/20200310235846.1319-1-cai@lca.pw
    Signed-off-by: Linus Torvalds

    Qian Cai
     
  • Pull io_uring fixes from Jens Axboe:
    "Two different fixes in here:

    - Fix for a potential NULL pointer deref for links with async or
    drain marked (Pavel)

    - Fix for not properly checking RLIMIT_NOFILE for async punted
    operations.

    This affects openat/openat2, which were added this cycle, and
    accept4. I did a full audit of other cases where we might check
    current->signal->rlim[] and found only RLIMIT_FSIZE for buffered
    writes and fallocate. That one is fixed and queued for 5.7 and
    marked stable"

    * tag 'io_uring-5.6-20200320' of git://git.kernel.dk/linux-block:
    io_uring: make sure accept honor rlimit nofile
    io_uring: make sure openat/openat2 honor rlimit nofile
    io_uring: NULL-deref for IOSQE_{ASYNC,DRAIN}

    Linus Torvalds
     

20 Mar, 2020

4 commits

  • Just like commit 4022e7af86be, this fixes the fact that
    IORING_OP_ACCEPT ends up using get_unused_fd_flags(), which checks
    current->signal->rlim[] for limits.

    Add an extra argument to __sys_accept4_file() that allows us to pass
    in the proper nofile limit, and grab it at request prep time.

    Acked-by: David S. Miller
    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Dmitry reports that a test case shows that io_uring isn't honoring a
    modified rlimit nofile setting. get_unused_fd_flags() checks the task
    signal->rlimi[] for the limits. As this isn't easily inheritable,
    provide a __get_unused_fd_flags() that takes the value instead. Then we
    can grab it when the request is prepared (from the original task), and
    pass that in when we do the async part part of the open.

    Reported-by: Dmitry Kadashev
    Tested-by: Dmitry Kadashev
    Acked-by: David S. Miller
    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • David Howells says:

    ====================
    rxrpc, afs: Interruptibility fixes

    Here are a number of fixes for AF_RXRPC and AFS that make AFS system calls
    less interruptible and so less likely to leave the filesystem in an
    uncertain state. There's also a miscellaneous patch to make tracing
    consistent.

    (1) Firstly, abstract out the Tx space calculation in sendmsg. Much the
    same code is replicated in a number of places that subsequent patches
    are going to alter, including adding another copy.

    (2) Fix Tx interruptibility by allowing a kernel service, such as AFS, to
    request that a call be interruptible only when waiting for a call slot
    to become available (ie. the call has not taken place yet) or that a
    call be not interruptible at all (e.g. when we want to do writeback
    and don't want a signal interrupting a VM-induced writeback).

    (3) Increase the minimum delay on MSG_WAITALL for userspace sendmsg() when
    waiting for Tx buffer space as a 2*RTT delay is really small over 10G
    ethernet and a 1 jiffy timeout might be essentially 0 if at the end of
    the jiffy period.

    (4) Fix some tracing output in AFS to make it consistent with rxrpc.

    (5) Make sure aborted asynchronous AFS operations are tidied up properly
    so we don't end up with stuck rxrpc calls.

    (6) Make AFS client calls uninterruptible in the Rx phase. If we don't
    wait for the reply to be fully gathered, we can't update the local VFS
    state and we end up in an indeterminate state with respect to the
    server.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • amd-drm-next-5.7-2020-03-19:

    amdgpu:
    - SR-IOV fixes
    - RAS fixes
    - Fallthrough cleanups
    - Kconfig fix for ACP
    - Fix load balancing with VCN
    - DC fixes
    - GPU reset fixes
    - Various cleanups

    scheduler:
    - Revert job distribution optimization
    - Add a helper to pick the least loaded scheduler

    Signed-off-by: Dave Airlie
    From: Alex Deucher
    Link: https://patchwork.freedesktop.org/patch/msgid/20200319175418.4237-1-alexander.deucher@amd.com

    Dave Airlie
     

19 Mar, 2020

1 commit

  • drm-misc-next for 5.7:

    UAPI Changes:

    Cross-subsystem Changes:

    Core Changes:
    - dp-mst: Remove register_connector callback, add drm_dp_destroy_connector
    - Changes to scnprintf on multiple instances

    Driver Changes:
    - meson: Support for YUV420
    - panel: Support Ortustech COM37H3M, idk-1110wr and idk-2121wr,
    multiple dotclock fixes

    Signed-off-by: Dave Airlie

    From: Maxime Ripard
    Link: https://patchwork.freedesktop.org/patch/msgid/20200317082858.lubmvlmvoprn2tuh@gilmour.lan

    Dave Airlie