Skip to contentSkip to conversation

Linux 5.10.236

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Apr 10, 2025 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.10.236 kernel.

All users of the 5.10 kernel series must upgrade.

The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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/timers/no_hz.rst                                 |    7 
 Makefile                                                       |    2 
 arch/alpha/include/asm/elf.h                                   |    6 
 arch/alpha/include/asm/pgtable.h                               |    2 
 arch/alpha/include/asm/processor.h                             |    8 
 arch/alpha/kernel/osf_sys.c                                    |   11 
 arch/arm/boot/dts/bcm2711.dtsi                                 |   11 
 arch/arm/mach-shmobile/headsmp.S                               |    1 
 arch/arm/mm/fault.c                                            |    8 
 arch/powerpc/platforms/cell/spufs/inode.c                      |    9 
 arch/x86/Kconfig                                               |    2 
 arch/x86/entry/calling.h                                       |    2 
 arch/x86/include/asm/tlbflush.h                                |    2 
 arch/x86/kernel/cpu/microcode/amd.c                            |    2 
 arch/x86/kernel/cpu/mshyperv.c                                 |   11 
 arch/x86/kernel/crash.c                                        |    4 
 arch/x86/kernel/dumpstack.c                                    |    5 
 arch/x86/kernel/irq.c                                          |    2 
 arch/x86/kernel/machine_kexec_64.c                             |   12 
 arch/x86/kernel/process.c                                      |    7 
 arch/x86/kernel/tsc.c                                          |    4 
 arch/x86/kvm/hyperv.c                                          |    6 
 arch/x86/mm/pat/cpa-test.c                                     |    2 
 block/bio.c                                                    |    2 
 drivers/acpi/nfit/core.c                                       |    2 
 drivers/acpi/processor_idle.c                                  |    4 
 drivers/acpi/resource.c                                        |   13 
 drivers/base/power/main.c                                      |   21 
 drivers/base/power/runtime.c                                   |    2 
 drivers/clk/meson/g12a.c                                       |   38 
 drivers/clk/meson/gxbb.c                                       |   14 
 drivers/clk/rockchip/clk-rk3328.c                              |    2 
 drivers/clk/samsung/clk.c                                      |    2 
 drivers/clocksource/i8253.c                                    |   36 
 drivers/counter/microchip-tcb-capture.c                        |   19 
 drivers/counter/stm32-lptimer-cnt.c                            |   24 
 drivers/cpufreq/cpufreq_governor.c                             |   45 
 drivers/cpufreq/scpi-cpufreq.c                                 |    5 
 drivers/crypto/hisilicon/sec2/sec_crypto.c                     |    8 
 drivers/edac/ie31200_edac.c                                    |   19 
 drivers/firmware/imx/imx-scu.c                                 |    1 
 drivers/firmware/iscsi_ibft.c                                  |    5 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c              |  106 +
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c      |   14 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c         |    1 
 drivers/gpu/drm/amd/display/dc/core/dc_resource.c              |  585 +++-------
 drivers/gpu/drm/amd/display/dc/dc.h                            |    1 
 drivers/gpu/drm/amd/display/dc/dc_types.h                      |    5 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c          |   12 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c          |   14 
 drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c |   12 
 drivers/gpu/drm/amd/display/dc/dml/display_mode_structs.h      |    2 
 drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c          |   40 
 drivers/gpu/drm/amd/display/dc/inc/hw/transform.h              |    4 
 drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c                |   21 
 drivers/gpu/drm/drm_atomic_uapi.c                              |    4 
 drivers/gpu/drm/drm_connector.c                                |    4 
 drivers/gpu/drm/drm_dp_mst_topology.c                          |    8 
 drivers/gpu/drm/gma500/mid_bios.c                              |    5 
 drivers/gpu/drm/mediatek/mtk_dsi.c                             |    6 
 drivers/gpu/drm/mediatek/mtk_hdmi.c                            |   33 
 drivers/gpu/drm/nouveau/nouveau_connector.c                    |    1 
 drivers/gpu/drm/radeon/radeon_vce.c                            |    2 
 drivers/gpu/drm/v3d/v3d_sched.c                                |    9 
 drivers/gpu/drm/xlnx/zynqmp_dpsub.c                            |    2 
 drivers/hid/hid-ids.h                                          |    1 
 drivers/hid/hid-plantronics.c                                  |  144 +-
 drivers/hid/hid-quirks.c                                       |    1 
 drivers/hid/intel-ish-hid/ipc/ipc.c                            |    6 
 drivers/hv/vmbus_drv.c                                         |   13 
 drivers/hwmon/nct6775.c                                        |    4 
 drivers/hwtracing/coresight/coresight-catu.c                   |    2 
 drivers/i2c/busses/i2c-ali1535.c                               |   12 
 drivers/i2c/busses/i2c-ali15x3.c                               |   12 
 drivers/i2c/busses/i2c-omap.c                                  |   26 
 drivers/i2c/busses/i2c-sis630.c                                |   12 
 drivers/i2c/i2c-dev.c                                          |   15 
 drivers/iio/accel/mma8452.c                                    |   10 
 drivers/infiniband/core/mad.c                                  |   38 
 drivers/infiniband/hw/bnxt_re/qplib_fp.c                       |    2 
 drivers/infiniband/hw/bnxt_re/qplib_rcfw.h                     |    3 
 drivers/infiniband/hw/hns/hns_roce_hem.c                       |   23 
 drivers/infiniband/hw/hns/hns_roce_hem.h                       |    2 
 drivers/infiniband/hw/hns/hns_roce_main.c                      |    2 
 drivers/infiniband/hw/hns/hns_roce_mr.c                        |    4 
 drivers/infiniband/hw/mlx5/cq.c                                |    2 
 drivers/media/dvb-frontends/dib8000.c                          |    5 
 drivers/media/i2c/et8ek8/et8ek8_driver.c                       |    4 
 drivers/memstick/host/rtsx_usb_ms.c                            |    1 
 drivers/mfd/sm501.c                                            |    6 
 drivers/mmc/host/atmel-mci.c                                   |    4 
 drivers/mmc/host/sdhci-pxav3.c                                 |    1 
 drivers/net/arcnet/com20020-pci.c                              |   17 
 drivers/net/can/flexcan.c                                      |    6 
 drivers/net/dsa/mv88e6xxx/chip.c                               |   11 
 drivers/net/dsa/mv88e6xxx/phy.c                                |    3 
 drivers/net/ethernet/intel/ice/ice_arfs.c                      |    2 
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c                |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c              |    6 
 drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c        |    5 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c       |    8 
 drivers/net/usb/qmi_wwan.c                                     |    2 
 drivers/net/usb/usbnet.c                                       |   21 
 drivers/net/wireless/intel/iwlwifi/fw/dbg.c                    |   86 -
 drivers/ntb/hw/intel/ntb_hw_gen3.c                             |    3 
 drivers/ntb/hw/mscc/ntb_hw_switchtec.c                         |    2 
 drivers/ntb/test/ntb_perf.c                                    |    4 
 drivers/nvme/host/core.c                                       |    2 
 drivers/nvme/host/fc.c                                         |    3 
 drivers/nvme/host/pci.c                                        |   21 
 drivers/nvme/host/tcp.c                                        |    5 
 drivers/nvme/target/rdma.c                                     |   33 
 drivers/pci/controller/cadence/pcie-cadence-ep.c               |    3 
 drivers/pci/controller/cadence/pcie-cadence.h                  |    2 
 drivers/pci/controller/pcie-brcmstb.c                          |    4 
 drivers/pci/controller/pcie-xilinx-cpm.c                       |   10 
 drivers/pci/hotplug/pciehp_hpc.c                               |    4 
 drivers/pci/pcie/aspm.c                                        |   17 
 drivers/pci/pcie/portdrv_core.c                                |    8 
 drivers/pci/probe.c                                            |    5 
 drivers/pinctrl/bcm/pinctrl-bcm281xx.c                         |    2 
 drivers/pinctrl/renesas/pinctrl-rza2.c                         |    2 
 drivers/pinctrl/tegra/pinctrl-tegra.c                          |    3 
 drivers/platform/x86/intel-hid.c                               |    7 
 drivers/power/supply/max77693_charger.c                        |    2 
 drivers/powercap/powercap_sys.c                                |    3 
 drivers/regulator/core.c                                       |   12 
 drivers/remoteproc/qcom_q6v5_pas.c                             |   10 
 drivers/s390/cio/chp.c                                         |    3 
 drivers/scsi/qla1280.c                                         |    2 
 drivers/soc/qcom/pdr_interface.c                               |    8 
 drivers/thermal/cpufreq_cooling.c                              |    2 
 drivers/thermal/intel/int340x_thermal/int3402_thermal.c        |    3 
 drivers/tty/serial/8250/8250_dma.c                             |    2 
 drivers/tty/serial/8250/8250_pci.c                             |   16 
 drivers/tty/serial/fsl_lpuart.c                                |   25 
 drivers/usb/serial/ftdi_sio.c                                  |   14 
 drivers/usb/serial/ftdi_sio_ids.h                              |   13 
 drivers/usb/serial/option.c                                    |   48 
 drivers/video/console/Kconfig                                  |    2 
 drivers/video/fbdev/au1100fb.c                                 |    4 
 drivers/video/fbdev/hyperv_fb.c                                |    2 
 drivers/video/fbdev/sm501fb.c                                  |    7 
 fs/affs/file.c                                                 |    9 
 fs/btrfs/extent-tree.c                                         |    5 
 fs/exfat/fatent.c                                              |    2 
 fs/ext4/dir.c                                                  |    3 
 fs/ext4/super.c                                                |   27 
 fs/fuse/dir.c                                                  |    2 
 fs/isofs/dir.c                                                 |    3 
 fs/jfs/jfs_dtree.c                                             |    3 
 fs/jfs/xattr.c                                                 |   15 
 fs/namei.c                                                     |   24 
 fs/nfs/delegation.c                                            |   33 
 fs/nfsd/nfs4state.c                                            |   31 
 fs/ocfs2/alloc.c                                               |    8 
 fs/proc/base.c                                                 |    2 
 fs/proc/generic.c                                              |   10 
 fs/proc/inode.c                                                |    6 
 fs/proc/internal.h                                             |   14 
 fs/vboxsf/super.c                                              |    3 
 include/drm/drm_dp_mst_helper.h                                |    7 
 include/linux/fs.h                                             |    2 
 include/linux/i8253.h                                          |    1 
 include/linux/interrupt.h                                      |    8 
 include/linux/netfilter/nf_conntrack_common.h                  |    8 
 include/linux/pm_runtime.h                                     |    2 
 include/linux/proc_fs.h                                        |    7 
 include/linux/sched/smt.h                                      |    2 
 include/net/ipv6.h                                             |    4 
 kernel/events/ring_buffer.c                                    |    2 
 kernel/kexec_elf.c                                             |    2 
 kernel/locking/semaphore.c                                     |   13 
 kernel/sched/deadline.c                                        |    2 
 kernel/time/hrtimer.c                                          |   22 
 kernel/trace/bpf_trace.c                                       |    2 
 kernel/trace/ring_buffer.c                                     |    4 
 kernel/trace/trace_events_synth.c                              |   34 
 kernel/trace/trace_functions_graph.c                           |    1 
 kernel/trace/trace_irqsoff.c                                   |    2 
 kernel/trace/trace_sched_wakeup.c                              |    2 
 kernel/watch_queue.c                                           |    9 
 lib/842/842_compress.c                                         |    2 
 net/8021q/vlan_netlink.c                                       |   10 
 net/atm/lec.c                                                  |    3 
 net/atm/mpc.c                                                  |    2 
 net/batman-adv/bat_iv_ogm.c                                    |    3 
 net/batman-adv/bat_v_ogm.c                                     |    3 
 net/bluetooth/6lowpan.c                                        |    7 
 net/bluetooth/hci_event.c                                      |   13 
 net/can/af_can.c                                               |   12 
 net/can/af_can.h                                               |   12 
 net/can/proc.c                                                 |   46 
 net/core/neighbour.c                                           |    1 
 net/core/netpoll.c                                             |    9 
 net/core/rtnetlink.c                                           |    3 
 net/core/sock_map.c                                            |    5 
 net/ipv4/ip_tunnel_core.c                                      |    4 
 net/ipv6/addrconf.c                                            |   37 
 net/ipv6/calipso.c                                             |   21 
 net/ipv6/ip6_output.c                                          |    6 
 net/ipv6/netfilter/nf_socket_ipv6.c                            |   23 
 net/ipv6/route.c                                               |    5 
 net/mptcp/protocol.h                                           |    2 
 net/netfilter/ipvs/ip_vs_ctl.c                                 |    8 
 net/netfilter/nf_conncount.c                                   |    2 
 net/netfilter/nf_conntrack_core.c                              |   48 
 net/netfilter/nf_conntrack_expect.c                            |    4 
 net/netfilter/nf_conntrack_netlink.c                           |    7 
 net/netfilter/nf_conntrack_standalone.c                        |    7 
 net/netfilter/nf_flow_table_core.c                             |    2 
 net/netfilter/nf_synproxy_core.c                               |    1 
 net/netfilter/nft_ct.c                                         |   11 
 net/netfilter/nft_exthdr.c                                     |   10 
 net/netfilter/nft_tunnel.c                                     |    6 
 net/netfilter/xt_CT.c                                          |    3 
 net/openvswitch/actions.c                                      |    6 
 net/openvswitch/conntrack.c                                    |    1 
 net/sched/act_ct.c                                             |    1 
 net/sched/act_tunnel_key.c                                     |    2 
 net/sched/cls_flower.c                                         |    2 
 net/sched/sch_api.c                                            |    6 
 net/sched/sch_skbprio.c                                        |    3 
 net/sctp/stream.c                                              |    2 
 net/vmw_vsock/af_vsock.c                                       |    6 
 net/xfrm/xfrm_output.c                                         |    2 
 scripts/selinux/install_policy.sh                              |   15 
 sound/pci/hda/patch_realtek.c                                  |   28 
 sound/soc/codecs/arizona.c                                     |   14 
 sound/soc/codecs/madera.c                                      |   10 
 sound/soc/codecs/tas2764.c                                     |   10 
 sound/soc/codecs/tas2764.h                                     |    8 
 sound/soc/codecs/tas2770.c                                     |    2 
 sound/soc/codecs/wm0010.c                                      |   13 
 sound/soc/codecs/wm5110.c                                      |    8 
 sound/soc/sh/rcar/core.c                                       |   14 
 sound/soc/sh/rcar/rsnd.h                                       |    1 
 sound/soc/sh/rcar/src.c                                        |   18 
 sound/soc/sof/intel/hda-codec.c                                |    1 
 sound/soc/ti/j721e-evm.c                                       |    2 
 sound/usb/mixer_quirks.c                                       |   51 
 tools/perf/util/python.c                                       |   17 
 tools/perf/util/units.c                                        |    2 
 243 files changed, 1865 insertions(+), 1175 deletions(-)

Acs, Jakub (1):
ext4: fix OOB read when checking dotdot dir

Al Viro (2):
spufs: fix a leak on spufs_new_file() failure
spufs: fix a leak in spufs_create_context()

Alex Hung (1):
drm/amd/display: Assign normalized_pix_clk when color depth = 14

Alexey Kashavkin (1):
netfilter: nft_exthdr: fix offset with ipv4_find_option()

Andreas Kemnade (1):
i2c: omap: fix IRQ storms

Andy Shevchenko (2):
hrtimers: Mark is_migration_base() with __always_inline
i2c: dev: check return value when calling dev_set_name()

AngeloGioacchino Del Regno (2):
drm/mediatek: mtk_hdmi: Unregister audio platform device on failure drm/mediatek: mtk_hdmi: Fix typo for aud_sampe_size member

Arnaldo Carvalho de Melo (5):
perf units: Fix insufficient array space
perf python: Fixup description of sample.id event member perf python: Decrement the refcount of just created event on failure perf python: Don't keep a raw_data pointer to consumed ring buffer space perf python: Check if there is space to copy all the event

Arnd Bergmann (3):
x86/irq: Define trace events conditionally x86/platform: Only allow CONFIG_EISA for 32-bit
mdacon: rework dependency list

Artur Weber (2):
pinctrl: bcm281xx: Fix incorrect regmap max_registers value
power: supply: max77693: Fix wrong conversion of charge input threshold value

Baoquan He (1):
x86/kexec: fix memory leak of elf header buffer

Bart Van Assche (1):
fs/procfs: fix the comment above proc_pid_wchan()

Benjamin Berg (1):
x86/fpu: Avoid copying dynamic FP state from init_task in arch_dup_task_struct()

Boon Khai Ng (1):
USB: serial: ftdi_sio: add support for Altera USB Blaster 3

Brahmajit Das (1):
vboxsf: fix building with GCC 15

Breno Leitao (1):
netpoll: hold rcu read lock in __netpoll_send_skb()

Cameron Williams (1):
tty: serial: 8250: Add some more device IDs

Carolina Jubran (1):
net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices

Chengchang Tang (1):
RDMA/hns: Remove redundant 'phy_addr' in hns_roce_hem_list_find_mtt()

Chengen Du (1):
iscsi_ibft: Fix UBSAN shift-out-of-bounds warning in ibft_attr_show_nic()

Chenyuan Yang (1):

      thermal: int340x: Add NULL check for adev

Chia-Lin Kao (AceLan) (1):
HID: ignore non-functional sensor in HP 5MP Camera

Christian Eggers (1):
regulator: check that dummy regulator has been probed before using it

Christophe JAILLET (4):
ASoC: codecs: wm0010: Fix error handling path in wm0010_spi_probe()
i2c: ali1535: Fix an error handling path in ali1535_probe()
i2c: ali15x3: Fix an error handling path in ali15x3_probe()
i2c: sis630: Fix an error handling path in sis630_probe()

Chuck Lever (1):
NFSD: Skip sending CB_RECALL_ANY when the backchannel isn't up

Cong Wang (2):
net_sched: Prevent creation of classes with TC_H_ROOT
net_sched: skbprio: Remove overly strict queue assertions

Cosmin Ratiu (1):
xfrm_output: Force software GSO only in tunnel mode

Dan Carpenter (5):
ipvs: prevent integer overflow in do_ip_vs_get_ctl()
Bluetooth: Fix error code in chan_alloc_skb_cb()
net: atm: fix use after free in lec_send()
PCI: Remove stray put_device() in pci_register_host_bridge() drm/mediatek: dsi: fix error codes in mtk_dsi_host_transfer()

Daniel Lezcano (1):
thermal/cpufreq_cooling: Remove structure member documentation

Daniel Stodden (1):
PCI/ASPM: Fix link state exit during switch upstream function removal

Daniel Wagner (2):
nvme-fc: go straight to connecting state when initializing
nvme: only allow entering LIVE from CONNECTING state

Danila Chernetsov (1):
fbdev: sm501fb: Add some geometry checks.

David Oberhollenzer (1):
net: dsa: mv88e6xxx: propperly shutdown PPU re-enable timer on destroy

