Skip to contentSkip to conversation

Linux 5.6.16

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jun 3, 2020 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.6.16 kernel.

All users of the 5.6 kernel series must upgrade.

The updated 5.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.6.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Makefile                                                    |    2 
 arch/arm/boot/compressed/vmlinux.lds.S                      |    2 
 arch/arm/boot/dts/bcm-hr2.dtsi                              |    6 
 arch/arm/boot/dts/bcm2835-rpi-zero-w.dts                    |    2 
 arch/arm/boot/dts/imx6q-b450v3.dts                          |    7 
 arch/arm/boot/dts/imx6q-b650v3.dts                          |    7 
 arch/arm/boot/dts/imx6q-b850v3.dts                          |   11 
 arch/arm/boot/dts/imx6q-bx50v3.dtsi                         |   15 +
 arch/arm/boot/dts/mmp3-dell-ariel.dts                       |   12 
 arch/arm/boot/dts/mmp3.dtsi                                 |    8 
 arch/arm/boot/dts/motorola-mapphone-common.dtsi             |   43 +++
 arch/arm/boot/dts/rk3036.dtsi                               |    2 
 arch/arm/boot/dts/rk3228-evb.dts                            |    2 
 arch/arm/boot/dts/rk3229-xms6.dts                           |    2 
 arch/arm/boot/dts/rk322x.dtsi                               |    6 
 arch/arm/boot/dts/rk3xxx.dtsi                               |    2 
 arch/arm/include/asm/assembler.h                            |   75 ------
 arch/arm/include/asm/uaccess-asm.h                          |  117 +++++++++
 arch/arm/kernel/entry-armv.S                                |   11 
 arch/arm/kernel/entry-header.S                              |    9 
 arch/arm64/boot/dts/mediatek/mt8173.dtsi                    |    4 
 arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi                |   19 +
 arch/arm64/boot/dts/qcom/msm8996.dtsi                       |    2 
 arch/arm64/boot/dts/rockchip/rk3328-evb.dts                 |    2 
 arch/arm64/boot/dts/rockchip/rk3399.dtsi                    |    8 
 arch/csky/abiv1/inc/abi/entry.h                             |    4 
 arch/csky/abiv2/inc/abi/entry.h                             |    4 
 arch/csky/include/asm/uaccess.h                             |   49 ++-
 arch/csky/kernel/entry.S                                    |    2 
 arch/csky/kernel/perf_callchain.c                           |    9 
 arch/csky/lib/usercopy.c                                    |    8 
 arch/parisc/mm/init.c                                       |    2 
 arch/powerpc/Kconfig                                        |    1 
 arch/riscv/Kconfig.socs                                     |   17 -
 arch/riscv/include/asm/mmio.h                               |    2 
 arch/riscv/include/asm/pgtable.h                            |    3 
 arch/riscv/kernel/stacktrace.c                              |    2 
 arch/x86/include/asm/dma.h                                  |    2 
 arch/x86/include/asm/io_bitmap.h                            |    4 
 arch/x86/kernel/fpu/xstate.c                                |   86 +++---
 arch/x86/kernel/ioport.c                                    |   22 -
 arch/x86/kernel/process.c                                   |    4 
 block/blk-core.c                                            |   11 
 drivers/clk/qcom/gcc-sm8150.c                               |    3 
 drivers/clk/ti/clk-33xx.c                                   |    2 
 drivers/crypto/chelsio/chtls/chtls_io.c                     |    2 
 drivers/gpio/gpio-bcm-kona.c                                |    2 
 drivers/gpio/gpio-exar.c                                    |    7 
 drivers/gpio/gpio-mvebu.c                                   |   15 -
 drivers/gpio/gpio-pxa.c                                     |    4 
 drivers/gpio/gpio-tegra.c                                   |    1 
 drivers/gpio/gpiolib.c                                      |   11 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c            |    5 
 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c                      |    6 
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c                       |   12 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c           |    7 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c      |   10 
 drivers/gpu/drm/amd/display/dc/core/dc.c                    |  124 +++++++---
 drivers/gpu/drm/amd/display/dc/core/dc_stream.c             |   40 ---
 drivers/gpu/drm/amd/display/dc/dc_stream.h                  |    1 
 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c |   30 --
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c   |  148 +++++++++---
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.h   |   13 +
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_init.c           |    4 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c            |   15 +
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.h            |   20 +
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c       |   14 -
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c          |  108 ++++----
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.h          |    7 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_init.c           |    5 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c            |    1 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.h            |    3 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c       |    4 
 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_init.c           |    5 
 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c       |    4 
 drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h                 |   16 +
 drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h           |   12 
 drivers/gpu/drm/amd/powerplay/amd_powerplay.c               |    6 
 drivers/gpu/drm/amd/powerplay/amdgpu_smu.c                  |    6 
 drivers/gpu/drm/ingenic/ingenic-drm.c                       |    6 
 drivers/gpu/drm/meson/meson_drv.c                           |    4 
 drivers/hwmon/nct7904.c                                     |    4 
 drivers/infiniband/core/rdma_core.c                         |   20 +
 drivers/infiniband/hw/i40iw/i40iw_cm.c                      |    8 
 drivers/infiniband/hw/mlx5/mr.c                             |    1 
 drivers/infiniband/hw/qib/qib_sysfs.c                       |    9 
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c              |    2 
 drivers/infiniband/ulp/ipoib/ipoib.h                        |    4 
 drivers/infiniband/ulp/ipoib/ipoib_cm.c                     |   15 -
 drivers/infiniband/ulp/ipoib/ipoib_ib.c                     |    9 
 drivers/infiniband/ulp/ipoib/ipoib_main.c                   |   10 
 drivers/input/evdev.c                                       |   19 -
 drivers/input/joystick/xpad.c                               |   12 
 drivers/input/keyboard/dlink-dir685-touchkeys.c             |    2 
 drivers/input/rmi4/rmi_driver.c                             |    5 
 drivers/input/serio/i8042-x86ia64io.h                       |    7 
 drivers/input/touchscreen/usbtouchscreen.c                  |    1 
 drivers/iommu/iommu.c                                       |    2 
 drivers/mmc/core/block.c                                    |    2 
 drivers/net/bonding/bond_sysfs_slave.c                      |    4 
 drivers/net/dsa/mt7530.c                                    |    9 
 drivers/net/dsa/mt7530.h                                    |    1 
 drivers/net/dsa/ocelot/felix.c                              |   23 -
 drivers/net/dsa/ocelot/felix.h                              |    6 
 drivers/net/dsa/ocelot/felix_vsc9959.c                      |   22 -
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                   |   16 -
 drivers/net/ethernet/broadcom/bnxt/bnxt.h                   |    5 
 drivers/net/ethernet/freescale/Kconfig                      |    2 
 drivers/net/ethernet/freescale/dpaa/Kconfig                 |    1 
 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c              |    2 
 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c              |    2 
 drivers/net/ethernet/mellanox/mlx4/fw.c                     |    2 
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c               |   59 ++++
 drivers/net/ethernet/mellanox/mlx5/core/en.h                |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c     |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c           |   12 
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c            |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en_tx.c             |    9 
 drivers/net/ethernet/mellanox/mlx5/core/eq.c                |    3 
 drivers/net/ethernet/mellanox/mlx5/core/events.c            |    4 
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c           |   17 -
 drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c       |    4 
 drivers/net/ethernet/mellanox/mlx5/core/main.c              |    7 
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c              |   14 -
 drivers/net/ethernet/mellanox/mlxsw/switchx2.c              |    8 
 drivers/net/ethernet/microchip/encx24j600.c                 |    5 
 drivers/net/ethernet/mscc/ocelot.c                          |    2 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c         |    4 
 drivers/net/ethernet/realtek/r8169_main.c                   |   17 +
 drivers/net/ethernet/sgi/ioc3-eth.c                         |    8 
 drivers/net/ethernet/sun/cassini.c                          |    3 
 drivers/net/ethernet/ti/cpsw.c                              |    4 
 drivers/net/hamradio/bpqether.c                             |    3 
 drivers/net/usb/cdc_ether.c                                 |   11 
 drivers/net/usb/r8152.c                                     |    1 
 drivers/net/wireguard/messages.h                            |    2 
 drivers/net/wireguard/noise.c                               |   22 -
 drivers/net/wireguard/noise.h                               |   14 -
 drivers/net/wireguard/queueing.h                            |   10 
 drivers/net/wireguard/receive.c                             |   44 +--
 drivers/net/wireguard/selftest/counter.c                    |   17 -
 drivers/net/wireguard/send.c                                |   19 -
 drivers/soc/mediatek/mtk-cmdq-helper.c                      |    4 
 drivers/usb/dwc3/dwc3-pci.c                                 |    1 
 drivers/usb/gadget/legacy/inode.c                           |    3 
 drivers/usb/phy/phy-twl6030-usb.c                           |   12 
 drivers/virtio/virtio_balloon.c                             |  107 +++-----
 fs/binfmt_elf.c                                             |    2 
 fs/cachefiles/rdwr.c                                        |    2 
 fs/ceph/caps.c                                              |    2 
 fs/cifs/file.c                                              |    2 
 fs/gfs2/log.c                                               |    6 
 fs/gfs2/quota.c                                             |    3 
 fs/gfs2/quota.h                                             |    3 
 include/asm-generic/topology.h                              |    2 
 include/linux/ieee80211.h                                   |    2 
 include/linux/mlx5/driver.h                                 |   16 +
 include/linux/mm.h                                          |   15 +
 include/linux/netfilter/nf_conntrack_pptp.h                 |    2 
 include/net/act_api.h                                       |    3 
 include/net/espintcp.h                                      |    1 
 include/net/ip_fib.h                                        |   11 
 include/net/nexthop.h                                       |   67 ++++-
 include/net/tls.h                                           |    4 
 include/rdma/uverbs_std_types.h                             |    2 
 include/uapi/linux/xfrm.h                                   |    2 
 mm/khugepaged.c                                             |    1 
 net/ax25/af_ax25.c                                          |    6 
 net/bridge/netfilter/nft_reject_bridge.c                    |    6 
 net/ceph/osd_client.c                                       |    4 
 net/core/dev.c                                              |   20 +
 net/dsa/slave.c                                             |    1 
 net/dsa/tag_mtk.c                                           |   15 +
 net/ethtool/netlink.c                                       |    4 
 net/ethtool/strset.c                                        |    1 
 net/ipv4/esp4_offload.c                                     |    4 
 net/ipv4/fib_frontend.c                                     |   22 -
 net/ipv4/inet_connection_sock.c                             |   43 +--
 net/ipv4/ip_vti.c                                           |   23 +
 net/ipv4/ipip.c                                             |    2 
 net/ipv4/ipmr.c                                             |    2 
 net/ipv4/netfilter/nf_nat_pptp.c                            |    7 
 net/ipv4/nexthop.c                                          |  105 +++++---
 net/ipv4/route.c                                            |   14 -
 net/ipv6/esp6_offload.c                                     |   13 -
 net/ipv6/ip6_fib.c                                          |    2 
 net/ipv6/ip6mr.c                                            |    2 
 net/mac80211/mesh_hwmp.c                                    |    7 
 net/netfilter/ipset/ip_set_list_set.c                       |    2 
 net/netfilter/nf_conntrack_core.c                           |   80 +++++-
 net/netfilter/nf_conntrack_pptp.c                           |   62 ++---
 net/netfilter/nfnetlink_cthelper.c                          |    3 
 net/qrtr/qrtr.c                                             |    2 
 net/sctp/sm_sideeffect.c                                    |   14 -
 net/sctp/sm_statefuns.c                                     |    9 
 net/tipc/udp_media.c                                        |    6 
 net/tls/tls_sw.c                                            |   50 +++-
 net/wireless/core.c                                         |    2 
 net/xdp/xdp_umem.c                                          |    8 
 net/xfrm/espintcp.c                                         |    2 
 net/xfrm/xfrm_device.c                                      |    8 
 net/xfrm/xfrm_input.c                                       |    2 
 net/xfrm/xfrm_interface.c                                   |   21 +
 net/xfrm/xfrm_output.c                                      |   15 -
 net/xfrm/xfrm_policy.c                                      |    7 
 samples/bpf/lwt_len_hist_user.c                             |    2 
 security/commoncap.c                                        |    1 
 sound/core/hwdep.c                                          |    4 
 sound/pci/hda/patch_realtek.c                               |   39 ++-
 sound/usb/mixer.c                                           |    8 
 sound/usb/mixer_maps.c                                      |   24 +
 sound/usb/quirks-table.h                                    |   26 ++
 tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c          |    1 
 213 files changed, 1809 insertions(+), 1016 deletions(-)

Al Viro (2):
csky: Fixup raw_copy_from_user()
copy_xstate_to_kernel(): don't leave parts of destination uninitialized

Alexander Dahl (1):
x86/dma: Fix max PFN arithmetic overflow on 32 bit systems

Alexander Potapenko (1):
fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()

Amy Shih (1):
hwmon: (nct7904) Fix incorrect range of temperature limit registers

Andreas Gruenbacher (1):
gfs2: Grab glock reference sooner in gfs2_add_revoke

Andrew Oakley (1):
ALSA: usb-audio: add mapping for ASRock TRX40 Creator

Andy Shevchenko (1):
usb: dwc3: pci: Enable extcon driver for Intel Merrifield

Anthony Koo (3):
drm/amd/display: Split program front end part that occur outside lock drm/amd/display: Indicate dsc updates explicitly drm/amd/display: Added locking for atomic update stream and update planes

Antony Antony (1):
xfrm: fix error in comment

Aric Cyr (2):
drm/amd/display: Use cursor locking to prevent flip delays drm/amd/display: Fix potential integer wraparound resulting in a hang

Arnd Bergmann (2):
net: freescale: select CONFIG_FIXED_PHY where needed include/asm-generic/topology.h: guard cpumask_of_node() macro argument

Bernard Zhao (1):
drm/meson: pm resume add return errno branch

Björn Töpel (1):
xsk: Add overflow check for u64 division, stored into u32

Bob Peterson (1):
gfs2: move privileged user check to gfs2_quota_lock_check

Boris Sukholitko (1):
__netif_receive_skb_core: pass skb by reference

Brendan Shanks (1):
Input: evdev - call input_flush_device() on release(), not flush()

Changming Liu (1):
ALSA: hwdep: fix a left shifting 1 by 31 UB bug

Chris Chiu (1):
ALSA: usb-audio: mixer: volume quirk for ESS Technology Asus USB DAC

Christophe JAILLET (2):
usb: phy: twl6030-usb: Fix a resource leak in an error handling path in 'twl6030_usb_probe()'
Input: dlink-dir685-touchkeys - fix a typo in driver name

Chuhong Yuan (1):
net: microchip: encx24j600: add missed kthread_stop

Claudiu Manoil (1):
felix: Fix initialization of ioremap resources

DENG Qingfang (1):
net: dsa: mt7530: fix roaming from DSA user ports

David Ahern (4):
nexthop: Fix attribute checking for groups
nexthops: Move code from remove_nexthop_from_groups to remove_nh_grp_entry
nexthop: Expand nexthop_is_multipath in a few places
ipv4: nexthop version of fib_info_nh_uses_dev

Denis V. Lunev (1):
IB/i40iw: Remove bogus call to netdev_master_upper_dev_get()

Dennis YC Hsieh (1):
soc: mediatek: cmdq: return send msg error code

Edwin Peer (1):
bnxt_en: fix firmware message length endianness

Eran Ben Elisha (2):
net/mlx5: Fix a race when moving command interface to events mode net/mlx5: Avoid processing commands before cmdif is ready

Eric Dumazet (3):
ax25: fix setsockopt(SO_BINDTODEVICE)
tipc: block BH before using dst_cache
crypto: chelsio/chtls: properly set tp->lsndtime

Eric W. Biederman (1):
exec: Always set cap_ambient in cap_bprm_set_creds

Evan Green (1):
Input: synaptics-rmi4 - really fix attn_data use-after-free

Evan Quan (2):
drm/amdgpu: drop unnecessary cancel_delayed_work_sync on PG ungate drm/amd/powerplay: perform PG ungate prior to CG ungate

Felix Kuehling (1):
drm/amdgpu: Use GEM obj reference for KFD BOs

Greg Kroah-Hartman (2):
Revert "virtio-balloon: Revert "virtio-balloon: Switch back to OOM handler for VIRTIO_BALLOON_F_DEFLATE_ON_OOM"" Linux 5.6.16

Grygorii Strashko (1):
net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning during suspend

Hamish Martin (1):
ARM: dts: bcm: HR2: Fix PPI interrupt types

Heiner Kallweit (1):

      r8169: fix OCP access on RTL8117

Helge Deller (1):
parisc: Fix kernel panic in mem_init()

Hsin-Yi Wang (1):
arm64: dts: mt8173: fix vcodec-enc clock

Hugh Dickins (1):
mm,thp: stop leaking unreleased file pages

James Hilliard (1):
Input: usbtouchscreen - add support for BonXeon TP

Jason A. Donenfeld (3):
wireguard: noise: read preshared key while taking lock
wireguard: queueing: preserve flow hash across packet scrubbing
wireguard: noise: separate receive counter from send counter

Jason Gunthorpe (1):
RDMA/core: Fix double destruction of uobject

Jay Lang (1):
x86/ioperm: Prevent a memory leak when fork fails

Jeff Layton (1):
ceph: flush release queue when handling caps for unknown inode

Jens Axboe (1):
Revert "block: end bio with BLK_STS_AGAIN in case of non-mq devs and REQ_NOWAIT"

Jere Leppänen (1):
sctp: Start shutdown on association restart if in SHUTDOWN-SENT state and socket is closed

