Linux 5.6.16
Greg Kroah-Hartman
maintainerI'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
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 = ¤t->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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 ;
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.h +0 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa/Kconfig +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx4/fw.c +1 -1
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +7 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eq.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/events.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +12 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/main.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/spectrum.c +12 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/switchx2.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/encx24j600.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +15 -2
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
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
include/linux/netfilter/nf_conntrack_pptp.h +1 -1
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
net/bridge/netfilter/nft_reject_bridge.c +6 -0
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/nexthop.c +65 -40
105 lines not on this page · 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/tls/tls_sw.c +37 -13
50 lines not on this page · raw message
tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c +1 -0
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.