David Woodhouse (1):
clockevents/drivers/i8253: Fix stop sequence for timer 0

Debin Zhu (1):
netlabel: Fix NULL pointer exception caused by CALIPSO on IPv4 sockets

Dhruv Deshpande (1):
ALSA: hda/realtek: Support mute LED on HP Laptop 15s-du3xxx

Dmitry Panchenko (1):
platform/x86: intel-hid: fix volume buttons on Microsoft Surface Go 4 tablet

Dmytro Laktyushkin (1):
drm/amd/display: fix odm scaling

Dominique Martinet (1):
net: usb: usbnet: restore usb%d name exception for local mac addresses

Douglas Raillard (1):
tracing: Ensure module defining synth event cannot be unloaded while tracing

Eric Dumazet (1):
vlan: fix memory leak in vlan_newlink()

Eric Sandeen (1):
watch_queue: fix pipe accounting mismatch

Eric W. Biederman (1):
alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support

Fabio Porcedda (4):
USB: serial: option: add Telit Cinterion FE990B compositions
USB: serial: option: fix Telit Cinterion FE990A name
net: usb: qmi_wwan: add Telit Cinterion FN990B composition
net: usb: qmi_wwan: add Telit Cinterion FE990B composition

Fabrice Gasnier (1):
counter: stm32-lptimer-cnt: fix error handling when enabling

Fabrizio Castro (1):
pinctrl: renesas: rza2: Fix missing of_node_put() call

Feng Tang (1):
PCI/portdrv: Only disable pciehp interrupts early when needed

Feng Yang (1):
ring-buffer: Fix bytes_dropped calculation issue

Fernando Fernandez Mancera (1):
ipv6: fix omitted netlink attributes when using RTEXT_FILTER_SKIP_STATS

Florent Revest (1):
x86/microcode/AMD: Fix out-of-bounds on systems with CPU-less NUMA nodes

Florian Westphal (3):
netfilter: conntrack: convert to refcount_t api
netfilter: nft_ct: fix use after free when attaching zone template
netfilter: conntrack: fix crash due to confirmed bit load reordering

Gannon Kolding (1):
ACPI: resource: IRQ override for Eluktronics MECH-17

Geert Uytterhoeven (1):
ARM: shmobile: smp: Enforce shmobile_smp_* alignment

Geetha sowjanya (1):
octeontx2-af: Fix mbox INTR handler when num VFs > 64

Giovanni Gherdovich (1):
ACPI: processor: idle: Return an error if both P_LVL{2,3} idle states are invalid

Greg Kroah-Hartman (1):

      Linux 5.10.236

Grzegorz Nitka (1):
ice: fix memory leak in aRFS after reset

Gu Bowen (1):
mmc: atmel-mci: Add missing clk_disable_unprepare()

Guilherme G. Piccoli (1):
x86/tsc: Always save/restore TSC sched_clock() on suspend/resume

Guillaume Nault (1):
tunnels: Accept PACKET_HOST in skb_tunnel_check_pmtu().

Haibo Chen (1):
can: flexcan: only change CAN state when link up in system PM

Hans Zhang (1):
PCI: cadence-ep: Fix the driver to send MSG TLP for INTx without data payload

Haoxiang Li (1):
qlcnic: fix memory leak issues in qlcnic_sriov_common.c

Hector Martin (3):
ASoC: tas2770: Fix volume scale
ASoC: tas2764: Fix power control mask
ASoC: tas2764: Set the SDOUT polarity correctly

Henry Martin (1):
arcnet: Add NULL check in com20020pci_probe()

Hersen Wu (1):
drm/amd/display: Skip inactive planes within ModeSupportAndSystemConfiguration

Hou Tao (1):
bpf: Use preempt_count() directly in bpf_send_signal_common()

Icenowy Zheng (2):
nvme-pci: clean up CMBMSC when registering CMB fails
nvme-pci: skip CMB blocks incompatible with PCI P2P DMA

Ilkka Koskinen (1):
coresight: catu: Fix number of pages while using 64k pages

Ilpo Järvinen (1):
PCI: pciehp: Don't enable HPIE when resuming in poll mode

Ivan Abramov (1):
drm/gma500: Add NULL check for pci_gfx_root in mid_get_vbt_data()

Jann Horn (3):
x86/entry: Fix ORC unwinder for PUSH_REGS with save_ret=1
x86/dumpstack: Fix inaccurate unwinding from exception stacks due to misplaced assignment x86/mm: Fix flush_tlb_range() when used for zapping normal PMDs

Jayesh Choudhary (1):
ASoC: ti: j721e-evm: Fix clock configuration for ti,j7200-cpb-audio compatible

Jerome Brunet (4):
clk: amlogic: gxbb: drop incorrect flag on 32k clock
clk: amlogic: g12b: fix cluster A parent data
clk: amlogic: gxbb: drop non existing 32k clock parent
clk: amlogic: g12a: fix mmc A peripheral clock

Jesse Zhang (1):
drm/amd/pm: Fix negative array index read

Jie Zhan (1):
cpufreq: governor: Fix negative 'idle_time' handling in dbs_update()

Jim Quinlan (1):
PCI: brcmstb: Use internal register to change link capability

Joe Hattori (2):
powercap: call put_device() on an error path in powercap_register_control_type()
firmware: imx-scu: fix OF node leak in .probe()

Johan Hovold (1):
USB: serial: option: match on interface class for Telit FN990B

Johannes Berg (1):
wifi: iwlwifi: fw: allocate chained SG tables for dump

John Keeping (1):
serial: 8250_dma: terminate correct DMA in tx_dma_flush()

Jonathan Cameron (1):
iio: accel: mma8452: Ensure error return on failure to matching oversampling ratio

Josef Bacik (1):
btrfs: handle errors from btrfs_dec_ref() properly

Josh Poimboeuf (2):
objtool, media: dib8000: Prevent divide-by-zero in dib8000_set_dds() sched/smt: Always inline sched_smt_active()

Junxian Huang (2):
RDMA/hns: Fix soft lockup during bt pages loop RDMA/hns: Fix wrong value of max_sge_rd

Karel Balej (1):
mmc: sdhci-pxav3: set NEED_RSP_BUSY capability

Kashyap Desai (1):
RDMA/bnxt_re: Add missing paranthesis in map_qp_id_to_tbl_indx

Kees Cook (2):
ARM: 9350/1: fault: Implement copy_from_kernel_nofault_allowed()
ARM: 9351/1: fault: Add "cut here" line for prefetch aborts

Kohei Enju (1):
netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree()

Kuninori Morimoto (1):
ASoC: rsnd: don't indicate warning on rsnd_kctrl_accept_runtime()

Kuniyuki Iwashima (2):
ipv6: Fix memleak of nhc_pcpu_rth_output in fib_check_nh_v6_gw().
ipv6: Set errno after ip_fib_metrics_init() in ip6_route_info_create().

Lee Jones (1):
drm/amd/display/dc/core/dc_resource: Staticify local functions

Li Lingfeng (1):
nfsd: put dl_stid if fail to queue dl_recall

Lin Ma (3):
net/neighbor: add missing policy for NDTPA_QUEUE_LENBYTES
netfilter: nft_tunnel: fix geneve_opt type confusion addition
net: fix geneve_opt length integer overflow

Luca Weiss (1):
remoteproc: qcom_q6v5_pas: Make single-PD handling more robust

Luiz Augusto von Dentz (1):
Bluetooth: hci_event: Align BR/EDR JUST_WORKS paring with LE

Luo Qiu (1):
memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove

Ma Ke (1):

      drm/amd/display: Fix null check for pipe_ctx->plane_state in resource_build_scaling_params

Magnus Lindholm (1):
scsi: qla1280: Fix kernel oops when debug level > 2

Maher Sanalla (1):
IB/mad: Check available slots before posting receive WRs

Mario Kleiner (1):
drm/amd/display: Check plane scaling against format specific hw plane caps.

Mario Limonciello (1):
drm/amd/display: Fix slab-use-after-free on hdcp_work

Mark Zhang (1):
rtnetlink: Allocate vfinfo size for VF GUIDs when supported

Markus Elfring (2):
fbdev: au1100fb: Move a variable assignment behind a null pointer check
ntb_perf: Delete duplicate dmaengine_unmap_put() call in perf_copy_chunk()

Matthieu Baerts (NGI0) (1):
mptcp: safety check before fallback

Maxim Mikityanskiy (1):
netfilter: socket: Lookup orig tuple for IPv6 SNAT

Maíra Canal (1):
drm/v3d: Don't run jobs that have errors flagged in its fence

Michael Kelley (2):
fbdev: hyperv_fb: iounmap() the correct memory when removing a device
Drivers: hv: vmbus: Don't release fb_mmio resource in vmbus_free_mmio()

Michael Strauss (1):
drm/amd/display: Check for invalid input params when building scaling params

Michal Luczaj (1):
bpf, sockmap: Fix race between element replace and close()

Mike Rapoport (Microsoft) (1):
x86/mm/pat: cpa-test: fix length for CPA_ARRAY test

Miklos Szeredi (1):
fuse: don't truncate cached, mutated symlink

Ming Lei (1):
block: fix 'kmem_cache of name 'bio-108' already exists'

Minjoong Kim (1):
atm: Fix NULL pointer dereference

Murad Masimov (1):
acpi: nfit: fix narrowing conversion in acpi_nfit_ctl

Navon John Lukose (1):
ALSA: hda/realtek: Add mute LED quirk for HP Pavilion x360 14-dy1xxx

Nikita Shubin (1):
ntb: intel: Fix using link status DB's

Nikita Zhandarovich (2):
drm/radeon: fix uninitialized size issue in radeon_vce_cs_parse()
mfd: sm501: Switch to BIT() to mitigate integer overflows

Nikola Cornij (1):
drm/amd/display: Reject too small viewport size when validating plane

Oleg Nesterov (1):
sched/isolation: Prevent boot crash when the boot CPU is nohz_full

Oliver Hartkopp (1):
can: statistics: use atomic access in hot path

Patrik Jakobsson (1):
drm/amdgpu: Fix even more out of bound writes from debugfs

Patrisious Haddad (1):
RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow

Paul Menzel (1):
ACPI: resource: Skip IRQ override on ASUS Vivobook 14 X1404VAP

Peter Geis (1):
clk: rockchip: rk3328: fix wrong clk_ref_usb3otg parent

Peter Oberparleiter (1):
s390/cio: Fix CHPID "configure" attribute caching

Phil Elwell (2):
ARM: dts: bcm2711: PL011 UARTs are actually r1p5
ARM: dts: bcm2711: Don't mark timer regs unconfigured

Prathamesh Shete (1):
pinctrl: tegra: Set SFIO mode to Mux Register

Qasim Ijaz (2):
isofs: fix KMSAN uninit-value bug in do_isofs_readdir()
jfs: fix slab-out-of-bounds read in ea_get()

Qiuxu Zhuo (3):
EDAC/ie31200: Fix the size of EDAC_MC_LAYER_CHIP_SELECT layer EDAC/ie31200: Fix the DIMM size mask for several SoCs EDAC/ie31200: Fix the error path order of ie31200_init()

Rafael J. Wysocki (2):
PM: sleep: Adjust check before setting power.must_resume
PM: sleep: Fix handling devices with direct_complete set on errors

Roman Smirnov (1):
jfs: add index corruption check to DT_GETPAGE()

Ruozhu Li (1):
nvmet-rdma: recheck queue state is LIVE in state lock in recv done

Sagi Grimberg (1):
nvme-tcp: fix possible UAF in nvme_tcp_poll

Saranya R (1):
soc: qcom: pdr: Fix the potential deadlock

Saravanan Vajravel (1):
RDMA/bnxt_re: Avoid clearing VLAN_ID mask in modify qp path

Sean Christopherson (1):
KVM: x86: Reject Hyper-V's SEND_IPI hypercalls if local APIC isn't in-kernel

Sebastian Andrzej Siewior (2):
netfilter: nft_ct: Use __refcount_inc() for per-CPU nft_ct_pcpu_template.
lockdep: Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()

Sherry Sun (2):
tty: serial: fsl_lpuart: use UARTMODIR register bits for lpuart32 platform
tty: serial: fsl_lpuart: disable transmitter before changing RS485 related registers

Shrikanth Hegde (1):
sched/deadline: Use online cpus for validating runtime

Simon Tatham (2):
affs: generate OFS sequence numbers starting at 1
affs: don't write overlarge OFS data block size fields

Sourabh Jain (1):
kexec: initialize ELF lowest address to ULONG_MAX

Stefano Garzarella (1):
vsock: avoid timeout during connect() if the socket is closing

Steven Rostedt (1):
tracing: Do not use PERF enums when perf is not defined

Sven Eckelmann (1):
batman-adv: Ignore own maximum aggregation size during RX

Takashi Iwai (2):
ALSA: hda/realtek: Always honor no_shutup_pins x86/kexec: Fix double-free of elf header buffer

Tanya Agarwal (1):
lib: 842: Improve error handling in sw842_compress()

Tao Chen (1):
perf/ring_buffer: Allow the EPOLLRDNORM flag for poll

Tasos Sahanidis (1):

      hwmon: (nct6775-core) Fix out of bounds access for NCT679{8,9}

Tengda Wu (1):
tracing: Fix use-after-free in print_graph_function_flags during tracer switching

Terry Cheong (1):
ASoC: SOF: Intel: hda: add softdep pre to snd-hda-codec-hdmi module

Terry Junge (2):
ALSA: usb-audio: Add quirk for Plantronics headsets to fix control names
HID: hid-plantronics: Add mic mute mapping and generalize quirks

Theodore Ts'o (1):
ext4: don't over-report free space or inodes in statvfs

Thippeswamy Havalige (1):
PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe

Thomas Zimmermann (1):
drm/nouveau: Do not override forced connector status

Tim Schumacher (1):
selinux: Chain up tool resolving errors in install_policy.sh

Tomi Valkeinen (1):
drm: xlnx: zynqmp: Fix max dma segment size

Trond Myklebust (1):
NFSv4: Don't trigger uneccessary scans for return-on-close delegations

Uwe Kleine-König (1):
media: i2c: et8ek8: Don't strip remove function when driver is builtin

Vasiliy Kovalev (1):
ocfs2: validate l_tree_depth to avoid out-of-bounds access

Ville Syrjälä (1):
drm/atomic: Filter out redundant DPMS calls

Vitaliy Shevtsov (1):
drm/amd/display: fix type mismatch in CalculateDynamicMetadataParameters()

Vitaly Rodionov (1):
ASoC: arizona/madera: use fsleep() in up/down DAPM event delays.

Waiman Long (1):
locking/semaphore: Use wake_q to wake up processes outside lock critical section

Wang Yufen (1):
ipv6: Fix signed integer overflow in __ip6_append_data

Wayne Lin (1):
drm/dp_mst: Fix drm RAD print

Wenkai Lin (1):
crypto: hisilicon/sec2 - fix for aead auth key length

Wentao Liang (1):
net/mlx5: handle errors in mlx5_chains_create_table()

Will McVicker (1):
clk: samsung: Fix UBSAN panic in samsung_clk_init()

William Breathitt Gray (1):
counter: microchip-tcb-capture: Fix undefined counter channel state on probe

Yajun Deng (1):
ntb_hw_switchtec: Fix shift-out-of-bounds in switchtec_ntb_mw_set_trans

Yanjun Yang (1):
ARM: Remove address checking for MMUless devices

Ye Bin (1):
proc: fix UAF in proc_get_inode()

Yu-Chun Lin (1):
sctp: Fix undefined behavior in left shift operation

Yuezhang Mo (1):
exfat: fix the infinite loop in exfat_find_last_cluster()

Zhang Lixu (1):
HID: intel-ish-hid: fix the length of MNG_SYNC_FW_CLOCK in doorbell

zuoqian (1):
cpufreq: scpi: compare kHz instead of Hz

author maintainer
#1 lore raw
Documentation/timers/no_hz.rst +2 -5
index c4c70e1aada3..f136f1b057d5 100644
@@ -129,11 +129,8 @@ adaptive-tick CPUs:  At least one non-adaptive-tick CPU must remain
 online to handle timekeeping tasks in order to ensure that system
 calls like gettimeofday() returns accurate values on adaptive-tick CPUs.
 (This is not an issue for CONFIG_NO_HZ_IDLE=y because there are no running
-user processes to observe slight drifts in clock rate.)  Therefore, the
-boot CPU is prohibited from entering adaptive-ticks mode.  Specifying a
-"nohz_full=" mask that includes the boot CPU will result in a boot-time
-error message, and the boot CPU will be removed from the mask.  Note that
-this means that your system must have at least two CPUs in order for
+user processes to observe slight drifts in clock rate.) Note that this
+means that your system must have at least two CPUs in order for
 CONFIG_NO_HZ_FULL=y to do anything for you.
 
 Finally, adaptive-ticks CPUs must have their RCU callbacks offloaded.
Makefile +1 -1
index c73255fd9258..e13f8f8a9ea9 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 235
+SUBLEVEL = 236
 EXTRAVERSION =
 NAME = Dare mighty things
 
arch/alpha/include/asm/elf.h +1 -5
index 8049997fa372..2039a8c8d547 100644
@@ -74,7 +74,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
 /*
  * This is used to ensure we don't load something for the wrong architecture.
  */
-#define elf_check_arch(x) ((x)->e_machine == EM_ALPHA)
+#define elf_check_arch(x) (((x)->e_machine == EM_ALPHA) && !((x)->e_flags & EF_ALPHA_32BIT))
 
 /*
  * These are used to set parameters in the core dumps.
@@ -145,10 +145,6 @@ extern int dump_elf_task_fp(elf_fpreg_t *dest, struct task_struct *task);
 	: amask (AMASK_CIX) ? "ev6" : "ev67");	\
 })
 
-#define SET_PERSONALITY(EX)					\
-	set_personality(((EX).e_flags & EF_ALPHA_32BIT)		\
-	   ? PER_LINUX_32BIT : PER_LINUX)
-
 extern int alpha_l1i_cacheshape;
 extern int alpha_l1d_cacheshape;
 extern int alpha_l2_cacheshape;
arch/alpha/include/asm/pgtable.h +1 -1
index 12c120e436a2..1cffeda415a4 100644
@@ -347,7 +347,7 @@ extern inline pte_t mk_swap_pte(unsigned long type, unsigned long offset)
 
 extern void paging_init(void);
 
-/* We have our own get_unmapped_area to cope with ADDR_LIMIT_32BIT.  */
+/* We have our own get_unmapped_area */
 #define HAVE_ARCH_UNMAPPED_AREA
 
 #endif /* _ALPHA_PGTABLE_H */
arch/alpha/include/asm/processor.h +2 -6
index 6100431da07a..d27db62c3247 100644
@@ -8,23 +8,19 @@
 #ifndef __ASM_ALPHA_PROCESSOR_H
 #define __ASM_ALPHA_PROCESSOR_H
 
-#include <linux/personality.h>	/* for ADDR_LIMIT_32BIT */
-
 /*
  * We have a 42-bit user address space: 4TB user VM...
  */
 #define TASK_SIZE (0x40000000000UL)
 