Jerry Lee (1):
libceph: ignore pool overlay and cache logic on redirects

Jiri Pirko (1):
mlxsw: spectrum: Fix use-after-free of split/unsplit/type_set in case reload fails

Johan Jonker (6):
ARM: dts: rockchip: fix phy nodename for rk3228-evb
ARM: dts: rockchip: fix phy nodename for rk3229-xms6
arm64: dts: rockchip: fix status for &gmac2phy in rk3328-evb.dts
arm64: dts: rockchip: swap interrupts interrupt-names rk3399 gpu node
ARM: dts: rockchip: swap clock-names of gpu nodes
ARM: dts: rockchip: fix pinctrl sub nodename for spi in rk322x.dtsi

Johannes Berg (1):
cfg80211: fix debugfs rename crash

John Stultz (1):
kselftests: dmabuf-heaps: Fix confused return value on expected error testing

Kaike Wan (1):
IB/qib: Call kobject_put() when kobject_init_and_add() fails

Kailang Yang (1):
ALSA: hda/realtek - Add new codec supported for ALC287

Kefeng Wang (4):
riscv: Fix unmet direct dependencies built based on SOC_VIRT
riscv: stacktrace: Fix undefined reference to `walk_stackframe'
riscv: Add pgprot_writecombine/device and PAGE_SHARED defination if NOMMU
riscv: pgtable: Fix __kernel_map_pages build error if NOMMU

Kevin Locke (1):
Input: i8042 - add ThinkPad S230u to i8042 reset list

Konstantin Khlebnikov (1):
mm: remove VM_BUG_ON(PageSlab()) from page_mapcount()

Lei Xue (1):

      cachefiles: Fix race between read_waiter and read_copier involving op->to_do

Leo (Hanghong) Ma (1):
drm/amd/amdgpu: Update update_config() logic

Linus Lüssing (1):
mac80211: mesh: fix discovery timer re-arming issue / crash

Linus Walleij (1):
gpio: fix locking open drain IRQ lines

Liu Yibin (2):
csky: Fixup msa highest 3 bits mask
csky: Fixup remove duplicate irq_disable

Lubomir Rintel (3):
ARM: dts: mmp3: Use the MMP3 compatible string for /clocks
ARM: dts: mmp3-dell-ariel: Fix the SPI devices
ARM: dts: mmp3: Drop usb-nop-xceiv from HSIC phy

Madhuparna Bhowmik (1):
drivers: net: hamradio: Fix suspicious RCU usage warning in bpqether.c

Manivannan Sadhasivam (1):
net: qrtr: Fix passing invalid reference to qrtr_local_enqueue()

Mao Han (1):
csky: Fixup perf callchain unwind

Maor Gottlieb (1):
RDMA/mlx5: Fix NULL pointer dereference in destroy_prefetch_work

Marc Payne (1):
r8152: support additional Microsoft Surface Ethernet Adapter variant

Martin KaFai Lau (1):

      net: inet_csk: Fix so_reuseport bind-address cache in tb->fast*

Masahiro Yamada (1):
usb: gadget: legacy: fix redundant initialization warnings

Matteo Croce (1):
samples: bpf: Fix build error

Michael Braun (1):
netfilter: nft_reject_bridge: enable reject with bridge vlan

Michael Chan (1):

      bnxt_en: Fix accumulation of bp->net_stats_prev.

Michal Kubecek (1):
ethtool: count header size in reply size estimate

Moshe Shemesh (3):
net/mlx5: Add command entry handling completion net/mlx5: Fix memory leak in mlx5_events_init net/mlx5e: Update netdev txq on completions during closure

Nathan Chancellor (1):
netfilter: conntrack: Pass value of ctinfo to __nf_conntrack_update

Neil Horman (1):
sctp: Don't add the shutdown timer if its already been added

Nicholas Kazlauskas (1):
drm/amd/display: Defer cursor lock until after VUPDATE

Nicolas Dichtel (1):
xfrm interface: fix oops when deleting a x-netns interface

Nikolay Aleksandrov (1):
nexthops: don't modify published nexthop groups

Pablo Neira Ayuso (5):
netfilter: conntrack: make conntrack userspace helpers work again
netfilter: nfnetlink_cthelper: unbreak userspace helper support
netfilter: nf_conntrack_pptp: prevent buffer overflows in debug code
netfilter: conntrack: comparison of unsigned in cthelper confirmation
netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build

Paul Cercueil (2):
gpu/drm: ingenic: Fix bogus crtc_atomic_check callback gpu/drm: Ingenic: Fix opaque pointer casted to wrong type

Peng Hao (1):
mmc: block: Fix use-after-free issue for rpmb

Petr Mladek (1):
powerpc/bpf: Enable bpf_probe_read{, str}() on powerpc again

Phil Sutter (1):
netfilter: ipset: Fix subcounter update skip

Pradeep Kumar Chitrapu (1):
ieee80211: Fix incorrect mask for default PE duration

Qiushi Wu (6):
net: sun: fix missing release regions in cas_init_one(). net/mlx4_core: fix a memory leak bug. RDMA/pvrdma: Fix missing pci disable in pvrdma_pci_probe()
iommu: Fix reference count leak in iommu_group_alloc.
qlcnic: fix missing release in qlcnic_83xx_interrupt_test.
bonding: Fix reference count leak in bond_sysfs_slave_add.

Robert Beckett (1):
ARM: dts/imx6q-bx50v3: Set display interface clock parents

Roi Dayan (3):
net/mlx5e: Fix inner tirs handling net/mlx5: Fix cleaning unmanaged flow tables net/mlx5: Annotate mutex destroy for root ns

Roman Mashak (1):
net sched: fix reporting the first-time use timestamp

Russell King (4):
net: mvpp2: fix RX hashing for non-10G ports
ARM: uaccess: consolidate uaccess asm to asm/uaccess-asm.h
ARM: uaccess: integrate uaccess_save and uaccess_restore
ARM: uaccess: fix DACR mismatch with nested exceptions

Sabrina Dubroca (2):
net: don't return invalid table id error when we fall back to PF_UNSPEC
xfrm: espintcp: save and call old ->sk_destruct

Sascha Hauer (1):
gpio: mvebu: Fix probing for chips without PWM

Shay Drory (1):
net/mlx5: Fix error flow in case of function_setup failure

Simon Ser (1):
drm/amd/display: drop cursor position check in atomic test

Srinivas Kandagatla (1):
arm64: dts: qcom: db820c: fix audio configuration

Stephen Warren (1):
gpio: tegra: mask GPIO IRQs during IRQ shutdown

Stephen Worley (1):
net: nlmsg_cancel() if put fails for nhmsg

Steve French (1):
cifs: Fix null pointer check in cifs_read

Takashi Iwai (3):
gpio: exar: Fix bad handling for ida_simple_get error path
ALSA: hda/realtek - Add a model for Thinkpad T570 without DAC workaround
ALSA: usb-audio: Quirks for Gigabyte TRX40 Aorus Master onboard audio

Tang Bin (1):
net: sgi: ioc3-eth: Fix return value check in ioc3eth_probe()

Tariq Toukan (1):
net/mlx5e: kTLS, Destroy key object after destroying the TIS

Tero Kristo (1):
clk: ti: am33xx: fix RTC clock parent

Tiezhu Yang (2):
gpio: pxa: Fix return value of pxa_gpio_probe()
gpio: bcm-kona: Fix return value of bcm_kona_gpio_probe()

Tony Lindgren (2):
ARM: dts: omap4-droid4: Fix flakey wlan by disabling internal pull for gpio
ARM: dts: omap4-droid4: Fix occasional lost wakeirq for uart1

Vadim Fedorenko (3):
net: ipip: fix wrong address family in init error path net/tls: fix encryption error checking net/tls: free record only on encryption error

Valentine Fatiev (1):
IB/ipoib: Fix double free of skb in case of multicast traffic in CM mode

Vinay Kumar Yadav (1):
net/tls: fix race condition causing kernel panic

Vincent Stehlé (1):
ARM: dts: bcm2835-rpi-zero-w: Fix led polarity

Vinod Koul (1):
clk: qcom: gcc: Fix parent for gpll0_out_even

Vladimir Oltean (3):
dpaa_eth: fix usage as DSA master, try 3
net: mscc: ocelot: fix address ageing time (again)
net: dsa: declare lockless TX feature for slave ports

Wei Yongjun (1):
Input: synaptics-rmi4 - fix error return code in rmi_driver_probe()

Xin Long (8):
xfrm: allow to accept packets with ipv6 NEXTHDR_HOP in xfrm_input
xfrm: do pskb_pull properly in __xfrm_transport_prep
xfrm: remove the xfrm_state_put call becofe going to out_reset
xfrm: call xfrm_output_gso when inner_protocol is set in xfrm_output
xfrm: fix a warning in xfrm_policy_insert_list
xfrm: fix a NULL-ptr deref in xfrm_local_error
ip_vti: receive ipip packet by calling ip_tunnel_rcv
esp6: get the right proto for transport mode in esp6_gso_encap

Yuqi Jin (1):
net: revert "net: get rid of an signed integer overflow in ip_idents_reserve()"

Łukasz Patron (1):
Input: xpad - add custom init packet for Xbox One S controllers

Łukasz Stelmach (1):
ARM: 8970/1: decompressor: increase tag size

author maintainer
#1 lore raw
Makefile +1 -1
index 3eca0c523098..1befb37dcc58 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 6
-SUBLEVEL = 15
+SUBLEVEL = 16
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm/boot/compressed/vmlinux.lds.S +1 -1
index fc7ed03d8b93..51b078604978 100644
@@ -43,7 +43,7 @@ SECTIONS
   }
   .table : ALIGN(4) {
     _table_start = .;
-    LONG(ZIMAGE_MAGIC(2))
+    LONG(ZIMAGE_MAGIC(4))
     LONG(ZIMAGE_MAGIC(0x5a534c4b))
     LONG(ZIMAGE_MAGIC(__piggy_size_addr - _start))
     LONG(ZIMAGE_MAGIC(_kernel_bss_size))
arch/arm/boot/dts/bcm-hr2.dtsi +3 -3
index 6142c672811e..5e5f5ca3c86f 100644
@@ -75,7 +75,7 @@ a9pll: arm_clk@0 {
 		timer@20200 {
 			compatible = "arm,cortex-a9-global-timer";
 			reg = <0x20200 0x100>;
-			interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
+			interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
 			clocks = <&periph_clk>;
 		};
 
@@ -83,7 +83,7 @@ twd-timer@20600 {
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0x20600 0x20>;
 			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) |
-						  IRQ_TYPE_LEVEL_HIGH)>;
+						  IRQ_TYPE_EDGE_RISING)>;
 			clocks = <&periph_clk>;
 		};
 
@@ -91,7 +91,7 @@ twd-watchdog@20620 {
 			compatible = "arm,cortex-a9-twd-wdt";
 			reg = <0x20620 0x20>;
 			interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) |
-						  IRQ_TYPE_LEVEL_HIGH)>;
+						  IRQ_TYPE_EDGE_RISING)>;
 			clocks = <&periph_clk>;
 		};
 
arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +1 -1
index 4c3f606e5b8d..f65448c01e31 100644
@@ -24,7 +24,7 @@ chosen {
 
 	leds {
 		act {
-			gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
+			gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
 		};
 	};
 
arch/arm/boot/dts/imx6q-b450v3.dts +0 -7
index 95b8f2d71821..fb0980190aa0 100644
@@ -65,13 +65,6 @@ panel_in_lvds0: endpoint {
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
-				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-};
-
 &ldb {
 	status = "okay";
 
arch/arm/boot/dts/imx6q-b650v3.dts +0 -7
index 611cb7ae7e55..8f762d9c5ae9 100644
@@ -65,13 +65,6 @@ panel_in_lvds0: endpoint {
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
-				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-};
-
 &ldb {
 	status = "okay";
 
arch/arm/boot/dts/imx6q-b850v3.dts +0 -11
index e4cb118f88c6..1ea64ecf4291 100644
@@ -53,17 +53,6 @@ chosen {
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
-			  <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
-			  <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
-				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
-				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
-				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>;
-};
-
 &ldb {
 	fsl,dual-channel;
 	status = "okay";
arch/arm/boot/dts/imx6q-bx50v3.dtsi +15 -0
index fa27dcdf06f1..1938b04199c4 100644
@@ -377,3 +377,18 @@ pci_root: root@0,0 {
 		#interrupt-cells = <1>;
 	};
 };
+
+&clks {
+	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
+			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
+			  <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU1_DI1_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU2_DI1_PRE_SEL>;
+	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
+				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>;
+};
arch/arm/boot/dts/mmp3-dell-ariel.dts +6 -6
index 15449c72c042..b0ec14c42164 100644
@@ -98,19 +98,19 @@ &twsi4 {
 	status = "okay";
 };
 
-&ssp3 {
+&ssp1 {
 	status = "okay";
-	cs-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
+	cs-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
 
 	firmware-flash@0 {
-		compatible = "st,m25p80", "jedec,spi-nor";
+		compatible = "winbond,w25q32", "jedec,spi-nor";
 		reg = <0>;
-		spi-max-frequency = <40000000>;
+		spi-max-frequency = <104000000>;
 		m25p,fast-read;
 	};
 };
 
-&ssp4 {
-	cs-gpios = <&gpio 56 GPIO_ACTIVE_HIGH>;
+&ssp2 {
+	cs-gpios = <&gpio 56 GPIO_ACTIVE_LOW>;
 	status = "okay";
 };
arch/arm/boot/dts/mmp3.dtsi +3 -5
index 59a108e49b41..1e25bf998ab5 100644
@@ -202,8 +202,7 @@ usb_otg0: usb-otg@d4208000 {
 			};
 
 			hsic_phy0: hsic-phy@f0001800 {
-				compatible = "marvell,mmp3-hsic-phy",
-					     "usb-nop-xceiv";
+				compatible = "marvell,mmp3-hsic-phy";
 				reg = <0xf0001800 0x40>;
 				#phy-cells = <0>;
 				status = "disabled";
@@ -224,8 +223,7 @@ hsic0: hsic@f0001000 {
 			};
 
 			hsic_phy1: hsic-phy@f0002800 {
-				compatible = "marvell,mmp3-hsic-phy",
-					     "usb-nop-xceiv";
+				compatible = "marvell,mmp3-hsic-phy";
 				reg = <0xf0002800 0x40>;
 				#phy-cells = <0>;
 				status = "disabled";
@@ -531,7 +529,7 @@ l2: l2-cache-controller@d0020000 {
 		};
 
 		soc_clocks: clocks@d4050000 {
-			compatible = "marvell,mmp2-clock";
+			compatible = "marvell,mmp3-clock";
 			reg = <0xd4050000 0x1000>,
 			      <0xd4282800 0x400>,
 			      <0xd4015000 0x1000>;
arch/arm/boot/dts/motorola-mapphone-common.dtsi +40 -3

66 lines not on this page · raw message

arch/arm/boot/dts/rk3036.dtsi +1 -1
index cf36e25195b4..8c4b8f56c9e0 100644
@@ -128,7 +128,7 @@ gpu: gpu@10090000 {
 		assigned-clocks = <&cru SCLK_GPU>;
 		assigned-clock-rates = <100000000>;
 		clocks = <&cru SCLK_GPU>, <&cru SCLK_GPU>;
-		clock-names = "core", "bus";
+		clock-names = "bus", "core";
 		resets = <&cru SRST_GPU>;
 		status = "disabled";
 	};
arch/arm/boot/dts/rk3228-evb.dts +1 -1
index 5670b33fd1bd..aed879db6c15 100644
@@ -46,7 +46,7 @@ mdio {
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		phy: phy@0 {
+		phy: ethernet-phy@0 {
 			compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
 			reg = <0>;
 			clocks = <&cru SCLK_MAC_PHY>;
arch/arm/boot/dts/rk3229-xms6.dts +1 -1
index 679fc2b00e5a..933ef69da32a 100644
@@ -150,7 +150,7 @@ mdio {
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		phy: phy@0 {
+		phy: ethernet-phy@0 {
 			compatible = "ethernet-phy-id1234.d400",
 			             "ethernet-phy-ieee802.3-c22";
 			reg = <0>;
arch/arm/boot/dts/rk322x.dtsi +3 -3
index 4e90efdc9630..a83f65486ad4 100644
@@ -561,7 +561,7 @@ gpu: gpu@20000000 {
 				  "pp1",
 				  "ppmmu1";
 		clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
-		clock-names = "core", "bus";
+		clock-names = "bus", "core";
 		resets = <&cru SRST_GPU_A>;
 		status = "disabled";
 	};
@@ -1033,7 +1033,7 @@ i2c3_xfer: i2c3-xfer {
 			};
 		};
 
-		spi-0 {
+		spi0 {
 			spi0_clk: spi0-clk {
 				rockchip,pins = <0 RK_PB1 2 &pcfg_pull_up>;
 			};
@@ -1051,7 +1051,7 @@ spi0_cs1: spi0-cs1 {
 			};
 		};
 
-		spi-1 {
+		spi1 {
 			spi1_clk: spi1-clk {
 				rockchip,pins = <0 RK_PC7 2 &pcfg_pull_up>;
 			};
arch/arm/boot/dts/rk3xxx.dtsi +1 -1
index 241f43e29c77..bb5ff10b9110 100644
@@ -84,7 +84,7 @@ gpu: gpu@10090000 {
 		compatible = "arm,mali-400";
 		reg = <0x10090000 0x10000>;
 		clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
-		clock-names = "core", "bus";
+		clock-names = "bus", "core";
 		assigned-clocks = <&cru ACLK_GPU>;
 		assigned-clock-rates = <100000000>;
 		resets = <&cru SRST_GPU>;
arch/arm/include/asm/assembler.h +1 -74

91 lines not on this page · raw message

arch/arm/include/asm/uaccess-asm.h new file +117 -0

117 lines not on this page · raw message

arch/arm/kernel/entry-armv.S +2 -9
index 77f54830554c..55a47df04773 100644
@@ -27,6 +27,7 @@
 #include <asm/unistd.h>
 #include <asm/tls.h>
 #include <asm/system_info.h>
+#include <asm/uaccess-asm.h>
 
 #include "entry-header.S"
 #include <asm/entry-macro-multi.S>
@@ -179,15 +180,7 @@ ENDPROC(__und_invalid)
 	stmia	r7, {r2 - r6}
 
 	get_thread_info tsk
-	ldr	r0, [tsk, #TI_ADDR_LIMIT]
-	mov	r1, #TASK_SIZE
-	str	r1, [tsk, #TI_ADDR_LIMIT]
-	str	r0, [sp, #SVC_ADDR_LIMIT]
-
-	uaccess_save r0
-	.if \uaccess
-	uaccess_disable r0
-	.endif
+	uaccess_entry tsk, r0, r1, r2, \uaccess
 
 	.if \trace
 #ifdef CONFIG_TRACE_IRQFLAGS
arch/arm/kernel/entry-header.S +3 -6
index 32051ec5b33f..40db0f9188b6 100644
@@ -6,6 +6,7 @@
 #include <asm/asm-offsets.h>
 #include <asm/errno.h>
 #include <asm/thread_info.h>
+#include <asm/uaccess-asm.h>
 #include <asm/v7m.h>
 
 @ Bad Abort numbers
@@ -217,9 +218,7 @@
 	blne	trace_hardirqs_off
 #endif
 	.endif
-	ldr	r1, [sp, #SVC_ADDR_LIMIT]
-	uaccess_restore
-	str	r1, [tsk, #TI_ADDR_LIMIT]
+	uaccess_exit tsk, r0, r1
 
 #ifndef CONFIG_THUMB2_KERNEL
 	@ ARM mode SVC restore
@@ -263,9 +262,7 @@
 	@ on the stack remains correct).
 	@
 	.macro  svc_exit_via_fiq
-	ldr	r1, [sp, #SVC_ADDR_LIMIT]
-	uaccess_restore
-	str	r1, [tsk, #TI_ADDR_LIMIT]
+	uaccess_exit tsk, r0, r1
 #ifndef CONFIG_THUMB2_KERNEL
 	@ ARM mode restore
 	mov	r0, sp
arch/arm64/boot/dts/mediatek/mt8173.dtsi +2 -2
index 8b4e806d5119..125c78321ab4 100644
@@ -1401,8 +1401,8 @@ vcodec_enc: vcodec@18002000 {
 				      "venc_lt_sel";
 			assigned-clocks = <&topckgen CLK_TOP_VENC_SEL>,
 					  <&topckgen CLK_TOP_VENC_LT_SEL>;
-			assigned-clock-parents = <&topckgen CLK_TOP_VENCPLL_D2>,
-						 <&topckgen CLK_TOP_UNIVPLL1_D2>;
+			assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL>,
+						 <&topckgen CLK_TOP_VCODECPLL_370P5>;
 		};
 
 		jpegdec: jpegdec@18004000 {
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi +18 -1
index a85b85d85a5f..3c7c9b52623c 100644
@@ -908,10 +908,27 @@ &sdhc2 {
 	status = "okay";
 };
 
+&q6asmdai {
+	dai@0 {
+		reg = <0>;
+	};
+
+	dai@1 {
+		reg = <1>;
+	};
+
+	dai@2 {
+		reg = <2>;
+	};
+};
+
 &sound {
 	compatible = "qcom,apq8096-sndcard";
 	model = "DB820c";
-	audio-routing =	"RX_BIAS", "MCLK";
+	audio-routing =	"RX_BIAS", "MCLK",
+		"MM_DL1",  "MultiMedia1 Playback",
+		"MM_DL2",  "MultiMedia2 Playback",
+		"MultiMedia3 Capture", "MM_UL3";
 
 	mm1-dai-link {
 		link-name = "MultiMedia1";
arch/arm64/boot/dts/qcom/msm8996.dtsi +2 -0
index 7ae082ea14ea..f925a6c7d293 100644
@@ -2053,6 +2053,8 @@ q6asm: q6asm {
 						reg = <APR_SVC_ASM>;
 						q6asmdai: dais {
 							compatible = "qcom,q6asm-dais";
+							#address-cells = <1>;
+							#size-cells = <0>;
 							#sound-dai-cells = <1>;
 							iommus = <&lpass_q6_smmu 1>;
 						};
arch/arm64/boot/dts/rockchip/rk3328-evb.dts +1 -1
index 6abc6f4a86cf..05265b38cc02 100644
@@ -86,7 +86,7 @@ &gmac2phy {
 	assigned-clock-rate = <50000000>;
 	assigned-clocks = <&cru SCLK_MAC2PHY>;
 	assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
-
+	status = "okay";
 };
 
 &i2c1 {
arch/arm64/boot/dts/rockchip/rk3399.dtsi +4 -4
index 5c4238a80144..c341172ec208 100644
@@ -1890,10 +1890,10 @@ edp_in_vopl: endpoint@1 {
 	gpu: gpu@ff9a0000 {
 		compatible = "rockchip,rk3399-mali", "arm,mali-t860";
 		reg = <0x0 0xff9a0000 0x0 0x10000>;
-		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
-			     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
-			     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
-		interrupt-names = "gpu", "job", "mmu";
+		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
+			     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
+			     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
+		interrupt-names = "job", "mmu", "gpu";
 		clocks = <&cru ACLK_GPU>;
 		#cooling-cells = <2>;
 		power-domains = <&power RK3399_PD_GPU>;
arch/csky/abiv1/inc/abi/entry.h +2 -2
index 5056ebb902d1..61d94ec7dd16 100644
@@ -167,8 +167,8 @@
 	 *   BA     Reserved  C   D   V
 	 */
 	cprcr	r6, cpcr30
-	lsri	r6, 28
-	lsli	r6, 28
+	lsri	r6, 29
+	lsli	r6, 29
 	addi	r6, 0xe
 	cpwcr	r6, cpcr30
 
arch/csky/abiv2/inc/abi/entry.h +2 -2
index 111973c6c713..9023828ede97 100644
@@ -225,8 +225,8 @@
 	 */
 	mfcr	r6, cr<30, 15> /* Get MSA0 */
 2:
-	lsri	r6, 28
-	lsli	r6, 28
+	lsri	r6, 29
+	lsli	r6, 29
 	addi	r6, 0x1ce
 	mtcr	r6, cr<30, 15> /* Set MSA0 */
 
arch/csky/include/asm/uaccess.h +26 -23

86 lines not on this page · raw message

arch/csky/kernel/entry.S +0 -2
index 007706328000..9718388448a4 100644
@@ -318,8 +318,6 @@ ENTRY(__switch_to)
 
 	mfcr	a2, psr			/* Save PSR value */
 	stw	a2, (a3, THREAD_SR)	/* Save PSR in task struct */
-	bclri	a2, 6			/* Disable interrupts */
-	mtcr	a2, psr
 
 	SAVE_SWITCH_STACK
 
arch/csky/kernel/perf_callchain.c +7 -2
index e68ff375c8f8..ab55e98ee8f6 100644
@@ -12,12 +12,17 @@ struct stackframe {
 
 static int unwind_frame_kernel(struct stackframe *frame)
 {
-	if (kstack_end((void *)frame->fp))
+	unsigned long low = (unsigned long)task_stack_page(current);
+	unsigned long high = low + THREAD_SIZE;
+
+	if (unlikely(frame->fp < low || frame->fp > high))
 		return -EPERM;
-	if (frame->fp & 0x3 || frame->fp < TASK_SIZE)
+
+	if (kstack_end((void *)frame->fp) || frame->fp & 0x3)
 		return -EPERM;
 
 	*frame = *(struct stackframe *)frame->fp;
+
 	if (__kernel_text_address(frame->lr)) {
 		int graph = 0;
 
arch/csky/lib/usercopy.c +2 -6
index 647a23986fb5..3c9bd645e643 100644
@@ -7,10 +7,7 @@
 unsigned long raw_copy_from_user(void *to, const void *from,
 			unsigned long n)
 {
-	if (access_ok(from, n))
-		__copy_user_zeroing(to, from, n);
-	else
-		memset(to, 0, n);
+	___copy_from_user(to, from, n);
 	return n;
 }
 EXPORT_SYMBOL(raw_copy_from_user);
@@ -18,8 +15,7 @@ EXPORT_SYMBOL(raw_copy_from_user);
 unsigned long raw_copy_to_user(void *to, const void *from,
 			unsigned long n)
 {
-	if (access_ok(to, n))
-		__copy_user(to, from, n);
+	___copy_to_user(to, from, n);
 	return n;
 }
 EXPORT_SYMBOL(raw_copy_to_user);
arch/parisc/mm/init.c +1 -1
index 5224fb38d766..01d7071b23f7 100644
@@ -562,7 +562,7 @@ void __init mem_init(void)
 			> BITS_PER_LONG);
 
 	high_memory = __va((max_pfn << PAGE_SHIFT));
-	set_max_mapnr(page_to_pfn(virt_to_page(high_memory - 1)) + 1);
+	set_max_mapnr(max_low_pfn);
 	memblock_free_all();
 
 #ifdef CONFIG_PA11
arch/powerpc/Kconfig +1 -0
index b0fb42b0bf4b..35608b9feb14 100644
@@ -125,6 +125,7 @@ config PPC
 	select ARCH_HAS_MMIOWB			if PPC64
 	select ARCH_HAS_PHYS_TO_DMA
 	select ARCH_HAS_PMEM_API
+	select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
 	select ARCH_HAS_PTE_DEVMAP		if PPC_BOOK3S_64
 	select ARCH_HAS_PTE_SPECIAL
 	select ARCH_HAS_MEMBARRIER_CALLBACKS
arch/riscv/Kconfig.socs +9 -8
index a131174a0a77..f310ad8ffcf7 100644
@@ -11,13 +11,14 @@ config SOC_SIFIVE
 	  This enables support for SiFive SoC platform hardware.
 
 config SOC_VIRT
-       bool "QEMU Virt Machine"
-       select POWER_RESET_SYSCON
-       select POWER_RESET_SYSCON_POWEROFF
-       select GOLDFISH
-       select RTC_DRV_GOLDFISH
-       select SIFIVE_PLIC
-       help
-         This enables support for QEMU Virt Machine.
+	bool "QEMU Virt Machine"
+	select POWER_RESET
+	select POWER_RESET_SYSCON
+	select POWER_RESET_SYSCON_POWEROFF
+	select GOLDFISH
+	select RTC_DRV_GOLDFISH if RTC_CLASS
+	select SIFIVE_PLIC
+	help
+	  This enables support for QEMU Virt Machine.
 
 endmenu
arch/riscv/include/asm/mmio.h +2 -0
index a2c809df2733..56053c9838b2 100644
@@ -16,6 +16,8 @@
 
 #ifndef CONFIG_MMU
 #define pgprot_noncached(x)	(x)
+#define pgprot_writecombine(x)	(x)
+#define pgprot_device(x)	(x)
 #endif /* CONFIG_MMU */
 
 /* Generic IO read/write.  These perform native-endian accesses. */
arch/riscv/include/asm/pgtable.h +3 -0
index 393f2014dfee..31d912944d8d 100644
@@ -460,12 +460,15 @@ static inline int ptep_clear_flush_young(struct vm_area_struct *vma,
 
 #else /* CONFIG_MMU */
 
+#define PAGE_SHARED		__pgprot(0)
 #define PAGE_KERNEL		__pgprot(0)
 #define swapper_pg_dir		NULL
 #define VMALLOC_START		0
 
 #define TASK_SIZE 0xffffffffUL
 
+static inline void __kernel_map_pages(struct page *page, int numpages, int enable) {}
+
 #endif /* !CONFIG_MMU */
 
 #define kern_addr_valid(addr)   (1) /* FIXME */
arch/riscv/kernel/stacktrace.c +1 -1
index 0940681d2f68..19e46f4160cc 100644
@@ -63,7 +63,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
 
 #else /* !CONFIG_FRAME_POINTER */
 
-static void notrace walk_stackframe(struct task_struct *task,
+void notrace walk_stackframe(struct task_struct *task,
 	struct pt_regs *regs, bool (*fn)(unsigned long, void *), void *arg)
 {
 	unsigned long sp, pc;
arch/x86/include/asm/dma.h +1 -1
index 00f7cf45e699..8e95aa4b0d17 100644
@@ -74,7 +74,7 @@
 #define MAX_DMA_PFN   ((16UL * 1024 * 1024) >> PAGE_SHIFT)
 
 /* 4GB broken PCI/AGP hardware bus master zone */
-#define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)
+#define MAX_DMA32_PFN (1UL << (32 - PAGE_SHIFT))
 
 #ifdef CONFIG_X86_32
 /* The maximum address that we can perform a DMA transfer to on this platform */
arch/x86/include/asm/io_bitmap.h +2 -2
index 07344d82e88e..ac1a99ffbd8d 100644
@@ -17,7 +17,7 @@ struct task_struct;
 
 #ifdef CONFIG_X86_IOPL_IOPERM
 void io_bitmap_share(struct task_struct *tsk);
-void io_bitmap_exit(void);
+void io_bitmap_exit(struct task_struct *tsk);
 
 void native_tss_update_io_bitmap(void);
 
@@ -29,7 +29,7 @@ void native_tss_update_io_bitmap(void);
 
 #else
 static inline void io_bitmap_share(struct task_struct *tsk) { }
-static inline void io_bitmap_exit(void) { }
+static inline void io_bitmap_exit(struct task_struct *tsk) { }
 static inline void tss_update_io_bitmap(void) { }
 #endif
 
arch/x86/kernel/fpu/xstate.c +48 -38

120 lines not on this page · raw message

arch/x86/kernel/ioport.c +11 -11
index 8abeee0dd7bf..fce678f4471e 100644
@@ -32,15 +32,15 @@ void io_bitmap_share(struct task_struct *tsk)
 	set_tsk_thread_flag(tsk, TIF_IO_BITMAP);
 }
 
-static void task_update_io_bitmap(void)
+static void task_update_io_bitmap(struct task_struct *tsk)
 {
-	struct thread_struct *t = &current->thread;
+	struct thread_struct *t = &tsk->thread;
 
 	if (t->iopl_emul == 3 || t->io_bitmap) {
 		/* TSS update is handled on exit to user space */
-		set_thread_flag(TIF_IO_BITMAP);
+		set_tsk_thread_flag(tsk, TIF_IO_BITMAP);
 	} else {
-		clear_thread_flag(TIF_IO_BITMAP);
+		clear_tsk_thread_flag(tsk, TIF_IO_BITMAP);
 		/* Invalidate TSS */
 		preempt_disable();
 		tss_update_io_bitmap();
@@ -48,12 +48,12 @@ static void task_update_io_bitmap(void)
 	}
 }
 
-void io_bitmap_exit(void)
+void io_bitmap_exit(struct task_struct *tsk)
 {
-	struct io_bitmap *iobm = current->thread.io_bitmap;
+	struct io_bitmap *iobm = tsk->thread.io_bitmap;
 
-	current->thread.io_bitmap = NULL;
-	task_update_io_bitmap();
+	tsk->thread.io_bitmap = NULL;
+	task_update_io_bitmap(tsk);
 	if (iobm && refcount_dec_and_test(&iobm->refcnt))
 		kfree(iobm);
 }
@@ -101,7 +101,7 @@ long ksys_ioperm(unsigned long from, unsigned long num, int turn_on)
 		if (!iobm)
 			return -ENOMEM;
 		refcount_set(&iobm->refcnt, 1);
-		io_bitmap_exit();
+		io_bitmap_exit(current);
 	}
 
 	/*
@@ -133,7 +133,7 @@ long ksys_ioperm(unsigned long from, unsigned long num, int turn_on)
 	}
 	/* All permissions dropped? */
 	if (max_long == UINT_MAX) {
-		io_bitmap_exit();
+		io_bitmap_exit(current);
 		return 0;
 	}
 
@@ -191,7 +191,7 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
 	}
 
 	t->iopl_emul = level;
-	task_update_io_bitmap();
+	task_update_io_bitmap(current);
 
 	return 0;
 }
arch/x86/kernel/process.c +2 -2
index 3053c85e0e42..9898f672b81d 100644
@@ -97,7 +97,7 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
 }
 
 /*
- * Free current thread data structures etc..
+ * Free thread data structures etc..
  */
 void exit_thread(struct task_struct *tsk)
 {
@@ -105,7 +105,7 @@ void exit_thread(struct task_struct *tsk)
 	struct fpu *fpu = &t->fpu;
 
 	if (test_thread_flag(TIF_IO_BITMAP))
-		io_bitmap_exit();
+		io_bitmap_exit(tsk);
 
 	free_vm86(t);
 
block/blk-core.c +4 -7
index 60dc9552ef8d..92232907605c 100644
@@ -885,14 +885,11 @@ generic_make_request_checks(struct bio *bio)
 	}
 
 	/*
-	 * Non-mq queues do not honor REQ_NOWAIT, so complete a bio
-	 * with BLK_STS_AGAIN status in order to catch -EAGAIN and
-	 * to give a chance to the caller to repeat request gracefully.
+	 * For a REQ_NOWAIT based request, return -EOPNOTSUPP
+	 * if queue is not a request based queue.
 	 */
-	if ((bio->bi_opf & REQ_NOWAIT) && !queue_is_mq(q)) {
-		status = BLK_STS_AGAIN;
-		goto end_io;
-	}
+	if ((bio->bi_opf & REQ_NOWAIT) && !queue_is_mq(q))
+		goto not_supported;
 
 	if (should_fail_bio(bio))
 		goto end_io;
drivers/clk/qcom/gcc-sm8150.c +1 -2
index 20877214acff..e3959ff5cb55 100644
@@ -75,8 +75,7 @@ static struct clk_alpha_pll_postdiv gpll0_out_even = {
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_even",
 		.parent_data = &(const struct clk_parent_data){
-			.fw_name = "bi_tcxo",
-			.name = "bi_tcxo",
+			.hw = &gpll0.clkr.hw,
 		},
 		.num_parents = 1,
 		.ops = &clk_trion_pll_postdiv_ops,
drivers/clk/ti/clk-33xx.c +1 -1
index e001b9bcb6bf..7dc30dd6c8d5 100644
@@ -212,7 +212,7 @@ static const struct omap_clkctrl_reg_data am3_mpu_clkctrl_regs[] __initconst = {
 };
 
 static const struct omap_clkctrl_reg_data am3_l4_rtc_clkctrl_regs[] __initconst = {
-	{ AM3_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk_32768_ck" },
+	{ AM3_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk-24mhz-clkctrl:0000:0" },
 	{ 0 },
 };
 
drivers/crypto/chelsio/chtls/chtls_io.c +1 -1
index 5cf9b021220b..fdaed234ae92 100644
@@ -682,7 +682,7 @@ int chtls_push_frames(struct chtls_sock *csk, int comp)
 				make_tx_data_wr(sk, skb, immdlen, len,
 						credits_needed, completion);
 			tp->snd_nxt += len;
-			tp->lsndtime = tcp_time_stamp(tp);
+			tp->lsndtime = tcp_jiffies32;
 			if (completion)
 				ULP_SKB_CB(skb)->flags &= ~ULPCB_FLAG_NEED_HDR;
 		} else {
drivers/gpio/gpio-bcm-kona.c +1 -1
index baee8c3f06ad..cf3687a7925f 100644
@@ -625,7 +625,7 @@ static int bcm_kona_gpio_probe(struct platform_device *pdev)
 
 	kona_gpio->reg_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(kona_gpio->reg_base)) {
-		ret = -ENXIO;
+		ret = PTR_ERR(kona_gpio->reg_base);
 		goto err_irq_domain;
 	}
 
drivers/gpio/gpio-exar.c +5 -2
index da1ef0b1c291..b1accfba017d 100644
@@ -148,8 +148,10 @@ static int gpio_exar_probe(struct platform_device *pdev)
 	mutex_init(&exar_gpio->lock);
 
 	index = ida_simple_get(&ida_index, 0, 0, GFP_KERNEL);
-	if (index < 0)
-		goto err_destroy;
+	if (index < 0) {
+		ret = index;
+		goto err_mutex_destroy;
+	}
 
 	sprintf(exar_gpio->name, "exar_gpio%d", index);
 	exar_gpio->gpio_chip.label = exar_gpio->name;
@@ -176,6 +178,7 @@ static int gpio_exar_probe(struct platform_device *pdev)
 
 err_destroy:
 	ida_simple_remove(&ida_index, index);
+err_mutex_destroy:
 	mutex_destroy(&exar_gpio->lock);
 	return ret;
 }
drivers/gpio/gpio-mvebu.c +9 -6
index d2b999c7987f..f0c5433a327f 100644
@@ -782,6 +782,15 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
 				     "marvell,armada-370-gpio"))
 		return 0;
 
+	/*
+	 * There are only two sets of PWM configuration registers for
+	 * all the GPIO lines on those SoCs which this driver reserves
+	 * for the first two GPIO chips. So if the resource is missing
+	 * we can't treat it as an error.
+	 */
+	if (!platform_get_resource_byname(pdev, IORESOURCE_MEM, "pwm"))
+		return 0;
+
 	if (IS_ERR(mvchip->clk))
 		return PTR_ERR(mvchip->clk);
 
@@ -804,12 +813,6 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
 	mvchip->mvpwm = mvpwm;
 	mvpwm->mvchip = mvchip;
 
-	/*
-	 * There are only two sets of PWM configuration registers for
-	 * all the GPIO lines on those SoCs which this driver reserves
-	 * for the first two GPIO chips. So if the resource is missing
-	 * we can't treat it as an error.
-	 */
 	mvpwm->membase = devm_platform_ioremap_resource_byname(pdev, "pwm");
 	if (IS_ERR(mvpwm->membase))
 		return PTR_ERR(mvpwm->membase);
drivers/gpio/gpio-pxa.c +2 -2
index 9888b62f37af..432c487f77b4 100644
@@ -663,8 +663,8 @@ static int pxa_gpio_probe(struct platform_device *pdev)
 	pchip->irq1 = irq1;
 
 	gpio_reg_base = devm_platform_ioremap_resource(pdev, 0);
-	if (!gpio_reg_base)
-		return -EINVAL;
+	if (IS_ERR(gpio_reg_base))
+		return PTR_ERR(gpio_reg_base);
 
 	clk = clk_get(&pdev->dev, NULL);
 	if (IS_ERR(clk)) {
drivers/gpio/gpio-tegra.c +1 -0
index acb99eff9939..86568154cdb3 100644
@@ -368,6 +368,7 @@ static void tegra_gpio_irq_shutdown(struct irq_data *d)
 	struct tegra_gpio_info *tgi = bank->tgi;
 	unsigned int gpio = d->hwirq;
 
+	tegra_gpio_irq_mask(d);
 	gpiochip_unlock_as_irq(&tgi->gc, gpio);
 }
 
drivers/gpio/gpiolib.c +9 -2
index 00fb91feba70..2f350e3df965 100644
@@ -4025,7 +4025,9 @@ int gpiochip_lock_as_irq(struct gpio_chip *chip, unsigned int offset)
 		}
 	}
 
-	if (test_bit(FLAG_IS_OUT, &desc->flags)) {
+	/* To be valid for IRQ the line needs to be input or open drain */
+	if (test_bit(FLAG_IS_OUT, &desc->flags) &&
+	    !test_bit(FLAG_OPEN_DRAIN, &desc->flags)) {
 		chip_err(chip,
 			 "%s: tried to flag a GPIO set as output for IRQ\n",
 			 __func__);
@@ -4088,7 +4090,12 @@ void gpiochip_enable_irq(struct gpio_chip *chip, unsigned int offset)
 
 	if (!IS_ERR(desc) &&
 	    !WARN_ON(!test_bit(FLAG_USED_AS_IRQ, &desc->flags))) {
-		WARN_ON(test_bit(FLAG_IS_OUT, &desc->flags));
+		/*
+		 * We must not be output when using IRQ UNLESS we are
+		 * open drain.
+		 */
+		WARN_ON(test_bit(FLAG_IS_OUT, &desc->flags) &&
+			!test_bit(FLAG_OPEN_DRAIN, &desc->flags));
 		set_bit(FLAG_IRQ_IS_ENABLED, &desc->flags);
 	}
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +3 -2
index fa8ac9d19a7a..6326c1792270 100644
@@ -1304,7 +1304,7 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu(
 	}
 
 	/* Free the BO*/
-	amdgpu_bo_unref(&mem->bo);
+	drm_gem_object_put_unlocked(&mem->bo->tbo.base);
 	mutex_destroy(&mem->lock);
 	kfree(mem);
 
@@ -1647,7 +1647,8 @@ int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd,
 		 ALLOC_MEM_FLAGS_VRAM : ALLOC_MEM_FLAGS_GTT) |
 		ALLOC_MEM_FLAGS_WRITABLE | ALLOC_MEM_FLAGS_EXECUTABLE;
 
-	(*mem)->bo = amdgpu_bo_ref(bo);
+	drm_gem_object_get(&bo->tbo.base);
+	(*mem)->bo = bo;
 	(*mem)->va = va;
 	(*mem)->domain = (bo->preferred_domains & AMDGPU_GEM_DOMAIN_VRAM) ?
 		AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT;
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +1 -5
index 02702597ddeb..012df3d574bf 100644
@@ -4241,11 +4241,7 @@ static int gfx_v10_0_set_powergating_state(void *handle,
 	switch (adev->asic_type) {
 	case CHIP_NAVI10:
 	case CHIP_NAVI14:
-		if (!enable) {
-			amdgpu_gfx_off_ctrl(adev, false);
-			cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
-		} else
-			amdgpu_gfx_off_ctrl(adev, true);
+		amdgpu_gfx_off_ctrl(adev, enable);
 		break;
 	default:
 		break;
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +3 -9
index 906648fca9ef..914dbd901b98 100644
@@ -4734,10 +4734,9 @@ static int gfx_v9_0_set_powergating_state(void *handle,
 	switch (adev->asic_type) {
 	case CHIP_RAVEN:
 	case CHIP_RENOIR:
-		if (!enable) {
+		if (!enable)
 			amdgpu_gfx_off_ctrl(adev, false);
-			cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
-		}
+
 		if (adev->pg_flags & AMD_PG_SUPPORT_RLC_SMU_HS) {
 			gfx_v9_0_enable_sck_slow_down_on_power_up(adev, true);
 			gfx_v9_0_enable_sck_slow_down_on_power_down(adev, true);
@@ -4761,12 +4760,7 @@ static int gfx_v9_0_set_powergating_state(void *handle,
 			amdgpu_gfx_off_ctrl(adev, true);
 		break;
 	case CHIP_VEGA12:
-		if (!enable) {
-			amdgpu_gfx_off_ctrl(adev, false);
-			cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
-		} else {
-			amdgpu_gfx_off_ctrl(adev, true);
-		}
+		amdgpu_gfx_off_ctrl(adev, enable);
 		break;
 	default:
 		break;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +0 -7
index 0cd11d3d4cf4..8e7cffe10cc5 100644
@@ -7746,13 +7746,6 @@ static int dm_update_plane_state(struct dc *dc,
 			return -EINVAL;
 		}
 
-		if (new_plane_state->crtc_x <= -new_acrtc->max_cursor_width ||
-			new_plane_state->crtc_y <= -new_acrtc->max_cursor_height) {
-			DRM_DEBUG_ATOMIC("Bad cursor position %d, %d\n",
-							 new_plane_state->crtc_x, new_plane_state->crtc_y);
-			return -EINVAL;
-		}
-
 		return 0;
 	}
 
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c +5 -5
index 3abeff7722e3..e80371542622 100644
@@ -316,15 +316,15 @@ static void update_config(void *handle, struct cp_psp_stream_config *config)
 	struct mod_hdcp_display *display = &hdcp_work[link_index].display;
 	struct mod_hdcp_link *link = &hdcp_work[link_index].link;
 
-	memset(display, 0, sizeof(*display));
-	memset(link, 0, sizeof(*link));
-
-	display->index = aconnector->base.index;
-
 	if (config->dpms_off) {
 		hdcp_remove_display(hdcp_work, link_index, aconnector);
 		return;
 	}
+
+	memset(display, 0, sizeof(*display));
+	memset(link, 0, sizeof(*link));
+
+	display->index = aconnector->base.index;
 	display->state = MOD_HDCP_DISPLAY_ACTIVE;
 
 	if (aconnector->dc_sink != NULL)
drivers/gpu/drm/amd/display/dc/core/dc.c +95 -29

236 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/core/dc_stream.c +4 -36
index 8c20e9e907b2..4f0e7203dba4 100644
@@ -231,34 +231,6 @@ struct dc_stream_status *dc_stream_get_status(
 	return dc_stream_get_status_from_state(dc->current_state, stream);
 }
 
-static void delay_cursor_until_vupdate(struct pipe_ctx *pipe_ctx, struct dc *dc)
-{
-#if defined(CONFIG_DRM_AMD_DC_DCN)
-	unsigned int vupdate_line;
-	unsigned int lines_to_vupdate, us_to_vupdate, vpos, nvpos;
-	struct dc_stream_state *stream = pipe_ctx->stream;
-	unsigned int us_per_line;
-
-	if (!dc->hwss.get_vupdate_offset_from_vsync)
-		return;
-
-	vupdate_line = dc->hwss.get_vupdate_offset_from_vsync(pipe_ctx);
-	if (!dc_stream_get_crtc_position(dc, &stream, 1, &vpos, &nvpos))
-		return;
-
-	if (vpos >= vupdate_line)
-		return;
-
-	us_per_line =
-		stream->timing.h_total * 10000 / stream->timing.pix_clk_100hz;
-	lines_to_vupdate = vupdate_line - vpos;
-	us_to_vupdate = lines_to_vupdate * us_per_line;
-
-	/* 70 us is a conservative estimate of cursor update time*/
-	if (us_to_vupdate < 70)
-		udelay(us_to_vupdate);
-#endif
-}
 
 /**
  * dc_stream_set_cursor_attributes() - Update cursor attributes and set cursor surface address
@@ -298,9 +270,7 @@ bool dc_stream_set_cursor_attributes(
 
 		if (!pipe_to_program) {
 			pipe_to_program = pipe_ctx;
-
-			delay_cursor_until_vupdate(pipe_ctx, dc);
-			dc->hwss.pipe_control_lock(dc, pipe_to_program, true);
+			dc->hwss.cursor_lock(dc, pipe_to_program, true);
 		}
 
 		dc->hwss.set_cursor_attribute(pipe_ctx);
@@ -309,7 +279,7 @@ bool dc_stream_set_cursor_attributes(
 	}
 
 	if (pipe_to_program)
-		dc->hwss.pipe_control_lock(dc, pipe_to_program, false);
+		dc->hwss.cursor_lock(dc, pipe_to_program, false);
 
 	return true;
 }
@@ -349,16 +319,14 @@ bool dc_stream_set_cursor_position(
 
 		if (!pipe_to_program) {
 			pipe_to_program = pipe_ctx;
-
-			delay_cursor_until_vupdate(pipe_ctx, dc);
-			dc->hwss.pipe_control_lock(dc, pipe_to_program, true);
+			dc->hwss.cursor_lock(dc, pipe_to_program, true);
 		}
 
 		dc->hwss.set_cursor_position(pipe_ctx);
 	}
 
 	if (pipe_to_program)
-		dc->hwss.pipe_control_lock(dc, pipe_to_program, false);
+		dc->hwss.cursor_lock(dc, pipe_to_program, false);
 
 	return true;
 }
drivers/gpu/drm/amd/display/dc/dc_stream.h +1 -0
index 92096de79dec..a5c7ef47b8d3 100644
@@ -118,6 +118,7 @@ union stream_update_flags {
 		uint32_t dpms_off:1;
 		uint32_t gamut_remap:1;
 		uint32_t wb_update:1;
+		uint32_t dsc_changed : 1;
 	} bits;
 
 	uint32_t raw;
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +9 -21
index 5b689273ff44..454a123b92fc 100644
@@ -2574,17 +2574,6 @@ static void dce110_apply_ctx_for_surface(
 	if (dc->fbc_compressor)
 		dc->fbc_compressor->funcs->disable_fbc(dc->fbc_compressor);
 
-	for (i = 0; i < dc->res_pool->pipe_count; i++) {
-		struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i];
-		struct pipe_ctx *old_pipe_ctx = &dc->current_state->res_ctx.pipe_ctx[i];
-
-		if (stream == pipe_ctx->stream) {
-			if (!pipe_ctx->top_pipe &&
-				(pipe_ctx->plane_state || old_pipe_ctx->plane_state))
-				dc->hwss.pipe_control_lock(dc, pipe_ctx, true);
-		}
-	}
-
 	for (i = 0; i < dc->res_pool->pipe_count; i++) {
 		struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i];
 
@@ -2607,20 +2596,16 @@ static void dce110_apply_ctx_for_surface(
 
 	}
 
-	for (i = 0; i < dc->res_pool->pipe_count; i++) {
-		struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i];
-		struct pipe_ctx *old_pipe_ctx = &dc->current_state->res_ctx.pipe_ctx[i];
-
-		if ((stream == pipe_ctx->stream) &&
-			(!pipe_ctx->top_pipe) &&
-			(pipe_ctx->plane_state || old_pipe_ctx->plane_state))
-			dc->hwss.pipe_control_lock(dc, pipe_ctx, false);
-	}
-
 	if (dc->fbc_compressor)
 		enable_fbc(dc, context);
 }
 
+static void dce110_post_unlock_program_front_end(
+		struct dc *dc,
+		struct dc_state *context)
+{
+}
+
 static void dce110_power_down_fe(struct dc *dc, struct pipe_ctx *pipe_ctx)
 {
 	struct dce_hwseq *hws = dc->hwseq;
@@ -2722,6 +2707,7 @@ static const struct hw_sequencer_funcs dce110_funcs = {
 	.init_hw = init_hw,
 	.apply_ctx_to_hw = dce110_apply_ctx_to_hw,
 	.apply_ctx_for_surface = dce110_apply_ctx_for_surface,
+	.post_unlock_program_front_end = dce110_post_unlock_program_front_end,
 	.update_plane_addr = update_plane_addr,
 	.update_pending_status = dce110_update_pending_status,
 	.enable_accelerated_mode = dce110_enable_accelerated_mode,
@@ -2736,6 +2722,8 @@ static const struct hw_sequencer_funcs dce110_funcs = {
 	.disable_audio_stream = dce110_disable_audio_stream,
 	.disable_plane = dce110_power_down_fe,
 	.pipe_control_lock = dce_pipe_control_lock,
+	.interdependent_update_lock = NULL,
+	.cursor_lock = dce_pipe_control_lock,
 	.prepare_bandwidth = dce110_prepare_bandwidth,
 	.optimize_bandwidth = dce110_optimize_bandwidth,
 	.set_drr = set_drr,
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +116 -32

222 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.h +13 -0
index 4d20f6586bb5..42b6e016d71e 100644
@@ -34,6 +34,11 @@ struct dc;
 void dcn10_hw_sequencer_construct(struct dc *dc);
 
 int dcn10_get_vupdate_offset_from_vsync(struct pipe_ctx *pipe_ctx);
+void dcn10_calc_vupdate_position(
+		struct dc *dc,
+		struct pipe_ctx *pipe_ctx,
+		uint32_t *start_line,
+		uint32_t *end_line);
 void dcn10_setup_vupdate_interrupt(struct dc *dc, struct pipe_ctx *pipe_ctx);
 enum dc_status dcn10_enable_stream_timing(
 		struct pipe_ctx *pipe_ctx,
@@ -49,6 +54,7 @@ void dcn10_pipe_control_lock(
 	struct dc *dc,
 	struct pipe_ctx *pipe,
 	bool lock);
+void dcn10_cursor_lock(struct dc *dc, struct pipe_ctx *pipe, bool lock);
 void dcn10_blank_pixel_data(
 		struct dc *dc,
 		struct pipe_ctx *pipe_ctx,
@@ -70,11 +76,18 @@ void dcn10_reset_hw_ctx_wrap(
 		struct dc *dc,
 		struct dc_state *context);
 void dcn10_disable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx);
+void dcn10_lock_all_pipes(
+		struct dc *dc,
+		struct dc_state *context,
+		bool lock);
 void dcn10_apply_ctx_for_surface(
 		struct dc *dc,
 		const struct dc_stream_state *stream,
 		int num_planes,
 		struct dc_state *context);
+void dcn10_post_unlock_program_front_end(
+		struct dc *dc,
+		struct dc_state *context);
 void dcn10_hubp_pg_control(
 		struct dce_hwseq *hws,
 		unsigned int hubp_inst,
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_init.c +4 -0
index e7e5352ec424..0900c861204f 100644
@@ -32,6 +32,7 @@ static const struct hw_sequencer_funcs dcn10_funcs = {
 	.init_hw = dcn10_init_hw,
 	.apply_ctx_to_hw = dce110_apply_ctx_to_hw,
 	.apply_ctx_for_surface = dcn10_apply_ctx_for_surface,
+	.post_unlock_program_front_end = dcn10_post_unlock_program_front_end,
 	.update_plane_addr = dcn10_update_plane_addr,
 	.update_dchub = dcn10_update_dchub,
 	.update_pending_status = dcn10_update_pending_status,
@@ -49,6 +50,8 @@ static const struct hw_sequencer_funcs dcn10_funcs = {
 	.disable_audio_stream = dce110_disable_audio_stream,
 	.disable_plane = dcn10_disable_plane,
 	.pipe_control_lock = dcn10_pipe_control_lock,
+	.cursor_lock = dcn10_cursor_lock,
+	.interdependent_update_lock = dcn10_lock_all_pipes,
 	.prepare_bandwidth = dcn10_prepare_bandwidth,
 	.optimize_bandwidth = dcn10_optimize_bandwidth,
 	.set_drr = dcn10_set_drr,
@@ -69,6 +72,7 @@ static const struct hw_sequencer_funcs dcn10_funcs = {
 	.set_clock = dcn10_set_clock,
 	.get_clock = dcn10_get_clock,
 	.get_vupdate_offset_from_vsync = dcn10_get_vupdate_offset_from_vsync,
+	.calc_vupdate_position = dcn10_calc_vupdate_position,
 };
 
 static const struct hwseq_private_funcs dcn10_private_funcs = {
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c +15 -0
index 04f863499cfb..3fcd408e9103 100644
@@ -223,6 +223,9 @@ struct mpcc *mpc1_insert_plane(
 	REG_SET(MPCC_TOP_SEL[mpcc_id], 0, MPCC_TOP_SEL, dpp_id);
 	REG_SET(MPCC_OPP_ID[mpcc_id], 0, MPCC_OPP_ID, tree->opp_id);
 
+	/* Configure VUPDATE lock set for this MPCC to map to the OPP */
+	REG_SET(MPCC_UPDATE_LOCK_SEL[mpcc_id], 0, MPCC_UPDATE_LOCK_SEL, tree->opp_id);
+
 	/* update mpc tree mux setting */
 	if (tree->opp_list == insert_above_mpcc) {
 		/* insert the toppest mpcc */
@@ -318,6 +321,7 @@ void mpc1_remove_mpcc(
 		REG_SET(MPCC_TOP_SEL[mpcc_id], 0, MPCC_TOP_SEL, 0xf);
 		REG_SET(MPCC_BOT_SEL[mpcc_id], 0, MPCC_BOT_SEL, 0xf);
 		REG_SET(MPCC_OPP_ID[mpcc_id],  0, MPCC_OPP_ID,  0xf);
+		REG_SET(MPCC_UPDATE_LOCK_SEL[mpcc_id], 0, MPCC_UPDATE_LOCK_SEL, 0xf);
 
 		/* mark this mpcc as not in use */
 		mpc10->mpcc_in_use_mask &= ~(1 << mpcc_id);
@@ -328,6 +332,7 @@ void mpc1_remove_mpcc(
 		REG_SET(MPCC_TOP_SEL[mpcc_id], 0, MPCC_TOP_SEL, 0xf);
 		REG_SET(MPCC_BOT_SEL[mpcc_id], 0, MPCC_BOT_SEL, 0xf);
 		REG_SET(MPCC_OPP_ID[mpcc_id],  0, MPCC_OPP_ID,  0xf);
+		REG_SET(MPCC_UPDATE_LOCK_SEL[mpcc_id], 0, MPCC_UPDATE_LOCK_SEL, 0xf);
 	}
 }
 
@@ -361,6 +366,7 @@ void mpc1_mpc_init(struct mpc *mpc)
 		REG_SET(MPCC_TOP_SEL[mpcc_id], 0, MPCC_TOP_SEL, 0xf);
 		REG_SET(MPCC_BOT_SEL[mpcc_id], 0, MPCC_BOT_SEL, 0xf);
 		REG_SET(MPCC_OPP_ID[mpcc_id],  0, MPCC_OPP_ID,  0xf);
+		REG_SET(MPCC_UPDATE_LOCK_SEL[mpcc_id], 0, MPCC_UPDATE_LOCK_SEL, 0xf);
 
 		mpc1_init_mpcc(&(mpc->mpcc_array[mpcc_id]), mpcc_id);
 	}
@@ -381,6 +387,7 @@ void mpc1_mpc_init_single_inst(struct mpc *mpc, unsigned int mpcc_id)
 	REG_SET(MPCC_TOP_SEL[mpcc_id], 0, MPCC_TOP_SEL, 0xf);
 	REG_SET(MPCC_BOT_SEL[mpcc_id], 0, MPCC_BOT_SEL, 0xf);
 	REG_SET(MPCC_OPP_ID[mpcc_id],  0, MPCC_OPP_ID,  0xf);
+	REG_SET(MPCC_UPDATE_LOCK_SEL[mpcc_id], 0, MPCC_UPDATE_LOCK_SEL, 0xf);
 
 	mpc1_init_mpcc(&(mpc->mpcc_array[mpcc_id]), mpcc_id);
 
@@ -453,6 +460,13 @@ void mpc1_read_mpcc_state(
 			MPCC_BUSY, &s->busy);
 }
 
+void mpc1_cursor_lock(struct mpc *mpc, int opp_id, bool lock)
+{
+	struct dcn10_mpc *mpc10 = TO_DCN10_MPC(mpc);
+
+	REG_SET(CUR[opp_id], 0, CUR_VUPDATE_LOCK_SET, lock ? 1 : 0);
+}
+
 static const struct mpc_funcs dcn10_mpc_funcs = {
 	.read_mpcc_state = mpc1_read_mpcc_state,
 	.insert_plane = mpc1_insert_plane,
@@ -464,6 +478,7 @@ static const struct mpc_funcs dcn10_mpc_funcs = {
 	.assert_mpcc_idle_before_connect = mpc1_assert_mpcc_idle_before_connect,
 	.init_mpcc_list_from_hw = mpc1_init_mpcc_list_from_hw,
 	.update_blending = mpc1_update_blending,
+	.cursor_lock = mpc1_cursor_lock,
 	.set_denorm = NULL,
 	.set_denorm_clamp = NULL,
 	.set_output_csc = NULL,
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.h +14 -6
index 962a68e322ee..66a4719c22a0 100644
@@ -39,11 +39,12 @@
 	SRII(MPCC_BG_G_Y, MPCC, inst),\
 	SRII(MPCC_BG_R_CR, MPCC, inst),\
 	SRII(MPCC_BG_B_CB, MPCC, inst),\
-	SRII(MPCC_BG_B_CB, MPCC, inst),\
-	SRII(MPCC_SM_CONTROL, MPCC, inst)
+	SRII(MPCC_SM_CONTROL, MPCC, inst),\
+	SRII(MPCC_UPDATE_LOCK_SEL, MPCC, inst)
 
 #define MPC_OUT_MUX_COMMON_REG_LIST_DCN1_0(inst) \
-	SRII(MUX, MPC_OUT, inst)
+	SRII(MUX, MPC_OUT, inst),\
+	VUPDATE_SRII(CUR, VUPDATE_LOCK_SET, inst)
 
 #define MPC_COMMON_REG_VARIABLE_LIST \
 	uint32_t MPCC_TOP_SEL[MAX_MPCC]; \
@@ -55,7 +56,9 @@
 	uint32_t MPCC_BG_R_CR[MAX_MPCC]; \
 	uint32_t MPCC_BG_B_CB[MAX_MPCC]; \
 	uint32_t MPCC_SM_CONTROL[MAX_MPCC]; \
-	uint32_t MUX[MAX_OPP];
+	uint32_t MUX[MAX_OPP]; \
+	uint32_t MPCC_UPDATE_LOCK_SEL[MAX_MPCC]; \
+	uint32_t CUR[MAX_OPP];
 
 #define MPC_COMMON_MASK_SH_LIST_DCN1_0(mask_sh)\
 	SF(MPCC0_MPCC_TOP_SEL, MPCC_TOP_SEL, mask_sh),\
@@ -78,7 +81,8 @@
 	SF(MPCC0_MPCC_SM_CONTROL, MPCC_SM_FIELD_ALT, mask_sh),\
 	SF(MPCC0_MPCC_SM_CONTROL, MPCC_SM_FORCE_NEXT_FRAME_POL, mask_sh),\
 	SF(MPCC0_MPCC_SM_CONTROL, MPCC_SM_FORCE_NEXT_TOP_POL, mask_sh),\
-	SF(MPC_OUT0_MUX, MPC_OUT_MUX, mask_sh)
+	SF(MPC_OUT0_MUX, MPC_OUT_MUX, mask_sh),\
+	SF(MPCC0_MPCC_UPDATE_LOCK_SEL, MPCC_UPDATE_LOCK_SEL, mask_sh)
 
 #define MPC_REG_FIELD_LIST(type) \
 	type MPCC_TOP_SEL;\
@@ -101,7 +105,9 @@
 	type MPCC_SM_FIELD_ALT;\
 	type MPCC_SM_FORCE_NEXT_FRAME_POL;\
 	type MPCC_SM_FORCE_NEXT_TOP_POL;\
-	type MPC_OUT_MUX;
+	type MPC_OUT_MUX;\
+	type MPCC_UPDATE_LOCK_SEL;\
+	type CUR_VUPDATE_LOCK_SET;
 
 struct dcn_mpc_registers {
 	MPC_COMMON_REG_VARIABLE_LIST
@@ -192,4 +198,6 @@ void mpc1_read_mpcc_state(
 		int mpcc_inst,
 		struct mpcc_state *s);
 
+void mpc1_cursor_lock(struct mpc *mpc, int opp_id, bool lock);
+
 #endif
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c +12 -2
index 3b71898e859e..e3c4c06ac191 100644
@@ -181,6 +181,14 @@ enum dcn10_clk_src_array_id {
 	.reg_name[id] = BASE(mm ## block ## id ## _ ## reg_name ## _BASE_IDX) + \
 					mm ## block ## id ## _ ## reg_name
 
+#define VUPDATE_SRII(reg_name, block, id)\
+	.reg_name[id] = BASE(mm ## reg_name ## 0 ## _ ## block ## id ## _BASE_IDX) + \
+					mm ## reg_name ## 0 ## _ ## block ## id
+
+/* set field/register/bitfield name */
+#define SFRB(field_name, reg_name, bitfield, post_fix)\
+	.field_name = reg_name ## __ ## bitfield ## post_fix
+
 /* NBIO */
 #define NBIO_BASE_INNER(seg) \
 	NBIF_BASE__INST0_SEG ## seg
@@ -419,11 +427,13 @@ static const struct dcn_mpc_registers mpc_regs = {
 };
 
 static const struct dcn_mpc_shift mpc_shift = {
-	MPC_COMMON_MASK_SH_LIST_DCN1_0(__SHIFT)
+	MPC_COMMON_MASK_SH_LIST_DCN1_0(__SHIFT),\
+	SFRB(CUR_VUPDATE_LOCK_SET, CUR0_VUPDATE_LOCK_SET0, CUR0_VUPDATE_LOCK_SET, __SHIFT)
 };
 
 static const struct dcn_mpc_mask mpc_mask = {
-	MPC_COMMON_MASK_SH_LIST_DCN1_0(_MASK),
+	MPC_COMMON_MASK_SH_LIST_DCN1_0(_MASK),\
+	SFRB(CUR_VUPDATE_LOCK_SET, CUR0_VUPDATE_LOCK_SET0, CUR0_VUPDATE_LOCK_SET, _MASK)
 };
 
 #define tg_regs(id)\
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +50 -58

170 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.h +3 -4
index 02c9be5ebd47..63ce763f148e 100644
@@ -35,6 +35,9 @@ bool dcn20_set_shaper_3dlut(
 void dcn20_program_front_end_for_ctx(
 		struct dc *dc,
 		struct dc_state *context);
+void dcn20_post_unlock_program_front_end(
+		struct dc *dc,
+		struct dc_state *context);
 void dcn20_update_plane_addr(const struct dc *dc, struct pipe_ctx *pipe_ctx);
 void dcn20_update_mpcc(struct dc *dc, struct pipe_ctx *pipe_ctx);
 bool dcn20_set_input_transfer_func(struct dc *dc, struct pipe_ctx *pipe_ctx,
@@ -58,10 +61,6 @@ void dcn20_pipe_control_lock(
 	struct dc *dc,
 	struct pipe_ctx *pipe,
 	bool lock);
-void dcn20_pipe_control_lock_global(
-		struct dc *dc,
-		struct pipe_ctx *pipe,
-		bool lock);
 void dcn20_prepare_bandwidth(
 		struct dc *dc,
 		struct dc_state *context);
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_init.c +4 -1
index 5e640f17d3d4..71bfde2cf646 100644
@@ -33,6 +33,7 @@ static const struct hw_sequencer_funcs dcn20_funcs = {
 	.apply_ctx_to_hw = dce110_apply_ctx_to_hw,
 	.apply_ctx_for_surface = NULL,
 	.program_front_end_for_ctx = dcn20_program_front_end_for_ctx,
+	.post_unlock_program_front_end = dcn20_post_unlock_program_front_end,
 	.update_plane_addr = dcn20_update_plane_addr,
 	.update_dchub = dcn10_update_dchub,
 	.update_pending_status = dcn10_update_pending_status,
@@ -50,7 +51,8 @@ static const struct hw_sequencer_funcs dcn20_funcs = {
 	.disable_audio_stream = dce110_disable_audio_stream,
 	.disable_plane = dcn20_disable_plane,
 	.pipe_control_lock = dcn20_pipe_control_lock,
-	.pipe_control_lock_global = dcn20_pipe_control_lock_global,
+	.interdependent_update_lock = dcn10_lock_all_pipes,
+	.cursor_lock = dcn10_cursor_lock,
 	.prepare_bandwidth = dcn20_prepare_bandwidth,
 	.optimize_bandwidth = dcn20_optimize_bandwidth,
 	.update_bandwidth = dcn20_update_bandwidth,
@@ -81,6 +83,7 @@ static const struct hw_sequencer_funcs dcn20_funcs = {
 	.init_vm_ctx = dcn20_init_vm_ctx,
 	.set_flip_control_gsl = dcn20_set_flip_control_gsl,
 	.get_vupdate_offset_from_vsync = dcn10_get_vupdate_offset_from_vsync,
+	.calc_vupdate_position = dcn10_calc_vupdate_position,
 };
 
 static const struct hwseq_private_funcs dcn20_private_funcs = {
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c +1 -0
index de9c857ab3e9..570dfd9a243f 100644
@@ -545,6 +545,7 @@ const struct mpc_funcs dcn20_mpc_funcs = {
 	.mpc_init = mpc1_mpc_init,
 	.mpc_init_single_inst = mpc1_mpc_init_single_inst,
 	.update_blending = mpc2_update_blending,
+	.cursor_lock = mpc1_cursor_lock,
 	.get_mpcc_for_dpp = mpc2_get_mpcc_for_dpp,
 	.wait_for_idle = mpc2_assert_idle_mpcc,
 	.assert_mpcc_idle_before_connect = mpc2_assert_mpcc_idle_before_connect,
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.h +2 -1
index c78fd5123497..496658f420db 100644
@@ -179,7 +179,8 @@
 	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MAX_G_Y, mask_sh),\
 	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MIN_G_Y, mask_sh),\
 	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MAX_B_CB, mask_sh),\
-	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MIN_B_CB, mask_sh)
+	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MIN_B_CB, mask_sh),\
+	SF(CUR_VUPDATE_LOCK_SET0, CUR_VUPDATE_LOCK_SET, mask_sh)
 
 /*
  *	DCN2 MPC_OCSC debug status register:
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +4 -0
index 1b0bca9587d0..1ba47f3a6857 100644
@@ -506,6 +506,10 @@ enum dcn20_clk_src_array_id {
 	.block ## _ ## reg_name[id] = BASE(mm ## block ## id ## _ ## reg_name ## _BASE_IDX) + \
 					mm ## block ## id ## _ ## reg_name
 
+#define VUPDATE_SRII(reg_name, block, id)\
+	.reg_name[id] = BASE(mm ## reg_name ## _ ## block ## id ## _BASE_IDX) + \
+					mm ## reg_name ## _ ## block ## id
+
 /* NBIO */
 #define NBIO_BASE_INNER(seg) \
 	NBIO_BASE__INST0_SEG ## seg
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_init.c +4 -1
index fddbd59bf4f9..7f53bf724fce 100644
@@ -34,6 +34,7 @@ static const struct hw_sequencer_funcs dcn21_funcs = {
 	.apply_ctx_to_hw = dce110_apply_ctx_to_hw,
 	.apply_ctx_for_surface = NULL,
 	.program_front_end_for_ctx = dcn20_program_front_end_for_ctx,
+	.post_unlock_program_front_end = dcn20_post_unlock_program_front_end,
 	.update_plane_addr = dcn20_update_plane_addr,
 	.update_dchub = dcn10_update_dchub,
 	.update_pending_status = dcn10_update_pending_status,
@@ -51,7 +52,8 @@ static const struct hw_sequencer_funcs dcn21_funcs = {
 	.disable_audio_stream = dce110_disable_audio_stream,
 	.disable_plane = dcn20_disable_plane,
 	.pipe_control_lock = dcn20_pipe_control_lock,
-	.pipe_control_lock_global = dcn20_pipe_control_lock_global,
+	.interdependent_update_lock = dcn10_lock_all_pipes,
+	.cursor_lock = dcn10_cursor_lock,
 	.prepare_bandwidth = dcn20_prepare_bandwidth,
 	.optimize_bandwidth = dcn20_optimize_bandwidth,
 	.update_bandwidth = dcn20_update_bandwidth,
@@ -84,6 +86,7 @@ static const struct hw_sequencer_funcs dcn21_funcs = {
 	.optimize_pwr_state = dcn21_optimize_pwr_state,
 	.exit_optimized_pwr_state = dcn21_exit_optimized_pwr_state,
 	.get_vupdate_offset_from_vsync = dcn10_get_vupdate_offset_from_vsync,
+	.calc_vupdate_position = dcn10_calc_vupdate_position,
 	.set_cursor_position = dcn10_set_cursor_position,
 	.set_cursor_attribute = dcn10_set_cursor_attribute,
 	.set_cursor_sdr_white_level = dcn10_set_cursor_sdr_white_level,
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c +4 -0
index 122d3e734c59..5286cc7d1261 100644
@@ -306,6 +306,10 @@ struct _vcs_dpi_soc_bounding_box_st dcn2_1_soc = {
 	.block ## _ ## reg_name[id] = BASE(mm ## block ## id ## _ ## reg_name ## _BASE_IDX) + \
 					mm ## block ## id ## _ ## reg_name
 
+#define VUPDATE_SRII(reg_name, block, id)\
+	.reg_name[id] = BASE(mm ## reg_name ## _ ## block ## id ## _BASE_IDX) + \
+					mm ## reg_name ## _ ## block ## id
+
 /* NBIO */
 #define NBIO_BASE_INNER(seg) \
 	NBIF0_BASE__INST0_SEG ## seg
drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h +16 -0
index 094afc4c8173..50ee8aa7ec3b 100644
@@ -210,6 +210,22 @@ struct mpc_funcs {
 		struct mpcc_blnd_cfg *blnd_cfg,
 		int mpcc_id);
 
+	/*
+	 * Lock cursor updates for the specified OPP.
+	 * OPP defines the set of MPCC that are locked together for cursor.
+	 *
+	 * Parameters:
+	 * [in] 	mpc		- MPC context.
+	 * [in]     opp_id	- The OPP to lock cursor updates on
+	 * [in]		lock	- lock/unlock the OPP
+	 *
+	 * Return:  void
+	 */
+	void (*cursor_lock)(
+			struct mpc *mpc,
+			int opp_id,
+			bool lock);
+
 	struct mpcc* (*get_mpcc_for_dpp)(
 			struct mpc_tree *tree,
 			int dpp_id);
drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h +10 -2
index 209118f9f193..08307f3796e3 100644
@@ -66,6 +66,8 @@ struct hw_sequencer_funcs {
 			int num_planes, struct dc_state *context);
 	void (*program_front_end_for_ctx)(struct dc *dc,
 			struct dc_state *context);
+	void (*post_unlock_program_front_end)(struct dc *dc,
+			struct dc_state *context);
 	void (*update_plane_addr)(const struct dc *dc,
 			struct pipe_ctx *pipe_ctx);
 	void (*update_dchub)(struct dce_hwseq *hws,
@@ -78,17 +80,23 @@ struct hw_sequencer_funcs {
 	void (*update_pending_status)(struct pipe_ctx *pipe_ctx);
 
 	/* Pipe Lock Related */
-	void (*pipe_control_lock_global)(struct dc *dc,
-			struct pipe_ctx *pipe, bool lock);
 	void (*pipe_control_lock)(struct dc *dc,
 			struct pipe_ctx *pipe, bool lock);
+	void (*interdependent_update_lock)(struct dc *dc,
+			struct dc_state *context, bool lock);
 	void (*set_flip_control_gsl)(struct pipe_ctx *pipe_ctx,
 			bool flip_immediate);
+	void (*cursor_lock)(struct dc *dc, struct pipe_ctx *pipe, bool lock);
 
 	/* Timing Related */
 	void (*get_position)(struct pipe_ctx **pipe_ctx, int num_pipes,
 			struct crtc_position *position);
 	int (*get_vupdate_offset_from_vsync)(struct pipe_ctx *pipe_ctx);
+	void (*calc_vupdate_position)(
+			struct dc *dc,
+			struct pipe_ctx *pipe_ctx,
+			uint32_t *start_line,
+			uint32_t *end_line);
 	void (*enable_per_frame_crtc_position_reset)(struct dc *dc,
 			int group_size, struct pipe_ctx *grouped_pipes[]);
 	void (*enable_timing_synchronization)(struct dc *dc,
drivers/gpu/drm/amd/powerplay/amd_powerplay.c +3 -3
index e4e5a53b2b4e..8e2acb4df860 100644
@@ -319,12 +319,12 @@ static void pp_dpm_en_umd_pstate(struct pp_hwmgr  *hwmgr,
 		if (*level & profile_mode_mask) {
 			hwmgr->saved_dpm_level = hwmgr->dpm_level;
 			hwmgr->en_umd_pstate = true;
-			amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
-						AMD_IP_BLOCK_TYPE_GFX,
-						AMD_CG_STATE_UNGATE);
 			amdgpu_device_ip_set_powergating_state(hwmgr->adev,
 					AMD_IP_BLOCK_TYPE_GFX,
 					AMD_PG_STATE_UNGATE);
+			amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
+						AMD_IP_BLOCK_TYPE_GFX,
+						AMD_CG_STATE_UNGATE);
 		}
 	} else {
 		/* exit umd pstate, restore level, enable gfx cg*/
drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +3 -3
index 96e81c7bc266..e2565967db07 100644
@@ -1675,12 +1675,12 @@ static int smu_enable_umd_pstate(void *handle,
 		if (*level & profile_mode_mask) {
 			smu_dpm_ctx->saved_dpm_level = smu_dpm_ctx->dpm_level;
 			smu_dpm_ctx->enable_umd_pstate = true;
-			amdgpu_device_ip_set_clockgating_state(smu->adev,
-							       AMD_IP_BLOCK_TYPE_GFX,
-							       AMD_CG_STATE_UNGATE);
 			amdgpu_device_ip_set_powergating_state(smu->adev,
 							       AMD_IP_BLOCK_TYPE_GFX,
 							       AMD_PG_STATE_UNGATE);
+			amdgpu_device_ip_set_clockgating_state(smu->adev,
+							       AMD_IP_BLOCK_TYPE_GFX,
+							       AMD_CG_STATE_UNGATE);
 		}
 	} else {
 		/* exit umd pstate, restore level, enable gfx cg*/
drivers/gpu/drm/ingenic/ingenic-drm.c +3 -3
index bcba2f024842..e9900e078d51 100644
@@ -328,8 +328,8 @@ static int ingenic_drm_crtc_atomic_check(struct drm_crtc *crtc,
 	if (!drm_atomic_crtc_needs_modeset(state))
 		return 0;
 
-	if (state->mode.hdisplay > priv->soc_info->max_height ||
-	    state->mode.vdisplay > priv->soc_info->max_width)
+	if (state->mode.hdisplay > priv->soc_info->max_width ||
+	    state->mode.vdisplay > priv->soc_info->max_height)
 		return -EINVAL;
 
 	rate = clk_round_rate(priv->pix_clk,
@@ -474,7 +474,7 @@ static int ingenic_drm_encoder_atomic_check(struct drm_encoder *encoder,
 
 static irqreturn_t ingenic_drm_irq_handler(int irq, void *arg)
 {
-	struct ingenic_drm *priv = arg;
+	struct ingenic_drm *priv = drm_device_get_priv(arg);
 	unsigned int state;
 
 	regmap_read(priv->map, JZ_REG_LCD_STATE, &state);
drivers/gpu/drm/meson/meson_drv.c +1 -3
index b5f5eb7b4bb9..8c2e1b47e81a 100644
@@ -412,9 +412,7 @@ static int __maybe_unused meson_drv_pm_resume(struct device *dev)
 	if (priv->afbcd.ops)
 		priv->afbcd.ops->init(priv);
 
-	drm_mode_config_helper_resume(priv->drm);
-
-	return 0;
+	return drm_mode_config_helper_resume(priv->drm);
 }
 
 static int compare_of(struct device *dev, void *data)
drivers/hwmon/nct7904.c +3 -1
index 281c81edabc6..dfb122b5e1b7 100644
@@ -356,6 +356,7 @@ static int nct7904_read_temp(struct device *dev, u32 attr, int channel,
 	struct nct7904_data *data = dev_get_drvdata(dev);
 	int ret, temp;
 	unsigned int reg1, reg2, reg3;
+	s8 temps;
 
 	switch (attr) {
 	case hwmon_temp_input:
@@ -461,7 +462,8 @@ static int nct7904_read_temp(struct device *dev, u32 attr, int channel,
 
 	if (ret < 0)
 		return ret;
-	*val = ret * 1000;
+	temps = ret;
+	*val = temps * 1000;
 	return 0;
 }
 
drivers/infiniband/core/rdma_core.c +13 -7
index bf8e149d3191..e0a5e897e4b1 100644
@@ -153,9 +153,9 @@ static int uverbs_destroy_uobject(struct ib_uobject *uobj,
 	uobj->context = NULL;
 
 	/*
-	 * For DESTROY the usecnt is held write locked, the caller is expected
-	 * to put it unlock and put the object when done with it. Only DESTROY
-	 * can remove the IDR handle.
+	 * For DESTROY the usecnt is not changed, the caller is expected to
+	 * manage it via uobj_put_destroy(). Only DESTROY can remove the IDR
+	 * handle.
 	 */
 	if (reason != RDMA_REMOVE_DESTROY)
 		atomic_set(&uobj->usecnt, 0);
@@ -187,7 +187,7 @@ static int uverbs_destroy_uobject(struct ib_uobject *uobj,
 /*
  * This calls uverbs_destroy_uobject() using the RDMA_REMOVE_DESTROY
  * sequence. It should only be used from command callbacks. On success the
- * caller must pair this with rdma_lookup_put_uobject(LOOKUP_WRITE). This
+ * caller must pair this with uobj_put_destroy(). This
  * version requires the caller to have already obtained an
  * LOOKUP_DESTROY uobject kref.
  */
@@ -198,6 +198,13 @@ int uobj_destroy(struct ib_uobject *uobj, struct uverbs_attr_bundle *attrs)
 
 	down_read(&ufile->hw_destroy_rwsem);
 
+	/*
+	 * Once the uobject is destroyed by RDMA_REMOVE_DESTROY then it is left
+	 * write locked as the callers put it back with UVERBS_LOOKUP_DESTROY.
+	 * This is because any other concurrent thread can still see the object
+	 * in the xarray due to RCU. Leaving it locked ensures nothing else will
+	 * touch it.
+	 */
 	ret = uverbs_try_lock_object(uobj, UVERBS_LOOKUP_WRITE);
 	if (ret)
 		goto out_unlock;
@@ -216,7 +223,7 @@ int uobj_destroy(struct ib_uobject *uobj, struct uverbs_attr_bundle *attrs)
 /*
  * uobj_get_destroy destroys the HW object and returns a handle to the uobj
  * with a NULL object pointer. The caller must pair this with
- * uverbs_put_destroy.
+ * uobj_put_destroy().
  */
 struct ib_uobject *__uobj_get_destroy(const struct uverbs_api_object *obj,
 				      u32 id, struct uverbs_attr_bundle *attrs)
@@ -250,8 +257,7 @@ int __uobj_perform_destroy(const struct uverbs_api_object *obj, u32 id,
 	uobj = __uobj_get_destroy(obj, id, attrs);
 	if (IS_ERR(uobj))
 		return PTR_ERR(uobj);
-
-	rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_WRITE);
+	uobj_put_destroy(uobj);
 	return 0;
 }
 
drivers/infiniband/hw/i40iw/i40iw_cm.c +0 -8
index bb78d3280acc..fa7a5ff498c7 100644
@@ -1987,7 +1987,6 @@ static int i40iw_addr_resolve_neigh(struct i40iw_device *iwdev,
 	struct rtable *rt;
 	struct neighbour *neigh;
 	int rc = arpindex;
-	struct net_device *netdev = iwdev->netdev;
 	__be32 dst_ipaddr = htonl(dst_ip);
 	__be32 src_ipaddr = htonl(src_ip);
 
@@ -1997,9 +1996,6 @@ static int i40iw_addr_resolve_neigh(struct i40iw_device *iwdev,
 		return rc;
 	}
 
-	if (netif_is_bond_slave(netdev))
-		netdev = netdev_master_upper_dev_get(netdev);
-
 	neigh = dst_neigh_lookup(&rt->dst, &dst_ipaddr);
 
 	rcu_read_lock();
@@ -2065,7 +2061,6 @@ static int i40iw_addr_resolve_neigh_ipv6(struct i40iw_device *iwdev,
 {
 	struct neighbour *neigh;
 	int rc = arpindex;
-	struct net_device *netdev = iwdev->netdev;
 	struct dst_entry *dst;
 	struct sockaddr_in6 dst_addr;
 	struct sockaddr_in6 src_addr;
@@ -2086,9 +2081,6 @@ static int i40iw_addr_resolve_neigh_ipv6(struct i40iw_device *iwdev,
 		return rc;
 	}
 
-	if (netif_is_bond_slave(netdev))
-		netdev = netdev_master_upper_dev_get(netdev);
-
 	neigh = dst_neigh_lookup(dst, dst_addr.sin6_addr.in6_u.u6_addr32);
 
 	rcu_read_lock();
drivers/infiniband/hw/mlx5/mr.c +1 -0
index 6fa0a83c19de..9a1747a97fb6 100644
@@ -1319,6 +1319,7 @@ struct ib_mr *mlx5_ib_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
 
 	if (is_odp_mr(mr)) {
 		to_ib_umem_odp(mr->umem)->private = mr;
+		init_waitqueue_head(&mr->q_deferred_work);
 		atomic_set(&mr->num_deferred_work, 0);
 		err = xa_err(xa_store(&dev->odp_mkeys,
 				      mlx5_base_mkey(mr->mmkey.key), &mr->mmkey,
drivers/infiniband/hw/qib/qib_sysfs.c +5 -4
index 568b21eb6ea1..021df0654ba7 100644
@@ -760,7 +760,7 @@ int qib_create_port_files(struct ib_device *ibdev, u8 port_num,
 		qib_dev_err(dd,
 			"Skipping linkcontrol sysfs info, (err %d) port %u\n",
 			ret, port_num);
-		goto bail;
+		goto bail_link;
 	}
 	kobject_uevent(&ppd->pport_kobj, KOBJ_ADD);
 
@@ -770,7 +770,7 @@ int qib_create_port_files(struct ib_device *ibdev, u8 port_num,
 		qib_dev_err(dd,
 			"Skipping sl2vl sysfs info, (err %d) port %u\n",
 			ret, port_num);
-		goto bail_link;
+		goto bail_sl;
 	}
 	kobject_uevent(&ppd->sl2vl_kobj, KOBJ_ADD);
 
@@ -780,7 +780,7 @@ int qib_create_port_files(struct ib_device *ibdev, u8 port_num,
 		qib_dev_err(dd,
 			"Skipping diag_counters sysfs info, (err %d) port %u\n",
 			ret, port_num);
-		goto bail_sl;
+		goto bail_diagc;
 	}
 	kobject_uevent(&ppd->diagc_kobj, KOBJ_ADD);
 
@@ -793,7 +793,7 @@ int qib_create_port_files(struct ib_device *ibdev, u8 port_num,
 		qib_dev_err(dd,
 		 "Skipping Congestion Control sysfs info, (err %d) port %u\n",
 		 ret, port_num);
-		goto bail_diagc;
+		goto bail_cc;
 	}
 
 	kobject_uevent(&ppd->pport_cc_kobj, KOBJ_ADD);
@@ -854,6 +854,7 @@ void qib_verbs_unregister_sysfs(struct qib_devdata *dd)
 				&cc_table_bin_attr);
 			kobject_put(&ppd->pport_cc_kobj);
 		}
+		kobject_put(&ppd->diagc_kobj);
 		kobject_put(&ppd->sl2vl_kobj);
 		kobject_put(&ppd->pport_kobj);
 	}
drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c +1 -1
index e580ae9cc55a..780fd2dfc07e 100644
@@ -829,7 +829,7 @@ static int pvrdma_pci_probe(struct pci_dev *pdev,
 	    !(pci_resource_flags(pdev, 1) & IORESOURCE_MEM)) {
 		dev_err(&pdev->dev, "PCI BAR region not MMIO\n");
 		ret = -ENOMEM;
-		goto err_free_device;
+		goto err_disable_pdev;
 	}
 
 	ret = pci_request_regions(pdev, DRV_NAME);
drivers/infiniband/ulp/ipoib/ipoib.h +4 -0
index 2aa3457a30ce..0e5f27caf2b2 100644
@@ -377,8 +377,12 @@ struct ipoib_dev_priv {
 	struct ipoib_rx_buf *rx_ring;
 
 	struct ipoib_tx_buf *tx_ring;
+	/* cyclic ring variables for managing tx_ring, for UD only */
 	unsigned int	     tx_head;
 	unsigned int	     tx_tail;
+	/* cyclic ring variables for counting overall outstanding send WRs */
+	unsigned int	     global_tx_head;
+	unsigned int	     global_tx_tail;
 	struct ib_sge	     tx_sge[MAX_SKB_FRAGS + 1];
 	struct ib_ud_wr      tx_wr;
 	struct ib_wc	     send_wc[MAX_SEND_CQE];
drivers/infiniband/ulp/ipoib/ipoib_cm.c +9 -6
index c59e00a0881f..9bf0fa30df28 100644
@@ -756,7 +756,8 @@ void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_
 		return;
 	}
 
-	if ((priv->tx_head - priv->tx_tail) == ipoib_sendq_size - 1) {
+	if ((priv->global_tx_head - priv->global_tx_tail) ==
+	    ipoib_sendq_size - 1) {
 		ipoib_dbg(priv, "TX ring 0x%x full, stopping kernel net queue\n",
 			  tx->qp->qp_num);
 		netif_stop_queue(dev);
@@ -786,7 +787,7 @@ void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_
 	} else {
 		netif_trans_update(dev);
 		++tx->tx_head;
-		++priv->tx_head;
+		++priv->global_tx_head;
 	}
 }
 
@@ -820,10 +821,11 @@ void ipoib_cm_handle_tx_wc(struct net_device *dev, struct ib_wc *wc)
 	netif_tx_lock(dev);
 
 	++tx->tx_tail;
-	++priv->tx_tail;
+	++priv->global_tx_tail;
 
 	if (unlikely(netif_queue_stopped(dev) &&
-		     (priv->tx_head - priv->tx_tail) <= ipoib_sendq_size >> 1 &&
+		     ((priv->global_tx_head - priv->global_tx_tail) <=
+		      ipoib_sendq_size >> 1) &&
 		     test_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags)))
 		netif_wake_queue(dev);
 
@@ -1232,8 +1234,9 @@ static void ipoib_cm_tx_destroy(struct ipoib_cm_tx *p)
 		dev_kfree_skb_any(tx_req->skb);
 		netif_tx_lock_bh(p->dev);
 		++p->tx_tail;
-		++priv->tx_tail;
-		if (unlikely(priv->tx_head - priv->tx_tail == ipoib_sendq_size >> 1) &&
+		++priv->global_tx_tail;
+		if (unlikely((priv->global_tx_head - priv->global_tx_tail) <=
+			     ipoib_sendq_size >> 1) &&
 		    netif_queue_stopped(p->dev) &&
 		    test_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags))
 			netif_wake_queue(p->dev);
drivers/infiniband/ulp/ipoib/ipoib_ib.c +7 -2
index c332b4761816..da3c5315bbb5 100644
@@ -407,9 +407,11 @@ static void ipoib_ib_handle_tx_wc(struct net_device *dev, struct ib_wc *wc)
 	dev_kfree_skb_any(tx_req->skb);
 
 	++priv->tx_tail;
+	++priv->global_tx_tail;
 
 	if (unlikely(netif_queue_stopped(dev) &&
-		     ((priv->tx_head - priv->tx_tail) <= ipoib_sendq_size >> 1) &&
+		     ((priv->global_tx_head - priv->global_tx_tail) <=
+		      ipoib_sendq_size >> 1) &&
 		     test_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags)))
 		netif_wake_queue(dev);
 
@@ -634,7 +636,8 @@ int ipoib_send(struct net_device *dev, struct sk_buff *skb,
 	else
 		priv->tx_wr.wr.send_flags &= ~IB_SEND_IP_CSUM;
 	/* increase the tx_head after send success, but use it for queue state */
-	if (priv->tx_head - priv->tx_tail == ipoib_sendq_size - 1) {
+	if ((priv->global_tx_head - priv->global_tx_tail) ==
+	    ipoib_sendq_size - 1) {
 		ipoib_dbg(priv, "TX ring full, stopping kernel net queue\n");
 		netif_stop_queue(dev);
 	}
@@ -662,6 +665,7 @@ int ipoib_send(struct net_device *dev, struct sk_buff *skb,
 
 		rc = priv->tx_head;
 		++priv->tx_head;
+		++priv->global_tx_head;
 	}
 	return rc;
 }
@@ -807,6 +811,7 @@ int ipoib_ib_dev_stop_default(struct net_device *dev)
 				ipoib_dma_unmap_tx(priv, tx_req);
 				dev_kfree_skb_any(tx_req->skb);
 				++priv->tx_tail;
+				++priv->global_tx_tail;
 			}
 
 			for (i = 0; i < ipoib_recvq_size; ++i) {
drivers/infiniband/ulp/ipoib/ipoib_main.c +6 -4
index 4a0d3a9e72e1..70d6d476ba90 100644
@@ -1188,9 +1188,11 @@ static void ipoib_timeout(struct net_device *dev, unsigned int txqueue)
 
 	ipoib_warn(priv, "transmit timeout: latency %d msecs\n",
 		   jiffies_to_msecs(jiffies - dev_trans_start(dev)));
-	ipoib_warn(priv, "queue stopped %d, tx_head %u, tx_tail %u\n",
-		   netif_queue_stopped(dev),
-		   priv->tx_head, priv->tx_tail);
+	ipoib_warn(priv,
+		   "queue stopped %d, tx_head %u, tx_tail %u, global_tx_head %u, global_tx_tail %u\n",
+		   netif_queue_stopped(dev), priv->tx_head, priv->tx_tail,
+		   priv->global_tx_head, priv->global_tx_tail);
+
 	/* XXX reset QP, etc. */
 }
 
@@ -1705,7 +1707,7 @@ static int ipoib_dev_init_default(struct net_device *dev)
 		goto out_rx_ring_cleanup;
 	}
 
-	/* priv->tx_head, tx_tail & tx_outstanding are already 0 */
+	/* priv->tx_head, tx_tail and global_tx_tail/head are already 0 */
 
 	if (ipoib_transport_dev_init(dev, priv->ca)) {
 		pr_warn("%s: ipoib_transport_dev_init failed\n",
drivers/input/evdev.c +4 -15
index cb6e3a5f509c..0d57e51b8ba1 100644
@@ -326,20 +326,6 @@ static int evdev_fasync(int fd, struct file *file, int on)
 	return fasync_helper(fd, file, on, &client->fasync);
 }
 
-static int evdev_flush(struct file *file, fl_owner_t id)
-{
-	struct evdev_client *client = file->private_data;
-	struct evdev *evdev = client->evdev;
-
-	mutex_lock(&evdev->mutex);
-
-	if (evdev->exist && !client->revoked)
-		input_flush_device(&evdev->handle, file);
-
-	mutex_unlock(&evdev->mutex);
-	return 0;
-}
-
 static void evdev_free(struct device *dev)
 {
 	struct evdev *evdev = container_of(dev, struct evdev, dev);
@@ -453,6 +439,10 @@ static int evdev_release(struct inode *inode, struct file *file)
 	unsigned int i;
 
 	mutex_lock(&evdev->mutex);
+
+	if (evdev->exist && !client->revoked)
+		input_flush_device(&evdev->handle, file);
+
 	evdev_ungrab(evdev, client);
 	mutex_unlock(&evdev->mutex);
 
@@ -1310,7 +1300,6 @@ static const struct file_operations evdev_fops = {
 	.compat_ioctl	= evdev_ioctl_compat,
 #endif
 	.fasync		= evdev_fasync,
-	.flush		= evdev_flush,
 	.llseek		= no_llseek,
 };
 
drivers/input/joystick/xpad.c +12 -0
index 6b40a1c68f9f..c77cdb3b62b5 100644
@@ -458,6 +458,16 @@ static const u8 xboxone_fw2015_init[] = {
 	0x05, 0x20, 0x00, 0x01, 0x00
 };
 
+/*
+ * This packet is required for Xbox One S (0x045e:0x02ea)
+ * and Xbox One Elite Series 2 (0x045e:0x0b00) pads to
+ * initialize the controller that was previously used in
+ * Bluetooth mode.
+ */
+static const u8 xboxone_s_init[] = {
+	0x05, 0x20, 0x00, 0x0f, 0x06
+};
+
 /*
  * This packet is required for the Titanfall 2 Xbox One pads
  * (0x0e6f:0x0165) to finish initialization and for Hori pads
@@ -516,6 +526,8 @@ static const struct xboxone_init_packet xboxone_init_packets[] = {
 	XBOXONE_INIT_PKT(0x0e6f, 0x0165, xboxone_hori_init),
 	XBOXONE_INIT_PKT(0x0f0d, 0x0067, xboxone_hori_init),
 	XBOXONE_INIT_PKT(0x0000, 0x0000, xboxone_fw2015_init),
+	XBOXONE_INIT_PKT(0x045e, 0x02ea, xboxone_s_init),
+	XBOXONE_INIT_PKT(0x045e, 0x0b00, xboxone_s_init),
 	XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_init1),
 	XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_init2),
 	XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumblebegin_init),
drivers/input/keyboard/dlink-dir685-touchkeys.c +1 -1
index b0ead7199c40..a69dcc3bd30c 100644
@@ -143,7 +143,7 @@ MODULE_DEVICE_TABLE(of, dir685_tk_of_match);
 
 static struct i2c_driver dir685_tk_i2c_driver = {
 	.driver = {
-		.name	= "dlin-dir685-touchkeys",
+		.name	= "dlink-dir685-touchkeys",
 		.of_match_table = of_match_ptr(dir685_tk_of_match),
 	},
 	.probe		= dir685_tk_probe,
drivers/input/rmi4/rmi_driver.c +3 -2
index 190b9974526b..258d5fe3d395 100644
@@ -205,7 +205,7 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id)
 
 	if (count) {
 		kfree(attn_data.data);
-		attn_data.data = NULL;
+		drvdata->attn_data.data = NULL;
 	}
 
 	if (!kfifo_is_empty(&drvdata->attn_fifo))
@@ -1210,7 +1210,8 @@ static int rmi_driver_probe(struct device *dev)
 	if (data->input) {
 		rmi_driver_set_input_name(rmi_dev, data->input);
 		if (!rmi_dev->xport->input) {
-			if (input_register_device(data->input)) {
+			retval = input_register_device(data->input);
+			if (retval) {
 				dev_err(dev, "%s: Failed to register input device.\n",
 					__func__);
 				goto err_destroy_functions;
drivers/input/serio/i8042-x86ia64io.h +7 -0
index 08e919dbeb5d..7e048b557462 100644
@@ -662,6 +662,13 @@ static const struct dmi_system_id __initconst i8042_dmi_reset_table[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "P65xRP"),
 		},
 	},
+	{
+		/* Lenovo ThinkPad Twist S230u */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "33474HU"),
+		},
+	},
 	{ }
 };
 
drivers/input/touchscreen/usbtouchscreen.c +1 -0
index 16d70201de4a..397cb1d3f481 100644
@@ -182,6 +182,7 @@ static const struct usb_device_id usbtouch_devices[] = {
 #endif
 
 #ifdef CONFIG_TOUCHSCREEN_USB_IRTOUCH
+	{USB_DEVICE(0x255e, 0x0001), .driver_info = DEVTYPE_IRTOUCH},
 	{USB_DEVICE(0x595a, 0x0001), .driver_info = DEVTYPE_IRTOUCH},
 	{USB_DEVICE(0x6615, 0x0001), .driver_info = DEVTYPE_IRTOUCH},
 	{USB_DEVICE(0x6615, 0x0012), .driver_info = DEVTYPE_IRTOUCH_HIRES},
drivers/iommu/iommu.c +1 -1
index 22b28076d48e..b09de25df02e 100644
@@ -509,7 +509,7 @@ struct iommu_group *iommu_group_alloc(void)
 				   NULL, "%d", group->id);
 	if (ret) {
 		ida_simple_remove(&iommu_group_ida, group->id);
-		kfree(group);
+		kobject_put(&group->kobj);
 		return ERR_PTR(ret);
 	}
 
drivers/mmc/core/block.c +1 -1
index 32db16f6debc..2d19291ebc84 100644
@@ -2475,8 +2475,8 @@ static int mmc_rpmb_chrdev_release(struct inode *inode, struct file *filp)
 	struct mmc_rpmb_data *rpmb = container_of(inode->i_cdev,
 						  struct mmc_rpmb_data, chrdev);
 
-	put_device(&rpmb->dev);
 	mmc_blk_put(rpmb->md);
+	put_device(&rpmb->dev);
 
 	return 0;
 }
drivers/net/bonding/bond_sysfs_slave.c +3 -1
index 007481557191..9b8346638f69 100644
@@ -149,8 +149,10 @@ int bond_sysfs_slave_add(struct slave *slave)
 
 	err = kobject_init_and_add(&slave->kobj, &slave_ktype,
 				   &(slave->dev->dev.kobj), "bonding_slave");
-	if (err)
+	if (err) {
+		kobject_put(&slave->kobj);
 		return err;
+	}
 
 	for (a = slave_attrs; *a; ++a) {
 		err = sysfs_create_file(&slave->kobj, &((*a)->attr));
drivers/net/dsa/mt7530.c +2 -7
index 0123498242b9..b95425a63a13 100644
@@ -639,11 +639,8 @@ mt7530_cpu_port_enable(struct mt7530_priv *priv,
 	mt7530_write(priv, MT7530_PVC_P(port),
 		     PORT_SPEC_TAG);
 
-	/* Disable auto learning on the cpu port */
-	mt7530_set(priv, MT7530_PSC_P(port), SA_DIS);
-
-	/* Unknown unicast frame fordwarding to the cpu port */
-	mt7530_set(priv, MT7530_MFC, UNU_FFP(BIT(port)));
+	/* Unknown multicast frame forwarding to the cpu port */
+	mt7530_rmw(priv, MT7530_MFC, UNM_FFP_MASK, UNM_FFP(BIT(port)));
 
 	/* Set CPU port number */
 	if (priv->id == ID_MT7621)
@@ -1247,8 +1244,6 @@ mt7530_setup(struct dsa_switch *ds)
 	/* Enable and reset MIB counters */
 	mt7530_mib_reset(ds);
 
-	mt7530_clear(priv, MT7530_MFC, UNU_FFP_MASK);
-
 	for (i = 0; i < MT7530_NUM_PORTS; i++) {
 		/* Disable forwarding by default on all ports */
 		mt7530_rmw(priv, MT7530_PCR_P(i), PCR_MATRIX_MASK,
drivers/net/dsa/mt7530.h +1 -0
index 756140b7dfd5..0e7e36d8f994 100644
@@ -31,6 +31,7 @@ enum {
 #define MT7530_MFC			0x10
 #define  BC_FFP(x)			(((x) & 0xff) << 24)
 #define  UNM_FFP(x)			(((x) & 0xff) << 16)
+#define  UNM_FFP_MASK			UNM_FFP(~0)
 #define  UNU_FFP(x)			(((x) & 0xff) << 8)
 #define  UNU_FFP_MASK			UNU_FFP(~0)
 #define  CPU_EN				BIT(7)
drivers/net/dsa/ocelot/felix.c +11 -12
index a7780c06fa65..b74580e87be8 100644
@@ -385,6 +385,7 @@ static int felix_init_structs(struct felix *felix, int num_phys_ports)
 	struct ocelot *ocelot = &felix->ocelot;
 	phy_interface_t *port_phy_modes;
 	resource_size_t switch_base;
+	struct resource res;
 	int port, i, err;
 
 	ocelot->num_phys_ports = num_phys_ports;
@@ -416,17 +417,16 @@ static int felix_init_structs(struct felix *felix, int num_phys_ports)
 
 	for (i = 0; i < TARGET_MAX; i++) {
 		struct regmap *target;
-		struct resource *res;
 
 		if (!felix->info->target_io_res[i].name)
 			continue;
 
-		res = &felix->info->target_io_res[i];
-		res->flags = IORESOURCE_MEM;
-		res->start += switch_base;
-		res->end += switch_base;
+		memcpy(&res, &felix->info->target_io_res[i], sizeof(res));
+		res.flags = IORESOURCE_MEM;
+		res.start += switch_base;
+		res.end += switch_base;
 
-		target = ocelot_regmap_init(ocelot, res);
+		target = ocelot_regmap_init(ocelot, &res);
 		if (IS_ERR(target)) {
 			dev_err(ocelot->dev,
 				"Failed to map device memory space\n");
@@ -447,7 +447,6 @@ static int felix_init_structs(struct felix *felix, int num_phys_ports)
 	for (port = 0; port < num_phys_ports; port++) {
 		struct ocelot_port *ocelot_port;
 		void __iomem *port_regs;
-		struct resource *res;
 
 		ocelot_port = devm_kzalloc(ocelot->dev,
 					   sizeof(struct ocelot_port),
@@ -459,12 +458,12 @@ static int felix_init_structs(struct felix *felix, int num_phys_ports)
 			return -ENOMEM;
 		}
 
-		res = &felix->info->port_io_res[port];
-		res->flags = IORESOURCE_MEM;
-		res->start += switch_base;
-		res->end += switch_base;
+		memcpy(&res, &felix->info->port_io_res[port], sizeof(res));
+		res.flags = IORESOURCE_MEM;
+		res.start += switch_base;
+		res.end += switch_base;
 
-		port_regs = devm_ioremap_resource(ocelot->dev, res);
+		port_regs = devm_ioremap_resource(ocelot->dev, &res);
 		if (IS_ERR(port_regs)) {
 			dev_err(ocelot->dev,
 				"failed to map registers for port %d\n", port);
drivers/net/dsa/ocelot/felix.h +3 -3
index 8771d40324f1..2c024cc901d4 100644
@@ -8,9 +8,9 @@
 
 /* Platform-specific information */
 struct felix_info {
-	struct resource			*target_io_res;
-	struct resource			*port_io_res;
-	struct resource			*imdio_res;
+	const struct resource		*target_io_res;
+	const struct resource		*port_io_res;
+	const struct resource		*imdio_res;
 	const struct reg_field		*regfields;
 	const u32 *const		*map;
 	const struct ocelot_ops		*ops;
drivers/net/dsa/ocelot/felix_vsc9959.c +10 -12
index edc1a67c002b..50074da3a1a0 100644
@@ -328,10 +328,8 @@ static const u32 *vsc9959_regmap[] = {
 	[GCB]	= vsc9959_gcb_regmap,
 };
 
-/* Addresses are relative to the PCI device's base address and
- * will be fixed up at ioremap time.
- */
-static struct resource vsc9959_target_io_res[] = {
+/* Addresses are relative to the PCI device's base address */
+static const struct resource vsc9959_target_io_res[] = {
 	[ANA] = {
 		.start	= 0x0280000,
 		.end	= 0x028ffff,
@@ -374,7 +372,7 @@ static struct resource vsc9959_target_io_res[] = {
 	},
 };
 
-static struct resource vsc9959_port_io_res[] = {
+static const struct resource vsc9959_port_io_res[] = {
 	{
 		.start	= 0x0100000,
 		.end	= 0x010ffff,
@@ -410,7 +408,7 @@ static struct resource vsc9959_port_io_res[] = {
 /* Port MAC 0 Internal MDIO bus through which the SerDes acting as an
  * SGMII/QSGMII MAC PCS can be found.
  */
-static struct resource vsc9959_imdio_res = {
+static const struct resource vsc9959_imdio_res = {
 	.start		= 0x8030,
 	.end		= 0x8040,
 	.name		= "imdio",
@@ -984,7 +982,7 @@ static int vsc9959_mdio_bus_alloc(struct ocelot *ocelot)
 	struct device *dev = ocelot->dev;
 	resource_size_t imdio_base;
 	void __iomem *imdio_regs;
-	struct resource *res;
+	struct resource res;
 	struct enetc_hw *hw;
 	struct mii_bus *bus;
 	int port;
@@ -1001,12 +999,12 @@ static int vsc9959_mdio_bus_alloc(struct ocelot *ocelot)
 	imdio_base = pci_resource_start(felix->pdev,
 					felix->info->imdio_pci_bar);
 
-	res = felix->info->imdio_res;
-	res->flags = IORESOURCE_MEM;
-	res->start += imdio_base;
-	res->end += imdio_base;
+	memcpy(&res, felix->info->imdio_res, sizeof(res));
+	res.flags = IORESOURCE_MEM;
+	res.start += imdio_base;
+	res.end += imdio_base;
 
-	imdio_regs = devm_ioremap_resource(dev, res);
+	imdio_regs = devm_ioremap_resource(dev, &res);
 	if (IS_ERR(imdio_regs)) {
 		dev_err(dev, "failed to map internal MDIO registers\n");
 		return PTR_ERR(imdio_regs);
drivers/net/ethernet/broadcom/bnxt/bnxt.c +5 -11
index d0ddd08c4112..fce4e26c36cf 100644
@@ -4184,14 +4184,12 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
 	int i, intr_process, rc, tmo_count;
 	struct input *req = msg;
 	u32 *data = msg;
-	__le32 *resp_len;
 	u8 *valid;
 	u16 cp_ring_id, len = 0;
 	struct hwrm_err_output *resp = bp->hwrm_cmd_resp_addr;
 	u16 max_req_len = BNXT_HWRM_MAX_REQ_LEN;
 	struct hwrm_short_input short_input = {0};
 	u32 doorbell_offset = BNXT_GRCPF_REG_CHIMP_COMM_TRIGGER;
-	u8 *resp_addr = (u8 *)bp->hwrm_cmd_resp_addr;
 	u32 bar_offset = BNXT_GRCPF_REG_CHIMP_COMM;
 	u16 dst = BNXT_HWRM_CHNL_CHIMP;
 
@@ -4209,7 +4207,6 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
 		bar_offset = BNXT_GRCPF_REG_KONG_COMM;
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/bnxt/bnxt.h +0 -5
index ef0268649822..f76c42652e1a 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/freescale/Kconfig +2 -0
index 2bd7ace0a953..bfc6bfe94d0a 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/freescale/dpaa/Kconfig +1 -0
index 3b325733a4f8..0a54c7e0e4ae 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +1 -1
index ca74a684a904..ab337632793b 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c +1 -1
index 4344a59c823f..6122057d60c0 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx4/fw.c +1 -1
index 6e501af0e532..f6ff9620a137 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/cmd.c +55 -4

59 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en.h +1 -1
index 5a5e6a21c6e1..80c579948152 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c +1 -1
index 46725cd743a3..7d1985fa0d4f 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +7 -5
index d02db5aebac4..4fef7587165c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +2 -2
index 2ad0d09cc9bd..c3c3d89d9153 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +6 -3
index ee60383adc5b..c2b801b435cf 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/eq.c +3 -0
index cccea3a8eddd..ce6c621af043 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/events.c +3 -1
index 8bcf3426b9c6..3ce17c3d7a00 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +12 -5
index 9dc24241dc91..cf09cfc33234 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c +2 -2
index 56078b23f1a0..0a334ceba7b1 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/main.c +6 -1
index f554cfddcf4e..4a08e4eef283 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlxsw/spectrum.c +12 -2
index 7358b5bc7eb6..58ebabe99876 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlxsw/switchx2.c +8 -0
index f0e98ec8f1ee..c69232445ab7 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/microchip/encx24j600.c +4 -1
index 39925e4bf2ec..b25a13da900a 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mscc/ocelot.c +1 -1
index 419e2ce2eac0..d5aa4e725853 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +3 -1
index 2a533280b124..29b9c728a65e 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/realtek/r8169_main.c +15 -2
index 07a6b609f741..6e4fe2566f6b 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/sgi/ioc3-eth.c +4 -4
index db6b2988e632..f4895777f5e3 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/sun/cassini.c +1 -2
index 6ec9163e232c..b716f188188e 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/ti/cpsw.c +4 -0
index 6ae4a72e6f43..5577ff0b7663 100644

Lines of this file are not shown. View the raw message.

drivers/net/hamradio/bpqether.c +2 -1
index fbea6f232819..e2ad3c2e8df5 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/cdc_ether.c +9 -2
index 0cdb2ce47645..a657943c9f01 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/r8152.c +1 -0
index 95b19ce96513..7c8c45984a5c 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireguard/messages.h +1 -1
index b8a7b9ce32ba..208da72673fc 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireguard/noise.c +9 -13
index 708dc61c974f..626433690abb 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireguard/noise.h +6 -8
index f532d59d3f19..c527253dba80 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireguard/queueing.h +9 -1
index 3432232afe06..c58df439dbbe 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireguard/receive.c +22 -22

44 lines not on this page · raw message

drivers/net/wireguard/selftest/counter.c +12 -5
index f4fbb9072ed7..ec3c156bf91b 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireguard/send.c +11 -8
index e8a7d0a0cb88..485d5d7a217b 100644

Lines of this file are not shown. View the raw message.

drivers/soc/mediatek/mtk-cmdq-helper.c +3 -1
index db37144ae98c..87ee9f767b7a 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc3/dwc3-pci.c +1 -0
index 7051611229c9..b67372737dc9 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/legacy/inode.c +1 -2
index b47938dff1a2..238f555fe494 100644

Lines of this file are not shown. View the raw message.

drivers/usb/phy/phy-twl6030-usb.c +9 -3
index bfebf1f2e991..9a7e655d5280 100644

Lines of this file are not shown. View the raw message.

drivers/virtio/virtio_balloon.c +44 -63

107 lines not on this page · raw message

fs/binfmt_elf.c +1 -1
index f4713ea76e82..54f888ddb8cc 100644

Lines of this file are not shown. View the raw message.

fs/cachefiles/rdwr.c +1 -1
index d3d78176b23c..e7726f5f1241 100644

Lines of this file are not shown. View the raw message.

fs/ceph/caps.c +1 -1
index f50204380a65..3ae88ca03ccd 100644

Lines of this file are not shown. View the raw message.

fs/cifs/file.c +1 -1
index 5920820bfbd0..b30b03747dd6 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/log.c +3 -3
index 60d911e293e6..2674feda1d7a 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/quota.c +1 -2
index e9f93045eb01..832d44782f74 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/quota.h +2 -1
index 765627d9a91e..fe68a91dc16f 100644

Lines of this file are not shown. View the raw message.

include/asm-generic/topology.h +1 -1
index 238873739550..5aa8705df87e 100644

Lines of this file are not shown. View the raw message.

include/linux/ieee80211.h +1 -1
index 7f3486e32e5d..624d2643bfba 100644

Lines of this file are not shown. View the raw message.

include/linux/mlx5/driver.h +16 -0
index 277a51d3ec40..a1842ce8bd4e 100644

Lines of this file are not shown. View the raw message.

include/linux/mm.h +13 -2
index c54fb96cb1e6..96deeecd9179 100644

Lines of this file are not shown. View the raw message.

include/linux/netfilter/nf_conntrack_pptp.h +1 -1
index fcc409de31a4..a28aa289afdc 100644

Lines of this file are not shown. View the raw message.

include/net/act_api.h +2 -1
index 71347a90a9d1..050c0246dee8 100644

Lines of this file are not shown. View the raw message.

include/net/espintcp.h +1 -0
index dd7026a00066..0335bbd76552 100644

Lines of this file are not shown. View the raw message.

include/net/ip_fib.h +10 -1
index 6a1ae49809de..464772420206 100644

Lines of this file are not shown. View the raw message.

include/net/nexthop.h +51 -16

67 lines not on this page · raw message

include/net/tls.h +4 -0
index bf9eb4823933..18cd4f418464 100644

Lines of this file are not shown. View the raw message.

include/rdma/uverbs_std_types.h +1 -1
index 1b28ce1aba07..325fdaa3bb66 100644

Lines of this file are not shown. View the raw message.

include/uapi/linux/xfrm.h +1 -1
index 5f3b9fec7b5f..ff7cfdc6cb44 100644

Lines of this file are not shown. View the raw message.

mm/khugepaged.c +1 -0
index b679908743cb..ba059e68cf50 100644

Lines of this file are not shown. View the raw message.

net/ax25/af_ax25.c +4 -2
index ff57ea89c27e..fd91cd34f25e 100644

Lines of this file are not shown. View the raw message.

net/bridge/netfilter/nft_reject_bridge.c +6 -0
index b325b569e761..f48cf4cfb80f 100644

Lines of this file are not shown. View the raw message.

net/ceph/osd_client.c +3 -1
index af868d3923b9..834019dbc6b1 100644

Lines of this file are not shown. View the raw message.

net/core/dev.c +15 -5
index c7047b40f569..87fd5424e205 100644

Lines of this file are not shown. View the raw message.

net/dsa/slave.c +1 -0
index ddc0f9236928..e2a3d198e8f5 100644

Lines of this file are not shown. View the raw message.

net/dsa/tag_mtk.c +15 -0
index b5705cba8318..d6619edd53e5 100644

Lines of this file are not shown. View the raw message.

net/ethtool/netlink.c +2 -2
index fc9e0b806889..d863dffbe53c 100644

Lines of this file are not shown. View the raw message.

net/ethtool/strset.c +0 -1
index 8e5911887b4c..fb7b3585458d 100644

Lines of this file are not shown. View the raw message.

net/ipv4/esp4_offload.c +1 -3
index e2e219c7854a..25c8ba6732df 100644

Lines of this file are not shown. View the raw message.

net/ipv4/fib_frontend.c +11 -11
index 213be9c050ad..41079490a118 100644

Lines of this file are not shown. View the raw message.

net/ipv4/inet_connection_sock.c +24 -19

43 lines not on this page · raw message

net/ipv4/ip_vti.c +22 -1
index 1b4e6f298648..1dda7c155c48 100644

Lines of this file are not shown. View the raw message.

net/ipv4/ipip.c +1 -1
index 2f01cf6fa0de..678575adaf3b 100644

Lines of this file are not shown. View the raw message.

net/ipv4/ipmr.c +1 -1
index 6e68def66822..2508b4c37af3 100644

Lines of this file are not shown. View the raw message.

net/ipv4/netfilter/nf_nat_pptp.c +2 -5
index b2aeb7bf5dac..2a1e10f4ae93 100644

Lines of this file are not shown. View the raw message.

net/ipv4/nexthop.c +65 -40

105 lines not on this page · raw message

net/ipv4/route.c +6 -8
index ef6b70774fe1..fea6a8a11183 100644

Lines of this file are not shown. View the raw message.

net/ipv6/esp6_offload.c +9 -4
index fd535053245b..93e086cf058a 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ip6_fib.c +1 -1
index 72abf892302f..9a53590ef79c 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ip6mr.c +1 -1
index bfa49ff70531..2ddb7c513e54 100644

Lines of this file are not shown. View the raw message.

net/mac80211/mesh_hwmp.c +7 -0
index 38a0383dfbcf..aa5150929996 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_list_set.c +1 -1
index cd747c0962fd..5a67f7966574 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_conntrack_core.c +73 -7

80 lines not on this page · raw message

net/netfilter/nf_conntrack_pptp.c +35 -27

62 lines not on this page · raw message

net/netfilter/nfnetlink_cthelper.c +2 -1
index a5f294aa8e4c..5b0d0a77379c 100644

Lines of this file are not shown. View the raw message.

net/qrtr/qrtr.c +1 -1
index b7b854621c26..9d38c14d251a 100644

Lines of this file are not shown. View the raw message.

net/sctp/sm_sideeffect.c +11 -3
index 2bc29463e1dc..9f36fe911d08 100644

Lines of this file are not shown. View the raw message.

net/sctp/sm_statefuns.c +5 -4
index 26788f4a3b9e..e86620fbd90f 100644

Lines of this file are not shown. View the raw message.

net/tipc/udp_media.c +5 -1
index d6620ad53546..28a283f26a8d 100644

Lines of this file are not shown. View the raw message.

net/tls/tls_sw.c +37 -13

50 lines not on this page · raw message

net/wireless/core.c +1 -1
index 3e25229a059d..ee5bb8d8af04 100644

Lines of this file are not shown. View the raw message.

net/xdp/xdp_umem.c +6 -2
index ed7a6060f73c..3889bd9aec46 100644

Lines of this file are not shown. View the raw message.

net/xfrm/espintcp.c +2 -0
index f15d6a564b0e..36abb6750ffe 100644

Lines of this file are not shown. View the raw message.

net/xfrm/xfrm_device.c +3 -5
index e2db468cf50e..4c1b939616b3 100644

Lines of this file are not shown. View the raw message.

net/xfrm/xfrm_input.c +1 -1
index aa35f23c4912..8a202c44f89a 100644

Lines of this file are not shown. View the raw message.

net/xfrm/xfrm_interface.c +21 -0
index 3361e3ac5714..1e115cbf21d3 100644

Lines of this file are not shown. View the raw message.

net/xfrm/xfrm_output.c +9 -6
index fafc7aba705f..d5f5a787ebbc 100644

Lines of this file are not shown. View the raw message.

net/xfrm/xfrm_policy.c +1 -6
index 8a4af86a285e..580735652754 100644

Lines of this file are not shown. View the raw message.

samples/bpf/lwt_len_hist_user.c +0 -2
index 587b68b1f8dd..430a4b7e353e 100644

Lines of this file are not shown. View the raw message.

security/commoncap.c +1 -0
index f4ee0ae106b2..0ca31c8bc0b1 100644

Lines of this file are not shown. View the raw message.

sound/core/hwdep.c +2 -2
index b412d3b3d5ff..21edb8ac95eb 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_realtek.c +29 -10
index 041d2a32059b..e62d58872b6e 100644

Lines of this file are not shown. View the raw message.

sound/usb/mixer.c +8 -0
index 7a2961ad60de..68fefe55e5c0 100644

Lines of this file are not shown. View the raw message.

sound/usb/mixer_maps.c +24 -0
index 0260c750e156..9af7aa93f6fa 100644

Lines of this file are not shown. View the raw message.

sound/usb/quirks-table.h +26 -0
index 8c2f5c23e1b4..bbae11605a4c 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c +1 -0
index cd5e1f602ac9..909da9cdda97 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.