Skip to contentSkip to conversation

Linux 6.1.130

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Mar 7, 2025 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.1.130 kernel.

All users of the 6.1 kernel series must upgrade.

The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.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

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

 Documentation/core-api/pin_user_pages.rst                            |    6 
 Documentation/networking/strparser.rst                               |    9 
 Makefile                                                             |    2 
 arch/arm64/boot/dts/mediatek/mt8183.dtsi                             |    1 
 arch/arm64/boot/dts/qcom/sm8350.dtsi                                 |    2 
 arch/arm64/boot/dts/qcom/sm8450.dtsi                                 |    4 
 arch/arm64/include/asm/mman.h                                        |    9 
 arch/mips/include/asm/ptrace.h                                       |    2 
 arch/mips/kernel/ptrace.c                                            |    7 
 arch/powerpc/include/asm/book3s/64/hash-4k.h                         |   28 +
 arch/powerpc/include/asm/book3s/64/pgtable.h                         |   26 -
 arch/powerpc/lib/code-patching.c                                     |    2 
 arch/riscv/include/asm/futex.h                                       |    2 
 arch/x86/Kconfig                                                     |    3 
 arch/x86/events/core.c                                               |    2 
 arch/x86/kernel/cpu/bugs.c                                           |   20 -
 arch/x86/kernel/cpu/cyrix.c                                          |    4 
 block/bfq-cgroup.c                                                   |   95 ++--
 block/bfq-iosched.c                                                  |  191 ++++++----
 block/bfq-iosched.h                                                  |   51 ++
 drivers/bluetooth/btqca.c                                            |  110 ++++-
 drivers/char/tpm/eventlog/acpi.c                                     |   16 
 drivers/char/tpm/eventlog/efi.c                                      |   13 
 drivers/char/tpm/eventlog/of.c                                       |    3 
 drivers/char/tpm/tpm-chip.c                                          |    1 
 drivers/clk/mediatek/clk-mt2701-bdp.c                                |    1 
 drivers/clk/mediatek/clk-mt2701-img.c                                |    1 
 drivers/clk/mediatek/clk-mt2701-vdec.c                               |    1 
 drivers/clk/mediatek/clk-mtk.c                                       |   16 
 drivers/clk/mediatek/clk-mtk.h                                       |   19 
 drivers/edac/qcom_edac.c                                             |    4 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c                |   14 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c                |    3 
 drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c                   |   16 
 drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c                           |   25 -
 drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c                       |    8 
 drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c                           |   26 +
 drivers/gpu/drm/i915/display/intel_display.c                         |   18 
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c                          |    3 
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c                           |    3 
 drivers/gpu/drm/nouveau/nouveau_svm.c                                |    9 
 drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c                              |    2 
 drivers/gpu/drm/rcar-du/rcar_mipi_dsi_regs.h                         |    1 
 drivers/gpu/drm/tidss/tidss_dispc.c                                  |   22 +
 drivers/gpu/drm/tidss/tidss_irq.c                                    |    2 
 drivers/i2c/busses/i2c-npcm7xx.c                                     |    7 
 drivers/idle/intel_idle.c                                            |    4 
 drivers/infiniband/hw/mlx5/counters.c                                |    8 
 drivers/infiniband/hw/mlx5/qp.c                                      |    4 
 drivers/md/md-bitmap.c                                               |   34 -
 drivers/md/md-bitmap.h                                               |    9 
 drivers/md/md-cluster.c                                              |   34 +
 drivers/md/md.c                                                      |   33 +
 drivers/media/cec/platform/stm32/stm32-cec.c                         |    9 
 drivers/media/i2c/ad5820.c                                           |   18 
 drivers/media/i2c/imx274.c                                           |    5 
 drivers/media/i2c/tc358743.c                                         |    9 
 drivers/media/platform/mediatek/mdp/mtk_mdp_comp.c                   |    5 
 drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_scp.c           |    2 
 drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c |    9 
 drivers/media/platform/samsung/exynos4-is/media-dev.c                |    4 
 drivers/media/platform/st/stm32/stm32-dcmi.c                         |   27 -
 drivers/media/platform/ti/omap3isp/isp.c                             |    3 
 drivers/media/platform/xilinx/xilinx-csi2rxss.c                      |    8 
 drivers/media/rc/gpio-ir-recv.c                                      |   10 
 drivers/media/rc/gpio-ir-tx.c                                        |    9 
 drivers/media/rc/ir-rx51.c                                           |    9 
 drivers/media/usb/uvc/uvc_ctrl.c                                     |   99 ++++-
 drivers/media/usb/uvc/uvc_driver.c                                   |   35 +
 drivers/media/usb/uvc/uvc_v4l2.c                                     |    2 
 drivers/media/usb/uvc/uvcvideo.h                                     |   10 
 drivers/mtd/nand/raw/cadence-nand-controller.c                       |   42 +-
 drivers/net/ethernet/cadence/macb.h                                  |    2 
 drivers/net/ethernet/cadence/macb_main.c                             |   12 
 drivers/net/ethernet/freescale/enetc/enetc.c                         |  100 +++--
 drivers/net/ethernet/ibm/ibmvnic.c                                   |   85 +++-
 drivers/net/ethernet/ibm/ibmvnic.h                                   |    3 
 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c                       |    2 
 drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c                    |    2 
 drivers/net/ethernet/netronome/nfp/bpf/cmsg.c                        |    2 
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c                    |    1 
 drivers/net/geneve.c                                                 |   16 
 drivers/net/gtp.c                                                    |    5 
 drivers/net/ipvlan/ipvlan_core.c                                     |   24 -
 drivers/net/loopback.c                                               |   14 
 drivers/net/usb/gl620a.c                                             |    4 
 drivers/nvme/host/ioctl.c                                            |    3 
 drivers/phy/rockchip/phy-rockchip-naneng-combphy.c                   |    5 
 drivers/phy/samsung/phy-exynos5-usbdrd.c                             |   12 
 drivers/phy/tegra/xusb-tegra186.c                                    |   11 
 drivers/power/supply/da9150-fg.c                                     |    4 
 drivers/scsi/scsi_lib.c                                              |   22 -
 drivers/scsi/sd.c                                                    |    4 
 drivers/soc/mediatek/mtk-devapc.c                                    |   36 -
 drivers/spi/atmel-quadspi.c                                          |  172 ++++++---
 drivers/tee/optee/supp.c                                             |   35 -
 drivers/usb/gadget/function/f_midi.c                                 |    2 
 drivers/usb/gadget/udc/core.c                                        |   11 
 fs/afs/cell.c                                                        |    1 
 fs/afs/internal.h                                                    |   23 -
 fs/afs/server.c                                                      |    1 
 fs/afs/server_list.c                                                 |  114 +++++
 fs/afs/vl_alias.c                                                    |    2 
 fs/afs/volume.c                                                      |   40 +-
 fs/overlayfs/copy_up.c                                               |    2 
 fs/smb/client/smb2ops.c                                              |    4 
 fs/squashfs/inode.c                                                  |    5 
 include/asm-generic/vmlinux.lds.h                                    |    2 
 include/linux/mm.h                                                   |   26 +
 include/linux/netdevice.h                                            |    2 
 include/linux/ptrace.h                                               |    4 
 include/linux/skmsg.h                                                |    2 
 include/linux/sunrpc/sched.h                                         |   17 
 include/net/dst.h                                                    |    9 
 include/net/ip.h                                                     |    5 
 include/net/netfilter/nf_conntrack_expect.h                          |    2 
 include/net/route.h                                                  |    5 
 include/net/strparser.h                                              |    2 
 include/net/tcp.h                                                    |   22 +
 include/trace/events/icmp.h                                          |   67 +++
 include/trace/events/oom.h                                           |   36 +
 include/trace/events/sunrpc.h                                        |    3 
 io_uring/net.c                                                       |    4 
 kernel/acct.c                                                        |  134 ++++---
 kernel/bpf/syscall.c                                                 |   18 
 kernel/events/core.c                                                 |   17 
 kernel/events/uprobes.c                                              |    5 
 kernel/sched/core.c                                                  |    2 
 kernel/trace/ftrace.c                                                |   30 -
 kernel/trace/trace_events_hist.c                                     |   30 -
 kernel/trace/trace_functions.c                                       |    6 
 mm/gup.c                                                             |   31 +
 mm/madvise.c                                                         |   11 
 mm/memcontrol.c                                                      |    7 
 mm/memory.c                                                          |    4 
 mm/oom_kill.c                                                        |   14 
 net/bluetooth/l2cap_core.c                                           |    9 
 net/bpf/test_run.c                                                   |    5 
 net/bridge/br_netfilter_hooks.c                                      |    8 
 net/core/dev.c                                                       |   37 +
 net/core/drop_monitor.c                                              |   29 -
 net/core/flow_dissector.c                                            |   49 +-
 net/core/gro.c                                                       |    1 
 net/core/skbuff.c                                                    |    2 
 net/core/skmsg.c                                                     |    7 
 net/core/sysctl_net_core.c                                           |    3 
 net/ipv4/arp.c                                                       |    2 
 net/ipv4/icmp.c                                                      |   24 -
 net/ipv4/ip_options.c                                                |    3 
 net/ipv4/tcp.c                                                       |   29 +
 net/ipv4/tcp_bpf.c                                                   |   36 +
 net/ipv4/tcp_fastopen.c                                              |    4 
 net/ipv4/tcp_input.c                                                 |    8 
 net/ipv4/tcp_ipv4.c                                                  |    2 
 net/ipv4/tcp_minisocks.c                                             |   10 
 net/ipv6/ip6_tunnel.c                                                |    4 
 net/ipv6/rpl_iptunnel.c                                              |   58 +--
 net/ipv6/seg6_iptunnel.c                                             |   97 +++--
 net/mptcp/pm_netlink.c                                               |    5 
 net/mptcp/subflow.c                                                  |   15 
 net/netfilter/nf_conntrack_core.c                                    |    2 
 net/netfilter/nf_conntrack_expect.c                                  |    4 
 net/netfilter/nft_ct.c                                               |    2 
 net/sched/sch_fifo.c                                                 |    3 
 net/strparser/strparser.c                                            |   11 
 net/sunrpc/cache.c                                                   |   10 
 net/sunrpc/sched.c                                                   |    2 
 sound/pci/hda/hda_codec.c                                            |    4 
 sound/pci/hda/patch_conexant.c                                       |    1 
 sound/pci/hda/patch_cs8409-tables.c                                  |    6 
 sound/pci/hda/patch_cs8409.c                                         |   20 -
 sound/pci/hda/patch_cs8409.h                                         |    5 
 sound/pci/hda/patch_realtek.c                                        |    1 
 sound/soc/codecs/es8328.c                                            |   15 
 sound/soc/fsl/fsl_micfil.c                                           |    2 
 sound/soc/rockchip/rockchip_i2s_tdm.c                                |    4 
 sound/soc/sh/rz-ssi.c                                                |    2 
 sound/usb/midi.c                                                     |    2 
 sound/usb/quirks.c                                                   |    1 
 179 files changed, 2149 insertions(+), 944 deletions(-)

Alexander Dahl (2):
spi: atmel-quadspi: Avoid overwriting delay register settings
spi: atmel-quadspi: Fix wrong register value written to MR

Andreas Schwab (1):
riscv/futex: sign extend compare value in atomic cmpxchg

Andrey Vatoropin (1):
power: supply: da9150-fg: fix potential overflow

AngeloGioacchino Del Regno (2):
clk: mediatek: clk-mtk: Add dummy clock ops
soc: mediatek: mtk-devapc: Switch to devm_clk_get_enabled()

Ard Biesheuvel (1):
vmlinux.lds: Ensure that const vars with relocations are mapped R/O

Arnd Bergmann (1):
sunrpc: suppress warnings for unused procfs functions

BH Hsieh (1):
phy: tegra: xusb: reset VBUS & ID OVERRIDE

Bence Csókás (1):
spi: atmel-qspi: Memory barriers after memory-mapped I/O

Breno Leitao (2):
net: Add non-RCU dev_getbyhwaddr() helper
arp: switch to dev_getbyhwaddr() in arp_req_set_public()

Caleb Sander Mateos (1):
nvme/ioctl: add missing space in err message

Carlos Galo (1):
mm: update mark_victim tracepoints fields

Catalin Marinas (1):
arm64: mte: Do not allow PROT_MTE on MAP_HUGETLB user mappings

Chen Ridong (1):
memcg: fix soft lockup in the OOM process

Chen-Yu Tsai (1):
arm64: dts: mediatek: mt8183: Disable DSI display output by default

Cheng Jiang (1):
Bluetooth: qca: Update firmware-name to support board specific nvm

Christian Brauner (2):
acct: perform last write from workqueue
acct: block access to kernel internal filesystems

Christophe Leroy (2):
powerpc/64s: Rewrite __real_pte() and __rpte_to_hidx() as static inline powerpc/code-patching: Fix KASAN hit by not flagging text patching area as VM_ALLOC

Chukun Pan (1):
phy: rockchip: naneng-combphy: compatible reset with old DT

Colin Ian King (1):
afs: remove variable nr_servers

Cong Wang (2):
flow_dissector: Fix handling of mixed port and port-range keys
flow_dissector: Fix port range key handling in BPF conversion

Csókás, Bence (1):
spi: atmel-quadspi: Create atmel_qspi_ops to support newer SoC families

Dan Carpenter (1):
ASoC: renesas: rz-ssi: Add a check for negative sample_space

Daniel Golle (3):
clk: mediatek: mt2701-vdec: fix conversion to mtk_clk_simple_probe
clk: mediatek: mt2701-bdp: add missing dummy clk
clk: mediatek: mt2701-img: add missing dummy clk

David Hildenbrand (1):
nouveau/svm: fix missing folio unlock + put after make_device_exclusive_range()

David Howells (3):
afs: Make it possible to find the volumes that are using a server
afs: Fix the server_list to unuse a displaced server rather than putting it
mm: Don't pin ZERO_PAGE in pin_user_pages()

Devarsh Thakkar (1):
drm/tidss: Fix race condition while handling interrupt registers

Dmitry Panchenko (1):
ALSA: usb-audio: Re-add sample rate quirk for Pioneer DJM-900NXS2

Douglas Gilbert (1):
scsi: core: Handle depopulation and restoration in progress

Eddie James (1):
tpm: Use managed allocation for bios event log

Eric Dumazet (1):
ipvlan: ensure network headers are in skb linear part

Fullway Wang (1):
media: mtk-vcodec: potential null pointer deference in SCP

Gavrilov Ilia (1):
drop_monitor: fix incorrect initialization order

Greg Kroah-Hartman (1):

      Linux 6.1.130

Guillaume Nault (3):
ipv4: Convert icmp_route_lookup() to dscp_t.
ipv4: Convert ip_route_input() to dscp_t.
ipvlan: Prepare ipvlan_process_v4_outbound() to future .flowi4_tos conversion.