-#define STACK_TOP \
-  (current->personality & ADDR_LIMIT_32BIT ? 0x80000000 : 0x00120000000UL)
+#define STACK_TOP (0x00120000000UL)
 
 #define STACK_TOP_MAX	0x00120000000UL
 
 /* This decides where the kernel will search for a free chunk of vm
  * space during mmap's.
  */
-#define TASK_UNMAPPED_BASE \
-  ((current->personality & ADDR_LIMIT_32BIT) ? 0x40000000 : TASK_SIZE / 2)
+#define TASK_UNMAPPED_BASE (TASK_SIZE / 2)
 
 typedef struct {
 	unsigned long seg;
arch/alpha/kernel/osf_sys.c +2 -9
index d5367a1c6300..6f53eecbb575 100644
@@ -1212,8 +1212,7 @@ SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)
 	return ret;
 }
 
-/* Get an address range which is currently unmapped.  Similar to the
-   generic version except that we know how to honor ADDR_LIMIT_32BIT.  */
+/* Get an address range which is currently unmapped. */
 
 static unsigned long
 arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
@@ -1235,13 +1234,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
 		       unsigned long len, unsigned long pgoff,
 		       unsigned long flags)
 {
-	unsigned long limit;
-
-	/* "32 bit" actually means 31 bit, since pointers sign extend.  */
-	if (current->personality & ADDR_LIMIT_32BIT)
-		limit = 0x80000000;
-	else
-		limit = TASK_SIZE;
+	unsigned long limit = TASK_SIZE;
 
 	if (len > limit)
 		return -ENOMEM;
arch/arm/boot/dts/bcm2711.dtsi +5 -6
index b50229c3102f..9bb98338609b 100644
@@ -133,7 +133,7 @@ uart2: serial@7e201400 {
 			clocks = <&clocks BCM2835_CLOCK_UART>,
 				 <&clocks BCM2835_CLOCK_VPU>;
 			clock-names = "uartclk", "apb_pclk";
-			arm,primecell-periphid = <0x00241011>;
+			arm,primecell-periphid = <0x00341011>;
 			status = "disabled";
 		};
 
@@ -144,7 +144,7 @@ uart3: serial@7e201600 {
 			clocks = <&clocks BCM2835_CLOCK_UART>,
 				 <&clocks BCM2835_CLOCK_VPU>;
 			clock-names = "uartclk", "apb_pclk";
-			arm,primecell-periphid = <0x00241011>;
+			arm,primecell-periphid = <0x00341011>;
 			status = "disabled";
 		};
 
@@ -155,7 +155,7 @@ uart4: serial@7e201800 {
 			clocks = <&clocks BCM2835_CLOCK_UART>,
 				 <&clocks BCM2835_CLOCK_VPU>;
 			clock-names = "uartclk", "apb_pclk";
-			arm,primecell-periphid = <0x00241011>;
+			arm,primecell-periphid = <0x00341011>;
 			status = "disabled";
 		};
 
@@ -166,7 +166,7 @@ uart5: serial@7e201a00 {
 			clocks = <&clocks BCM2835_CLOCK_UART>,
 				 <&clocks BCM2835_CLOCK_VPU>;
 			clock-names = "uartclk", "apb_pclk";
-			arm,primecell-periphid = <0x00241011>;
+			arm,primecell-periphid = <0x00341011>;
 			status = "disabled";
 		};
 
@@ -424,8 +424,6 @@ IRQ_TYPE_LEVEL_LOW)>,
 					  IRQ_TYPE_LEVEL_LOW)>,
 			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) |
 					  IRQ_TYPE_LEVEL_LOW)>;
-		/* This only applies to the ARMv7 stub */
-		arm,cpu-registers-not-fw-configured;
 	};
 
 	cpus: cpus {
@@ -1115,6 +1113,7 @@ &txp {
 };
 
 &uart0 {
+	arm,primecell-periphid = <0x00341011>;
 	interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
 };
 
arch/arm/mach-shmobile/headsmp.S +1 -0
index 9466ae61f56a..b45c68d88275 100644
@@ -136,6 +136,7 @@ ENDPROC(shmobile_smp_sleep)
 	.long	shmobile_smp_arg - 1b
 
 	.bss
+	.align	2
 	.globl	shmobile_smp_mpidr
 shmobile_smp_mpidr:
 	.space	NR_CPUS * 4
arch/arm/mm/fault.c +8 -0
index af5177801fb1..bf1577216ffa 100644
@@ -26,6 +26,13 @@
 
 #ifdef CONFIG_MMU
 
+bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size)
+{
+	unsigned long addr = (unsigned long)unsafe_src;
+
+	return addr >= TASK_SIZE && ULONG_MAX - addr >= size;
+}
+
 /*
  * This is useful to dump out the page tables associated with
  * 'addr' in mm 'mm'.
@@ -552,6 +559,7 @@ do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)
 	if (!inf->fn(addr, ifsr | FSR_LNX_PF, regs))
 		return;
 
+	pr_alert("8<--- cut here ---\n");
 	pr_alert("Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n",
 		inf->name, ifsr, addr);
 
arch/powerpc/platforms/cell/spufs/inode.c +7 -2
index 908e9b8e79fe..373814bbc43d 100644
@@ -189,8 +189,10 @@ static int spufs_fill_dir(struct dentry *dir,
 			return -ENOMEM;
 		ret = spufs_new_file(dir->d_sb, dentry, files->ops,
 					files->mode & mode, files->size, ctx);
-		if (ret)
+		if (ret) {
+			dput(dentry);
 			return ret;
+		}
 		files++;
 	}
 	return 0;
@@ -436,8 +438,11 @@ spufs_create_context(struct inode *inode, struct dentry *dentry,
 	}
 
 	ret = spufs_mkdir(inode, dentry, flags, mode & 0777);
-	if (ret)
+	if (ret) {
+		if (neighbor)
+			put_spu_context(neighbor);
 		goto out_aff_unlock;
+	}
 
 	if (affinity) {
 		spufs_set_affinity(flags, SPUFS_I(d_inode(dentry))->i_ctx,
arch/x86/Kconfig +1 -1
index 00ae2e2adcad..93a1f9937a9b 100644
@@ -174,7 +174,7 @@ config X86
 	select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
 	select HAVE_EBPF_JIT
 	select HAVE_EFFICIENT_UNALIGNED_ACCESS
-	select HAVE_EISA
+	select HAVE_EISA			if X86_32
 	select HAVE_EXIT_THREAD
 	select HAVE_FAST_GUP
 	select HAVE_FENTRY			if X86_64 || DYNAMIC_FTRACE
arch/x86/entry/calling.h +2 -0
index a4b357e5bbfe..b6715c835f9f 100644
@@ -104,6 +104,8 @@ For 32-bit we have the following conventions - kernel is built with
 	pushq	%rsi		/* pt_regs->si */
 	movq	8(%rsp), %rsi	/* temporarily store the return address in %rsi */
 	movq	%rdi, 8(%rsp)	/* pt_regs->di (overwriting original return address) */
+	/* We just clobbered the return address - use the IRET frame for unwinding: */
+	UNWIND_HINT_IRET_REGS offset=3*8
 	.else
 	pushq   %rdi		/* pt_regs->di */
 	pushq   %rsi		/* pt_regs->si */
arch/x86/include/asm/tlbflush.h +1 -1
index 8c87a2e0b660..041163f773fe 100644
@@ -222,7 +222,7 @@ void flush_tlb_others(const struct cpumask *cpumask,
 	flush_tlb_mm_range((vma)->vm_mm, start, end,			\
 			   ((vma)->vm_flags & VM_HUGETLB)		\
 				? huge_page_shift(hstate_vma(vma))	\
-				: PAGE_SHIFT, false)
+				: PAGE_SHIFT, true)
 
 extern void flush_tlb_all(void);
 extern void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start,
arch/x86/kernel/cpu/microcode/amd.c +1 -1
index 936085d819b1..9fb144f11a33 100644
@@ -862,7 +862,7 @@ static enum ucode_state load_microcode_amd(u8 family, const u8 *data, size_t siz
 		return ret;
 	}
 
-	for_each_node(nid) {
+	for_each_node_with_cpus(nid) {
 		cpu = cpumask_first(cpumask_of_node(nid));
 		c = &cpu_data(cpu);
 
arch/x86/kernel/cpu/mshyperv.c +0 -11
index 14e5e1d7d0e8..33b64fff2b3c 100644
@@ -16,7 +16,6 @@
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/kexec.h>
-#include <linux/i8253.h>
 #include <linux/random.h>
 #include <asm/processor.h>
 #include <asm/hypervisor.h>
@@ -389,16 +388,6 @@ static void __init ms_hyperv_init_platform(void)
 	if (efi_enabled(EFI_BOOT))
 		x86_platform.get_nmi_reason = hv_get_nmi_reason;
 
-	/*
-	 * Hyper-V VMs have a PIT emulation quirk such that zeroing the
-	 * counter register during PIT shutdown restarts the PIT. So it
-	 * continues to interrupt @18.2 HZ. Setting i8253_clear_counter
-	 * to false tells pit_shutdown() not to zero the counter so that
-	 * the PIT really is shutdown. Generation 2 VMs don't have a PIT,
-	 * and setting this value has no effect.
-	 */
-	i8253_clear_counter_on_shutdown = false;
-
 #if IS_ENABLED(CONFIG_HYPERV)
 	/*
 	 * Setup the hook to get control post apic initialization.
arch/x86/kernel/crash.c +1 -3
index a932a07d0025..49e9e7407753 100644
@@ -399,10 +399,8 @@ int crash_load_segments(struct kimage *image)
 	kbuf.buf_align = ELF_CORE_HEADER_ALIGN;
 	kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
 	ret = kexec_add_buffer(&kbuf);
-	if (ret) {
-		vfree((void *)image->arch.elf_headers);
+	if (ret)
 		return ret;
-	}
 	image->arch.elf_load_addr = kbuf.mem;
 	pr_debug("Loaded ELF headers at 0x%lx bufsz=0x%lx memsz=0x%lx\n",
 		 image->arch.elf_load_addr, kbuf.bufsz, kbuf.bufsz);
arch/x86/kernel/dumpstack.c +2 -3
index b9736aac20ee..cf92191de2b2 100644
@@ -195,6 +195,7 @@ void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
 	printk("%sCall Trace:\n", log_lvl);
 
 	unwind_start(&state, task, regs, stack);
+	stack = stack ?: get_stack_pointer(task, regs);
 	regs = unwind_get_entry_regs(&state, &partial);
 
 	/*
@@ -213,9 +214,7 @@ void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
 	 * - hardirq stack
 	 * - entry stack
 	 */
-	for (stack = stack ?: get_stack_pointer(task, regs);
-	     stack;
-	     stack = stack_info.next_sp) {
+	for (; stack; stack = stack_info.next_sp) {
 		const char *stack_name;
 
 		stack = PTR_ALIGN(stack, sizeof(long));
arch/x86/kernel/irq.c +2 -0
index ce904c89c6c7..3e01b8086403 100644
@@ -22,8 +22,10 @@
 #include <asm/desc.h>
 #include <asm/traps.h>
 
+#if defined(CONFIG_X86_LOCAL_APIC) || defined(CONFIG_X86_THERMAL_VECTOR)
 #define CREATE_TRACE_POINTS
 #include <asm/trace/irq_vectors.h>
+#endif
 
 DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
 EXPORT_PER_CPU_SYMBOL(irq_stat);
arch/x86/kernel/machine_kexec_64.c +9 -3
index a29a44a98e5b..19f6aafd595a 100644
@@ -402,9 +402,6 @@ void machine_kexec(struct kimage *image)
 #ifdef CONFIG_KEXEC_FILE
 void *arch_kexec_kernel_image_load(struct kimage *image)
 {
-	vfree(image->arch.elf_headers);
-	image->arch.elf_headers = NULL;
-
 	if (!image->fops || !image->fops->load)
 		return ERR_PTR(-ENOEXEC);
 
@@ -540,6 +537,15 @@ int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
 	       (int)ELF64_R_TYPE(rel[i].r_info), value);
 	return -ENOEXEC;
 }
+
+int arch_kimage_file_post_load_cleanup(struct kimage *image)
+{
+	vfree(image->arch.elf_headers);
+	image->arch.elf_headers = NULL;
+	image->arch.elf_headers_sz = 0;
+
+	return kexec_image_post_load_cleanup_default(image);
+}
 #endif /* CONFIG_KEXEC_FILE */
 
 static int
arch/x86/kernel/process.c +6 -1
index 4f731981d326..38c517a786f4 100644
@@ -88,7 +88,12 @@ EXPORT_PER_CPU_SYMBOL_GPL(__tss_limit_invalid);
  */
 int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
 {
-	memcpy(dst, src, arch_task_struct_size);
+	/* init_task is not dynamically sized (incomplete FPU state) */
+	if (unlikely(src == &init_task))
+		memcpy_and_pad(dst, arch_task_struct_size, src, sizeof(init_task), 0);
+	else
+		memcpy(dst, src, arch_task_struct_size);
+
 #ifdef CONFIG_VM86
 	dst->thread.vm86 = NULL;
 #endif
arch/x86/kernel/tsc.c +2 -2
index 13d1a0ac8916..d59ed209f02e 100644
@@ -919,7 +919,7 @@ static unsigned long long cyc2ns_suspend;
 
 void tsc_save_sched_clock_state(void)
 {
-	if (!sched_clock_stable())
+	if (!static_branch_likely(&__use_tsc) && !sched_clock_stable())
 		return;
 
 	cyc2ns_suspend = sched_clock();
@@ -939,7 +939,7 @@ void tsc_restore_sched_clock_state(void)
 	unsigned long flags;
 	int cpu;
 
-	if (!sched_clock_stable())
+	if (!static_branch_likely(&__use_tsc) && !sched_clock_stable())
 		return;
 
 	local_irq_save(flags);
arch/x86/kvm/hyperv.c +5 -1
index 20eb8f55e1f1..e097faf12c82 100644
@@ -1618,6 +1618,9 @@ static u64 kvm_hv_send_ipi(struct kvm_vcpu *current_vcpu, u64 ingpa, u64 outgpa,
 	u32 vector;
 	bool all_cpus;
 
+	if (!lapic_in_kernel(current_vcpu))
+		return HV_STATUS_INVALID_HYPERCALL_INPUT;
+
 	if (!ex) {
 		if (!fast) {
 			if (unlikely(kvm_read_guest(kvm, ingpa, &send_ipi,
@@ -2060,7 +2063,8 @@ int kvm_vcpu_ioctl_get_hv_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid,
 			ent->eax |= HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED;
 			ent->eax |= HV_X64_APIC_ACCESS_RECOMMENDED;
 			ent->eax |= HV_X64_RELAXED_TIMING_RECOMMENDED;
-			ent->eax |= HV_X64_CLUSTER_IPI_RECOMMENDED;
+			if (!vcpu || lapic_in_kernel(vcpu))
+				ent->eax |= HV_X64_CLUSTER_IPI_RECOMMENDED;
 			ent->eax |= HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED;
 			if (evmcs_ver)
 				ent->eax |= HV_X64_ENLIGHTENED_VMCS_RECOMMENDED;
arch/x86/mm/pat/cpa-test.c +1 -1
index 0612a73638a8..7641cff719bd 100644
@@ -183,7 +183,7 @@ static int pageattr_test(void)
 			break;
 
 		case 1:
-			err = change_page_attr_set(addrs, len[1], PAGE_CPA_TEST, 1);
+			err = change_page_attr_set(addrs, len[i], PAGE_CPA_TEST, 1);
 			break;
 
 		case 2:
block/bio.c +1 -1
index 6f7a1aa9ea22..88a09c31095f 100644
@@ -55,7 +55,7 @@ struct bio_slab {
 	struct kmem_cache *slab;
 	unsigned int slab_ref;
 	unsigned int slab_size;
-	char name[8];
+	char name[12];
 };
 static DEFINE_MUTEX(bio_slab_lock);
 static struct bio_slab *bio_slabs;
drivers/acpi/nfit/core.c +1 -1
index 16857612103e..8992fdb92902 100644
@@ -484,7 +484,7 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc, struct nvdimm *nvdimm,
 		cmd_mask = nd_desc->cmd_mask;
 		if (cmd == ND_CMD_CALL && call_pkg->nd_family) {
 			family = call_pkg->nd_family;
-			if (family > NVDIMM_BUS_FAMILY_MAX ||
+			if (call_pkg->nd_family > NVDIMM_BUS_FAMILY_MAX ||
 			    !test_bit(family, &nd_desc->bus_family_mask))
 				return -EINVAL;
 			family = array_index_nospec(family,
drivers/acpi/processor_idle.c +4 -0
index ae07927910ca..42c7bdb352d2 100644
@@ -270,6 +270,10 @@ static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
 			 ACPI_CX_DESC_LEN, "ACPI P_LVL3 IOPORT 0x%x",
 			 pr->power.states[ACPI_STATE_C3].address);
 
+	if (!pr->power.states[ACPI_STATE_C2].address &&
+	    !pr->power.states[ACPI_STATE_C3].address)
+		return -ENODEV;
+
 	return 0;
 }
 
drivers/acpi/resource.c +13 -0
index b00dad7ea8d4..14898b4fadf0 100644
@@ -442,6 +442,13 @@ static const struct dmi_system_id asus_laptop[] = {
 			DMI_MATCH(DMI_BOARD_NAME, "B2402CBA"),
 		},
 	},
+	{
+		/* Asus Vivobook X1404VAP */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "X1404VAP"),
+		},
+	},
 	{
 		/* Asus Vivobook X1504VAP */
 		.matches = {
@@ -482,6 +489,12 @@ static const struct dmi_system_id asus_laptop[] = {
 			DMI_MATCH(DMI_BOARD_NAME, "RP-15"),
 		},
 	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Eluktronics Inc."),
+			DMI_MATCH(DMI_BOARD_NAME, "MECH-17"),
+		},
+	},
 	{
 		/* TongFang GM6XGxX/TUXEDO Stellaris 16 Gen5 AMD */
 		.matches = {
drivers/base/power/main.c +10 -11
index fbc57c4fcdd0..00a0bdcbb4aa 100644
@@ -900,6 +900,9 @@ static void __device_resume(struct device *dev, pm_message_t state, bool async)
 	if (dev->power.syscore)
 		goto Complete;
 
+	if (!dev->power.is_suspended)
+		goto Complete;
+
 	if (dev->power.direct_complete) {
 		/* Match the pm_runtime_disable() in __device_suspend(). */
 		pm_runtime_enable(dev);
@@ -918,9 +921,6 @@ static void __device_resume(struct device *dev, pm_message_t state, bool async)
 	 */
 	dev->power.is_prepared = false;
 
-	if (!dev->power.is_suspended)
-		goto Unlock;
-
 	if (dev->pm_domain) {
 		info = "power domain ";
 		callback = pm_op(&dev->pm_domain->ops, state);
@@ -960,7 +960,6 @@ static void __device_resume(struct device *dev, pm_message_t state, bool async)
 	error = dpm_run_callback(callback, dev, state, info);
 	dev->power.is_suspended = false;
 
- Unlock:
 	device_unlock(dev);
 	dpm_watchdog_clear(&wd);
 
@@ -1242,14 +1241,13 @@ static int __device_suspend_noirq(struct device *dev, pm_message_t state, bool a
 	dev->power.is_noirq_suspended = true;
 
 	/*
-	 * Skipping the resume of devices that were in use right before the
-	 * system suspend (as indicated by their PM-runtime usage counters)
-	 * would be suboptimal.  Also resume them if doing that is not allowed
-	 * to be skipped.
+	 * Devices must be resumed unless they are explicitly allowed to be left
+	 * in suspend, but even in that case skipping the resume of devices that
+	 * were in use right before the system suspend (as indicated by their
+	 * runtime PM usage counters and child counters) would be suboptimal.
 	 */
-	if (atomic_read(&dev->power.usage_count) > 1 ||
-	    !(dev_pm_test_driver_flags(dev, DPM_FLAG_MAY_SKIP_RESUME) &&
-	      dev->power.may_skip_resume))
+	if (!(dev_pm_test_driver_flags(dev, DPM_FLAG_MAY_SKIP_RESUME) &&
+	      dev->power.may_skip_resume) || !pm_runtime_need_not_resume(dev))
 		dev->power.must_resume = true;
 
 	if (dev->power.must_resume)
@@ -1646,6 +1644,7 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
 			pm_runtime_disable(dev);
 			if (pm_runtime_status_suspended(dev)) {
 				pm_dev_dbg(dev, state, "direct-complete ");
+				dev->power.is_suspended = true;
 				goto Complete;
 			}
 
drivers/base/power/runtime.c +1 -1
index f5c9e6629f0c..4950864d3ea5 100644
@@ -1811,7 +1811,7 @@ void pm_runtime_drop_link(struct device_link *link)
 	pm_request_idle(link->supplier);
 }
 
-static bool pm_runtime_need_not_resume(struct device *dev)
+bool pm_runtime_need_not_resume(struct device *dev)
 {
 	return atomic_read(&dev->power.usage_count) <= 1 &&
 		(atomic_read(&dev->power.child_count) == 0 ||
drivers/clk/meson/g12a.c +25 -13
index 2876bb83d9d0..3280b7410a13 100644
@@ -1135,8 +1135,18 @@ static struct clk_regmap g12a_cpu_clk_div16_en = {
 	.hw.init = &(struct clk_init_data) {
 		.name = "cpu_clk_div16_en",
 		.ops = &clk_regmap_gate_ro_ops,
-		.parent_hws = (const struct clk_hw *[]) {
-			&g12a_cpu_clk.hw
+		.parent_data = &(const struct clk_parent_data) {
+			/*
+			 * Note:
+			 * G12A and G12B have different cpu clocks (with
+			 * different struct clk_hw). We fallback to the global
+			 * naming string mechanism so this clock picks
+			 * up the appropriate one. Same goes for the other
+			 * clock using cpu cluster A clock output and present
+			 * on both G12 variant.
+			 */
+			.name = "cpu_clk",
+			.index = -1,
 		},
 		.num_parents = 1,
 		/*
@@ -1201,7 +1211,10 @@ static struct clk_regmap g12a_cpu_clk_apb_div = {
 	.hw.init = &(struct clk_init_data){
 		.name = "cpu_clk_apb_div",
 		.ops = &clk_regmap_divider_ro_ops,
-		.parent_hws = (const struct clk_hw *[]) { &g12a_cpu_clk.hw },
+		.parent_data = &(const struct clk_parent_data) {
+			.name = "cpu_clk",
+			.index = -1,
+		},
 		.num_parents = 1,
 	},
 };
@@ -1235,7 +1248,10 @@ static struct clk_regmap g12a_cpu_clk_atb_div = {
 	.hw.init = &(struct clk_init_data){
 		.name = "cpu_clk_atb_div",
 		.ops = &clk_regmap_divider_ro_ops,
-		.parent_hws = (const struct clk_hw *[]) { &g12a_cpu_clk.hw },
+		.parent_data = &(const struct clk_parent_data) {
+			.name = "cpu_clk",
+			.index = -1,
+		},
 		.num_parents = 1,
 	},
 };
@@ -1269,7 +1285,10 @@ static struct clk_regmap g12a_cpu_clk_axi_div = {
 	.hw.init = &(struct clk_init_data){
 		.name = "cpu_clk_axi_div",
 		.ops = &clk_regmap_divider_ro_ops,
-		.parent_hws = (const struct clk_hw *[]) { &g12a_cpu_clk.hw },
+		.parent_data = &(const struct clk_parent_data) {
+			.name = "cpu_clk",
+			.index = -1,
+		},
 		.num_parents = 1,
 	},
 };
@@ -1304,13 +1323,6 @@ static struct clk_regmap g12a_cpu_clk_trace_div = {
 		.name = "cpu_clk_trace_div",
 		.ops = &clk_regmap_divider_ro_ops,
 		.parent_data = &(const struct clk_parent_data) {
-			/*
-			 * Note:
-			 * G12A and G12B have different cpu_clks (with
-			 * different struct clk_hw). We fallback to the global
-			 * naming string mechanism so cpu_clk_trace_div picks
-			 * up the appropriate one.
-			 */
 			.name = "cpu_clk",
 			.index = -1,
 		},
@@ -4124,7 +4136,7 @@ static MESON_GATE(g12a_spicc_1,			HHI_GCLK_MPEG0,	14);
 static MESON_GATE(g12a_hiu_reg,			HHI_GCLK_MPEG0,	19);
 static MESON_GATE(g12a_mipi_dsi_phy,		HHI_GCLK_MPEG0,	20);
 static MESON_GATE(g12a_assist_misc,		HHI_GCLK_MPEG0,	23);
-static MESON_GATE(g12a_emmc_a,			HHI_GCLK_MPEG0,	4);
+static MESON_GATE(g12a_emmc_a,			HHI_GCLK_MPEG0,	24);
 static MESON_GATE(g12a_emmc_b,			HHI_GCLK_MPEG0,	25);
 static MESON_GATE(g12a_emmc_c,			HHI_GCLK_MPEG0,	26);
 static MESON_GATE(g12a_audio_codec,		HHI_GCLK_MPEG0,	28);
drivers/clk/meson/gxbb.c +7 -7
index d42551a46ec9..cfdb1ce6d361 100644
@@ -1269,14 +1269,13 @@ static struct clk_regmap gxbb_cts_i958 = {
 	},
 };
 
+/*
+ * This table skips a clock named 'cts_slow_oscin' in the documentation
+ * This clock does not exist yet in this controller or the AO one
+ */
+static u32 gxbb_32k_clk_parents_val_table[] = { 0, 2, 3 };
 static const struct clk_parent_data gxbb_32k_clk_parent_data[] = {
 	{ .fw_name = "xtal", },
-	/*
-	 * FIXME: This clock is provided by the ao clock controller but the
-	 * clock is not yet part of the binding of this controller, so string
-	 * name must be use to set this parent.
-	 */
-	{ .name = "cts_slow_oscin", .index = -1 },
 	{ .hw = &gxbb_fclk_div3.hw },
 	{ .hw = &gxbb_fclk_div5.hw },
 };
@@ -1286,6 +1285,7 @@ static struct clk_regmap gxbb_32k_clk_sel = {
 		.offset = HHI_32K_CLK_CNTL,
 		.mask = 0x3,
 		.shift = 16,
+		.table = gxbb_32k_clk_parents_val_table,
 		},
 	.hw.init = &(struct clk_init_data){
 		.name = "32k_clk_sel",
@@ -1309,7 +1309,7 @@ static struct clk_regmap gxbb_32k_clk_div = {
 			&gxbb_32k_clk_sel.hw
 		},
 		.num_parents = 1,
-		.flags = CLK_SET_RATE_PARENT | CLK_DIVIDER_ROUND_CLOSEST,
+		.flags = CLK_SET_RATE_PARENT,
 	},
 };
 
drivers/clk/rockchip/clk-rk3328.c +1 -1
index 2429b7c2a8b3..f02188714749 100644
@@ -200,7 +200,7 @@ PNAME(mux_aclk_peri_pre_p)	= { "cpll_peri",
 				    "gpll_peri",
 				    "hdmiphy_peri" };
 PNAME(mux_ref_usb3otg_src_p)	= { "xin24m",
-				    "clk_usb3otg_ref" };
+				    "clk_ref_usb3otg_src" };
 PNAME(mux_xin24m_32k_p)		= { "xin24m",
 				    "clk_rtc32k" };
 PNAME(mux_mac2io_src_p)		= { "clk_mac2io_src",
drivers/clk/samsung/clk.c +1 -1
index 1949ae7851b2..0468ce5506ae 100644
@@ -64,11 +64,11 @@ struct samsung_clk_provider *__init samsung_clk_init(struct device_node *np,
 	if (!ctx)
 		panic("could not allocate clock provider context.\n");
 
+	ctx->clk_data.num = nr_clks;
 	for (i = 0; i < nr_clks; ++i)
 		ctx->clk_data.hws[i] = ERR_PTR(-ENOENT);
 
 	ctx->reg_base = base;
-	ctx->clk_data.num = nr_clks;
 	spin_lock_init(&ctx->lock);
 
 	return ctx;
drivers/clocksource/i8253.c +25 -11
index cb215e6f2e83..39f7c2d736d1 100644
@@ -20,13 +20,6 @@
 DEFINE_RAW_SPINLOCK(i8253_lock);
 EXPORT_SYMBOL(i8253_lock);
 
-/*
- * Handle PIT quirk in pit_shutdown() where zeroing the counter register
- * restarts the PIT, negating the shutdown. On platforms with the quirk,
- * platform specific code can set this to false.
- */
-bool i8253_clear_counter_on_shutdown __ro_after_init = true;
-
 #ifdef CONFIG_CLKSRC_I8253
 /*
  * Since the PIT overflows every tick, its not very useful
@@ -112,12 +105,33 @@ void clockevent_i8253_disable(void)
 {
 	raw_spin_lock(&i8253_lock);
 
+	/*
+	 * Writing the MODE register should stop the counter, according to
+	 * the datasheet. This appears to work on real hardware (well, on
+	 * modern Intel and AMD boxes; I didn't dig the Pegasos out of the
+	 * shed).
+	 *
+	 * However, some virtual implementations differ, and the MODE change
+	 * doesn't have any effect until either the counter is written (KVM
+	 * in-kernel PIT) or the next interrupt (QEMU). And in those cases,
+	 * it may not stop the *count*, only the interrupts. Although in
+	 * the virt case, that probably doesn't matter, as the value of the
+	 * counter will only be calculated on demand if the guest reads it;
+	 * it's the interrupts which cause steal time.
+	 *
+	 * Hyper-V apparently has a bug where even in mode 0, the IRQ keeps
+	 * firing repeatedly if the counter is running. But it *does* do the
+	 * right thing when the MODE register is written.
+	 *
+	 * So: write the MODE and then load the counter, which ensures that
+	 * the IRQ is stopped on those buggy virt implementations. And then
+	 * write the MODE again, which is the right way to stop it.
+	 */
 	outb_p(0x30, PIT_MODE);
+	outb_p(0, PIT_CH0);
+	outb_p(0, PIT_CH0);
 
-	if (i8253_clear_counter_on_shutdown) {
-		outb_p(0, PIT_CH0);
-		outb_p(0, PIT_CH0);
-	}
+	outb_p(0x30, PIT_MODE);
 
 	raw_spin_unlock(&i8253_lock);
 }
drivers/counter/microchip-tcb-capture.c +19 -0
index 6f17644b6e0b..40d02df8acf7 100644
@@ -377,6 +377,25 @@ static int mchp_tc_probe(struct platform_device *pdev)
 			channel);
 	}
 
+	/* Disable Quadrature Decoder and position measure */
+	ret = regmap_update_bits(regmap, ATMEL_TC_BMR, ATMEL_TC_QDEN | ATMEL_TC_POSEN, 0);
+	if (ret)
+		return ret;
+
+	/* Setup the period capture mode */
+	ret = regmap_update_bits(regmap, ATMEL_TC_REG(priv->channel[0], CMR),
+				 ATMEL_TC_WAVE | ATMEL_TC_ABETRG | ATMEL_TC_CMR_MASK |
+				 ATMEL_TC_TCCLKS,
+				 ATMEL_TC_CMR_MASK);
+	if (ret)
+		return ret;
+
+	/* Enable clock and trigger counter */
+	ret = regmap_write(regmap, ATMEL_TC_REG(priv->channel[0], CCR),
+			   ATMEL_TC_CLKEN | ATMEL_TC_SWTRG);
+	if (ret)
+		return ret;
+
 	priv->tc_cfg = tcb_config;
 	priv->regmap = regmap;
 	priv->counter.name = dev_name(&pdev->dev);
drivers/counter/stm32-lptimer-cnt.c +15 -9
index b084e971a493..04309e561926 100644
@@ -58,37 +58,43 @@ static int stm32_lptim_set_enable_state(struct stm32_lptim_cnt *priv,
 		return 0;
 	}
 
+	ret = clk_enable(priv->clk);
+	if (ret)
+		goto disable_cnt;
+
 	/* LP timer must be enabled before writing CMP & ARR */
 	ret = regmap_write(priv->regmap, STM32_LPTIM_ARR, priv->ceiling);
 	if (ret)
-		return ret;
+		goto disable_clk;
 
 	ret = regmap_write(priv->regmap, STM32_LPTIM_CMP, 0);
 	if (ret)
-		return ret;
+		goto disable_clk;
 
 	/* ensure CMP & ARR registers are properly written */
 	ret = regmap_read_poll_timeout(priv->regmap, STM32_LPTIM_ISR, val,
 				       (val & STM32_LPTIM_CMPOK_ARROK) == STM32_LPTIM_CMPOK_ARROK,
 				       100, 1000);
 	if (ret)
-		return ret;
+		goto disable_clk;
 
 	ret = regmap_write(priv->regmap, STM32_LPTIM_ICR,
 			   STM32_LPTIM_CMPOKCF_ARROKCF);
 	if (ret)
-		return ret;
+		goto disable_clk;
 
-	ret = clk_enable(priv->clk);
-	if (ret) {
-		regmap_write(priv->regmap, STM32_LPTIM_CR, 0);
-		return ret;
-	}
 	priv->enabled = true;
 
 	/* Start LP timer in continuous mode */
 	return regmap_update_bits(priv->regmap, STM32_LPTIM_CR,
 				  STM32_LPTIM_CNTSTRT, STM32_LPTIM_CNTSTRT);
+
+disable_clk:
+	clk_disable(priv->clk);
+disable_cnt:
+	regmap_write(priv->regmap, STM32_LPTIM_CR, 0);
+
+	return ret;
 }
 
 static int stm32_lptim_setup(struct stm32_lptim_cnt *priv, int enable)
drivers/cpufreq/cpufreq_governor.c +23 -22

67 lines not on this page · raw message

drivers/cpufreq/scpi-cpufreq.c +3 -2
index e5140ad63db8..c79cdf1be780 100644
@@ -47,8 +47,9 @@ static unsigned int scpi_cpufreq_get_rate(unsigned int cpu)
 static int
 scpi_cpufreq_set_target(struct cpufreq_policy *policy, unsigned int index)
 {
-	u64 rate = policy->freq_table[index].frequency * 1000;
+	unsigned long freq_khz = policy->freq_table[index].frequency;
 	struct scpi_data *priv = policy->driver_data;
+	unsigned long rate = freq_khz * 1000;
 	int ret;
 
 	ret = clk_set_rate(priv->clk, rate);
@@ -56,7 +57,7 @@ scpi_cpufreq_set_target(struct cpufreq_policy *policy, unsigned int index)
 	if (ret)
 		return ret;
 
-	if (clk_get_rate(priv->clk) != rate)
+	if (clk_get_rate(priv->clk) / 1000 != freq_khz)
 		return -EIO;
 
 	return 0;
drivers/crypto/hisilicon/sec2/sec_crypto.c +2 -6
index 2dbec638cca8..ce2ff9538c8d 100644
@@ -856,11 +856,6 @@ static int sec_aead_auth_set_key(struct sec_auth_ctx *ctx,
 	struct crypto_shash *hash_tfm = ctx->hash_tfm;
 	int blocksize, ret;
 
-	if (!keys->authkeylen) {
-		pr_err("hisi_sec2: aead auth key error!\n");
-		return -EINVAL;
-	}
-
 	blocksize = crypto_shash_blocksize(hash_tfm);
 	if (keys->authkeylen > blocksize) {
 		ret = crypto_shash_tfm_digest(hash_tfm, keys->authkey,
@@ -871,7 +866,8 @@ static int sec_aead_auth_set_key(struct sec_auth_ctx *ctx,
 		}
 		ctx->a_key_len = blocksize;
 	} else {
-		memcpy(ctx->a_key, keys->authkey, keys->authkeylen);
+		if (keys->authkeylen)
+			memcpy(ctx->a_key, keys->authkey, keys->authkeylen);
 		ctx->a_key_len = keys->authkeylen;
 	}
 
drivers/edac/ie31200_edac.c +10 -9
index c47963240b65..cad20e87783b 100644
@@ -83,8 +83,6 @@
 	 (((did) & PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_MASK) ==                 \
 	  PCI_DEVICE_ID_INTEL_IE31200_HB_CFL_MASK))
 
-#define IE31200_DIMMS			4
-#define IE31200_RANKS			8
 #define IE31200_RANKS_PER_CHANNEL	4
 #define IE31200_DIMMS_PER_CHANNEL	2
 #define IE31200_CHANNELS		2
@@ -156,6 +154,7 @@
 #define IE31200_MAD_DIMM_0_OFFSET		0x5004
 #define IE31200_MAD_DIMM_0_OFFSET_SKL		0x500C
 #define IE31200_MAD_DIMM_SIZE			GENMASK_ULL(7, 0)
+#define IE31200_MAD_DIMM_SIZE_SKL		GENMASK_ULL(5, 0)
 #define IE31200_MAD_DIMM_A_RANK			BIT(17)
 #define IE31200_MAD_DIMM_A_RANK_SHIFT		17
 #define IE31200_MAD_DIMM_A_RANK_SKL		BIT(10)
@@ -370,7 +369,7 @@ static void __iomem *ie31200_map_mchbar(struct pci_dev *pdev)
 static void __skl_populate_dimm_info(struct dimm_data *dd, u32 addr_decode,
 				     int chan)
 {
-	dd->size = (addr_decode >> (chan << 4)) & IE31200_MAD_DIMM_SIZE;
+	dd->size = (addr_decode >> (chan << 4)) & IE31200_MAD_DIMM_SIZE_SKL;
 	dd->dual_rank = (addr_decode & (IE31200_MAD_DIMM_A_RANK_SKL << (chan << 4))) ? 1 : 0;
 	dd->x16_width = ((addr_decode & (IE31200_MAD_DIMM_A_WIDTH_SKL << (chan << 4))) >>
 				(IE31200_MAD_DIMM_A_WIDTH_SKL_SHIFT + (chan << 4)));
@@ -419,7 +418,7 @@ static int ie31200_probe1(struct pci_dev *pdev, int dev_idx)
 
 	nr_channels = how_many_channels(pdev);
 	layers[0].type = EDAC_MC_LAYER_CHIP_SELECT;
-	layers[0].size = IE31200_DIMMS;
+	layers[0].size = IE31200_RANKS_PER_CHANNEL;
 	layers[0].is_virt_csrow = true;
 	layers[1].type = EDAC_MC_LAYER_CHANNEL;
 	layers[1].size = nr_channels;
@@ -609,7 +608,7 @@ static int __init ie31200_init(void)
 
 	pci_rc = pci_register_driver(&ie31200_driver);
 	if (pci_rc < 0)
-		goto fail0;
+		return pci_rc;
 
 	if (!mci_pdev) {
 		ie31200_registered = 0;
@@ -620,11 +619,13 @@ static int __init ie31200_init(void)
 			if (mci_pdev)
 				break;
 		}
+
 		if (!mci_pdev) {
 			edac_dbg(0, "ie31200 pci_get_device fail\n");
 			pci_rc = -ENODEV;
-			goto fail1;
+			goto fail0;
 		}
+
 		pci_rc = ie31200_init_one(mci_pdev, &ie31200_pci_tbl[i]);
 		if (pci_rc < 0) {
 			edac_dbg(0, "ie31200 init fail\n");
@@ -632,12 +633,12 @@ static int __init ie31200_init(void)
 			goto fail1;
 		}
 	}
-	return 0;
 
+	return 0;
 fail1:
-	pci_unregister_driver(&ie31200_driver);
-fail0:
 	pci_dev_put(mci_pdev);
+fail0:
+	pci_unregister_driver(&ie31200_driver);
 
 	return pci_rc;
 }
drivers/firmware/imx/imx-scu.c +1 -0
index dca79caccd01..fa25c082109a 100644
@@ -279,6 +279,7 @@ static int imx_scu_probe(struct platform_device *pdev)
 		return ret;
 
 	sc_ipc->fast_ipc = of_device_is_compatible(args.np, "fsl,imx8-mu-scu");
+	of_node_put(args.np);
 
 	num_channel = sc_ipc->fast_ipc ? 2 : SCU_MU_CHAN_NUM;
 	for (i = 0; i < num_channel; i++) {
drivers/firmware/iscsi_ibft.c +4 -1
index 7127a04bca19..0d96dbbba74e 100644
@@ -312,7 +312,10 @@ static ssize_t ibft_attr_show_nic(void *data, int type, char *buf)
 		str += sprintf_ipaddr(str, nic->ip_addr);
 		break;
 	case ISCSI_BOOT_ETH_SUBNET_MASK:
-		val = cpu_to_be32(~((1 << (32-nic->subnet_mask_prefix))-1));
+		if (nic->subnet_mask_prefix > 32)
+			val = cpu_to_be32(~0);
+		else
+			val = cpu_to_be32(~((1 << (32-nic->subnet_mask_prefix))-1));
 		str += sprintf(str, "%pI4", &val);
 		break;
 	case ISCSI_BOOT_ETH_PREFIX_LEN:
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +98 -8

137 lines not on this page · raw message

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +7 -7
index 32dbd2a27088..6914738f0275 100644
@@ -424,7 +424,7 @@ static ssize_t dp_phy_settings_write(struct file *f, const char __user *buf,
 	if (!wr_buf)
 		return -ENOSPC;
 
-	if (parse_write_buffer_into_params(wr_buf, size,
+	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,
 					   (long *)param, buf,
 					   max_param_num,
 					   &param_nums)) {
@@ -576,7 +576,7 @@ static ssize_t dp_phy_test_pattern_debugfs_write(struct file *f, const char __us
 	if (!wr_buf)
 		return -ENOSPC;
 
-	if (parse_write_buffer_into_params(wr_buf, size,
+	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,
 					   (long *)param, buf,
 					   max_param_num,
 					   &param_nums)) {
@@ -1091,7 +1091,7 @@ static ssize_t dp_trigger_hotplug(struct file *f, const char __user *buf,
 		return -ENOSPC;
 	}
 
-	if (parse_write_buffer_into_params(wr_buf, size,
+	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,
 						(long *)param, buf,
 						max_param_num,
 						&param_nums)) {
@@ -1272,7 +1272,7 @@ static ssize_t dp_dsc_clock_en_write(struct file *f, const char __user *buf,
 		return -ENOSPC;
 	}
 
-	if (parse_write_buffer_into_params(wr_buf, size,
+	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,
 					    (long *)param, buf,
 					    max_param_num,
 					    &param_nums)) {
@@ -1426,7 +1426,7 @@ static ssize_t dp_dsc_slice_width_write(struct file *f, const char __user *buf,
 		return -ENOSPC;
 	}
 
-	if (parse_write_buffer_into_params(wr_buf, size,
+	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,
 					    (long *)param, buf,
 					    max_param_num,
 					    &param_nums)) {
@@ -1580,7 +1580,7 @@ static ssize_t dp_dsc_slice_height_write(struct file *f, const char __user *buf,
 		return -ENOSPC;
 	}
 
-	if (parse_write_buffer_into_params(wr_buf, size,
+	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,
 					    (long *)param, buf,
 					    max_param_num,
 					    &param_nums)) {
@@ -1727,7 +1727,7 @@ static ssize_t dp_dsc_bits_per_pixel_write(struct file *f, const char __user *bu
 		return -ENOSPC;
 	}
 
-	if (parse_write_buffer_into_params(wr_buf, size,
+	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,
 					    (long *)param, buf,
 					    max_param_num,
 					    &param_nums)) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c +1 -0
index 0c3b15992b81..12f478294805 100644
@@ -383,6 +383,7 @@ void hdcp_destroy(struct kobject *kobj, struct hdcp_workqueue *hdcp_work)
 	for (i = 0; i < hdcp_work->max_link; i++) {
 		cancel_delayed_work_sync(&hdcp_work[i].callback_dwork);
 		cancel_delayed_work_sync(&hdcp_work[i].watchdog_timer_dwork);
+		cancel_delayed_work_sync(&hdcp_work[i].property_validate_dwork);
 	}
 
 	sysfs_remove_bin_file(kobj, &hdcp_work[0].attr);
drivers/gpu/drm/amd/display/dc/core/dc_resource.c +216 -369

712 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/dc.h +1 -0
index 1df7c49ac8d7..d3a4a55f3f1f 100644
@@ -48,6 +48,7 @@
 #define MAX_PLANES 6
 #define MAX_STREAMS 6
 #define MAX_SINKS_PER_LINK 4
+#define MIN_VIEWPORT_SIZE 12
 
 /*******************************************************************************
  * Display Core Interfaces
drivers/gpu/drm/amd/display/dc/dc_types.h +0 -5
index c47a19719de2..c8c2ba7e7b05 100644
@@ -268,11 +268,6 @@ struct dc_edid_caps {
 	struct dc_panel_patch panel_patch;
 };
 
-struct view {
-	uint32_t width;
-	uint32_t height;
-};
-
 struct dc_mode_flags {
 	/* note: part of refresh rate flag*/
 	uint32_t INTERLACE :1;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c +8 -4
index 8bb5912d837d..bd842055ea95 100644
@@ -617,8 +617,10 @@ static void dpp1_dscl_set_manual_ratio_init(
 		SCL_V_INIT_INT, init_int);
 
 	if (REG(SCL_VERT_FILTER_INIT_BOT)) {
-		init_frac = dc_fixpt_u0d19(data->inits.v_bot) << 5;
-		init_int = dc_fixpt_floor(data->inits.v_bot);
+		struct fixed31_32 bot = dc_fixpt_add(data->inits.v, data->ratios.vert);
+
+		init_frac = dc_fixpt_u0d19(bot) << 5;
+		init_int = dc_fixpt_floor(bot);
 		REG_SET_2(SCL_VERT_FILTER_INIT_BOT, 0,
 			SCL_V_INIT_FRAC_BOT, init_frac,
 			SCL_V_INIT_INT_BOT, init_int);
@@ -631,8 +633,10 @@ static void dpp1_dscl_set_manual_ratio_init(
 		SCL_V_INIT_INT_C, init_int);
 
 	if (REG(SCL_VERT_FILTER_INIT_BOT_C)) {
-		init_frac = dc_fixpt_u0d19(data->inits.v_c_bot) << 5;
-		init_int = dc_fixpt_floor(data->inits.v_c_bot);
+		struct fixed31_32 bot = dc_fixpt_add(data->inits.v_c, data->ratios.vert_c);
+
+		init_frac = dc_fixpt_u0d19(bot) << 5;
+		init_int = dc_fixpt_floor(bot);
 		REG_SET_2(SCL_VERT_FILTER_INIT_BOT_C, 0,
 			SCL_V_INIT_FRAC_BOT_C, init_frac,
 			SCL_V_INIT_INT_BOT_C, init_int);
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +8 -6
index 53ac82693532..b4bff3b3d842 100644
@@ -2281,12 +2281,14 @@ int dcn20_populate_dml_pipes_from_context(
 
 			pipes[pipe_cnt].pipe.src.source_scan = pln->rotation == ROTATION_ANGLE_90
 					|| pln->rotation == ROTATION_ANGLE_270 ? dm_vert : dm_horz;
-			pipes[pipe_cnt].pipe.src.viewport_y_y = scl->viewport_unadjusted.y;
-			pipes[pipe_cnt].pipe.src.viewport_y_c = scl->viewport_c_unadjusted.y;
-			pipes[pipe_cnt].pipe.src.viewport_width = scl->viewport_unadjusted.width;
-			pipes[pipe_cnt].pipe.src.viewport_width_c = scl->viewport_c_unadjusted.width;
-			pipes[pipe_cnt].pipe.src.viewport_height = scl->viewport_unadjusted.height;
-			pipes[pipe_cnt].pipe.src.viewport_height_c = scl->viewport_c_unadjusted.height;
+			pipes[pipe_cnt].pipe.src.viewport_y_y = scl->viewport.y;
+			pipes[pipe_cnt].pipe.src.viewport_y_c = scl->viewport_c.y;
+			pipes[pipe_cnt].pipe.src.viewport_width = scl->viewport.width;
+			pipes[pipe_cnt].pipe.src.viewport_width_c = scl->viewport_c.width;
+			pipes[pipe_cnt].pipe.src.viewport_height = scl->viewport.height;
+			pipes[pipe_cnt].pipe.src.viewport_height_c = scl->viewport_c.height;
+			pipes[pipe_cnt].pipe.src.viewport_width_max = pln->src_rect.width;
+			pipes[pipe_cnt].pipe.src.viewport_height_max = pln->src_rect.height;
 			pipes[pipe_cnt].pipe.src.surface_width_y = pln->plane_size.surface_size.width;
 			pipes[pipe_cnt].pipe.src.surface_height_y = pln->plane_size.surface_size.height;
 			pipes[pipe_cnt].pipe.src.surface_width_c = pln->plane_size.chroma_size.width;
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c +6 -6
index e5b1002d7f3f..ed4e7f3728ab 100644
@@ -283,10 +283,10 @@ static void CalculateDynamicMetadataParameters(
 		double DISPCLK,
 		double DCFClkDeepSleep,
 		double PixelClock,
-		long HTotal,
-		long VBlank,
-		long DynamicMetadataTransmittedBytes,
-		long DynamicMetadataLinesBeforeActiveRequired,
+		unsigned int HTotal,
+		unsigned int VBlank,
+		unsigned int DynamicMetadataTransmittedBytes,
+		int DynamicMetadataLinesBeforeActiveRequired,
 		int InterlaceEnable,
 		bool ProgressiveToInterlaceUnitInOPP,
 		double *Tsetup,
@@ -3373,8 +3373,8 @@ static double CalculateWriteBackDelay(
 
 
 static void CalculateDynamicMetadataParameters(int MaxInterDCNTileRepeaters, double DPPCLK, double DISPCLK,
-		double DCFClkDeepSleep, double PixelClock, long HTotal, long VBlank, long DynamicMetadataTransmittedBytes,
-		long DynamicMetadataLinesBeforeActiveRequired, int InterlaceEnable, bool ProgressiveToInterlaceUnitInOPP,
+		double DCFClkDeepSleep, double PixelClock, unsigned int HTotal, unsigned int VBlank, unsigned int DynamicMetadataTransmittedBytes,
+		int DynamicMetadataLinesBeforeActiveRequired, int InterlaceEnable, bool ProgressiveToInterlaceUnitInOPP,
 		double *Tsetup, double *Tdmbf, double *Tdmec, double *Tdmsks)
 {
 	double TotalRepeaterDelayTime = 0;
drivers/gpu/drm/amd/display/dc/dml/display_mode_structs.h +2 -0
index 6ab74640c0da..a86b821d61c8 100644
@@ -255,6 +255,8 @@ struct _vcs_dpi_display_pipe_source_params_st {
 	unsigned int viewport_y_c;
 	unsigned int viewport_width_c;
 	unsigned int viewport_height_c;
+	unsigned int viewport_width_max;
+	unsigned int viewport_height_max;
 	unsigned int data_pitch;
 	unsigned int data_pitch_c;
 	unsigned int meta_pitch;
drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c +39 -1
index b32093136089..bfb0be4e60a6 100644
@@ -628,6 +628,19 @@ static void fetch_pipe_params(struct display_mode_lib *mode_lib)
 				}
 			}
 		}
+		if (src->viewport_width_max) {
+			int hdiv_c = src->source_format >= dm_420_8 && src->source_format <= dm_422_10 ? 2 : 1;
+			int vdiv_c = src->source_format >= dm_420_8 && src->source_format <= dm_420_12 ? 2 : 1;
+
+			if (mode_lib->vba.ViewportWidth[mode_lib->vba.NumberOfActivePlanes] > src->viewport_width_max)
+				mode_lib->vba.ViewportWidth[mode_lib->vba.NumberOfActivePlanes] = src->viewport_width_max;
+			if (mode_lib->vba.ViewportHeight[mode_lib->vba.NumberOfActivePlanes] > src->viewport_height_max)
+				mode_lib->vba.ViewportHeight[mode_lib->vba.NumberOfActivePlanes] = src->viewport_height_max;
+			if (mode_lib->vba.ViewportWidthChroma[mode_lib->vba.NumberOfActivePlanes] > src->viewport_width_max / hdiv_c)
+				mode_lib->vba.ViewportWidthChroma[mode_lib->vba.NumberOfActivePlanes] = src->viewport_width_max / hdiv_c;
+			if (mode_lib->vba.ViewportHeightChroma[mode_lib->vba.NumberOfActivePlanes] > src->viewport_height_max / vdiv_c)
+				mode_lib->vba.ViewportHeightChroma[mode_lib->vba.NumberOfActivePlanes] = src->viewport_height_max / vdiv_c;
+		}
 
 		if (pipes[k].pipe.src.immediate_flip) {
 			mode_lib->vba.ImmediateFlipSupport = true;
@@ -825,11 +838,30 @@ static unsigned int CursorBppEnumToBits(enum cursor_bpp ebpp)
 	}
 }
 
+static unsigned int get_pipe_idx(struct display_mode_lib *mode_lib, unsigned int plane_idx)
+{
+	int pipe_idx = -1;
+	int i;
+
+	ASSERT(plane_idx < DC__NUM_DPP__MAX);
+
+	for (i = 0; i < DC__NUM_DPP__MAX ; i++) {
+		if (plane_idx == mode_lib->vba.pipe_plane[i]) {
+			pipe_idx = i;
+			break;
+		}
+	}
+	ASSERT(pipe_idx >= 0);
+
+	return pipe_idx;
+}
+
 void ModeSupportAndSystemConfiguration(struct display_mode_lib *mode_lib)
 {
 	soc_bounding_box_st *soc = &mode_lib->vba.soc;
 	unsigned int k;
 	unsigned int total_pipes = 0;
+	unsigned int pipe_idx = 0;
 
 	mode_lib->vba.VoltageLevel = mode_lib->vba.cache_pipes[0].clks_cfg.voltage;
 	mode_lib->vba.ReturnBW = mode_lib->vba.ReturnBWPerState[mode_lib->vba.VoltageLevel][mode_lib->vba.maxMpcComb];
@@ -849,8 +881,14 @@ void ModeSupportAndSystemConfiguration(struct display_mode_lib *mode_lib)
 		mode_lib->vba.DISPCLK = soc->clock_limits[mode_lib->vba.VoltageLevel].dispclk_mhz;
 
 	// Total Available Pipes Support Check
-	for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k)
+	for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
+		pipe_idx = get_pipe_idx(mode_lib, k);
+		if (pipe_idx == -1) {
+			ASSERT(0);
+			continue; // skip inactive planes
+		}
 		total_pipes += mode_lib->vba.DPPPerPlane[k];
+	}
 	ASSERT(total_pipes <= DC__NUM_DPP__MAX);
 }
 
drivers/gpu/drm/amd/display/dc/inc/hw/transform.h +0 -4
index 2947d1b15512..2a0db2b03047 100644
@@ -162,9 +162,7 @@ struct scl_inits {
 	struct fixed31_32 h;
 	struct fixed31_32 h_c;
 	struct fixed31_32 v;
-	struct fixed31_32 v_bot;
 	struct fixed31_32 v_c;
-	struct fixed31_32 v_c_bot;
 };
 
 struct scaler_data {
@@ -173,8 +171,6 @@ struct scaler_data {
 	struct scaling_taps taps;
 	struct rect viewport;
 	struct rect viewport_c;
-	struct rect viewport_unadjusted;
-	struct rect viewport_c_unadjusted;
 	struct rect recout;
 	struct scaling_ratios ratios;
 	struct scl_inits inits;
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c +16 -5
index a7773b6453d5..0af9ee3a520a 100644
@@ -900,19 +900,22 @@ static int navi10_get_current_clk_freq_by_table(struct smu_context *smu,
 					   value);
 }
 
-static bool navi10_is_support_fine_grained_dpm(struct smu_context *smu, enum smu_clk_type clk_type)
+static int navi10_is_support_fine_grained_dpm(struct smu_context *smu, enum smu_clk_type clk_type)
 {
 	PPTable_t *pptable = smu->smu_table.driver_pptable;
 	DpmDescriptor_t *dpm_desc = NULL;
-	uint32_t clk_index = 0;
+	int clk_index = 0;
 
 	clk_index = smu_cmn_to_asic_specific_index(smu,
 						   CMN2ASIC_MAPPING_CLK,
 						   clk_type);
+	if (clk_index < 0)
+		return clk_index;
+
 	dpm_desc = &pptable->DpmDescriptor[clk_index];
 
 	/* 0 - Fine grained DPM, 1 - Discrete DPM */
-	return dpm_desc->SnapToDiscrete == 0 ? true : false;
+	return dpm_desc->SnapToDiscrete == 0 ? 1 : 0;
 }
 
 static inline bool navi10_od_feature_is_supported(struct smu_11_0_overdrive_table *od_table, enum SMU_11_0_ODFEATURE_CAP cap)
@@ -964,7 +967,11 @@ static int navi10_print_clk_levels(struct smu_context *smu,
 		if (ret)
 			return size;
 
-		if (!navi10_is_support_fine_grained_dpm(smu, clk_type)) {
+		ret = navi10_is_support_fine_grained_dpm(smu, clk_type);
+		if (ret < 0)
+			return ret;
+
+		if (!ret) {
 			for (i = 0; i < count; i++) {
 				ret = smu_v11_0_get_dpm_freq_by_index(smu, clk_type, i, &value);
 				if (ret)
@@ -1127,7 +1134,11 @@ static int navi10_force_clk_levels(struct smu_context *smu,
 	case SMU_UCLK:
 	case SMU_FCLK:
 		/* There is only 2 levels for fine grained DPM */
-		if (navi10_is_support_fine_grained_dpm(smu, clk_type)) {
+		ret = navi10_is_support_fine_grained_dpm(smu, clk_type);
+		if (ret < 0)
+			return ret;
+
+		if (ret) {
 			soft_max_level = (soft_max_level >= 1 ? 1 : 0);
 			soft_min_level = (soft_min_level >= 1 ? 1 : 0);
 		}
drivers/gpu/drm/drm_atomic_uapi.c +4 -0
index f6d8bee10fa0..e6e64cff3335 100644
@@ -936,6 +936,10 @@ int drm_atomic_connector_commit_dpms(struct drm_atomic_state *state,
 
 	if (mode != DRM_MODE_DPMS_ON)
 		mode = DRM_MODE_DPMS_OFF;
+
+	if (connector->dpms == mode)
+		goto out;
+
 	connector->dpms = mode;
 
 	crtc = connector->state->crtc;
drivers/gpu/drm/drm_connector.c +4 -0
index c4ed4f1b369c..db8ede9d56d1 100644
@@ -990,6 +990,10 @@ static const struct drm_prop_enum_list dp_colorspaces[] = {
  * 	callback. For atomic drivers the remapping to the "ACTIVE" property is
  * 	implemented in the DRM core.
  *
+ * 	On atomic drivers any DPMS setproperty ioctl where the value does not
+ * 	change is completely skipped, otherwise a full atomic commit will occur.
+ * 	On legacy drivers the exact behavior is driver specific.
+ *
  * 	Note that this property cannot be set through the MODE_ATOMIC ioctl,
  * 	userspace must use "ACTIVE" on the CRTC instead.
  *
drivers/gpu/drm/drm_dp_mst_topology.c +4 -4
index 0eb2f30c1e3e..702ab6148425 100644
@@ -178,13 +178,13 @@ static int
 drm_dp_mst_rad_to_str(const u8 rad[8], u8 lct, char *out, size_t len)
 {
 	int i;
-	u8 unpacked_rad[16];
+	u8 unpacked_rad[16] = {};
 
-	for (i = 0; i < lct; i++) {
+	for (i = 1; i < lct; i++) {
 		if (i % 2)
-			unpacked_rad[i] = rad[i / 2] >> 4;
+			unpacked_rad[i] = rad[(i - 1) / 2] >> 4;
 		else
-			unpacked_rad[i] = rad[i / 2] & BIT_MASK(4);
+			unpacked_rad[i] = rad[(i - 1) / 2] & 0xF;
 	}
 
 	/* TODO: Eventually add something to printk so we can format the rad
drivers/gpu/drm/gma500/mid_bios.c +5 -0
index 8ab44fec4bfa..b76b86278e0e 100644
@@ -277,6 +277,11 @@ static void mid_get_vbt_data(struct drm_psb_private *dev_priv)
 					    0, PCI_DEVFN(2, 0));
 	int ret = -1;
 
+	if (pci_gfx_root == NULL) {
+		WARN_ON(1);
+		return;
+	}
+
 	/* Get the address of the platform config vbt */
 	pci_read_config_dword(pci_gfx_root, 0xFC, &addr);
 	pci_dev_put(pci_gfx_root);
drivers/gpu/drm/mediatek/mtk_dsi.c +3 -3
index 17d45f06cedf..3fa22af13f74 100644
@@ -920,12 +920,12 @@ static ssize_t mtk_dsi_host_transfer(struct mipi_dsi_host *host,
 				     const struct mipi_dsi_msg *msg)
 {
 	struct mtk_dsi *dsi = host_to_dsi(host);
-	u32 recv_cnt, i;
+	ssize_t recv_cnt;
 	u8 read_data[16];
 	void *src_addr;
 	u8 irq_flag = CMD_DONE_INT_FLAG;
 	u32 dsi_mode;
-	int ret;
+	int ret, i;
 
 	dsi_mode = readl(dsi->regs + DSI_MODE_CTRL);
 	if (dsi_mode & MODE) {
@@ -974,7 +974,7 @@ static ssize_t mtk_dsi_host_transfer(struct mipi_dsi_host *host,
 	if (recv_cnt)
 		memcpy(msg->rx_buf, src_addr, recv_cnt);
 
-	DRM_INFO("dsi get %d byte data from the panel address(0x%x)\n",
+	DRM_INFO("dsi get %zd byte data from the panel address(0x%x)\n",
 		 recv_cnt, *((u8 *)(msg->tx_buf)));
 
 restore_dsi_mode:
drivers/gpu/drm/mediatek/mtk_hdmi.c +23 -10
index 97a1ff529a1d..f0e25ba86081 100644
@@ -138,7 +138,7 @@ enum hdmi_aud_channel_swap_type {
 
 struct hdmi_audio_param {
 	enum hdmi_audio_coding_type aud_codec;
-	enum hdmi_audio_sample_size aud_sampe_size;
+	enum hdmi_audio_sample_size aud_sample_size;
 	enum hdmi_aud_input_type aud_input_type;
 	enum hdmi_aud_i2s_fmt aud_i2s_fmt;
 	enum hdmi_aud_mclk aud_mclk;
@@ -172,6 +172,7 @@ struct mtk_hdmi {
 	unsigned int sys_offset;
 	void __iomem *regs;
 	enum hdmi_colorspace csp;
+	struct platform_device *audio_pdev;
 	struct hdmi_audio_param aud_param;
 	bool audio_enable;
 	bool powered;
@@ -1091,7 +1092,7 @@ static int mtk_hdmi_output_init(struct mtk_hdmi *hdmi)
 
 	hdmi->csp = HDMI_COLORSPACE_RGB;
 	aud_param->aud_codec = HDMI_AUDIO_CODING_TYPE_PCM;
-	aud_param->aud_sampe_size = HDMI_AUDIO_SAMPLE_SIZE_16;
+	aud_param->aud_sample_size = HDMI_AUDIO_SAMPLE_SIZE_16;
 	aud_param->aud_input_type = HDMI_AUD_INPUT_I2S;
 	aud_param->aud_i2s_fmt = HDMI_I2S_MODE_I2S_24BIT;
 	aud_param->aud_mclk = HDMI_AUD_MCLK_128FS;
@@ -1617,14 +1618,14 @@ static int mtk_hdmi_audio_hw_params(struct device *dev, void *data,
 	switch (daifmt->fmt) {
 	case HDMI_I2S:
 		hdmi_params.aud_codec = HDMI_AUDIO_CODING_TYPE_PCM;
-		hdmi_params.aud_sampe_size = HDMI_AUDIO_SAMPLE_SIZE_16;
+		hdmi_params.aud_sample_size = HDMI_AUDIO_SAMPLE_SIZE_16;
 		hdmi_params.aud_input_type = HDMI_AUD_INPUT_I2S;
 		hdmi_params.aud_i2s_fmt = HDMI_I2S_MODE_I2S_24BIT;
 		hdmi_params.aud_mclk = HDMI_AUD_MCLK_128FS;
 		break;
 	case HDMI_SPDIF:
 		hdmi_params.aud_codec = HDMI_AUDIO_CODING_TYPE_PCM;
-		hdmi_params.aud_sampe_size = HDMI_AUDIO_SAMPLE_SIZE_16;
+		hdmi_params.aud_sample_size = HDMI_AUDIO_SAMPLE_SIZE_16;
 		hdmi_params.aud_input_type = HDMI_AUD_INPUT_SPDIF;
 		break;
 	default:
@@ -1706,6 +1707,11 @@ static const struct hdmi_codec_ops mtk_hdmi_audio_codec_ops = {
 	.no_capture_mute = 1,
 };
 
+static void mtk_hdmi_unregister_audio_driver(void *data)
+{
+	platform_device_unregister(data);
+}
+
 static int mtk_hdmi_register_audio_driver(struct device *dev)
 {
 	struct mtk_hdmi *hdmi = dev_get_drvdata(dev);
@@ -1715,13 +1721,20 @@ static int mtk_hdmi_register_audio_driver(struct device *dev)
 		.i2s = 1,
 		.data = hdmi,
 	};
-	struct platform_device *pdev;
+	int ret;
 
-	pdev = platform_device_register_data(dev, HDMI_CODEC_DRV_NAME,
-					     PLATFORM_DEVID_AUTO, &codec_data,
-					     sizeof(codec_data));
-	if (IS_ERR(pdev))
-		return PTR_ERR(pdev);
+	hdmi->audio_pdev = platform_device_register_data(dev,
+							 HDMI_CODEC_DRV_NAME,
+							 PLATFORM_DEVID_AUTO,
+							 &codec_data,
+							 sizeof(codec_data));
+	if (IS_ERR(hdmi->audio_pdev))
+		return PTR_ERR(hdmi->audio_pdev);
+
+	ret = devm_add_action_or_reset(dev, mtk_hdmi_unregister_audio_driver,
+				       hdmi->audio_pdev);
+	if (ret)
+		return ret;
 
 	DRM_INFO("%s driver bound to HDMI\n", HDMI_CODEC_DRV_NAME);
 	return 0;
drivers/gpu/drm/nouveau/nouveau_connector.c +0 -1
index 6b8ad830c034..aa8e4a732b7c 100644
@@ -751,7 +751,6 @@ nouveau_connector_force(struct drm_connector *connector)
 	if (!nv_encoder) {
 		NV_ERROR(drm, "can't find encoder to force %s on!\n",
 			 connector->name);
-		connector->status = connector_status_disconnected;
 		return;
 	}
 
drivers/gpu/drm/radeon/radeon_vce.c +1 -1
index 5e8006444704..6605cdf9304d 100644
@@ -558,7 +558,7 @@ int radeon_vce_cs_parse(struct radeon_cs_parser *p)
 {
 	int session_idx = -1;
 	bool destroyed = false, created = false, allocated = false;
-	uint32_t tmp, handle = 0;
+	uint32_t tmp = 0, handle = 0;
 	uint32_t *size = &tmp;
 	int i, r = 0;
 
drivers/gpu/drm/v3d/v3d_sched.c +8 -1
index 0747614a78f0..310fefac46c2 100644
@@ -188,11 +188,15 @@ v3d_tfu_job_run(struct drm_sched_job *sched_job)
 	struct drm_device *dev = &v3d->drm;
 	struct dma_fence *fence;
 
+	if (unlikely(job->base.base.s_fence->finished.error))
+		return NULL;
+
+	v3d->tfu_job = job;
+
 	fence = v3d_fence_create(v3d, V3D_TFU);
 	if (IS_ERR(fence))
 		return NULL;
 
-	v3d->tfu_job = job;
 	if (job->base.irq_fence)
 		dma_fence_put(job->base.irq_fence);
 	job->base.irq_fence = dma_fence_get(fence);
@@ -226,6 +230,9 @@ v3d_csd_job_run(struct drm_sched_job *sched_job)
 	struct dma_fence *fence;
 	int i;
 
+	if (unlikely(job->base.base.s_fence->finished.error))
+		return NULL;
+
 	v3d->csd_job = job;
 
 	v3d_invalidate_caches(v3d);
drivers/gpu/drm/xlnx/zynqmp_dpsub.c +2 -0
index 5f6eea81f3cc..ad081838c449 100644
@@ -218,6 +218,8 @@ static int zynqmp_dpsub_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
+	dma_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
+
 	/* Try the reserved memory. Proceed if there's none. */
 	of_reserved_mem_device_init(&pdev->dev);
 
drivers/hid/hid-ids.h +1 -0
index fd8c68d3ed8e..d86720fce48f 100644
@@ -1014,6 +1014,7 @@
 #define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001		0x3001
 #define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3003		0x3003
 #define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008		0x3008
+#define USB_DEVICE_ID_QUANTA_HP_5MP_CAMERA_5473		0x5473
 
 #define I2C_VENDOR_ID_RAYDIUM		0x2386
 #define I2C_PRODUCT_ID_RAYDIUM_4B33	0x4b33
drivers/hid/hid-plantronics.c +67 -77

239 lines not on this page · raw message

drivers/hid/hid-quirks.c +1 -0
index 67953cdae31c..9c1afe9cdddf 100644
@@ -870,6 +870,7 @@ static const struct hid_device_id hid_ignore_list[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_DPAD) },
 #endif
 	{ HID_USB_DEVICE(USB_VENDOR_ID_YEALINK, USB_DEVICE_ID_YEALINK_P1K_P4K_B2K) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_HP_5MP_CAMERA_5473) },
 	{ }
 };
 
drivers/hid/intel-ish-hid/ipc/ipc.c +3 -3
index a45ac7fa417b..da896f5c7442 100644
@@ -549,14 +549,14 @@ static void fw_reset_work_fn(struct work_struct *unused)
 static void _ish_sync_fw_clock(struct ishtp_device *dev)
 {
 	static unsigned long	prev_sync;
-	uint64_t	usec;
+	struct ipc_time_update_msg time = {};
 
 	if (prev_sync && jiffies - prev_sync < 20 * HZ)
 		return;
 
 	prev_sync = jiffies;
-	usec = ktime_to_us(ktime_get_boottime());
-	ipc_send_mng_msg(dev, MNG_SYNC_FW_CLOCK, &usec, sizeof(uint64_t));
+	/* The fields of time would be updated while sending message */
+	ipc_send_mng_msg(dev, MNG_SYNC_FW_CLOCK, &time, sizeof(time));
 }
 
 /**
drivers/hv/vmbus_drv.c +13 -0
index 39339b152b8b..e8bea7c79169 100644
@@ -2331,12 +2331,25 @@ void vmbus_free_mmio(resource_size_t start, resource_size_t size)
 	struct resource *iter;
 
 	mutex_lock(&hyperv_mmio_lock);
+
+	/*
+	 * If all bytes of the MMIO range to be released are within the
+	 * special case fb_mmio shadow region, skip releasing the shadow
+	 * region since no corresponding __request_region() was done
+	 * in vmbus_allocate_mmio().
+	 */
+	if (fb_mmio && start >= fb_mmio->start &&
+	    (start + size - 1 <= fb_mmio->end))
+		goto skip_shadow_release;
+
 	for (iter = hyperv_mmio; iter; iter = iter->sibling) {
 		if ((iter->start >= start + size) || (iter->end <= start))
 			continue;
 
 		__release_region(iter, start, size);
 	}
+
+skip_shadow_release:
 	release_mem_region(start, size);
 	mutex_unlock(&hyperv_mmio_lock);
 
drivers/hwmon/nct6775.c +2 -2
index 3645a19cdaf4..71cfc1c5bd12 100644
@@ -420,8 +420,8 @@ static const s8 NCT6776_BEEP_BITS[] = {
 static const u16 NCT6776_REG_TOLERANCE_H[] = {
 	0x10c, 0x20c, 0x30c, 0x80c, 0x90c, 0xa0c, 0xb0c };
 
-static const u8 NCT6776_REG_PWM_MODE[] = { 0x04, 0, 0, 0, 0, 0 };
-static const u8 NCT6776_PWM_MODE_MASK[] = { 0x01, 0, 0, 0, 0, 0 };
+static const u8 NCT6776_REG_PWM_MODE[] = { 0x04, 0, 0, 0, 0, 0, 0 };
+static const u8 NCT6776_PWM_MODE_MASK[] = { 0x01, 0, 0, 0, 0, 0, 0 };
 
 static const u16 NCT6776_REG_FAN_MIN[] = {
 	0x63a, 0x63c, 0x63e, 0x640, 0x642, 0x64a, 0x64c };
drivers/hwtracing/coresight/coresight-catu.c +1 -1
index 8e19e8cdcce5..3357e55fc559 100644
@@ -267,7 +267,7 @@ catu_init_sg_table(struct device *catu_dev, int node,
 	 * Each table can address upto 1MB and we can have
 	 * CATU_PAGES_PER_SYSPAGE tables in a system page.
 	 */
-	nr_tpages = DIV_ROUND_UP(size, SZ_1M) / CATU_PAGES_PER_SYSPAGE;
+	nr_tpages = DIV_ROUND_UP(size, CATU_PAGES_PER_SYSPAGE * SZ_1M);
 	catu_table = tmc_alloc_sg_table(catu_dev, node, nr_tpages,
 					size >> PAGE_SHIFT, pages);
 	if (IS_ERR(catu_table))
drivers/i2c/busses/i2c-ali1535.c +11 -1
index fb93152845f4..b36b75fc5b08 100644
@@ -490,6 +490,8 @@ MODULE_DEVICE_TABLE(pci, ali1535_ids);
 
 static int ali1535_probe(struct pci_dev *dev, const struct pci_device_id *id)
 {
+	int ret;
+
 	if (ali1535_setup(dev)) {
 		dev_warn(&dev->dev,
 			"ALI1535 not detected, module not inserted.\n");
@@ -501,7 +503,15 @@ static int ali1535_probe(struct pci_dev *dev, const struct pci_device_id *id)
 
 	snprintf(ali1535_adapter.name, sizeof(ali1535_adapter.name),
 		"SMBus ALI1535 adapter at %04x", ali1535_offset);
-	return i2c_add_adapter(&ali1535_adapter);
+	ret = i2c_add_adapter(&ali1535_adapter);
+	if (ret)
+		goto release_region;
+
+	return 0;
+
+release_region:
+	release_region(ali1535_smba, ALI1535_SMB_IOSIZE);
+	return ret;
 }
 
 static void ali1535_remove(struct pci_dev *dev)
drivers/i2c/busses/i2c-ali15x3.c +11 -1
index cc58feacd082..28a57cb6efb9 100644
@@ -473,6 +473,8 @@ MODULE_DEVICE_TABLE (pci, ali15x3_ids);
 
 static int ali15x3_probe(struct pci_dev *dev, const struct pci_device_id *id)
 {
+	int ret;
+
 	if (ali15x3_setup(dev)) {
 		dev_err(&dev->dev,
 			"ALI15X3 not detected, module not inserted.\n");
@@ -484,7 +486,15 @@ static int ali15x3_probe(struct pci_dev *dev, const struct pci_device_id *id)
 
 	snprintf(ali15x3_adapter.name, sizeof(ali15x3_adapter.name),
 		"SMBus ALI15X3 adapter at %04x", ali15x3_smba);
-	return i2c_add_adapter(&ali15x3_adapter);
+	ret = i2c_add_adapter(&ali15x3_adapter);
+	if (ret)
+		goto release_region;
+
+	return 0;
+
+release_region:
+	release_region(ali15x3_smba, ALI15X3_SMB_IOSIZE);
+	return ret;
 }
 
 static void ali15x3_remove(struct pci_dev *dev)
drivers/i2c/busses/i2c-omap.c +7 -19
index 8955f62b497e..5c045c4da660 100644
@@ -1049,23 +1049,6 @@ static int omap_i2c_transmit_data(struct omap_i2c_dev *omap, u8 num_bytes,
 	return 0;
 }
 
-static irqreturn_t
-omap_i2c_isr(int irq, void *dev_id)
-{
-	struct omap_i2c_dev *omap = dev_id;
-	irqreturn_t ret = IRQ_HANDLED;
-	u16 mask;
-	u16 stat;
-
-	stat = omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG);
-	mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG) & ~OMAP_I2C_STAT_NACK;
-
-	if (stat & mask)
-		ret = IRQ_WAKE_THREAD;
-
-	return ret;
-}
-
 static int omap_i2c_xfer_data(struct omap_i2c_dev *omap)
 {
 	u16 bits;
@@ -1096,8 +1079,13 @@ static int omap_i2c_xfer_data(struct omap_i2c_dev *omap)
 		}
 
 		if (stat & OMAP_I2C_STAT_NACK) {
-			err |= OMAP_I2C_STAT_NACK;
+			omap->cmd_err |= OMAP_I2C_STAT_NACK;
 			omap_i2c_ack_stat(omap, OMAP_I2C_STAT_NACK);
+
+			if (!(stat & ~OMAP_I2C_STAT_NACK)) {
+				err = -EAGAIN;
+				break;
+			}
 		}
 
 		if (stat & OMAP_I2C_STAT_AL) {
@@ -1475,7 +1463,7 @@ omap_i2c_probe(struct platform_device *pdev)
 				IRQF_NO_SUSPEND, pdev->name, omap);
 	else
 		r = devm_request_threaded_irq(&pdev->dev, omap->irq,
-				omap_i2c_isr, omap_i2c_isr_thread,
+				NULL, omap_i2c_isr_thread,
 				IRQF_NO_SUSPEND | IRQF_ONESHOT,
 				pdev->name, omap);
 
drivers/i2c/busses/i2c-sis630.c +11 -1
index cfb8e04a2a83..6befa6ff83f2 100644
@@ -509,6 +509,8 @@ MODULE_DEVICE_TABLE(pci, sis630_ids);
 
 static int sis630_probe(struct pci_dev *dev, const struct pci_device_id *id)
 {
+	int ret;
+
 	if (sis630_setup(dev)) {
 		dev_err(&dev->dev,
 			"SIS630 compatible bus not detected, "
@@ -522,7 +524,15 @@ static int sis630_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	snprintf(sis630_adapter.name, sizeof(sis630_adapter.name),
 		 "SMBus SIS630 adapter at %04x", smbus_base + SMB_STS);
 
-	return i2c_add_adapter(&sis630_adapter);
+	ret = i2c_add_adapter(&sis630_adapter);
+	if (ret)
+		goto release_region;
+
+	return 0;
+
+release_region:
+	release_region(smbus_base + SMB_STS, SIS630_SMB_IOREGION);
+	return ret;
 }
 
 static void sis630_remove(struct pci_dev *dev)
drivers/i2c/i2c-dev.c +10 -5
index dafad891998e..f0bd4ae19df6 100644
@@ -669,17 +669,22 @@ static int i2cdev_attach_adapter(struct device *dev, void *dummy)
 	i2c_dev->dev.class = i2c_dev_class;
 	i2c_dev->dev.parent = &adap->dev;
 	i2c_dev->dev.release = i2cdev_dev_release;
-	dev_set_name(&i2c_dev->dev, "i2c-%d", adap->nr);
+
+	res = dev_set_name(&i2c_dev->dev, "i2c-%d", adap->nr);
+	if (res)
+		goto err_put_i2c_dev;
 
 	res = cdev_device_add(&i2c_dev->cdev, &i2c_dev->dev);
-	if (res) {
-		put_i2c_dev(i2c_dev, false);
-		return res;
-	}
+	if (res)
+		goto err_put_i2c_dev;
 
 	pr_debug("i2c-dev: adapter [%s] registered as minor %d\n",
 		 adap->name, adap->nr);
 	return 0;
+
+err_put_i2c_dev:
+	put_i2c_dev(i2c_dev, false);
+	return res;
 }
 
 static int i2cdev_detach_adapter(struct device *dev, void *dummy)
drivers/iio/accel/mma8452.c +7 -3
index b12e80464706..760ee0685034 100644
@@ -711,7 +711,7 @@ static int mma8452_write_raw(struct iio_dev *indio_dev,
 			     int val, int val2, long mask)
 {
 	struct mma8452_data *data = iio_priv(indio_dev);
-	int i, ret;
+	int i, j, ret;
 
 	ret = iio_device_claim_direct_mode(indio_dev);
 	if (ret)
@@ -771,14 +771,18 @@ static int mma8452_write_raw(struct iio_dev *indio_dev,
 		break;
 
 	case IIO_CHAN_INFO_OVERSAMPLING_RATIO:
-		ret = mma8452_get_odr_index(data);
+		j = mma8452_get_odr_index(data);
 
 		for (i = 0; i < ARRAY_SIZE(mma8452_os_ratio); i++) {
-			if (mma8452_os_ratio[i][ret] == val) {
+			if (mma8452_os_ratio[i][j] == val) {
 				ret = mma8452_set_power_mode(data, i);
 				break;
 			}
 		}
+		if (i == ARRAY_SIZE(mma8452_os_ratio)) {
+			ret = -EINVAL;
+			break;
+		}
 		break;
 	default:
 		ret = -EINVAL;
drivers/infiniband/core/mad.c +20 -18
index 521c3d050be2..19540a13cb84 100644
@@ -2686,11 +2686,11 @@ static int ib_mad_post_receive_mads(struct ib_mad_qp_info *qp_info,
 				    struct ib_mad_private *mad)
 {
 	unsigned long flags;
-	int post, ret;
 	struct ib_mad_private *mad_priv;
 	struct ib_sge sg_list;
 	struct ib_recv_wr recv_wr;
 	struct ib_mad_queue *recv_queue = &qp_info->recv_queue;
+	int ret = 0;
 
 	/* Initialize common scatter list fields */
 	sg_list.lkey = qp_info->port_priv->pd->local_dma_lkey;
@@ -2700,7 +2700,7 @@ static int ib_mad_post_receive_mads(struct ib_mad_qp_info *qp_info,
 	recv_wr.sg_list = &sg_list;
 	recv_wr.num_sge = 1;
 
-	do {
+	while (true) {
 		/* Allocate and map receive buffer */
 		if (mad) {
 			mad_priv = mad;
@@ -2708,10 +2708,8 @@ static int ib_mad_post_receive_mads(struct ib_mad_qp_info *qp_info,
 		} else {
 			mad_priv = alloc_mad_private(port_mad_size(qp_info->port_priv),
 						     GFP_ATOMIC);
-			if (!mad_priv) {
-				ret = -ENOMEM;
-				break;
-			}
+			if (!mad_priv)
+				return -ENOMEM;
 		}
 		sg_list.length = mad_priv_dma_size(mad_priv);
 		sg_list.addr = ib_dma_map_single(qp_info->port_priv->device,
@@ -2720,37 +2718,41 @@ static int ib_mad_post_receive_mads(struct ib_mad_qp_info *qp_info,
 						 DMA_FROM_DEVICE);
 		if (unlikely(ib_dma_mapping_error(qp_info->port_priv->device,
 						  sg_list.addr))) {
-			kfree(mad_priv);
 			ret = -ENOMEM;
-			break;
+			goto free_mad_priv;
 		}
 		mad_priv->header.mapping = sg_list.addr;
 		mad_priv->header.mad_list.mad_queue = recv_queue;
 		mad_priv->header.mad_list.cqe.done = ib_mad_recv_done;
 		recv_wr.wr_cqe = &mad_priv->header.mad_list.cqe;
-
-		/* Post receive WR */
 		spin_lock_irqsave(&recv_queue->lock, flags);
-		post = (++recv_queue->count < recv_queue->max_active);
-		list_add_tail(&mad_priv->header.mad_list.list, &recv_queue->list);
+		if (recv_queue->count >= recv_queue->max_active) {
+			/* Fully populated the receive queue */
+			spin_unlock_irqrestore(&recv_queue->lock, flags);
+			break;
+		}
+		recv_queue->count++;
+		list_add_tail(&mad_priv->header.mad_list.list,
+			      &recv_queue->list);
 		spin_unlock_irqrestore(&recv_queue->lock, flags);
+
 		ret = ib_post_recv(qp_info->qp, &recv_wr, NULL);
 		if (ret) {
 			spin_lock_irqsave(&recv_queue->lock, flags);
 			list_del(&mad_priv->header.mad_list.list);
 			recv_queue->count--;
 			spin_unlock_irqrestore(&recv_queue->lock, flags);
-			ib_dma_unmap_single(qp_info->port_priv->device,
-					    mad_priv->header.mapping,
-					    mad_priv_dma_size(mad_priv),
-					    DMA_FROM_DEVICE);
-			kfree(mad_priv);
 			dev_err(&qp_info->port_priv->device->dev,
 				"ib_post_recv failed: %d\n", ret);
 			break;
 		}
-	} while (post);
+	}
 
+	ib_dma_unmap_single(qp_info->port_priv->device,
+			    mad_priv->header.mapping,
+			    mad_priv_dma_size(mad_priv), DMA_FROM_DEVICE);
+free_mad_priv:
+	kfree(mad_priv);
 	return ret;
 }
 
drivers/infiniband/hw/bnxt_re/qplib_fp.c +0 -2
index 4ed78d25b6e9..d5bb8017a468 100644
@@ -1163,8 +1163,6 @@ static void __modify_flags_from_init_state(struct bnxt_qplib_qp *qp)
 			qp->path_mtu =
 				CMDQ_MODIFY_QP_PATH_MTU_MTU_2048;
 		}
-		qp->modify_flags &=
-			~CMDQ_MODIFY_QP_MODIFY_MASK_VLAN_ID;
 		/* Bono FW require the max_dest_rd_atomic to be >= 1 */
 		if (qp->max_dest_rd_atomic < 1)
 			qp->max_dest_rd_atomic = 1;
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h +2 -1
index 69aa1a52c7f8..db98fac4b562 100644
@@ -218,9 +218,10 @@ int bnxt_qplib_deinit_rcfw(struct bnxt_qplib_rcfw *rcfw);
 int bnxt_qplib_init_rcfw(struct bnxt_qplib_rcfw *rcfw,
 			 struct bnxt_qplib_ctx *ctx, int is_virtfn);
 void bnxt_qplib_mark_qp_error(void *qp_handle);
+
 static inline u32 map_qp_id_to_tbl_indx(u32 qid, struct bnxt_qplib_rcfw *rcfw)
 {
 	/* Last index of the qp_tbl is for QP1 ie. qp_tbl_size - 1*/
-	return (qid == 1) ? rcfw->qp_tbl_size - 1 : qid % rcfw->qp_tbl_size - 2;
+	return (qid == 1) ? rcfw->qp_tbl_size - 1 : (qid % (rcfw->qp_tbl_size - 2));
 }
 #endif /* __BNXT_QPLIB_RCFW_H__ */
drivers/infiniband/hw/hns/hns_roce_hem.c +16 -7
index 61ec96b3a89d..7cb98d09fb9b 100644
@@ -1384,6 +1384,11 @@ static int hem_list_alloc_root_bt(struct hns_roce_dev *hr_dev,
 	return ret;
 }
 
+/* This is the bottom bt pages number of a 100G MR on 4K OS, assuming
+ * the bt page size is not expanded by cal_best_bt_pg_sz()
+ */
+#define RESCHED_LOOP_CNT_THRESHOLD_ON_4K 12800
+
 /* construct the base address table and link them by address hop config */
 int hns_roce_hem_list_request(struct hns_roce_dev *hr_dev,
 			      struct hns_roce_hem_list *hem_list,
@@ -1392,6 +1397,7 @@ int hns_roce_hem_list_request(struct hns_roce_dev *hr_dev,
 {
 	const struct hns_roce_buf_region *r;
 	int ofs, end;
+	int loop;
 	int unit;
 	int ret;
 	int i;
@@ -1409,7 +1415,10 @@ int hns_roce_hem_list_request(struct hns_roce_dev *hr_dev,
 			continue;
 
 		end = r->offset + r->count;
-		for (ofs = r->offset; ofs < end; ofs += unit) {
+		for (ofs = r->offset, loop = 1; ofs < end; ofs += unit, loop++) {
+			if (!(loop % RESCHED_LOOP_CNT_THRESHOLD_ON_4K))
+				cond_resched();
+
 			ret = hem_list_alloc_mid_bt(hr_dev, r, unit, ofs,
 						    hem_list->mid_bt[i],
 						    &hem_list->btm_bt);
@@ -1462,19 +1471,22 @@ void hns_roce_hem_list_init(struct hns_roce_hem_list *hem_list)
 
 void *hns_roce_hem_list_find_mtt(struct hns_roce_dev *hr_dev,
 				 struct hns_roce_hem_list *hem_list,
-				 int offset, int *mtt_cnt, u64 *phy_addr)
+				 int offset, int *mtt_cnt)
 {
 	struct list_head *head = &hem_list->btm_bt;
 	struct hns_roce_hem_item *hem, *temp_hem;
 	void *cpu_base = NULL;
-	u64 phy_base = 0;
+	int loop = 1;
 	int nr = 0;
 
 	list_for_each_entry_safe(hem, temp_hem, head, sibling) {
+		if (!(loop % RESCHED_LOOP_CNT_THRESHOLD_ON_4K))
+			cond_resched();
+		loop++;
+
 		if (hem_list_page_is_in_range(hem, offset)) {
 			nr = offset - hem->start;
 			cpu_base = hem->addr + nr * BA_BYTE_LEN;
-			phy_base = hem->dma_addr + nr * BA_BYTE_LEN;
 			nr = hem->end + 1 - offset;
 			break;
 		}
@@ -1483,8 +1495,5 @@ void *hns_roce_hem_list_find_mtt(struct hns_roce_dev *hr_dev,
 	if (mtt_cnt)
 		*mtt_cnt = nr;
 
-	if (phy_addr)
-		*phy_addr = phy_base;
-
 	return cpu_base;
 }
drivers/infiniband/hw/hns/hns_roce_hem.h +1 -1
index 5b2162a2b8ce..ecf5159aba9f 100644
@@ -131,7 +131,7 @@ void hns_roce_hem_list_release(struct hns_roce_dev *hr_dev,
 			       struct hns_roce_hem_list *hem_list);
 void *hns_roce_hem_list_find_mtt(struct hns_roce_dev *hr_dev,
 				 struct hns_roce_hem_list *hem_list,
-				 int offset, int *mtt_cnt, u64 *phy_addr);
+				 int offset, int *mtt_cnt);
 
 static inline void hns_roce_hem_first(struct hns_roce_hem *hem,
 				      struct hns_roce_hem_iter *iter)
drivers/infiniband/hw/hns/hns_roce_main.c +1 -1
index a0f243ffa5b5..f520e43e4e14 100644
@@ -199,7 +199,7 @@ static int hns_roce_query_device(struct ib_device *ib_dev,
 				  IB_DEVICE_RC_RNR_NAK_GEN;
 	props->max_send_sge = hr_dev->caps.max_sq_sg;
 	props->max_recv_sge = hr_dev->caps.max_rq_sg;
-	props->max_sge_rd = 1;
+	props->max_sge_rd = hr_dev->caps.max_sq_sg;
 	props->max_cq = hr_dev->caps.num_cqs;
 	props->max_cqe = hr_dev->caps.max_cqes;
 	props->max_mr = hr_dev->caps.num_mtpts;
drivers/infiniband/hw/hns/hns_roce_mr.c +2 -2
index b06230125868..66098d25cb49 100644
@@ -649,7 +649,7 @@ static int mtr_map_region(struct hns_roce_dev *hr_dev, struct hns_roce_mtr *mtr,
 	while (offset < end && npage < max_count) {
 		count = 0;
 		mtts = hns_roce_hem_list_find_mtt(hr_dev, &mtr->hem_list,
-						  offset, &count, NULL);
+						  offset, &count);
 		if (!mtts)
 			return -ENOBUFS;
 
@@ -923,7 +923,7 @@ int hns_roce_mtr_find(struct hns_roce_dev *hr_dev, struct hns_roce_mtr *mtr,
 		mtt_count = 0;
 		mtts = hns_roce_hem_list_find_mtt(hr_dev, &mtr->hem_list,
 						  start_index + total,
-						  &mtt_count, NULL);
+						  &mtt_count);
 		if (!mtts || !mtt_count)
 			goto done;
 
drivers/infiniband/hw/mlx5/cq.c +1 -1
index 74644b6ea0ff..e6d3ac4e10dc 100644
@@ -481,7 +481,7 @@ static int mlx5_poll_one(struct mlx5_ib_cq *cq,
 	}
 
 	qpn = ntohl(cqe64->sop_drop_qpn) & 0xffffff;
-	if (!*cur_qp || (qpn != (*cur_qp)->ibqp.qp_num)) {
+	if (!*cur_qp || (qpn != (*cur_qp)->trans_qp.base.mqp.qpn)) {
 		/* We do not have to take the QP table lock here,
 		 * because CQs will be locked while QPs are removed
 		 * from the table.
drivers/media/dvb-frontends/dib8000.c +4 -1
index 02cb48223dc6..a28cbbd9e475 100644
@@ -2701,8 +2701,11 @@ static void dib8000_set_dds(struct dib8000_state *state, s32 offset_khz)
 	u8 ratio;
 
 	if (state->revision == 0x8090) {
+		u32 internal = dib8000_read32(state, 23) / 1000;
+
 		ratio = 4;
-		unit_khz_dds_val = (1<<26) / (dib8000_read32(state, 23) / 1000);
+
+		unit_khz_dds_val = (1<<26) / (internal ?: 1);
 		if (offset_khz < 0)
 			dds = (1 << 26) - (abs_offset_khz * unit_khz_dds_val);
 		else
drivers/media/i2c/et8ek8/et8ek8_driver.c +2 -2
index 256acf73d5ea..4d7c4eac5e20 100644
@@ -1460,7 +1460,7 @@ static int et8ek8_probe(struct i2c_client *client)
 	return ret;
 }
 
-static int __exit et8ek8_remove(struct i2c_client *client)
+static int et8ek8_remove(struct i2c_client *client)
 {
 	struct v4l2_subdev *subdev = i2c_get_clientdata(client);
 	struct et8ek8_sensor *sensor = to_et8ek8_sensor(subdev);
@@ -1504,7 +1504,7 @@ static struct i2c_driver et8ek8_i2c_driver = {
 		.of_match_table	= et8ek8_of_table,
 	},
 	.probe_new	= et8ek8_probe,
-	.remove		= __exit_p(et8ek8_remove),
+	.remove		= et8ek8_remove,
 	.id_table	= et8ek8_id_table,
 };
 
drivers/memstick/host/rtsx_usb_ms.c +1 -0
index 29271ad4728a..dec279845a75 100644
@@ -813,6 +813,7 @@ static int rtsx_usb_ms_drv_remove(struct platform_device *pdev)
 
 	host->eject = true;
 	cancel_work_sync(&host->handle_req);
+	cancel_delayed_work_sync(&host->poll_card);
 
 	mutex_lock(&host->host_mutex);
 	if (host->req) {
drivers/mfd/sm501.c +3 -3
index 37ad72d8cde2..8c67fdc2af7f 100644
@@ -920,7 +920,7 @@ static void sm501_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 {
 	struct sm501_gpio_chip *smchip = gpiochip_get_data(chip);
 	struct sm501_gpio *smgpio = smchip->ourgpio;
-	unsigned long bit = 1 << offset;
+	unsigned long bit = BIT(offset);
 	void __iomem *regs = smchip->regbase;
 	unsigned long save;
 	unsigned long val;
@@ -946,7 +946,7 @@ static int sm501_gpio_input(struct gpio_chip *chip, unsigned offset)
 	struct sm501_gpio_chip *smchip = gpiochip_get_data(chip);
 	struct sm501_gpio *smgpio = smchip->ourgpio;
 	void __iomem *regs = smchip->regbase;
-	unsigned long bit = 1 << offset;
+	unsigned long bit = BIT(offset);
 	unsigned long save;
 	unsigned long ddr;
 
@@ -971,7 +971,7 @@ static int sm501_gpio_output(struct gpio_chip *chip,
 {
 	struct sm501_gpio_chip *smchip = gpiochip_get_data(chip);
 	struct sm501_gpio *smgpio = smchip->ourgpio;
-	unsigned long bit = 1 << offset;
+	unsigned long bit = BIT(offset);
 	void __iomem *regs = smchip->regbase;
 	unsigned long save;
[… more lines in the raw message]

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

drivers/mmc/host/atmel-mci.c +3 -1
index c468f9a02ef6..bd53d8b75dca 100644

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

drivers/mmc/host/sdhci-pxav3.c +1 -0
index a6d89a3f1946..e59bfd316305 100644

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

drivers/net/arcnet/com20020-pci.c +16 -1
index 9d9e4200064f..00a80f0adece 100644

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

drivers/net/can/flexcan.c +4 -2
index 429950241de3..586c13d855e0 100644

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

drivers/net/dsa/mv88e6xxx/chip.c +7 -4
index c7f93329ae75..4cc60135589d 100644

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

drivers/net/dsa/mv88e6xxx/phy.c +3 -0
index 252b5b3a3efe..d2104bd346ea 100644

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

drivers/net/ethernet/intel/ice/ice_arfs.c +1 -1
index 6560acd76c94..632f16ffee40 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu.c +1 -1
index 78309821ce29..f8e86f253563 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +2 -4
index aeb8bb3c549a..c3ff1fc577a7 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c +5 -0
index 77c6287c90d5..0e255ff95a50 100644

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

drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c +6 -2
index e864c453c5e6..256b19f68cae 100644

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

drivers/net/usb/qmi_wwan.c +2 -0
index b271e6da2924..3ab7b27b6bac 100644

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

drivers/net/usb/usbnet.c +15 -6
index b3d363ebea26..ad425e09c75f 100644

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

drivers/net/wireless/intel/iwlwifi/fw/dbg.c +58 -28

86 lines not on this page · raw message

drivers/ntb/hw/intel/ntb_hw_gen3.c +3 -0
index ffcfc3e02c35..a5aa96a31f4a 100644

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

drivers/ntb/hw/mscc/ntb_hw_switchtec.c +1 -1
index ad09946100b5..c5c1963c699d 100644

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

drivers/ntb/test/ntb_perf.c +1 -3
index 5a7a02408166..04690897a067 100644

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

drivers/nvme/host/core.c +0 -2
index 019a6dbdcbc2..5f16fc9111a9 100644

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

drivers/nvme/host/fc.c +1 -2
index 8e05239073ef..f49e98c2e31d 100644

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

drivers/nvme/host/pci.c +13 -8
index ae04bdce560a..a56baaafe79d 100644

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

drivers/nvme/host/tcp.c +3 -2
index ea4d3170acae..93835c019b8e 100644

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

drivers/nvme/target/rdma.c +23 -10
index 944e8a276663..503e1f59013c 100644

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

drivers/pci/controller/cadence/pcie-cadence-ep.c +1 -2
index 4c5e6349d78c..403ff93bc850 100644

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

drivers/pci/controller/cadence/pcie-cadence.h +1 -1
index e0b59730bffb..3139ea9f02c8 100644

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

drivers/pci/controller/pcie-brcmstb.c +2 -2
index 9c3d2982248d..be6af5585dd6 100644

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

drivers/pci/controller/pcie-xilinx-cpm.c +6 -4
index 67937facd90c..1b8366fa9f78 100644

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

drivers/pci/hotplug/pciehp_hpc.c +3 -1
index 75c6c72ec32a..d1e524078793 100644

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

drivers/pci/pcie/aspm.c +9 -8
index 8ab8abd79e89..94b0b32340a8 100644

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

drivers/pci/pcie/portdrv_core.c +5 -3
index 3779b264dbec..e3d998173433 100644

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

drivers/pci/probe.c +2 -3
index 02a75f3b5920..84edae9ba2e6 100644

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

drivers/pinctrl/bcm/pinctrl-bcm281xx.c +1 -1
index 9ab1f427286a..fbfddcc39d5c 100644

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

drivers/pinctrl/renesas/pinctrl-rza2.c +2 -0
index ddd8ee6b604e..1fd3191d9f8d 100644

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

drivers/pinctrl/tegra/pinctrl-tegra.c +3 -0
index 195cfe557511..90de78e4175c 100644

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

drivers/platform/x86/intel-hid.c +7 -0
index 0b0602fc4360..9bc2652b15e7 100644

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

drivers/power/supply/max77693_charger.c +1 -1
index a2c5c9858639..ef3482fa4023 100644

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

drivers/powercap/powercap_sys.c +1 -2
index 7a3109a53881..fe5d05da7ce7 100644

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

drivers/regulator/core.c +11 -1
index 7082cffdd10e..a0cc907a76c1 100644

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

drivers/remoteproc/qcom_q6v5_pas.c +5 -5
index 1a0d6eb9425b..653d20433828 100644

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

drivers/s390/cio/chp.c +2 -1
index 93e22785a0e0..0b84ced33b3c 100644

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

drivers/scsi/qla1280.c +1 -1
index 545936cb3980..8c08a0102e09 100644

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

drivers/soc/qcom/pdr_interface.c +1 -7
index 6e3cbd822663..d2ae4ac1ee12 100644

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

drivers/thermal/cpufreq_cooling.c +0 -2
index 6e1d6a31ee4f..f1ae1530aa64 100644

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

drivers/thermal/intel/int340x_thermal/int3402_thermal.c +3 -0
index 43fa351e2b9e..b7fdf25bfd23 100644

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

drivers/tty/serial/8250/8250_dma.c +1 -1
index cbaac0a5137d..47ae1fbe805b 100644

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

drivers/tty/serial/8250/8250_pci.c +16 -0
index b6f0c297d67f..ea32b5c03e70 100644

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

drivers/tty/serial/fsl_lpuart.c +21 -4
index b16ad6db1ef8..110d98fed726 100644

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

drivers/usb/serial/ftdi_sio.c +14 -0
index 66aa999efa6d..39d862f25a70 100644

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

drivers/usb/serial/ftdi_sio_ids.h +13 -0
index b2aec1106678..f4d729562355 100644

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

drivers/usb/serial/option.c +32 -16

48 lines not on this page · raw message

drivers/video/console/Kconfig +1 -1
index 47c493957772..67aeb4e6494b 100644

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

drivers/video/fbdev/au1100fb.c +3 -1
index 37a6512feda0..abb769824840 100644

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

drivers/video/fbdev/hyperv_fb.c +1 -1
index f0a66a344d87..d523cd4de9d4 100644

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

drivers/video/fbdev/sm501fb.c +7 -0
index 6a52eba64559..3c46838651b0 100644

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

fs/affs/file.c +5 -4
index c3d89fa1bab7..bc88ba29d393 100644

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

fs/btrfs/extent-tree.c +4 -1
index a8089bf2be98..cf2b65be04b5 100644

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

fs/exfat/fatent.c +1 -1
index a1481e47a761..b6cce8225d05 100644

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

fs/ext4/dir.c +3 -0
index 70a0f5e56f4d..513360234b14 100644

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

fs/ext4/super.c +17 -10
index 9d7800d66200..20e89ffe9a06 100644

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

fs/fuse/dir.c +1 -1
index d131f34cd3e1..4488a53a192d 100644

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

fs/isofs/dir.c +2 -1
index b9e6a7ec78be..23c73bb56d82 100644

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

fs/jfs/jfs_dtree.c +2 -1
index a3d1d560f4c8..417d1c2fc291 100644

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

fs/jfs/xattr.c +10 -5
index 28e89af8eef6..d7141472123d 100644

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

fs/namei.c +19 -5
index 72521a614514..3eb0130f0c3f 100644

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

fs/nfs/delegation.c +18 -15
index 02d9af026ad1..dbed8d44d805 100644

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

fs/nfsd/nfs4state.c +23 -8
index 5543ea891398..311409be7374 100644

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

fs/ocfs2/alloc.c +8 -0
index a9a6276ff29b..94c7acfebe18 100644

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

fs/proc/base.c +1 -1
index b955ba5db72c..b09cc9e6d591 100644

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

fs/proc/generic.c +9 -1
index 5898761698c2..7b6d9c77b425 100644

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

fs/proc/inode.c +3 -3
index bde6b6f69852..ba35ffc426ea 100644

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

fs/proc/internal.h +14 -0
index afbe96b6bf77..939adac4bfa3 100644

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

fs/vboxsf/super.c +2 -1
index f11bcbac7727..4a77a5a3109e 100644

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

include/drm/drm_dp_mst_helper.h +7 -0
index bd1c39907b92..9c14d181397c 100644

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

include/linux/fs.h +2 -0
index 4e475ded5cf5..9463dddce6bf 100644

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

include/linux/i8253.h +0 -1
index bf169cfef7f1..56c280eb2d4f 100644

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

include/linux/interrupt.h +4 -4
index 0652b4858ba6..71d3fa7f0265 100644

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

include/linux/netfilter/nf_conntrack_common.h +4 -4
index 0c7d8d1e945d..ce8a4eb69b5c 100644

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

include/linux/pm_runtime.h +2 -0
index ca856e582914..96e3256738e4 100644

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

include/linux/proc_fs.h +5 -2
index 8c892730a1f1..9f8e0072b30f 100644

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

include/linux/sched/smt.h +1 -1
index 59d3736c454c..737b50f40137 100644

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

include/net/ipv6.h +2 -2
index 47d644de0e47..2909233427de 100644

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

kernel/events/ring_buffer.c +1 -1
index ffca72b8c4c6..74802ec5ab14 100644

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

kernel/kexec_elf.c +1 -1
index d3689632e8b9..3a5c25b2adc9 100644

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

kernel/locking/semaphore.c +9 -4
index 9aa855a96c4a..aadde6540291 100644

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

kernel/sched/deadline.c +1 -1
index d91295d3059f..6548bd90c5c3 100644

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

kernel/time/hrtimer.c +12 -10
index 7f9f2fc183fe..c202488695c4 100644

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

kernel/trace/bpf_trace.c +1 -1
index 1656a7d9bb69..6957381b139c 100644

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

kernel/trace/ring_buffer.c +2 -2
index 9a2c8727b033..225dbe4a5641 100644

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

kernel/trace/trace_events_synth.c +33 -1
index ee174de0b8f6..e43426aa1283 100644

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

kernel/trace/trace_functions_graph.c +1 -0
index 60d66278aa0d..2aafe12842cb 100644

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

kernel/trace/trace_irqsoff.c +0 -2
index 619a60944bb6..10d1719c3d4d 100644

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

kernel/trace/trace_sched_wakeup.c +0 -2
index 037e1e863b17..97b10bb31a1f 100644

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

kernel/watch_queue.c +9 -0
index 73717917d816..37da8647b4ec 100644

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

lib/842/842_compress.c +2 -0
index c02baa4168e1..055356508d97 100644

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

net/8021q/vlan_netlink.c +7 -3
index dca1ec705b6c..a3b68243fd4b 100644

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

net/atm/lec.c +2 -1
index 7226c784dbe0..ca9952c52fb5 100644

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

net/atm/mpc.c +2 -0
index 033871e718a3..583c27131b7d 100644

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

net/batman-adv/bat_iv_ogm.c +1 -2
index c0aa54d21c64..e0b41afa3472 100644

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

net/batman-adv/bat_v_ogm.c +1 -2
index aff877203cd2..d43fc72af9a9 100644

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

net/bluetooth/6lowpan.c +6 -1
index 7601ce9143c1..7e698b0ac7bc 100644

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

net/bluetooth/hci_event.c +5 -8
index 58c029958759..546795425119 100644

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

net/can/af_can.c +6 -6
index de47c16b134b..3e77a52709aa 100644

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

net/can/af_can.h +6 -6
index 7c2d9161e224..22f3352c77fe 100644

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

net/can/proc.c +27 -19

46 lines not on this page · raw message

net/core/neighbour.c +1 -0
index f04ba63e9851..37f7bcbc2adc 100644

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

net/core/netpoll.c +7 -2
index 4475b2174bcc..66a6f6241239 100644

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

net/core/rtnetlink.c +3 -0
index 2806b9ed6387..bc86034e17ea 100644

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

net/core/sock_map.c +2 -3
index fd4c16391552..d334a2ccd523 100644

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

net/ipv4/ip_tunnel_core.c +2 -2
index ba1388ba6c6e..01d362b5b882 100644

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

net/ipv6/addrconf.c +25 -12
index 455bb4668407..d38d15ccc750 100644

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

net/ipv6/calipso.c +18 -3
index 0ea66e9db249..e17e756bb1ad 100644

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

net/ipv6/ip6_output.c +3 -3
index 5003c5a23fa7..426330b8dfa4 100644

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

net/ipv6/netfilter/nf_socket_ipv6.c +23 -0
index aa5bb8789ba0..697b9e60e24e 100644

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

net/ipv6/route.c +4 -1
index 178c56f6f618..b47f89600c2f 100644

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

net/mptcp/protocol.h +2 -0
index 2330140d6b1c..f5aeb3061408 100644

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

net/netfilter/ipvs/ip_vs_ctl.c +4 -4
index d0b64c36471d..fb9f1badeddb 100644

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

net/netfilter/nf_conncount.c +2 -0
index 0ce12a33ffda..a66a27fe7f45 100644

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

net/netfilter/nf_conntrack_core.c +35 -13

48 lines not on this page · raw message

net/netfilter/nf_conntrack_expect.c +2 -2
index 42557d2b6a90..516a9f05a87a 100644

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

net/netfilter/nf_conntrack_netlink.c +4 -3
index 8c9edad0826e..b2b06033ef2c 100644

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

net/netfilter/nf_conntrack_standalone.c +5 -2
index b613de96ad85..8498bf27a353 100644

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

net/netfilter/nf_flow_table_core.c +1 -1
index d091d51b5e19..e05e09c07b97 100644

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

net/netfilter/nf_synproxy_core.c +0 -1
index 3d6d49420db8..2dfc5dae0656 100644

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

net/netfilter/nft_ct.c +7 -4
index 2a8dfa68f6e2..f95f1dbc48de 100644

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

net/netfilter/nft_exthdr.c +4 -6
index c9f89f035ccf..5bde436b8754 100644

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

net/netfilter/nft_tunnel.c +3 -3
index c8822fa8196d..cfe6cf1be421 100644

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

net/netfilter/xt_CT.c +1 -2
index d4deee39158b..ffff1e1f79b9 100644

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

net/openvswitch/actions.c +0 -6
index 4095456f413d..80fee9d118ee 100644

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

net/openvswitch/conntrack.c +0 -1
index 30f5e414018b..9e8b3b930f92 100644

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

net/sched/act_ct.c +0 -1
index 4ea7a81707f3..d9748c917a50 100644

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

net/sched/act_tunnel_key.c +1 -1
index 85c0d0d5b9da..0d90349636f0 100644

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

net/sched/cls_flower.c +1 -1
index 98f333aa0aac..9f6f8430d037 100644

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

net/sched/sch_api.c +6 -0
index 238ae7b0ca5b..b8fb94bfa960 100644

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

net/sched/sch_skbprio.c +0 -3
index df72fb83d9c7..c9e422e46615 100644

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

net/sctp/stream.c +1 -1
index ee6514af830f..0527728aee98 100644

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

net/vmw_vsock/af_vsock.c +5 -1
index d7395601a0e3..fc0306ba2d43 100644

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

net/xfrm/xfrm_output.c +1 -1
index ac907b9d32d1..40f7a98abdd1 100644

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

scripts/selinux/install_policy.sh +6 -9
index 20af56ce245c..c68f0e045fb0 100755

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

sound/pci/hda/patch_realtek.c +26 -2
index ea12b7f815e1..3fdd2337919e 100644

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

sound/soc/codecs/arizona.c +7 -7
index 1228f2de0297..f796b8e5865d 100644

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

sound/soc/codecs/madera.c +5 -5
index bbab4bc1f6b5..aa7543a15d8c 100644

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

sound/soc/codecs/tas2764.c +9 -1
index c8f6f5122cac..dd8eeafa223e 100644

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

sound/soc/codecs/tas2764.h +7 -1
index f015f22a083b..337bc611bee9 100644

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

sound/soc/codecs/tas2770.c +1 -1
index c213c8096142..1928c1616a52 100644

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

sound/soc/codecs/wm0010.c +11 -2
index 28b4656c4e14..b2f87af1bfc8 100644

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

sound/soc/codecs/wm5110.c +4 -4
index d0cef982215d..aed067bf346f 100644

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

sound/soc/sh/rcar/core.c +0 -14
index 289928d4c0c9..1471d163a7f7 100644

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

sound/soc/sh/rcar/rsnd.h +0 -1
index 6b519370fd64..b5a7741848d7 100644

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

sound/soc/sh/rcar/src.c +17 -1
index fd52e26a3808..577d50e2cf8c 100644

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

sound/soc/sof/intel/hda-codec.c +1 -0
index 8d65004c917a..aed8440ef525 100644

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

sound/soc/ti/j721e-evm.c +2 -0
index 756cd9694cbe..b749bcc6f041 100644

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

sound/usb/mixer_quirks.c +51 -0

51 lines not on this page · raw message

tools/perf/util/python.c +12 -5
index ae8edde7c50e..240f9a0a7297 100644

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

tools/perf/util/units.c +1 -1
index a46762aec4c9..24c83b8b8c98 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.