Haoxiang Li (2):
nfp: bpf: Add check for nfp_app_ctrl_msg_alloc()
smb: client: Add check for next_buffer in receive_encrypted_standard()

Harshal Chaudhari (1):
net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination.

Ido Schimmel (4):
net: loopback: Avoid sending IP packets without an Ethernet header
ipv4: icmp: Pass full DS field to ip_route_input()
ipv4: icmp: Unmask upper DSCP bits in icmp_route_lookup()
ipvlan: Unmask upper DSCP bits in ipvlan_process_v4_outbound()

Igor Pylypiv (1):
scsi: core: Do not retry I/Os during depopulation

Jarkko Sakkinen (1):
tpm: Change to kvalloc() in eventlog/acpi.c

Jessica Zhang (1):
drm/msm/dpu: Disable dither in phys encoder cleanup

Jiaxun Yang (2):
ptrace: Introduce exception_ip arch hook mm/memory: Use exception ip to search exception tables

Jiayuan Chen (2):
strparser: Add read_sock callback
bpf: Fix wrong copied_seq calculation

Jill Donahue (1):
USB: gadget: f_midi: f_midi_complete to call queue_work

Jiri Slaby (SUSE) (1):
net: set the minimum for net_hotdata.netdev_budget_usecs

John Keeping (1):
ASoC: rockchip: i2s-tdm: fix shift config for SND_SOC_DAIFMT_DSP_[AB]

John Veness (1):
ALSA: hda/conexant: Add quirk for HP ProBook 450 G4 mute LED

Justin Iurman (5):
include: net: add static inline dst_dev_overhead() to dst.h
net: ipv6: seg6_iptunnel: mitigate 2-realloc issue
net: ipv6: fix dst ref loop on input in seg6 lwt
net: ipv6: rpl_iptunnel: mitigate 2-realloc issue
net: ipv6: fix dst ref loop on input in rpl lwt

Kailang Yang (1):
ALSA: hda/realtek: Fixup ALC225 depop procedure

Kan Liang (2):
perf/x86: Fix low freqency setting issue perf/core: Fix low freq setting via IOC_PERIOD

Kaustabh Chakraborty (1):
phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk

Komal Bajaj (1):
EDAC/qcom: Correct interrupt enable register configuration

Krzysztof Kozlowski (4):
arm64: dts: qcom: trim addresses to 8 digits
arm64: dts: qcom: sm8450: Fix CDSP memory length
soc: mediatek: mtk-devapc: Fix leaking IO map on error paths
soc: mediatek: mtk-devapc: Fix leaking IO map on driver remove

Kuniyuki Iwashima (3):
geneve: Fix use-after-free in geneve_find_dev().
gtp: Suppress list corruption splat in gtp_net_exit_batch_rtnl().
geneve: Suppress list corruption splat in geneve_destroy_tunnels().

Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix L2CAP_ECRED_CONN_RSP response

Marijn Suijten (1):
drm/msm/dpu: Don't leak bits_per_component into random DSC_ENC fields

Mark Zhang (1):
IB/mlx5: Set and get correct qp_num for a DCT QP

Matthieu Baerts (NGI0) (1):
mptcp: reset when MPTCP opts are dropped after join

Michael Ellerman (1):
powerpc/64s/mm: Move __real_pte stubs into hash-4k.h

Mohammad Heib (1):
net: Clear old fragment checksum value in napi_reuse_skb

Nick Child (4):
ibmvnic: Return error code on TX scrq flush fail
ibmvnic: Introduce send sub-crq direct
ibmvnic: Add stat for tx direct vs tx batched
ibmvnic: Don't reference skb after sending to VIOS

Nick Hu (1):
net: axienet: Set mac_managed_pm

Nicolas Frattaroli (1):
ASoC: es8328: fix route from DAC to output

Nikita Zhandarovich (2):
ASoC: fsl_micfil: Enable default case in micfil_set_quality()
usbnet: gl620a: fix endpoint checking in genelink_bind()

Nikolay Kuratov (1):
ftrace: Avoid potential division by zero in function_stat_show()

Niravkumar L Rabara (3):
mtd: rawnand: cadence: fix error code in cadence_nand_init()
mtd: rawnand: cadence: use dma_map_resource for sdma address
mtd: rawnand: cadence: fix incorrect device in dma_unmap_single

Paolo Abeni (1):
mptcp: always handle address removal under msk socket lock

Paolo Valente (1):
block, bfq: split sync bfq_queues on a per-actuator basis

Patrick Bellasi (1):
x86/cpu/kvm: SRSO: Fix possible missing IBPB on VM-Exit

Patrisious Haddad (1):
RDMA/mlx5: Fix bind QP error cleanup flow

Pavel Begunkov (1):
io_uring/net: save msg_control for compat

Peilin He (1):
net/ipv4: add tracepoint for icmp_send

Phillip Lougher (1):
Squashfs: check the inode number is not the invalid value of zero

Philo Lu (1):
ipvs: Always clear ipvs_property flag in skb_scrub_packet()

Quang Le (1):

      pfifo_tail_enqueue: Drop new packet when sch->limit == 0

Ricardo Cañuelo Navarro (1):
mm,madvise,hugetlb: check for 0-length range after end address adjustment

Ricardo Ribalda (4):
media: uvcvideo: Fix crash during unbind if gpio unit is in use
media: uvcvideo: Refactor iterators
media: uvcvideo: Only save async fh if success
media: uvcvideo: Remove dangling pointers

Roman Li (1):
drm/amd/display: Fix HPD after gpu reset

Roy Luo (2):
USB: gadget: core: create sysfs link between udc and gadget
usb: gadget: core: flush gadget workqueue after device removal

Russell Senior (1):
x86/CPU: Fix warm boot hang regression on AMD SC1100 SoC systems

Sabrina Dubroca (1):
tcp: drop secpath at the same time as we currently drop dst

Sean Anderson (1):
net: cadence: macb: Synchronize stats calculations

Sebastian Andrzej Siewior (1):
ftrace: Correct preemption accounting for function tracing.

Shay Drory (1):
net/mlx5: IRQ, Fix null string in debug print

Shigeru Yoshida (1):
bpf, test_run: Fix use-after-free issue in eth_skb_pkt_type()

Sohaib Nadeem (1):
drm/amd/display: fixed integer types and null check locations

Stephen Brennan (1):
SUNRPC: convert RPC_TASK_* constants to enum

Steven Rostedt (2):
ftrace: Do not add duplicate entries in subops manager ops
tracing: Fix bad hist from corrupting named_triggers list

Sumit Garg (1):
tee: optee: Fix supplicant wait loop

Takashi Iwai (1):
ALSA: usb-audio: Avoid dropping MIDI events at closing multiple ports

Thomas Gleixner (2):
sched/core: Prevent rescheduling when interrupts are disabled
intel_idle: Handle older CPUs, which stop the TSC in deeper C states, correctly

Tom Chung (1):
drm/amd/display: Disable PSR-SU on eDP panels

Tomi Valkeinen (2):
drm/tidss: Add simple K2G manual reset
drm/rcar-du: dsi: Fix PHY lock bit check

Tong Tiangen (1):
uprobes: Reject the shared zeropage in uprobe_write_opcode()

Trond Myklebust (1):
SUNRPC: Prevent looping due to rpc_signal_task() races

Tudor Ambarus (1):
spi: atmel-quadspi: Add support for configuring CS timing

Tyrone Ting (1):
i2c: npcm: disable interrupt enable bit before devm_request_irq

Uwe Kleine-König (1):
soc/mediatek: mtk-devapc: Convert to platform remove callback returning void

Vasiliy Kovalev (1):
ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up

Ville Syrjälä (1):
drm/i915: Make sure all planes in use by the joiner have their crtc included

Vitaly Rodionov (1):
ALSA: hda/cirrus: Correct the full scale volume set logic

Wang Hai (1):
tcp: Defer ts_recent changes until req is owned

Wei Fang (5):
net: enetc: fix the off-by-one issue in enetc_map_tx_buffs()
net: enetc: keep track of correct Tx BD count in enetc_map_tx_tso_buffs()
net: enetc: update UDP checksum when updating originTimestamp field
net: enetc: correct the xdp_tx statistics
net: enetc: fix the off-by-one issue in enetc_map_tx_tso_buffs()

Wentao Liang (1):
ALSA: hda: Add error check for snd_ctl_rename_id() in snd_hda_create_dig_out_ctls()

Xin Long (1):
netfilter: allow exp not to be removed in nf_ct_find_expectation

Yan Zhai (1):
bpf: skip non exist keys in generic_map_lookup_batch

Yang Yingliang (2):
spi: atmel-quadspi: switch to use modern name
media: Switch to use dev_err_probe() helper

Ye Bin (1):
scsi: core: Clear driver private data when retrying request

Yu Kuai (5):
md/md-bitmap: replace md_bitmap_status() with a new helper md_bitmap_get_stats() md/md-cluster: fix spares warnings for __le64
md/md-bitmap: add 'sync_size' into struct md_bitmap_stats md/md-bitmap: Synchronize bitmap_get_stats() with bitmap lifetime block, bfq: fix bfqq uaf in bfq_limit_depth()

Yunfei Dong (1):
media: mediatek: vcodec: Fix H264 multi stateless decoder smatch warning

Zijun Hu (2):
Bluetooth: qca: Support downloading board id specific NVM for WCN7850
Bluetooth: qca: Fix poor RF performance for WCN6855

chr[] (1):
amdgpu/pm/legacy: fix suspend/resume issues

author maintainer
#1 lore raw
Documentation/core-api/pin_user_pages.rst +6 -0
index b18416f4500f..7995ce2b9676 100644
@@ -113,6 +113,12 @@ pages:
 This also leads to limitations: there are only 31-10==21 bits available for a
 counter that increments 10 bits at a time.
 
+* Because of that limitation, special handling is applied to the zero pages
+  when using FOLL_PIN.  We only pretend to pin a zero page - we don't alter its
+  refcount or pincount at all (it is permanent, so there's no need).  The
+  unpinning functions also don't do anything to a zero page.  This is
+  transparent to the caller.
+
 * Callers must specifically request "dma-pinned tracking of pages". In other
   words, just calling get_user_pages() will not suffice; a new set of functions,
   pin_user_page() and related, must be used.
Documentation/networking/strparser.rst +8 -1
index 6cab1f74ae05..7f623d1db72a 100644
@@ -112,7 +112,7 @@ Functions
 Callbacks
 =========
 
-There are six callbacks:
+There are seven callbacks:
 
     ::
 
@@ -182,6 +182,13 @@ There are six callbacks:
     the length of the message. skb->len - offset may be greater
     then full_len since strparser does not trim the skb.
 
+    ::
+
+	int (*read_sock)(struct strparser *strp, read_descriptor_t *desc,
+                     sk_read_actor_t recv_actor);
+
+    The read_sock callback is used by strparser instead of
+    sock->ops->read_sock, if provided.
     ::
 
 	int (*read_sock_done)(struct strparser *strp, int err);
Makefile +1 -1
index 2c81c91c0ac2..a4b58d8abc83 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 129
+SUBLEVEL = 130
 EXTRAVERSION =
 NAME = Curry Ramen
 
arch/arm64/boot/dts/mediatek/mt8183.dtsi +1 -0
index 2147e152683b..fe4632744f6e 100644
@@ -1753,6 +1753,7 @@ dsi0: dsi@14014000 {
 			resets = <&mmsys MT8183_MMSYS_SW0_RST_B_DISP_DSI0>;
 			phys = <&mipi_tx0>;
 			phy-names = "dphy";
+			status = "disabled";
 		};
 
 		mutex: mutex@14016000 {
arch/arm64/boot/dts/qcom/sm8350.dtsi +1 -1
index 956237489bc4..5a4972afc977 100644
@@ -2226,7 +2226,7 @@ compute-cb@3 {
 
 		cdsp: remoteproc@98900000 {
 			compatible = "qcom,sm8350-cdsp-pas";
-			reg = <0 0x098900000 0 0x1400000>;
+			reg = <0 0x98900000 0 0x1400000>;
 
 			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
 					      <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/qcom/sm8450.dtsi +2 -2
index 3f79aea64446..9420857871b1 100644
@@ -2093,7 +2093,7 @@ compute-cb@3 {
 
 		remoteproc_adsp: remoteproc@30000000 {
 			compatible = "qcom,sm8450-adsp-pas";
-			reg = <0 0x030000000 0 0x100>;
+			reg = <0 0x30000000 0 0x100>;
 
 			interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -2159,7 +2159,7 @@ compute-cb@5 {
 
 		remoteproc_cdsp: remoteproc@32300000 {
 			compatible = "qcom,sm8450-cdsp-pas";
-			reg = <0 0x032300000 0 0x1400000>;
+			reg = <0 0x32300000 0 0x10000>;
 
 			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
arch/arm64/include/asm/mman.h +6 -3
index ef35c52aabd6..101771c60d80 100644
@@ -31,9 +31,12 @@ static inline unsigned long arch_calc_vm_flag_bits(struct file *file,
 	 * backed by tags-capable memory. The vm_flags may be overridden by a
 	 * filesystem supporting MTE (RAM-based).
 	 */
-	if (system_supports_mte() &&
-	    ((flags & MAP_ANONYMOUS) || shmem_file(file)))
-		return VM_MTE_ALLOWED;
+	if (system_supports_mte()) {
+		if ((flags & MAP_ANONYMOUS) && !(flags & MAP_HUGETLB))
+			return VM_MTE_ALLOWED;
+		if (shmem_file(file))
+			return VM_MTE_ALLOWED;
+	}
 
 	return 0;
 }
arch/mips/include/asm/ptrace.h +2 -0
index 428b9f1cf1de..4a2b40ce39e0 100644
@@ -155,6 +155,8 @@ static inline long regs_return_value(struct pt_regs *regs)
 }
 
 #define instruction_pointer(regs) ((regs)->cp0_epc)
+extern unsigned long exception_ip(struct pt_regs *regs);
+#define exception_ip(regs) exception_ip(regs)
 #define profile_pc(regs) instruction_pointer(regs)
 
 extern asmlinkage long syscall_trace_enter(struct pt_regs *regs);
arch/mips/kernel/ptrace.c +7 -0
index a8e569830ec8..fdcaad9fba1d 100644
@@ -31,6 +31,7 @@
 #include <linux/seccomp.h>
 #include <linux/ftrace.h>
 
+#include <asm/branch.h>
 #include <asm/byteorder.h>
 #include <asm/cpu.h>
 #include <asm/cpu-info.h>
@@ -48,6 +49,12 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/syscalls.h>
 
+unsigned long exception_ip(struct pt_regs *regs)
+{
+	return exception_epc(regs);
+}
+EXPORT_SYMBOL(exception_ip);
+
 /*
  * Called by kernel/ptrace.c when detaching..
  *
arch/powerpc/include/asm/book3s/64/hash-4k.h +28 -0
index b6ac4f86c87b..433d164374cb 100644
@@ -89,6 +89,34 @@ static inline int hash__hugepd_ok(hugepd_t hpd)
 }
 #endif
 
+/*
+ * With 4K page size the real_pte machinery is all nops.
+ */
+static inline real_pte_t __real_pte(pte_t pte, pte_t *ptep, int offset)
+{
+	return (real_pte_t){pte};
+}
+
+#define __rpte_to_pte(r)	((r).pte)
+
+static inline unsigned long __rpte_to_hidx(real_pte_t rpte, unsigned long index)
+{
+	return pte_val(__rpte_to_pte(rpte)) >> H_PAGE_F_GIX_SHIFT;
+}
+
+#define pte_iterate_hashed_subpages(rpte, psize, va, index, shift)       \
+	do {							         \
+		index = 0;					         \
+		shift = mmu_psize_defs[psize].shift;		         \
+
+#define pte_iterate_hashed_end() } while(0)
+
+/*
+ * We expect this to be called only for user addresses or kernel virtual
+ * addresses other than the linear mapping.
+ */
+#define pte_pagesize_index(mm, addr, pte)	MMU_PAGE_4K
+
 /*
  * 4K PTE format is different from 64K PTE format. Saving the hash_slot is just
  * a matter of returning the PTE bits that need to be modified. On 64K PTE,
arch/powerpc/include/asm/book3s/64/pgtable.h +0 -26
index c436d8422654..fdbe0b381f3a 100644
@@ -318,32 +318,6 @@ extern unsigned long pci_io_base;
 
 #ifndef __ASSEMBLY__
 
-/*
- * This is the default implementation of various PTE accessors, it's
- * used in all cases except Book3S with 64K pages where we have a
- * concept of sub-pages
- */
-#ifndef __real_pte
-
-#define __real_pte(e, p, o)		((real_pte_t){(e)})
-#define __rpte_to_pte(r)	((r).pte)
-#define __rpte_to_hidx(r,index)	(pte_val(__rpte_to_pte(r)) >> H_PAGE_F_GIX_SHIFT)
-
-#define pte_iterate_hashed_subpages(rpte, psize, va, index, shift)       \
-	do {							         \
-		index = 0;					         \
-		shift = mmu_psize_defs[psize].shift;		         \
-
-#define pte_iterate_hashed_end() } while(0)
-
-/*
- * We expect this to be called only for user addresses or kernel virtual
- * addresses other than the linear mapping.
- */
-#define pte_pagesize_index(mm, addr, pte)	MMU_PAGE_4K
-
-#endif /* __real_pte */
-
 static inline unsigned long pte_update(struct mm_struct *mm, unsigned long addr,
 				       pte_t *ptep, unsigned long clr,
 				       unsigned long set, int huge)
arch/powerpc/lib/code-patching.c +1 -1
index ad0cf3108dd0..65353cf2b0a8 100644
@@ -53,7 +53,7 @@ static int text_area_cpu_up(unsigned int cpu)
 	unsigned long addr;
 	int err;
 
-	area = get_vm_area(PAGE_SIZE, VM_ALLOC);
+	area = get_vm_area(PAGE_SIZE, 0);
 	if (!area) {
 		WARN_ONCE(1, "Failed to create text area for cpu %d\n",
 			cpu);
arch/riscv/include/asm/futex.h +1 -1
index fc8130f995c1..6907c456ac8c 100644
@@ -93,7 +93,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
 		_ASM_EXTABLE_UACCESS_ERR(1b, 3b, %[r])	\
 		_ASM_EXTABLE_UACCESS_ERR(2b, 3b, %[r])	\
 	: [r] "+r" (ret), [v] "=&r" (val), [u] "+m" (*uaddr), [t] "=&r" (tmp)
-	: [ov] "Jr" (oldval), [nv] "Jr" (newval)
+	: [ov] "Jr" ((long)(int)oldval), [nv] "Jr" (newval)
 	: "memory");
 	__disable_user_access();
 
arch/x86/Kconfig +2 -1
index 49cea5b81649..ca8dd7e5585f 100644
@@ -2506,7 +2506,8 @@ config CPU_IBPB_ENTRY
 	depends on CPU_SUP_AMD && X86_64
 	default y
 	help
-	  Compile the kernel with support for the retbleed=ibpb mitigation.
+	  Compile the kernel with support for the retbleed=ibpb and
+	  spec_rstack_overflow={ibpb,ibpb-vmexit} mitigations.
 
 config CPU_IBRS_ENTRY
 	bool "Enable IBRS on kernel entry"
arch/x86/events/core.c +1 -1
index 39f86188be54..fa0744732444 100644
@@ -623,7 +623,7 @@ int x86_pmu_hw_config(struct perf_event *event)
 	if (event->attr.type == event->pmu->type)
 		event->hw.config |= event->attr.config & X86_RAW_EVENT_MASK;
 
-	if (event->attr.sample_period && x86_pmu.limit_period) {
+	if (!event->attr.freq && x86_pmu.limit_period) {
 		s64 left = event->attr.sample_period;
 		x86_pmu.limit_period(event, &left);
 		if (left > event->attr.sample_period)
arch/x86/kernel/cpu/bugs.c +14 -6
index fa2045ad408a..03221a060ae7 100644
@@ -1092,6 +1092,8 @@ static void __init retbleed_select_mitigation(void)
 
 	case RETBLEED_MITIGATION_IBPB:
 		setup_force_cpu_cap(X86_FEATURE_ENTRY_IBPB);
+		setup_force_cpu_cap(X86_FEATURE_IBPB_ON_VMEXIT);
+		mitigate_smt = true;
 
 		/*
 		 * IBPB on entry already obviates the need for
@@ -1101,8 +1103,6 @@ static void __init retbleed_select_mitigation(void)
 		setup_clear_cpu_cap(X86_FEATURE_UNRET);
 		setup_clear_cpu_cap(X86_FEATURE_RETHUNK);
 
-		mitigate_smt = true;
-
 		/*
 		 * There is no need for RSB filling: entry_ibpb() ensures
 		 * all predictions, including the RSB, are invalidated,
@@ -2607,6 +2607,7 @@ static void __init srso_select_mitigation(void)
 		if (IS_ENABLED(CONFIG_CPU_IBPB_ENTRY)) {
 			if (has_microcode) {
 				setup_force_cpu_cap(X86_FEATURE_ENTRY_IBPB);
+				setup_force_cpu_cap(X86_FEATURE_IBPB_ON_VMEXIT);
 				srso_mitigation = SRSO_MITIGATION_IBPB;
 
 				/*
@@ -2616,6 +2617,13 @@ static void __init srso_select_mitigation(void)
 				 */
 				setup_clear_cpu_cap(X86_FEATURE_UNRET);
 				setup_clear_cpu_cap(X86_FEATURE_RETHUNK);
+
+				/*
+				 * There is no need for RSB filling: entry_ibpb() ensures
+				 * all predictions, including the RSB, are invalidated,
+				 * regardless of IBPB implementation.
+				 */
+				setup_clear_cpu_cap(X86_FEATURE_RSB_VMEXIT);
 			}
 		} else {
 			pr_err("WARNING: kernel not compiled with CPU_IBPB_ENTRY.\n");
@@ -2624,8 +2632,8 @@ static void __init srso_select_mitigation(void)
 		break;
 
 	case SRSO_CMD_IBPB_ON_VMEXIT:
-		if (IS_ENABLED(CONFIG_CPU_SRSO)) {
-			if (!boot_cpu_has(X86_FEATURE_ENTRY_IBPB) && has_microcode) {
+		if (IS_ENABLED(CONFIG_CPU_IBPB_ENTRY)) {
+			if (has_microcode) {
 				setup_force_cpu_cap(X86_FEATURE_IBPB_ON_VMEXIT);
 				srso_mitigation = SRSO_MITIGATION_IBPB_ON_VMEXIT;
 
@@ -2637,9 +2645,9 @@ static void __init srso_select_mitigation(void)
 				setup_clear_cpu_cap(X86_FEATURE_RSB_VMEXIT);
 			}
 		} else {
-			pr_err("WARNING: kernel not compiled with CPU_SRSO.\n");
+			pr_err("WARNING: kernel not compiled with CPU_IBPB_ENTRY.\n");
 			goto pred_cmd;
-                }
+		}
 		break;
 
 	default:
arch/x86/kernel/cpu/cyrix.c +2 -2
index 9651275aecd1..dfec2c61e354 100644
@@ -153,8 +153,8 @@ static void geode_configure(void)
 	u8 ccr3;
 	local_irq_save(flags);
 
-	/* Suspend on halt power saving and enable #SUSP pin */
-	setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x88);
+	/* Suspend on halt power saving */
+	setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x08);
 
 	ccr3 = getCx86(CX86_CCR3);
 	setCx86(CX86_CCR3, (ccr3 & 0x0f) | 0x10);	/* enable MAPEN */
block/bfq-cgroup.c +50 -45

116 lines not on this page · raw message

block/bfq-iosched.c +126 -65

382 lines not on this page · raw message

block/bfq-iosched.h +41 -10

87 lines not on this page · raw message

drivers/bluetooth/btqca.c +90 -20

159 lines not on this page · raw message

drivers/char/tpm/eventlog/acpi.c +14 -2
index cd266021d010..1a5644051d31 100644
@@ -14,6 +14,7 @@
  * Access to the event log extended by the TCG BIOS of PC platform
  */
 
+#include <linux/device.h>
 #include <linux/seq_file.h>
 #include <linux/fs.h>
 #include <linux/security.h>
@@ -62,6 +63,11 @@ static bool tpm_is_tpm2_log(void *bios_event_log, u64 len)
 	return n == 0;
 }
 
+static void tpm_bios_log_free(void *data)
+{
+	kvfree(data);
+}
+
 /* read binary bios log */
 int tpm_read_log_acpi(struct tpm_chip *chip)
 {
@@ -135,7 +141,7 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
 	}
 
 	/* malloc EventLog space */
-	log->bios_event_log = kmalloc(len, GFP_KERNEL);
+	log->bios_event_log = kvmalloc(len, GFP_KERNEL);
 	if (!log->bios_event_log)
 		return -ENOMEM;
 
@@ -161,10 +167,16 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
 		goto err;
 	}
 
+	ret = devm_add_action(&chip->dev, tpm_bios_log_free, log->bios_event_log);
+	if (ret) {
+		log->bios_event_log = NULL;
+		goto err;
+	}
+
 	return format;
 
 err:
-	kfree(log->bios_event_log);
+	tpm_bios_log_free(log->bios_event_log);
 	log->bios_event_log = NULL;
 	return ret;
 }
drivers/char/tpm/eventlog/efi.c +7 -6
index e6cb9d525e30..4e9d7c2bf32e 100644
@@ -6,6 +6,7 @@
  *      Thiebaud Weksteen <[email protected]>
  */
 
+#include <linux/device.h>
 #include <linux/efi.h>
 #include <linux/tpm_eventlog.h>
 
@@ -55,7 +56,7 @@ int tpm_read_log_efi(struct tpm_chip *chip)
 	}
 
 	/* malloc EventLog space */
-	log->bios_event_log = kmemdup(log_tbl->log, log_size, GFP_KERNEL);
+	log->bios_event_log = devm_kmemdup(&chip->dev, log_tbl->log, log_size, GFP_KERNEL);
 	if (!log->bios_event_log) {
 		ret = -ENOMEM;
 		goto out;
@@ -76,7 +77,7 @@ int tpm_read_log_efi(struct tpm_chip *chip)
 			     MEMREMAP_WB);
 	if (!final_tbl) {
 		pr_err("Could not map UEFI TPM final log\n");
-		kfree(log->bios_event_log);
+		devm_kfree(&chip->dev, log->bios_event_log);
 		ret = -ENOMEM;
 		goto out;
 	}
@@ -91,11 +92,11 @@ int tpm_read_log_efi(struct tpm_chip *chip)
 	 * Allocate memory for the 'combined log' where we will append the
 	 * 'final events log' to.
 	 */
-	tmp = krealloc(log->bios_event_log,
-		       log_size + final_events_log_size,
-		       GFP_KERNEL);
+	tmp = devm_krealloc(&chip->dev, log->bios_event_log,
+			    log_size + final_events_log_size,
+			    GFP_KERNEL);
 	if (!tmp) {
-		kfree(log->bios_event_log);
+		devm_kfree(&chip->dev, log->bios_event_log);
 		ret = -ENOMEM;
 		goto out;
 	}
drivers/char/tpm/eventlog/of.c +2 -1
index a9ce66d09a75..741ab2204b11 100644
@@ -10,6 +10,7 @@
  * Read the event log created by the firmware on PPC64
  */
 
+#include <linux/device.h>
 #include <linux/slab.h>
 #include <linux/of.h>
 #include <linux/tpm_eventlog.h>
@@ -65,7 +66,7 @@ int tpm_read_log_of(struct tpm_chip *chip)
 		return -EIO;
 	}
 
-	log->bios_event_log = kmemdup(__va(base), size, GFP_KERNEL);
+	log->bios_event_log = devm_kmemdup(&chip->dev, __va(base), size, GFP_KERNEL);
 	if (!log->bios_event_log)
 		return -ENOMEM;
 
drivers/char/tpm/tpm-chip.c +0 -1
index c0759d49fd14..916ee815b140 100644
@@ -267,7 +267,6 @@ static void tpm_dev_release(struct device *dev)
 	idr_remove(&dev_nums_idr, chip->dev_num);
 	mutex_unlock(&idr_lock);
 
-	kfree(chip->log.bios_event_log);
 	kfree(chip->work_space.context_buf);
 	kfree(chip->work_space.session_buf);
 	kfree(chip->allocated_banks);
drivers/clk/mediatek/clk-mt2701-bdp.c +1 -0
index b0f057207945..d2647ea58ae2 100644
@@ -31,6 +31,7 @@ static const struct mtk_gate_regs bdp1_cg_regs = {
 	GATE_MTK(_id, _name, _parent, &bdp1_cg_regs, _shift, &mtk_clk_gate_ops_setclr_inv)
 
 static const struct mtk_gate bdp_clks[] = {
+	GATE_DUMMY(CLK_DUMMY, "bdp_dummy"),
 	GATE_BDP0(CLK_BDP_BRG_BA, "brg_baclk", "mm_sel", 0),
 	GATE_BDP0(CLK_BDP_BRG_DRAM, "brg_dram", "mm_sel", 1),
 	GATE_BDP0(CLK_BDP_LARB_DRAM, "larb_dram", "mm_sel", 2),
drivers/clk/mediatek/clk-mt2701-img.c +1 -0
index eb172473f075..569b6d3607dd 100644
@@ -22,6 +22,7 @@ static const struct mtk_gate_regs img_cg_regs = {
 	GATE_MTK(_id, _name, _parent, &img_cg_regs, _shift, &mtk_clk_gate_ops_setclr)
 
 static const struct mtk_gate img_clks[] = {
+	GATE_DUMMY(CLK_DUMMY, "img_dummy"),
 	GATE_IMG(CLK_IMG_SMI_COMM, "img_smi_comm", "mm_sel", 0),
 	GATE_IMG(CLK_IMG_RESZ, "img_resz", "mm_sel", 1),
 	GATE_IMG(CLK_IMG_JPGDEC_SMI, "img_jpgdec_smi", "mm_sel", 5),
drivers/clk/mediatek/clk-mt2701-vdec.c +1 -0
index 0f07c5d731df..fdd2645c167f 100644
@@ -31,6 +31,7 @@ static const struct mtk_gate_regs vdec1_cg_regs = {
 	GATE_MTK(_id, _name, _parent, &vdec1_cg_regs, _shift, &mtk_clk_gate_ops_setclr_inv)
 
 static const struct mtk_gate vdec_clks[] = {
+	GATE_DUMMY(CLK_DUMMY, "vdec_dummy"),
 	GATE_VDEC0(CLK_VDEC_CKGEN, "vdec_cken", "vdec_sel", 0),
 	GATE_VDEC1(CLK_VDEC_LARB, "vdec_larb_cken", "mm_sel", 0),
 };
drivers/clk/mediatek/clk-mtk.c +16 -0
index 9dbfc11d5c59..7b1ad73309b1 100644
@@ -21,6 +21,22 @@
 #include "clk-gate.h"
 #include "clk-mux.h"
 
+const struct mtk_gate_regs cg_regs_dummy = { 0, 0, 0 };
+EXPORT_SYMBOL_GPL(cg_regs_dummy);
+
+static int mtk_clk_dummy_enable(struct clk_hw *hw)
+{
+	return 0;
+}
+
+static void mtk_clk_dummy_disable(struct clk_hw *hw) { }
+
+const struct clk_ops mtk_clk_dummy_ops = {
+	.enable		= mtk_clk_dummy_enable,
+	.disable	= mtk_clk_dummy_disable,
+};
+EXPORT_SYMBOL_GPL(mtk_clk_dummy_ops);
+
 static void mtk_init_clk_data(struct clk_hw_onecell_data *clk_data,
 			      unsigned int clk_num)
 {
drivers/clk/mediatek/clk-mtk.h +19 -0
index 65c24ab6c947..04f371730ee3 100644
@@ -22,6 +22,25 @@
 
 struct platform_device;
 
+/*
+ * We need the clock IDs to start from zero but to maintain devicetree
+ * backwards compatibility we can't change bindings to start from zero.
+ * Only a few platforms are affected, so we solve issues given by the
+ * commonized MTK clocks probe function(s) by adding a dummy clock at
+ * the beginning where needed.
+ */
+#define CLK_DUMMY		0
+
+extern const struct clk_ops mtk_clk_dummy_ops;
+extern const struct mtk_gate_regs cg_regs_dummy;
+
+#define GATE_DUMMY(_id, _name) {				\
+		.id = _id,					\
+		.name = _name,					\
+		.regs = &cg_regs_dummy,				\
+		.ops = &mtk_clk_dummy_ops,			\
+	}
+
 struct mtk_fixed_clk {
 	int id;
 	const char *name;
drivers/edac/qcom_edac.c +2 -2
index 518092d7eaf7..303d0871184a 100644
@@ -95,7 +95,7 @@ static int qcom_llcc_core_setup(struct llcc_drv_data *drv, struct regmap *llcc_b
 	 * Configure interrupt enable registers such that Tag, Data RAM related
 	 * interrupts are propagated to interrupt controller for servicing
 	 */
-	ret = regmap_update_bits(llcc_bcast_regmap, drv->edac_reg_offset->cmn_interrupt_2_enable,
+	ret = regmap_update_bits(llcc_bcast_regmap, drv->edac_reg_offset->cmn_interrupt_0_enable,
 				 TRP0_INTERRUPT_ENABLE,
 				 TRP0_INTERRUPT_ENABLE);
 	if (ret)
@@ -113,7 +113,7 @@ static int qcom_llcc_core_setup(struct llcc_drv_data *drv, struct regmap *llcc_b
 	if (ret)
 		return ret;
 
-	ret = regmap_update_bits(llcc_bcast_regmap, drv->edac_reg_offset->cmn_interrupt_2_enable,
+	ret = regmap_update_bits(llcc_bcast_regmap, drv->edac_reg_offset->cmn_interrupt_0_enable,
 				 DRP0_INTERRUPT_ENABLE,
 				 DRP0_INTERRUPT_ENABLE);
 	if (ret)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c +14 -0
index 19f543ba7205..56e24b050eec 100644
@@ -885,6 +885,7 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev)
 	struct drm_device *dev = adev_to_drm(adev);
 	struct drm_connector *connector;
 	struct drm_connector_list_iter iter;
+	int i;
 
 	drm_connector_list_iter_begin(dev, &iter);
 	drm_for_each_connector_iter(connector, &iter) {
@@ -906,6 +907,12 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev)
 		}
 	}
 	drm_connector_list_iter_end(&iter);
+
+	/* Update reference counts for HPDs */
+	for (i = DC_IRQ_SOURCE_HPD1; i <= adev->mode_info.num_hpd; i++) {
+		if (amdgpu_irq_get(adev, &adev->hpd_irq, i - DC_IRQ_SOURCE_HPD1))
+			drm_err(dev, "DM_IRQ: Failed get HPD for source=%d)!\n", i);
+	}
 }
 
 /**
@@ -921,6 +928,7 @@ void amdgpu_dm_hpd_fini(struct amdgpu_device *adev)
 	struct drm_device *dev = adev_to_drm(adev);
 	struct drm_connector *connector;
 	struct drm_connector_list_iter iter;
+	int i;
 
 	drm_connector_list_iter_begin(dev, &iter);
 	drm_for_each_connector_iter(connector, &iter) {
@@ -941,4 +949,10 @@ void amdgpu_dm_hpd_fini(struct amdgpu_device *adev)
 		}
 	}
 	drm_connector_list_iter_end(&iter);
+
+	/* Update reference counts for HPDs */
+	for (i = DC_IRQ_SOURCE_HPD1; i <= adev->mode_info.num_hpd; i++) {
+		if (amdgpu_irq_put(adev, &adev->hpd_irq, i - DC_IRQ_SOURCE_HPD1))
+			drm_err(dev, "DM_IRQ: Failed put HPD for source=%d!\n", i);
+	}
 }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c +2 -1
index 3eb8794807d2..cb4b17c3b694 100644
@@ -51,7 +51,8 @@ static bool link_supports_psrsu(struct dc_link *link)
 	    !link->dpcd_caps.psr_info.psr2_su_y_granularity_cap)
 		return false;
 
-	return dc_dmub_check_min_version(dc->ctx->dmub_srv->dmub);
+	/* Temporarily disable PSR-SU to avoid glitches */
+	return false;
 }
 
 /*
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +10 -6
index 4d2590964a20..75e44d8a7b40 100644
@@ -1862,19 +1862,21 @@ static enum bp_result get_firmware_info_v3_2(
 		/* Vega12 */
 		smu_info_v3_2 = GET_IMAGE(struct atom_smu_info_v3_2,
 							DATA_TABLES(smu_info));
-		DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", smu_info_v3_2->gpuclk_ss_percentage);
 		if (!smu_info_v3_2)
 			return BP_RESULT_BADBIOSTABLE;
 
+		DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", smu_info_v3_2->gpuclk_ss_percentage);
+
 		info->default_engine_clk = smu_info_v3_2->bootup_dcefclk_10khz * 10;
 	} else if (revision.minor == 3) {
 		/* Vega20 */
 		smu_info_v3_3 = GET_IMAGE(struct atom_smu_info_v3_3,
 							DATA_TABLES(smu_info));
-		DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", smu_info_v3_3->gpuclk_ss_percentage);
 		if (!smu_info_v3_3)
 			return BP_RESULT_BADBIOSTABLE;
 
+		DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", smu_info_v3_3->gpuclk_ss_percentage);
+
 		info->default_engine_clk = smu_info_v3_3->bootup_dcefclk_10khz * 10;
 	}
 
@@ -2439,10 +2441,11 @@ static enum bp_result get_integrated_info_v11(
 	info_v11 = GET_IMAGE(struct atom_integrated_system_info_v1_11,
 					DATA_TABLES(integratedsysteminfo));
 
-	DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", info_v11->gpuclk_ss_percentage);
 	if (info_v11 == NULL)
 		return BP_RESULT_BADBIOSTABLE;
 
+	DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", info_v11->gpuclk_ss_percentage);
+
 	info->gpu_cap_info =
 	le32_to_cpu(info_v11->gpucapinfo);
 	/*
@@ -2654,11 +2657,12 @@ static enum bp_result get_integrated_info_v2_1(
 
 	info_v2_1 = GET_IMAGE(struct atom_integrated_system_info_v2_1,
 					DATA_TABLES(integratedsysteminfo));
-	DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", info_v2_1->gpuclk_ss_percentage);
 
 	if (info_v2_1 == NULL)
 		return BP_RESULT_BADBIOSTABLE;
 
+	DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", info_v2_1->gpuclk_ss_percentage);
+
 	info->gpu_cap_info =
 	le32_to_cpu(info_v2_1->gpucapinfo);
 	/*
@@ -2816,11 +2820,11 @@ static enum bp_result get_integrated_info_v2_2(
 	info_v2_2 = GET_IMAGE(struct atom_integrated_system_info_v2_2,
 					DATA_TABLES(integratedsysteminfo));
 
-	DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", info_v2_2->gpuclk_ss_percentage);
-
 	if (info_v2_2 == NULL)
 		return BP_RESULT_BADBIOSTABLE;
 
+	DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", info_v2_2->gpuclk_ss_percentage);
+
 	info->gpu_cap_info =
 	le32_to_cpu(info_v2_2->gpucapinfo);
 	/*
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c +19 -6
index a24f3b35ae91..a75c04d510fd 100644
@@ -3056,6 +3056,7 @@ static int kv_dpm_hw_init(void *handle)
 	if (!amdgpu_dpm)
 		return 0;
 
+	mutex_lock(&adev->pm.mutex);
 	kv_dpm_setup_asic(adev);
 	ret = kv_dpm_enable(adev);
 	if (ret)
@@ -3063,6 +3064,8 @@ static int kv_dpm_hw_init(void *handle)
 	else
 		adev->pm.dpm_enabled = true;
 	amdgpu_legacy_dpm_compute_clocks(adev);
+	mutex_unlock(&adev->pm.mutex);
+
 	return ret;
 }
 
@@ -3080,32 +3083,42 @@ static int kv_dpm_suspend(void *handle)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+	cancel_work_sync(&adev->pm.dpm.thermal.work);
+
 	if (adev->pm.dpm_enabled) {
+		mutex_lock(&adev->pm.mutex);
+		adev->pm.dpm_enabled = false;
 		/* disable dpm */
 		kv_dpm_disable(adev);
 		/* reset the power state */
 		adev->pm.dpm.current_ps = adev->pm.dpm.requested_ps = adev->pm.dpm.boot_ps;
+		mutex_unlock(&adev->pm.mutex);
 	}
 	return 0;
 }
 
 static int kv_dpm_resume(void *handle)
 {
-	int ret;
+	int ret = 0;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-	if (adev->pm.dpm_enabled) {
+	if (!amdgpu_dpm)
+		return 0;
+
+	if (!adev->pm.dpm_enabled) {
+		mutex_lock(&adev->pm.mutex);
 		/* asic init will reset to the boot state */
 		kv_dpm_setup_asic(adev);
 		ret = kv_dpm_enable(adev);
-		if (ret)
+		if (ret) {
 			adev->pm.dpm_enabled = false;
-		else
+		} else {
 			adev->pm.dpm_enabled = true;
-		if (adev->pm.dpm_enabled)
 			amdgpu_legacy_dpm_compute_clocks(adev);
+		}
+		mutex_unlock(&adev->pm.mutex);
 	}
-	return 0;
+	return ret;
 }
 
 static bool kv_dpm_is_idle(void *handle)
drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c +6 -2
index 291223ea7ba7..2fd97f5cf8f6 100644
@@ -1018,9 +1018,12 @@ void amdgpu_dpm_thermal_work_handler(struct work_struct *work)
 	enum amd_pm_state_type dpm_state = POWER_STATE_TYPE_INTERNAL_THERMAL;
 	int temp, size = sizeof(temp);
 
-	if (!adev->pm.dpm_enabled)
-		return;
+	mutex_lock(&adev->pm.mutex);
 
+	if (!adev->pm.dpm_enabled) {
+		mutex_unlock(&adev->pm.mutex);
+		return;
+	}
 	if (!pp_funcs->read_sensor(adev->powerplay.pp_handle,
 				   AMDGPU_PP_SENSOR_GPU_TEMP,
 				   (void *)&temp,
@@ -1042,4 +1045,5 @@ void amdgpu_dpm_thermal_work_handler(struct work_struct *work)
 	adev->pm.dpm.state = dpm_state;
 
 	amdgpu_legacy_dpm_compute_clocks(adev->powerplay.pp_handle);
+	mutex_unlock(&adev->pm.mutex);
 }
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c +20 -6
index ff1032de4f76..52e4397d4a2a 100644
@@ -7796,6 +7796,7 @@ static int si_dpm_hw_init(void *handle)
 	if (!amdgpu_dpm)
 		return 0;
 
+	mutex_lock(&adev->pm.mutex);
 	si_dpm_setup_asic(adev);
 	ret = si_dpm_enable(adev);
 	if (ret)
@@ -7803,6 +7804,7 @@ static int si_dpm_hw_init(void *handle)
 	else
 		adev->pm.dpm_enabled = true;
 	amdgpu_legacy_dpm_compute_clocks(adev);
+	mutex_unlock(&adev->pm.mutex);
 	return ret;
 }
 
@@ -7820,32 +7822,44 @@ static int si_dpm_suspend(void *handle)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+	cancel_work_sync(&adev->pm.dpm.thermal.work);
+
 	if (adev->pm.dpm_enabled) {
+		mutex_lock(&adev->pm.mutex);
+		adev->pm.dpm_enabled = false;
 		/* disable dpm */
 		si_dpm_disable(adev);
 		/* reset the power state */
 		adev->pm.dpm.current_ps = adev->pm.dpm.requested_ps = adev->pm.dpm.boot_ps;
+		mutex_unlock(&adev->pm.mutex);
 	}
+
 	return 0;
 }
 
 static int si_dpm_resume(void *handle)
 {
-	int ret;
+	int ret = 0;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-	if (adev->pm.dpm_enabled) {
+	if (!amdgpu_dpm)
+		return 0;
+
+	if (!adev->pm.dpm_enabled) {
 		/* asic init will reset to the boot state */
+		mutex_lock(&adev->pm.mutex);
 		si_dpm_setup_asic(adev);
 		ret = si_dpm_enable(adev);
-		if (ret)
+		if (ret) {
 			adev->pm.dpm_enabled = false;
-		else
+		} else {
 			adev->pm.dpm_enabled = true;
-		if (adev->pm.dpm_enabled)
 			amdgpu_legacy_dpm_compute_clocks(adev);
+		}
+		mutex_unlock(&adev->pm.mutex);
 	}
-	return 0;
+
+	return ret;
 }
 
 static bool si_dpm_is_idle(void *handle)
drivers/gpu/drm/i915/display/intel_display.c +18 -0
index fb8d1d63407a..4b5bf23f2336 100644
@@ -6691,12 +6691,30 @@ static int intel_async_flip_check_hw(struct intel_atomic_state *state, struct in
 static int intel_bigjoiner_add_affected_crtcs(struct intel_atomic_state *state)
 {
 	struct drm_i915_private *i915 = to_i915(state->base.dev);
+	const struct intel_plane_state *plane_state;
 	struct intel_crtc_state *crtc_state;
+	struct intel_plane *plane;
 	struct intel_crtc *crtc;
 	u8 affected_pipes = 0;
 	u8 modeset_pipes = 0;
 	int i;
 
+	/*
+	 * Any plane which is in use by the joiner needs its crtc.
+	 * Pull those in first as this will not have happened yet
+	 * if the plane remains disabled according to uapi.
+	 */
+	for_each_new_intel_plane_in_state(state, plane, plane_state, i) {
+		crtc = to_intel_crtc(plane_state->hw.crtc);
+		if (!crtc)
+			continue;
+
+		crtc_state = intel_atomic_get_crtc_state(&state->base, crtc);
+		if (IS_ERR(crtc_state))
+			return PTR_ERR(crtc_state);
+	}
+
+	/* Now pull in all joined crtcs */
 	for_each_new_intel_crtc_in_state(state, crtc, crtc_state, i) {
 		affected_pipes |= crtc_state->bigjoiner_pipes;
 		if (intel_crtc_needs_modeset(crtc_state))
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +3 -0
index ba8f2ba04629..5f8345016ffe 100644
@@ -2059,6 +2059,9 @@ void dpu_encoder_helper_phys_cleanup(struct dpu_encoder_phys *phys_enc)
 		}
 	}
 
+	if (phys_enc->hw_pp && phys_enc->hw_pp->ops.setup_dither)
+		phys_enc->hw_pp->ops.setup_dither(phys_enc->hw_pp, NULL);
+
 	/* reset the merge 3D HW block */
 	if (phys_enc->hw_pp && phys_enc->hw_pp->merge_3d) {
 		phys_enc->hw_pp->merge_3d->ops.setup_3d_mode(phys_enc->hw_pp->merge_3d,
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c +2 -1
index c8f14555834a..70a6dfe94faa 100644
@@ -46,6 +46,7 @@ static void dpu_hw_dsc_config(struct dpu_hw_dsc *hw_dsc,
 	u32 slice_last_group_size;
 	u32 det_thresh_flatness;
 	bool is_cmd_mode = !(mode & DSC_MODE_VIDEO);
+	bool input_10_bits = dsc->bits_per_component == 10;
 
 	DPU_REG_WRITE(c, DSC_COMMON_MODE, mode);
 
@@ -62,7 +63,7 @@ static void dpu_hw_dsc_config(struct dpu_hw_dsc *hw_dsc,
 	data |= (dsc->line_buf_depth << 3);
 	data |= (dsc->simple_422 << 2);
 	data |= (dsc->convert_rgb << 1);
-	data |= dsc->bits_per_component;
+	data |= input_10_bits;
 
 	DPU_REG_WRITE(c, DSC_ENC, data);
 
drivers/gpu/drm/nouveau/nouveau_svm.c +7 -2
index be6674fb1af7..d0bff13ac758 100644
@@ -592,6 +592,7 @@ static int nouveau_atomic_range_fault(struct nouveau_svmm *svmm,
 	unsigned long timeout =
 		jiffies + msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT);
 	struct mm_struct *mm = svmm->notifier.mm;
+	struct folio *folio;
 	struct page *page;
 	unsigned long start = args->p.addr;
 	unsigned long notifier_seq;
@@ -618,12 +619,16 @@ static int nouveau_atomic_range_fault(struct nouveau_svmm *svmm,
 			ret = -EINVAL;
 			goto out;
 		}
+		folio = page_folio(page);
 
 		mutex_lock(&svmm->mutex);
 		if (!mmu_interval_read_retry(&notifier->notifier,
 					     notifier_seq))
 			break;
 		mutex_unlock(&svmm->mutex);
+
+		folio_unlock(folio);
+		folio_put(folio);
 	}
 
 	/* Map the page on the GPU. */
@@ -639,8 +644,8 @@ static int nouveau_atomic_range_fault(struct nouveau_svmm *svmm,
 	ret = nvif_object_ioctl(&svmm->vmm->vmm.object, args, size, NULL);
 	mutex_unlock(&svmm->mutex);
 
-	unlock_page(page);
-	put_page(page);
+	folio_unlock(folio);
+	folio_put(folio);
 
 out:
 	mmu_interval_notifier_remove(&notifier->notifier);
drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c +1 -1
index a7f2b7f66a17..9ec9c43971df 100644
@@ -396,7 +396,7 @@ static int rcar_mipi_dsi_startup(struct rcar_mipi_dsi *dsi,
 	for (timeout = 10; timeout > 0; --timeout) {
 		if ((rcar_mipi_dsi_read(dsi, PPICLSR) & PPICLSR_STPST) &&
 		    (rcar_mipi_dsi_read(dsi, PPIDLSR) & PPIDLSR_STPST) &&
-		    (rcar_mipi_dsi_read(dsi, CLOCKSET1) & CLOCKSET1_LOCK))
+		    (rcar_mipi_dsi_read(dsi, CLOCKSET1) & CLOCKSET1_LOCK_PHY))
 			break;
 
 		usleep_range(1000, 2000);
drivers/gpu/drm/rcar-du/rcar_mipi_dsi_regs.h +0 -1
index 2eaca54636f3..1f1eb46c721f 100644
@@ -141,7 +141,6 @@
 
 #define CLOCKSET1			0x101c
 #define CLOCKSET1_LOCK_PHY		(1 << 17)
-#define CLOCKSET1_LOCK			(1 << 16)
 #define CLOCKSET1_CLKSEL		(1 << 8)
 #define CLOCKSET1_CLKINSEL_EXTAL	(0 << 2)
 #define CLOCKSET1_CLKINSEL_DIG		(1 << 2)
drivers/gpu/drm/tidss/tidss_dispc.c +20 -2
index c986d432af50..38b2ae0d7ec1 100644
@@ -2655,14 +2655,32 @@ static void dispc_init_errata(struct dispc_device *dispc)
 	}
 }
 
+/*
+ * K2G display controller does not support soft reset, so we do a basic manual
+ * reset here: make sure the IRQs are masked and VPs are disabled.
+ */
+static void dispc_softreset_k2g(struct dispc_device *dispc)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&dispc->tidss->wait_lock, flags);
+	dispc_set_irqenable(dispc, 0);
+	dispc_read_and_clear_irqstatus(dispc);
+	spin_unlock_irqrestore(&dispc->tidss->wait_lock, flags);
+
+	for (unsigned int vp_idx = 0; vp_idx < dispc->feat->num_vps; ++vp_idx)
+		VP_REG_FLD_MOD(dispc, vp_idx, DISPC_VP_CONTROL, 0, 0, 0);
+}
+
 static int dispc_softreset(struct dispc_device *dispc)
 {
 	u32 val;
 	int ret = 0;
 
-	/* K2G display controller does not support soft reset */
-	if (dispc->feat->subrev == DISPC_K2G)
+	if (dispc->feat->subrev == DISPC_K2G) {
+		dispc_softreset_k2g(dispc);
 		return 0;
+	}
 
 	/* Soft reset */
 	REG_FLD_MOD(dispc, DSS_SYSCONFIG, 1, 1, 1);
drivers/gpu/drm/tidss/tidss_irq.c +2 -0
index 0c681c7600bc..f13c7e434f8e 100644
@@ -60,7 +60,9 @@ static irqreturn_t tidss_irq_handler(int irq, void *arg)
 	unsigned int id;
 	dispc_irq_t irqstatus;
 
+	spin_lock(&tidss->wait_lock);
 	irqstatus = dispc_read_and_clear_irqstatus(tidss->dispc);
+	spin_unlock(&tidss->wait_lock);
 
 	for (id = 0; id < tidss->num_crtcs; id++) {
 		struct drm_crtc *crtc = tidss->crtcs[id];
drivers/i2c/busses/i2c-npcm7xx.c +7 -0
index 767dd15b3c88..0947e3d155c5 100644
@@ -2335,6 +2335,13 @@ static int npcm_i2c_probe_bus(struct platform_device *pdev)
 	if (irq < 0)
 		return irq;
 
+	/*
+	 * Disable the interrupt to avoid the interrupt handler being triggered
+	 * incorrectly by the asynchronous interrupt status since the machine
+	 * might do a warm reset during the last smbus/i2c transfer session.
+	 */
+	npcm_i2c_int_enable(bus, false);
+
 	ret = devm_request_irq(bus->dev, irq, npcm_i2c_bus_irq, 0,
 			       dev_name(bus->dev), bus);
 	if (ret)
drivers/idle/intel_idle.c +4 -0
index bb3d10099ba4..5d7bbccb52b5 100644
@@ -56,6 +56,7 @@
 #include <asm/nospec-branch.h>
 #include <asm/mwait.h>
 #include <asm/msr.h>
+#include <asm/tsc.h>
 #include <asm/fpu/api.h>
 
 #define INTEL_IDLE_VERSION "0.5.1"
@@ -1583,6 +1584,9 @@ static void __init intel_idle_init_cstates_acpi(struct cpuidle_driver *drv)
 		if (intel_idle_state_needs_timer_stop(state))
 			state->flags |= CPUIDLE_FLAG_TIMER_STOP;
 
+		if (cx->type > ACPI_STATE_C1 && !boot_cpu_has(X86_FEATURE_NONSTOP_TSC))
+			mark_tsc_unstable("TSC halts in idle");
+
 		state->enter = intel_idle;
 		state->enter_s2idle = intel_idle_s2idle;
 	}
drivers/infiniband/hw/mlx5/counters.c +6 -2
index 3e1272695d99..9915504ad1e1 100644
@@ -444,6 +444,7 @@ static int mlx5_ib_counter_bind_qp(struct rdma_counter *counter,
 				   struct ib_qp *qp)
 {
 	struct mlx5_ib_dev *dev = to_mdev(qp->device);
+	bool new = false;
 	int err;
 
 	if (!counter->id) {
@@ -458,6 +459,7 @@ static int mlx5_ib_counter_bind_qp(struct rdma_counter *counter,
 			return err;
 		counter->id =
 			MLX5_GET(alloc_q_counter_out, out, counter_set_id);
+		new = true;
 	}
 
 	err = mlx5_ib_qp_set_counter(qp, counter);
@@ -467,8 +469,10 @@ static int mlx5_ib_counter_bind_qp(struct rdma_counter *counter,
 	return 0;
 
 fail_set_counter:
-	mlx5_ib_counter_dealloc(counter);
-	counter->id = 0;
+	if (new) {
+		mlx5_ib_counter_dealloc(counter);
+		counter->id = 0;
+	}
 
 	return err;
 }
drivers/infiniband/hw/mlx5/qp.c +3 -1
index 8d132b726c64..d782a494abcd 100644
@@ -4466,6 +4466,8 @@ static int mlx5_ib_modify_dct(struct ib_qp *ibqp, struct ib_qp_attr *attr,
 
 		set_id = mlx5_ib_get_counters_id(dev, attr->port_num - 1);
 		MLX5_SET(dctc, dctc, counter_set_id, set_id);
+
+		qp->port = attr->port_num;
 	} else if (cur_state == IB_QPS_INIT && new_state == IB_QPS_RTR) {
 		struct mlx5_ib_modify_qp_resp resp = {};
 		u32 out[MLX5_ST_SZ_DW(create_dct_out)] = {};
@@ -4955,7 +4957,7 @@ static int mlx5_ib_dct_query_qp(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *mqp,
 	}
 
 	if (qp_attr_mask & IB_QP_PORT)
-		qp_attr->port_num = MLX5_GET(dctc, dctc, port);
+		qp_attr->port_num = mqp->port;
 	if (qp_attr_mask & IB_QP_MIN_RNR_TIMER)
 		qp_attr->min_rnr_timer = MLX5_GET(dctc, dctc, min_rnr_nak);
 	if (qp_attr_mask & IB_QP_AV) {
drivers/md/md-bitmap.c +15 -19
index 9d8ac04c2346..e18e21b24210 100644
@@ -2022,33 +2022,29 @@ int md_bitmap_copy_from_slot(struct mddev *mddev, int slot,
 }
 EXPORT_SYMBOL_GPL(md_bitmap_copy_from_slot);
 
-
-void md_bitmap_status(struct seq_file *seq, struct bitmap *bitmap)
+int md_bitmap_get_stats(struct bitmap *bitmap, struct md_bitmap_stats *stats)
 {
-	unsigned long chunk_kb;
 	struct bitmap_counts *counts;
+	bitmap_super_t *sb;
 
 	if (!bitmap)
-		return;
+		return -ENOENT;
+	if (bitmap->mddev->bitmap_info.external)
+		return -ENOENT;
+	if (!bitmap->storage.sb_page) /* no superblock */
+		return -EINVAL;
+	sb = kmap_local_page(bitmap->storage.sb_page);
+	stats->sync_size = le64_to_cpu(sb->sync_size);
+	kunmap_local(sb);
 
 	counts = &bitmap->counts;
+	stats->missing_pages = counts->missing_pages;
+	stats->pages = counts->pages;
+	stats->file = bitmap->storage.file;
 
-	chunk_kb = bitmap->mddev->bitmap_info.chunksize >> 10;
-	seq_printf(seq, "bitmap: %lu/%lu pages [%luKB], "
-		   "%lu%s chunk",
-		   counts->pages - counts->missing_pages,
-		   counts->pages,
-		   (counts->pages - counts->missing_pages)
-		   << (PAGE_SHIFT - 10),
-		   chunk_kb ? chunk_kb : bitmap->mddev->bitmap_info.chunksize,
-		   chunk_kb ? "KB" : "B");
-	if (bitmap->storage.file) {
-		seq_printf(seq, ", file: ");
-		seq_file_path(seq, bitmap->storage.file, " \t\n");
-	}
-
-	seq_printf(seq, "\n");
+	return 0;
 }
+EXPORT_SYMBOL_GPL(md_bitmap_get_stats);
 
 int md_bitmap_resize(struct bitmap *bitmap, sector_t blocks,
 		  int chunksize, int init)
drivers/md/md-bitmap.h +8 -1
index 3a4750952b3a..7b7a701f74be 100644
@@ -233,6 +233,13 @@ struct bitmap {
 	int cluster_slot;		/* Slot offset for clustered env */
 };
 
+struct md_bitmap_stats {
+	unsigned long	missing_pages;
+	unsigned long	sync_size;
+	unsigned long	pages;
+	struct file	*file;
+};
+
 /* the bitmap API */
 
 /* these are used only by md/bitmap */
@@ -243,7 +250,7 @@ void md_bitmap_destroy(struct mddev *mddev);
 
 void md_bitmap_print_sb(struct bitmap *bitmap);
 void md_bitmap_update_sb(struct bitmap *bitmap);
-void md_bitmap_status(struct seq_file *seq, struct bitmap *bitmap);
+int md_bitmap_get_stats(struct bitmap *bitmap, struct md_bitmap_stats *stats);
 
 int  md_bitmap_setallbits(struct bitmap *bitmap);
 void md_bitmap_write_all(struct bitmap *bitmap);
drivers/md/md-cluster.c +20 -14
index 10e0c5381d01..7484bb83171a 100644
@@ -1185,18 +1185,21 @@ static int resize_bitmaps(struct mddev *mddev, sector_t newsize, sector_t oldsiz
  */
 static int cluster_check_sync_size(struct mddev *mddev)
 {
-	int i, rv;
-	bitmap_super_t *sb;
-	unsigned long my_sync_size, sync_size = 0;
-	int node_num = mddev->bitmap_info.nodes;
 	int current_slot = md_cluster_ops->slot_number(mddev);
+	int node_num = mddev->bitmap_info.nodes;
 	struct bitmap *bitmap = mddev->bitmap;
-	char str[64];
 	struct dlm_lock_resource *bm_lockres;
+	struct md_bitmap_stats stats;
+	unsigned long sync_size = 0;
+	unsigned long my_sync_size;
+	char str[64];
+	int i, rv;
 
-	sb = kmap_atomic(bitmap->storage.sb_page);
-	my_sync_size = sb->sync_size;
-	kunmap_atomic(sb);
+	rv = md_bitmap_get_stats(bitmap, &stats);
+	if (rv)
+		return rv;
+
+	my_sync_size = stats.sync_size;
 
 	for (i = 0; i < node_num; i++) {
 		if (i == current_slot)
@@ -1225,15 +1228,18 @@ static int cluster_check_sync_size(struct mddev *mddev)
 			md_bitmap_update_sb(bitmap);
 		lockres_free(bm_lockres);
 
-		sb = kmap_atomic(bitmap->storage.sb_page);
-		if (sync_size == 0)
-			sync_size = sb->sync_size;
-		else if (sync_size != sb->sync_size) {
-			kunmap_atomic(sb);
+		rv = md_bitmap_get_stats(bitmap, &stats);
+		if (rv) {
+			md_bitmap_free(bitmap);
+			return rv;
+		}
+
+		if (sync_size == 0) {
+			sync_size = stats.sync_size;
+		} else if (sync_size != stats.sync_size) {
 			md_bitmap_free(bitmap);
 			return -1;
 		}
-		kunmap_atomic(sb);
 		md_bitmap_free(bitmap);
 	}
 
drivers/md/md.c +32 -1
index 297c86f5c70b..5e2751d42f64 100644
@@ -8318,6 +8318,33 @@ static void md_seq_stop(struct seq_file *seq, void *v)
 		mddev_put(mddev);
 }
 
+static void md_bitmap_status(struct seq_file *seq, struct mddev *mddev)
+{
+	struct md_bitmap_stats stats;
+	unsigned long used_pages;
+	unsigned long chunk_kb;
+	int err;
+
+	err = md_bitmap_get_stats(mddev->bitmap, &stats);
+	if (err)
+		return;
+
+	chunk_kb = mddev->bitmap_info.chunksize >> 10;
+	used_pages = stats.pages - stats.missing_pages;
+
+	seq_printf(seq, "bitmap: %lu/%lu pages [%luKB], %lu%s chunk",
+		   used_pages, stats.pages, used_pages << (PAGE_SHIFT - 10),
+		   chunk_kb ? chunk_kb : mddev->bitmap_info.chunksize,
+		   chunk_kb ? "KB" : "B");
+
+	if (stats.file) {
+		seq_puts(seq, ", file: ");
+		seq_file_path(seq, stats.file, " \t\n");
+	}
+
+	seq_putc(seq, '\n');
+}
+
 static int md_seq_show(struct seq_file *seq, void *v)
 {
 	struct mddev *mddev = v;
@@ -8341,6 +8368,9 @@ static int md_seq_show(struct seq_file *seq, void *v)
 		return 0;
 	}
 
+	/* prevent bitmap to be freed after checking */
+	mutex_lock(&mddev->bitmap_info.mutex);
+
 	spin_lock(&mddev->lock);
 	if (mddev->pers || mddev->raid_disks || !list_empty(&mddev->disks)) {
 		seq_printf(seq, "%s : %sactive", mdname(mddev),
@@ -8406,11 +8436,12 @@ static int md_seq_show(struct seq_file *seq, void *v)
 		} else
 			seq_printf(seq, "\n       ");
 
-		md_bitmap_status(seq, mddev->bitmap);
+		md_bitmap_status(seq, mddev);
 
 		seq_printf(seq, "\n");
 	}
 	spin_unlock(&mddev->lock);
+	mutex_unlock(&mddev->bitmap_info.mutex);
 
 	return 0;
 }
drivers/media/cec/platform/stm32/stm32-cec.c +3 -6
index 40db7911b437..7b2db46a5722 100644
@@ -288,12 +288,9 @@ static int stm32_cec_probe(struct platform_device *pdev)
 		return ret;
 
 	cec->clk_cec = devm_clk_get(&pdev->dev, "cec");
-	if (IS_ERR(cec->clk_cec)) {
-		if (PTR_ERR(cec->clk_cec) != -EPROBE_DEFER)
-			dev_err(&pdev->dev, "Cannot get cec clock\n");
-
-		return PTR_ERR(cec->clk_cec);
-	}
+	if (IS_ERR(cec->clk_cec))
+		return dev_err_probe(&pdev->dev, PTR_ERR(cec->clk_cec),
+				     "Cannot get cec clock\n");
 
 	ret = clk_prepare(cec->clk_cec);
 	if (ret) {
drivers/media/i2c/ad5820.c +6 -12
index 088c29c4e252..56d22d02a0d9 100644
@@ -301,21 +301,15 @@ static int ad5820_probe(struct i2c_client *client,
 		return -ENOMEM;
 
 	coil->vana = devm_regulator_get(&client->dev, "VANA");
-	if (IS_ERR(coil->vana)) {
-		ret = PTR_ERR(coil->vana);
-		if (ret != -EPROBE_DEFER)
-			dev_err(&client->dev, "could not get regulator for vana\n");
-		return ret;
-	}
+	if (IS_ERR(coil->vana))
+		return dev_err_probe(&client->dev, PTR_ERR(coil->vana),
+				     "could not get regulator for vana\n");
 
 	coil->enable_gpio = devm_gpiod_get_optional(&client->dev, "enable",
 						    GPIOD_OUT_LOW);
-	if (IS_ERR(coil->enable_gpio)) {
-		ret = PTR_ERR(coil->enable_gpio);
-		if (ret != -EPROBE_DEFER)
-			dev_err(&client->dev, "could not get enable gpio\n");
-		return ret;
-	}
+	if (IS_ERR(coil->enable_gpio))
+		return dev_err_probe(&client->dev, PTR_ERR(coil->enable_gpio),
+				     "could not get enable gpio\n");
 
 	mutex_init(&coil->power_lock);
 
drivers/media/i2c/imx274.c +2 -3
index a00761b1e18c..9219f3c9594b 100644
@@ -2060,9 +2060,8 @@ static int imx274_probe(struct i2c_client *client)
 	imx274->reset_gpio = devm_gpiod_get_optional(dev, "reset",
 						     GPIOD_OUT_HIGH);
 	if (IS_ERR(imx274->reset_gpio)) {
-		if (PTR_ERR(imx274->reset_gpio) != -EPROBE_DEFER)
-			dev_err(dev, "Reset GPIO not setup in DT");
-		ret = PTR_ERR(imx274->reset_gpio);
+		ret = dev_err_probe(dev, PTR_ERR(imx274->reset_gpio),
+				    "Reset GPIO not setup in DT\n");
 		goto err_me;
 	}
 
drivers/media/i2c/tc358743.c +3 -6
index 45dd91d1cd81..2c8189e04a13 100644
@@ -1891,12 +1891,9 @@ static int tc358743_probe_of(struct tc358743_state *state)
 	int ret;
 
 	refclk = devm_clk_get(dev, "refclk");
-	if (IS_ERR(refclk)) {
-		if (PTR_ERR(refclk) != -EPROBE_DEFER)
-			dev_err(dev, "failed to get refclk: %ld\n",
-				PTR_ERR(refclk));
-		return PTR_ERR(refclk);
-	}
+	if (IS_ERR(refclk))
+		return dev_err_probe(dev, PTR_ERR(refclk),
+				     "failed to get refclk\n");
 
 	ep = of_graph_get_next_endpoint(dev->of_node, NULL);
 	if (!ep) {
drivers/media/platform/mediatek/mdp/mtk_mdp_comp.c +2 -3
index 1e3833f1c9ae..ad5fab2d8bfa 100644
@@ -52,9 +52,8 @@ int mtk_mdp_comp_init(struct device *dev, struct device_node *node,
 	for (i = 0; i < ARRAY_SIZE(comp->clk); i++) {
 		comp->clk[i] = of_clk_get(node, i);
 		if (IS_ERR(comp->clk[i])) {
-			if (PTR_ERR(comp->clk[i]) != -EPROBE_DEFER)
-				dev_err(dev, "Failed to get clock\n");
-			ret = PTR_ERR(comp->clk[i]);
+			ret = dev_err_probe(dev, PTR_ERR(comp->clk[i]),
+					    "Failed to get clock\n");
 			goto put_dev;
 		}
 
drivers/media/platform/mediatek/vcodec/mtk_vcodec_fw_scp.c +2 -0
index d8e66b645bd8..27f08b1d34d1 100644
@@ -65,6 +65,8 @@ struct mtk_vcodec_fw *mtk_vcodec_fw_scp_init(struct mtk_vcodec_dev *dev)
 	}
 
 	fw = devm_kzalloc(&dev->plat_dev->dev, sizeof(*fw), GFP_KERNEL);
+	if (!fw)
+		return ERR_PTR(-ENOMEM);
 	fw->type = SCP;
 	fw->ops = &mtk_vcodec_rproc_msg;
 	fw->scp = scp;
drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c +7 -2
index 999ce7ee5fdc..6952875ca183 100644
@@ -729,11 +729,16 @@ static int vdec_h264_slice_single_decode(void *h_vdec, struct mtk_vcodec_mem *bs
 		return vpu_dec_reset(vpu);
 
 	fb = inst->ctx->dev->vdec_pdata->get_cap_buffer(inst->ctx);
+	if (!fb) {
+		mtk_vcodec_err(inst, "fb buffer is NULL");
+		return -ENOMEM;
+	}
+
 	src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
 	dst_buf_info = container_of(fb, struct mtk_video_dec_buf, frame_buffer);
 
-	y_fb_dma = fb ? (u64)fb->base_y.dma_addr : 0;
-	c_fb_dma = fb ? (u64)fb->base_c.dma_addr : 0;
+	y_fb_dma = fb->base_y.dma_addr;
+	c_fb_dma = fb->base_c.dma_addr;
 	mtk_vcodec_debug(inst, "[h264-dec] [%d] y_dma=%llx c_dma=%llx",
 			 inst->ctx->decoded_frame_cnt, y_fb_dma, c_fb_dma);
 
drivers/media/platform/samsung/exynos4-is/media-dev.c +1 -3
index 2f3071acb9c9..98a60f01129d 100644
@@ -1471,9 +1471,7 @@ static int fimc_md_probe(struct platform_device *pdev)
 
 	pinctrl = devm_pinctrl_get(dev);
 	if (IS_ERR(pinctrl)) {
-		ret = PTR_ERR(pinctrl);
-		if (ret != -EPROBE_DEFER)
-			dev_err(dev, "Failed to get pinctrl: %d\n", ret);
+		ret = dev_err_probe(dev, PTR_ERR(pinctrl), "Failed to get pinctrl\n");
 		goto err_clk;
 	}
 
drivers/media/platform/st/stm32/stm32-dcmi.c +9 -18
index 37458d4d9564..06be28b361f1 100644
@@ -1946,12 +1946,9 @@ static int dcmi_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	dcmi->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
-	if (IS_ERR(dcmi->rstc)) {
-		if (PTR_ERR(dcmi->rstc) != -EPROBE_DEFER)
-			dev_err(&pdev->dev, "Could not get reset control\n");
-
-		return PTR_ERR(dcmi->rstc);
-	}
+	if (IS_ERR(dcmi->rstc))
+		return dev_err_probe(&pdev->dev, PTR_ERR(dcmi->rstc),
+				     "Could not get reset control\n");
 
 	/* Get bus characteristics from devicetree */
 	np = of_graph_get_next_endpoint(np, NULL);
@@ -2003,20 +2000,14 @@ static int dcmi_probe(struct platform_device *pdev)
 	}
 
 	mclk = devm_clk_get(&pdev->dev, "mclk");
-	if (IS_ERR(mclk)) {
-		if (PTR_ERR(mclk) != -EPROBE_DEFER)
-			dev_err(&pdev->dev, "Unable to get mclk\n");
-		return PTR_ERR(mclk);
-	}
+	if (IS_ERR(mclk))
+		return dev_err_probe(&pdev->dev, PTR_ERR(mclk),
+				     "Unable to get mclk\n");
 
 	chan = dma_request_chan(&pdev->dev, "tx");
-	if (IS_ERR(chan)) {
-		ret = PTR_ERR(chan);
-		if (ret != -EPROBE_DEFER)
-			dev_err(&pdev->dev,
-				"Failed to request DMA channel: %d\n", ret);
-		return ret;
-	}
+	if (IS_ERR(chan))
+		return dev_err_probe(&pdev->dev, PTR_ERR(chan),
+				     "Failed to request DMA channel\n");
 
 	dcmi->dma_max_burst = UINT_MAX;
 	ret = dma_get_slave_caps(chan, &caps);
drivers/media/platform/ti/omap3isp/isp.c +1 -2
index 11ae479ee89c..e7327e38482d 100644
@@ -1884,8 +1884,7 @@ static int isp_initialize_modules(struct isp_device *isp)
 
 	ret = omap3isp_ccp2_init(isp);
 	if (ret < 0) {
-		if (ret != -EPROBE_DEFER)
-			dev_err(isp->dev, "CCP2 initialization failed\n");
+		dev_err_probe(isp->dev, ret, "CCP2 initialization failed\n");
 		goto error_ccp2;
 	}
 
drivers/media/platform/xilinx/xilinx-csi2rxss.c +3 -5
index 29b53febc2e7..d8a23f18cfbc 100644
@@ -976,11 +976,9 @@ static int xcsi2rxss_probe(struct platform_device *pdev)
 	/* Reset GPIO */
 	xcsi2rxss->rst_gpio = devm_gpiod_get_optional(dev, "video-reset",
 						      GPIOD_OUT_HIGH);
-	if (IS_ERR(xcsi2rxss->rst_gpio)) {
-		if (PTR_ERR(xcsi2rxss->rst_gpio) != -EPROBE_DEFER)
-			dev_err(dev, "Video Reset GPIO not setup in DT");
-		return PTR_ERR(xcsi2rxss->rst_gpio);
-	}
+	if (IS_ERR(xcsi2rxss->rst_gpio))
+		return dev_err_probe(dev, PTR_ERR(xcsi2rxss->rst_gpio),
+				     "Video Reset GPIO not setup in DT\n");
 
 	ret = xcsi2rxss_parse_of(xcsi2rxss);
 	if (ret < 0)
drivers/media/rc/gpio-ir-recv.c +3 -7
index 16795e07dc10..41ef8cdba28c 100644
@@ -74,13 +74,9 @@ static int gpio_ir_recv_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	gpio_dev->gpiod = devm_gpiod_get(dev, NULL, GPIOD_IN);
-	if (IS_ERR(gpio_dev->gpiod)) {
-		rc = PTR_ERR(gpio_dev->gpiod);
-		/* Just try again if this happens */
-		if (rc != -EPROBE_DEFER)
-			dev_err(dev, "error getting gpio (%d)\n", rc);
-		return rc;
-	}
+	if (IS_ERR(gpio_dev->gpiod))
+		return dev_err_probe(dev, PTR_ERR(gpio_dev->gpiod),
+				     "error getting gpio\n");
 	gpio_dev->irq = gpiod_to_irq(gpio_dev->gpiod);
 	if (gpio_dev->irq < 0)
 		return gpio_dev->irq;
drivers/media/rc/gpio-ir-tx.c +3 -6
index d3063ddb472e..2b829c146db1 100644
@@ -174,12 +174,9 @@ static int gpio_ir_tx_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	gpio_ir->gpio = devm_gpiod_get(&pdev->dev, NULL, GPIOD_OUT_LOW);
-	if (IS_ERR(gpio_ir->gpio)) {
-		if (PTR_ERR(gpio_ir->gpio) != -EPROBE_DEFER)
-			dev_err(&pdev->dev, "Failed to get gpio (%ld)\n",
-				PTR_ERR(gpio_ir->gpio));
-		return PTR_ERR(gpio_ir->gpio);
-	}
+	if (IS_ERR(gpio_ir->gpio))
+		return dev_err_probe(&pdev->dev, PTR_ERR(gpio_ir->gpio),
+				     "Failed to get gpio\n");
 
 	rcdev->priv = gpio_ir;
 	rcdev->driver_name = DRIVER_NAME;
drivers/media/rc/ir-rx51.c +2 -7
index a3b145183260..85080c3d2053 100644
@@ -231,13 +231,8 @@ static int ir_rx51_probe(struct platform_device *dev)
 	struct rc_dev *rcdev;
 
 	pwm = pwm_get(&dev->dev, NULL);
-	if (IS_ERR(pwm)) {
-		int err = PTR_ERR(pwm);
-
-		if (err != -EPROBE_DEFER)
-			dev_err(&dev->dev, "pwm_get failed: %d\n", err);
-		return err;
-	}
+	if (IS_ERR(pwm))
+		return dev_err_probe(&dev->dev, PTR_ERR(pwm), "pwm_get failed\n");
 
 	/* Use default, in case userspace does not set the carrier */
 	ir_rx51.freq = DIV_ROUND_CLOSEST_ULL(pwm_get_period(pwm), NSEC_PER_SEC);
drivers/media/usb/uvc/uvc_ctrl.c +80 -19

169 lines not on this page · raw message

drivers/media/usb/uvc/uvc_driver.c +23 -12
index c8e72079b427..47a6cedd5578 100644
@@ -1247,18 +1247,15 @@ static int uvc_gpio_parse(struct uvc_device *dev)
 	struct gpio_desc *gpio_privacy;
 	int irq;
 
-	gpio_privacy = devm_gpiod_get_optional(&dev->udev->dev, "privacy",
+	gpio_privacy = devm_gpiod_get_optional(&dev->intf->dev, "privacy",
 					       GPIOD_IN);
 	if (IS_ERR_OR_NULL(gpio_privacy))
 		return PTR_ERR_OR_ZERO(gpio_privacy);
 
 	irq = gpiod_to_irq(gpio_privacy);
-	if (irq < 0) {
-		if (irq != EPROBE_DEFER)
-			dev_err(&dev->udev->dev,
-				"No IRQ for privacy GPIO (%d)\n", irq);
-		return irq;
-	}
+	if (irq < 0)
+		return dev_err_probe(&dev->intf->dev, irq,
+				     "No IRQ for privacy GPIO\n");
 
 	unit = uvc_alloc_entity(UVC_EXT_GPIO_UNIT, UVC_EXT_GPIO_UNIT_ID, 0, 1);
 	if (!unit)
@@ -1283,15 +1280,27 @@ static int uvc_gpio_parse(struct uvc_device *dev)
 static int uvc_gpio_init_irq(struct uvc_device *dev)
 {
 	struct uvc_entity *unit = dev->gpio_unit;
+	int ret;
 
 	if (!unit || unit->gpio.irq < 0)
 		return 0;
 
-	return devm_request_threaded_irq(&dev->udev->dev, unit->gpio.irq, NULL,
-					 uvc_gpio_irq,
-					 IRQF_ONESHOT | IRQF_TRIGGER_FALLING |
-					 IRQF_TRIGGER_RISING,
-					 "uvc_privacy_gpio", dev);
+	ret = request_threaded_irq(unit->gpio.irq, NULL, uvc_gpio_irq,
+				   IRQF_ONESHOT | IRQF_TRIGGER_FALLING |
+				   IRQF_TRIGGER_RISING,
+				   "uvc_privacy_gpio", dev);
+
+	unit->gpio.initialized = !ret;
+
+	return ret;
+}
+
+static void uvc_gpio_deinit(struct uvc_device *dev)
+{
+	if (!dev->gpio_unit || !dev->gpio_unit->gpio.initialized)
+		return;
+
+	free_irq(dev->gpio_unit->gpio.irq, dev);
 }
 
 /* ------------------------------------------------------------------------
@@ -1885,6 +1894,8 @@ static void uvc_unregister_video(struct uvc_device *dev)
 {
 	struct uvc_streaming *stream;
 
+	uvc_gpio_deinit(dev);
+
 	list_for_each_entry(stream, &dev->streams, list) {
 		/* Nothing to do here, continue. */
 		if (!video_is_registered(&stream->vdev))
drivers/media/usb/uvc/uvc_v4l2.c +2 -0
index 950b42d78a10..bd4677a6e653 100644
@@ -607,6 +607,8 @@ static int uvc_v4l2_release(struct file *file)
 
 	uvc_dbg(stream->dev, CALLS, "%s\n", __func__);
 
+	uvc_ctrl_cleanup_fh(handle);
+
 	/* Only free resources if this is a privileged handle. */
 	if (uvc_has_privileges(handle))
 		uvc_queue_release(&stream->queue);
drivers/media/usb/uvc/uvcvideo.h +9 -1
index 33e7475d4e64..45caa8523426 100644
@@ -227,6 +227,7 @@ struct uvc_entity {
 			u8  *bmControls;
 			struct gpio_desc *gpio_privacy;
 			int irq;
+			bool initialized;
 		} gpio;
 	};
 
@@ -330,7 +331,11 @@ struct uvc_video_chain {
 	struct uvc_entity *processing;		/* Processing unit */
 	struct uvc_entity *selector;		/* Selector unit */
 
-	struct mutex ctrl_mutex;		/* Protects ctrl.info */
+	struct mutex ctrl_mutex;		/*
+						 * Protects ctrl.info,
+						 * ctrl.handle and
+						 * uvc_fh.pending_async_ctrls
+						 */
 
 	struct v4l2_prio_state prio;		/* V4L2 priority state */
 	u32 caps;				/* V4L2 chain-wide caps */
@@ -584,6 +589,7 @@ struct uvc_fh {
 	struct uvc_video_chain *chain;
 	struct uvc_streaming *stream;
 	enum uvc_handle_state state;
+	unsigned int pending_async_ctrls;
 };
 
 struct uvc_driver {
@@ -768,6 +774,8 @@ int uvc_ctrl_is_accessible(struct uvc_video_chain *chain, u32 v4l2_id,
 int uvc_xu_ctrl_query(struct uvc_video_chain *chain,
 		      struct uvc_xu_control_query *xqry);
 
+void uvc_ctrl_cleanup_fh(struct uvc_fh *handle);
+
 /* Utility functions */
 struct usb_host_endpoint *uvc_find_endpoint(struct usb_host_interface *alts,
 					    u8 epaddr);
drivers/mtd/nand/raw/cadence-nand-controller.c +31 -11

112 lines not on this page · raw message

drivers/net/ethernet/cadence/macb.h +2 -0
index 1aa578c1ca4a..8d66de71ea60 100644
@@ -1271,6 +1271,8 @@ struct macb {
 	struct clk		*rx_clk;
 	struct clk		*tsu_clk;
 	struct net_device	*dev;
+	/* Protects hw_stats and ethtool_stats */
+	spinlock_t		stats_lock;
 	union {
 		struct macb_stats	macb;
 		struct gem_stats	gem;
drivers/net/ethernet/cadence/macb_main.c +10 -2
index d44d53d69762..fc3342944dbc 100644
@@ -1936,10 +1936,12 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
 
 		if (status & MACB_BIT(ISR_ROVR)) {
 			/* We missed at least one packet */
+			spin_lock(&bp->stats_lock);
 			if (macb_is_gem(bp))
 				bp->hw_stats.gem.rx_overruns++;
 			else
 				bp->hw_stats.macb.rx_overruns++;
+			spin_unlock(&bp->stats_lock);
 
 			if (bp->caps & MACB_CAPS_ISR_CLEAR_ON_WRITE)
 				queue_writel(queue, ISR, MACB_BIT(ISR_ROVR));
@@ -2999,6 +3001,7 @@ static struct net_device_stats *gem_get_stats(struct macb *bp)
 	if (!netif_running(bp->dev))
 		return nstat;
 
+	spin_lock_irq(&bp->stats_lock);
 	gem_update_stats(bp);
 
 	nstat->rx_errors = (hwstat->rx_frame_check_sequence_errors +
@@ -3028,6 +3031,7 @@ static struct net_device_stats *gem_get_stats(struct macb *bp)
 	nstat->tx_aborted_errors = hwstat->tx_excessive_collisions;
 	nstat->tx_carrier_errors = hwstat->tx_carrier_sense_errors;
 	nstat->tx_fifo_errors = hwstat->tx_underrun;
+	spin_unlock_irq(&bp->stats_lock);
 
 	return nstat;
 }
@@ -3035,12 +3039,13 @@ static struct net_device_stats *gem_get_stats(struct macb *bp)
 static void gem_get_ethtool_stats(struct net_device *dev,
 				  struct ethtool_stats *stats, u64 *data)
 {
-	struct macb *bp;
+	struct macb *bp = netdev_priv(dev);
 
-	bp = netdev_priv(dev);
+	spin_lock_irq(&bp->stats_lock);
 	gem_update_stats(bp);
 	memcpy(data, &bp->ethtool_stats, sizeof(u64)
 			* (GEM_STATS_LEN + QUEUE_STATS_LEN * MACB_MAX_QUEUES));
+	spin_unlock_irq(&bp->stats_lock);
 }
 
 static int gem_get_sset_count(struct net_device *dev, int sset)
@@ -3090,6 +3095,7 @@ static struct net_device_stats *macb_get_stats(struct net_device *dev)
 		return gem_get_stats(bp);
 
 	/* read stats from hardware */
+	spin_lock_irq(&bp->stats_lock);
 	macb_update_stats(bp);
 
 	/* Convert HW stats into netdevice stats */
@@ -3123,6 +3129,7 @@ static struct net_device_stats *macb_get_stats(struct net_device *dev)
 	nstat->tx_carrier_errors = hwstat->tx_carrier_errors;
 	nstat->tx_fifo_errors = hwstat->tx_underruns;
 	/* Don't know about heartbeat or window errors... */
+	spin_unlock_irq(&bp->stats_lock);
 
 	return nstat;
 }
@@ -4949,6 +4956,7 @@ static int macb_probe(struct platform_device *pdev)
 	bp->usrio = macb_config->usrio;
 
 	spin_lock_init(&bp->lock);
+	spin_lock_init(&bp->stats_lock);
 
 	/* setup capabilities */
 	macb_configure_caps(bp, macb_config);
drivers/net/ethernet/freescale/enetc/enetc.c +71 -29

168 lines not on this page · raw message

drivers/net/ethernet/ibm/ibmvnic.c +70 -15

195 lines not on this page · raw message

drivers/net/ethernet/ibm/ibmvnic.h +2 -1
index e5c6ff3d0c47..f923cdab03f5 100644
@@ -213,7 +213,8 @@ struct ibmvnic_statistics {
 
 #define NUM_TX_STATS 3
 struct ibmvnic_tx_queue_stats {
-	u64 packets;
+	u64 batched_packets;
+	u64 direct_packets;
 	u64 bytes;
 	u64 dropped_packets;
 };
drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c +1 -1
index 40aeaa7bd739..d2757cc11613 100644
@@ -324,7 +324,7 @@ static const struct mvpp2_cls_flow cls_flows[MVPP2_N_PRS_FLOWS] = {
 		       MVPP2_PRS_RI_VLAN_MASK),
 	/* Non IP flow, with vlan tag */
 	MVPP2_DEF_FLOW(MVPP22_FLOW_ETHERNET, MVPP2_FL_NON_IP_TAG,
-		       MVPP22_CLS_HEK_OPT_VLAN,
+		       MVPP22_CLS_HEK_TAGGED,
 		       0, 0),
 };
 
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c +1 -1
index a6d3fc96e168..10b9dc2aaf06 100644
@@ -513,7 +513,7 @@ irq_pool_alloc(struct mlx5_core_dev *dev, int start, int size, char *name,
 	pool->min_threshold = min_threshold * MLX5_EQ_REFS_PER_IRQ;
 	pool->max_threshold = max_threshold * MLX5_EQ_REFS_PER_IRQ;
 	mlx5_core_dbg(dev, "pool->name = %s, pool->size = %d, pool->start = %d",
-		      name, size, start);
+		      name ? name : "mlx5_pcif_pool", size, start);
 	return pool;
 }
 
drivers/net/ethernet/netronome/nfp/bpf/cmsg.c +2 -0
index 2ec62c8d86e1..59486fe2ad18 100644
@@ -20,6 +20,8 @@ nfp_bpf_cmsg_alloc(struct nfp_app_bpf *bpf, unsigned int size)
 	struct sk_buff *skb;
 
 	skb = nfp_app_ctrl_msg_alloc(bpf->app, size, GFP_KERNEL);
+	if (!skb)
+		return NULL;
 	skb_put(skb, size);
 
 	return skb;
drivers/net/ethernet/xilinx/xilinx_axienet_main.c +1 -0
index a95772158176..f227ed8e9934 100644
@@ -2159,6 +2159,7 @@ static int axienet_probe(struct platform_device *pdev)
 
 	lp->phylink_config.dev = &ndev->dev;
 	lp->phylink_config.type = PHYLINK_NETDEV;
+	lp->phylink_config.mac_managed_pm = true;
 	lp->phylink_config.mac_capabilities = MAC_SYM_PAUSE | MAC_ASYM_PAUSE |
 		MAC_10FD | MAC_100FD | MAC_1000FD;
 
drivers/net/geneve.c +2 -14
index 27b570678c9f..3dd5c69b05cb 100644
@@ -1965,21 +1965,9 @@ static void geneve_destroy_tunnels(struct net *net, struct list_head *head)
 {
 	struct geneve_net *gn = net_generic(net, geneve_net_id);
 	struct geneve_dev *geneve, *next;
-	struct net_device *dev, *aux;
 
-	/* gather any geneve devices that were moved into this ns */
-	for_each_netdev_safe(net, dev, aux)
-		if (dev->rtnl_link_ops == &geneve_link_ops)
-			unregister_netdevice_queue(dev, head);
-
-	/* now gather any other geneve devices that were created in this ns */
-	list_for_each_entry_safe(geneve, next, &gn->geneve_list, next) {
-		/* If geneve->dev is in the same netns, it was already added
-		 * to the list by the previous loop.
-		 */
-		if (!net_eq(dev_net(geneve->dev), net))
-			unregister_netdevice_queue(geneve->dev, head);
-	}
+	list_for_each_entry_safe(geneve, next, &gn->geneve_list, next)
+		geneve_dellink(geneve->dev, head);
 }
 
 static void __net_exit geneve_exit_batch_net(struct list_head *net_list)
drivers/net/gtp.c +0 -5
index 0de3dcd07cb7..797886f10868 100644
@@ -1894,11 +1894,6 @@ static void __net_exit gtp_net_exit_batch_rtnl(struct list_head *net_list,
 	list_for_each_entry(net, net_list, exit_list) {
 		struct gtp_net *gn = net_generic(net, gtp_net_id);
 		struct gtp_dev *gtp, *gtp_next;
-		struct net_device *dev;
-
-		for_each_netdev(net, dev)
-			if (dev->rtnl_link_ops == &gtp_link_ops)
-				gtp_dellink(dev, dev_to_kill);
 
 		list_for_each_entry_safe(gtp, gtp_next, &gn->gtp_dev_list, list)
 			gtp_dellink(gtp->dev, dev_to_kill);
drivers/net/ipvlan/ipvlan_core.c +19 -5
index 1d49771d07f4..eea81a733405 100644
@@ -2,6 +2,9 @@
 /* Copyright (c) 2014 Mahesh Bandewar <[email protected]>
  */
 
+#include <net/inet_dscp.h>
+#include <net/ip.h>
+
 #include "ipvlan.h"
 
 static u32 ipvlan_jhash_secret __read_mostly;
@@ -413,20 +416,25 @@ struct ipvl_addr *ipvlan_addr_lookup(struct ipvl_port *port, void *lyr3h,
 
 static noinline_for_stack int ipvlan_process_v4_outbound(struct sk_buff *skb)
 {
-	const struct iphdr *ip4h = ip_hdr(skb);
 	struct net_device *dev = skb->dev;
 	struct net *net = dev_net(dev);
-	struct rtable *rt;
 	int err, ret = NET_XMIT_DROP;
+	const struct iphdr *ip4h;
+	struct rtable *rt;
 	struct flowi4 fl4 = {
 		.flowi4_oif = dev->ifindex,
-		.flowi4_tos = RT_TOS(ip4h->tos),
 		.flowi4_flags = FLOWI_FLAG_ANYSRC,
 		.flowi4_mark = skb->mark,
-		.daddr = ip4h->daddr,
-		.saddr = ip4h->saddr,
 	};
[… more lines in the raw message]

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

drivers/net/loopback.c +14 -0
index 2e9742952c4e..b213397672d2 100644

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

drivers/net/usb/gl620a.c +1 -3
index 46af78caf457..0bfa37c14059 100644

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

drivers/nvme/host/ioctl.c +1 -2
index a02873792890..acf73a91e87e 100644

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

drivers/phy/rockchip/phy-rockchip-naneng-combphy.c +4 -1
index d97a7164c496..2c73cc8dd1ed 100644

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

drivers/phy/samsung/phy-exynos5-usbdrd.c +6 -6
index ee0848fe8432..ca6101ef6076 100644

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

drivers/phy/tegra/xusb-tegra186.c +11 -0
index 0996ede63387..0556a57f3ddf 100644

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

drivers/power/supply/da9150-fg.c +2 -2
index 8c5e2c49d6c1..9d0a6ab698f5 100644

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

drivers/scsi/scsi_lib.c +14 -8
index 5c5954b78585..8e75eb1b6eab 100644

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

drivers/scsi/sd.c +4 -0
index b35ef52d9c63..c3006524eb03 100644

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

drivers/soc/mediatek/mtk-devapc.c +18 -18
index fc13334db1b1..7269ab8d29b6 100644

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

drivers/spi/atmel-quadspi.c +129 -43

172 lines not on this page · raw message

drivers/tee/optee/supp.c +8 -27
index 322a543b8c27..d0f397c90242 100644

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

drivers/usb/gadget/function/f_midi.c +1 -1
index 1d8521103b66..dd1cfeeffb67 100644

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

drivers/usb/gadget/udc/core.c +10 -1
index 6d7f8e98ba2a..5adb6e831126 100644

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

fs/afs/cell.c +1 -0
index 926cb1188eba..7c0dce8eecad 100644

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

fs/afs/internal.h +15 -8
index 097d5a5f07b1..fd4310272ccc 100644

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

fs/afs/server.c +1 -0
index 0bd2f5ba6900..87381c2ffe37 100644

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

fs/afs/server_list.c +104 -10

114 lines not on this page · raw message

fs/afs/vl_alias.c +1 -1
index 83cf1bfbe343..b2cc10df9530 100644

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

fs/afs/volume.c +22 -18
index a146d70efa65..0f64b9758127 100644

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

fs/overlayfs/copy_up.c +1 -1
index 86d4b6975dbc..203b88293f6b 100644

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

fs/smb/client/smb2ops.c +4 -0
index 5af8bf391d87..a62f3e5a7689 100644

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

fs/squashfs/inode.c +4 -1
index f31649080a88..95a9ff9e2399 100644

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

include/asm-generic/vmlinux.lds.h +1 -1
index e7539dc02498..20219e1301da 100644

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

include/linux/mm.h +24 -2
index 971186f0b7b0..03357c196e0b 100644

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

include/linux/netdevice.h +2 -0
index d0b4920dee73..f44701b82ea8 100644

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

include/linux/ptrace.h +4 -0
index c952c5ba8fab..135a3d9140a0 100644

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

include/linux/skmsg.h +2 -0
index 6ccfd9236387..32bbebf5b71e 100644

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

include/linux/sunrpc/sched.h +9 -8
index 8f9bee0e21c3..a220b28904ca 100644

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

include/net/dst.h +9 -0
index d67fda89cd0f..3a1a6f94a809 100644

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

include/net/ip.h +5 -0
index 9d754c4a5300..4ee23eb0814a 100644

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

include/net/netfilter/nf_conntrack_expect.h +1 -1
index 0855b60fba17..f642a87ea330 100644

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

include/net/route.h +3 -2
index f39617602237..4185e6da9ef8 100644

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

include/net/strparser.h +2 -0
index 41e2ce9e9e10..0a83010b3a64 100644

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

include/net/tcp.h +22 -0
index a770210fda9b..83e0362e3b72 100644

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

include/trace/events/icmp.h new file +67 -0

67 lines not on this page · raw message

include/trace/events/oom.h +32 -4
index 26a11e4a2c36..b799f3bcba82 100644

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

include/trace/events/sunrpc.h +1 -2
index ffe2679a13ce..b70f47a57bf6 100644

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

io_uring/net.c +3 -1
index dc7c1e44ec47..d56e8a47e50f 100644

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

kernel/acct.c +84 -50

134 lines not on this page · raw message

kernel/bpf/syscall.c +5 -13
index cfb361f4b00e..7a4004f09bae 100644

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

kernel/events/core.c +9 -8
index 4995eb68b78b..8fc2bc5646ee 100644

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

kernel/events/uprobes.c +5 -0
index 9ee25351ceca..7a22db17f3b5 100644

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

kernel/sched/core.c +1 -1
index 2f7519022c01..0a483fd9f5de 100644

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

kernel/trace/ftrace.c +15 -15
index 55cc0e67a02e..ce8a8eae7e83 100644

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

kernel/trace/trace_events_hist.c +15 -15
index 3b0da1bddf63..a11392596a36 100644

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

kernel/trace/trace_functions.c +2 -4
index 9f1bfbe105e8..69e92c7359fb 100644

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

mm/gup.c +30 -1
index e31d00443c4e..b1daaa9d89aa 100644

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

mm/madvise.c +10 -1
index 5973399b2f9b..e1993e18afee 100644

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

mm/memcontrol.c +6 -1
index 280bb6969c0b..3f7cab196eb6 100644

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

mm/memory.c +2 -2
index da9fed5e6025..680d864d52eb 100644

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

mm/oom_kill.c +12 -2
index 1276e49b31b0..f4c8ef863ea7 100644

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

net/bluetooth/l2cap_core.c +7 -2
index 2a8051fae08c..36d6122f2e12 100644

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

net/bpf/test_run.c +1 -4
index 64be562f0fe3..77b386b76d46 100644

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

net/bridge/br_netfilter_hooks.c +5 -3
index 5c6ed1d49b92..b4d661fe7886 100644

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

net/core/dev.c +34 -3
index 90559cb66803..212a909b4840 100644

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

net/core/drop_monitor.c +14 -15
index 522657b597d9..fef94f3b03de 100644

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

net/core/flow_dissector.c +29 -20

49 lines not on this page · raw message

net/core/gro.c +1 -0
index 47118e97ecfd..c4cbf398c5f7 100644

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

net/core/skbuff.c +1 -1
index 768b8d65a5ba..d8a3ada886ff 100644

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

net/core/skmsg.c +7 -0
index 65764952bc68..5a790cd1121b 100644

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

net/core/sysctl_net_core.c +2 -1
index 47ca6d3ddbb5..75efc712bb9b 100644

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

net/ipv4/arp.c +1 -1
index 8f9b5568f1dc..50e2b4939d8e 100644

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

net/ipv4/icmp.c +14 -10
index a21d32b3ae6c..94501bb30c43 100644

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

net/ipv4/ip_options.c +2 -1
index a9e22a098872..b4c59708fc09 100644

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

net/ipv4/tcp.c +24 -5
index e27a9a9bb162..7d591a0cf0c7 100644

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

net/ipv4/tcp_bpf.c +36 -0
index a8db010e9e61..bf10fa3c37b7 100644

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

net/ipv4/tcp_fastopen.c +2 -2
index d0b7ded591bd..cb01c770d8cf 100644

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

net/ipv4/tcp_input.c +4 -4
index 2379ee551164..3b81f6df829f 100644

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

net/ipv4/tcp_ipv4.c +1 -1
index 805b1a9eca1c..7647f1ec0584 100644

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

net/ipv4/tcp_minisocks.c +4 -6
index c562cb965e74..bc94df0140bf 100644

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

net/ipv6/ip6_tunnel.c +2 -2
index f3324f2a4046..a82d382193e4 100644

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

net/ipv6/rpl_iptunnel.c +36 -22

58 lines not on this page · raw message

net/ipv6/seg6_iptunnel.c +63 -34

97 lines not on this page · raw message

net/mptcp/pm_netlink.c +0 -5
index ddbc352f8420..fef7bb2a08d8 100644

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

net/mptcp/subflow.c +1 -14
index 884abe3cde53..c3e0ad7beb57 100644

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

net/netfilter/nf_conntrack_core.c +1 -1
index b7b2ed05ac50..ec4c39641089 100644

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

net/netfilter/nf_conntrack_expect.c +2 -2
index 96948e98ec53..81ca348915c9 100644

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

net/netfilter/nft_ct.c +2 -0
index 2bfe3cdfbd58..6157f8b4a3ce 100644

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

net/sched/sch_fifo.c +3 -0
index e1040421b797..af5f2ab69b8d 100644

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

net/strparser/strparser.c +9 -2
index 8299ceb3e373..95696f42647e 100644

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

net/sunrpc/cache.c +3 -7
index 94889df659f0..7ac4648c7da7 100644

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

net/sunrpc/sched.c +0 -2
index cef623ea1506..9b45fbdc90ca 100644

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

sound/pci/hda/hda_codec.c +3 -1
index bd19f92aeeec..9d7d99b584fe 100644

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

sound/pci/hda/patch_conexant.c +1 -0
index 7edb029f08a3..a3d68b83ebd5 100644

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

sound/pci/hda/patch_cs8409-tables.c +3 -3
index b288874e401e..b2e1856ab891 100644

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

sound/pci/hda/patch_cs8409.c +11 -9
index 892223d9e64a..b003ac1990ba 100644

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

sound/pci/hda/patch_cs8409.h +3 -2
index 937e9387abdc..bca81d49f201 100644

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

sound/pci/hda/patch_realtek.c +1 -0
index 183c8a587acf..96725b6599ec 100644

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

sound/soc/codecs/es8328.c +4 -11
index 160adc706cc6..8182e9b37c03 100644

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

sound/soc/fsl/fsl_micfil.c +2 -0
index 6fa900302aa8..8ee6f41563ea 100644

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

sound/soc/rockchip/rockchip_i2s_tdm.c +2 -2
index d20438cf8fc4..ff743ba0a944 100644

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

sound/soc/sh/rz-ssi.c +2 -0
index 468050467bb3..12e063c29a2a 100644

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

sound/usb/midi.c +1 -1
index 2839f6b6f09b..eed71369c7af 100644

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

sound/usb/quirks.c +1 -0
index e08e1b998044..42302c7812c7 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.