Skip to contentSkip to conversation

Linux 6.1.76

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Feb 1, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.1.76 kernel.

All users of the 6.1 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/ABI/testing/sysfs-class-devfreq                         |    3 
 Documentation/admin-guide/abi-obsolete.rst                            |    2 
 Documentation/admin-guide/abi-removed.rst                             |    2 
 Documentation/admin-guide/abi-stable.rst                              |    2 
 Documentation/admin-guide/abi-testing.rst                             |    2 
 Documentation/filesystems/directory-locking.rst                       |   29 
 Documentation/filesystems/locking.rst                                 |    5 
 Documentation/filesystems/porting.rst                                 |   18 
 Documentation/sphinx/kernel_abi.py                                    |   56 -
 Makefile                                                              |    2 
 arch/alpha/kernel/rtc.c                                               |    2 
 arch/arm/boot/dts/exynos4210-i9100.dts                                |    8 
 arch/arm/boot/dts/qcom-sdx55.dtsi                                     |   10 
 arch/arm64/Kconfig                                                    |    4 
 arch/arm64/boot/dts/qcom/sc7180.dtsi                                  |    4 
 arch/arm64/boot/dts/qcom/sc7280.dtsi                                  |    4 
 arch/arm64/boot/dts/qcom/sdm845.dtsi                                  |   16 
 arch/arm64/boot/dts/qcom/sm8150.dtsi                                  |   16 
 arch/arm64/boot/install.sh                                            |    3 
 arch/arm64/kernel/cpu_errata.c                                        |    4 
 arch/arm64/kernel/entry.S                                             |    2 
 arch/arm64/tools/cpucaps                                              |    2 
 arch/loongarch/kernel/smp.c                                           |    3 
 arch/mips/kernel/elf.c                                                |    6 
 arch/mips/lantiq/prom.c                                               |    7 
 arch/mips/mm/init.c                                                   |   12 
 arch/parisc/kernel/firmware.c                                         |    4 
 arch/powerpc/Kconfig                                                  |    1 
 arch/s390/crypto/aes_s390.c                                           |    4 
 arch/s390/crypto/paes_s390.c                                          |    4 
 arch/x86/include/asm/syscall_wrapper.h                                |   25 
 arch/x86/kernel/hpet.c                                                |    2 
 arch/x86/kernel/rtc.c                                                 |    2 
 arch/x86/kvm/svm/nested.c                                             |   14 
 block/ioctl.c                                                         |    2 
 block/partitions/core.c                                               |    5 
 crypto/algapi.c                                                       |    1 
 drivers/base/power/main.c                                             |  160 +---
 drivers/base/power/trace.c                                            |    2 
 drivers/block/nbd.c                                                   |    6 
 drivers/block/rbd.c                                                   |   22 
 drivers/bus/mhi/ep/main.c                                             |   68 +
 drivers/bus/mhi/host/main.c                                           |   29 
 drivers/char/hw_random/core.c                                         |   34 
 drivers/cpufreq/intel_pstate.c                                        |   55 -
 drivers/cxl/core/region.c                                             |    4 
 drivers/devfreq/devfreq.c                                             |   57 +
 drivers/dma/dmaengine.c                                               |    3 
 drivers/firmware/arm_scmi/common.h                                    |    1 
 drivers/firmware/arm_scmi/mailbox.c                                   |   14 
 drivers/firmware/arm_scmi/shmem.c                                     |    6 
 drivers/gpio/gpio-eic-sprd.c                                          |   32 
 drivers/gpio/gpiolib-acpi.c                                           |   14 
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                               |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                     |    3 
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c        |   21 
 drivers/gpu/drm/amd/display/modules/power/power_helpers.c             |    2 
 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c                             |   13 
 drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c                        |    2 
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c                        |    2 
 drivers/gpu/drm/bridge/analogix/anx7625.c                             |    7 
 drivers/gpu/drm/bridge/analogix/anx7625.h                             |    2 
 drivers/gpu/drm/bridge/nxp-ptn3460.c                                  |    6 
 drivers/gpu/drm/bridge/parade-ps8640.c                                |   23 
 drivers/gpu/drm/bridge/sii902x.c                                      |   68 -
 drivers/gpu/drm/drm_plane.c                                           |    1 
 drivers/gpu/drm/exynos/exynos5433_drm_decon.c                         |    4 
 drivers/gpu/drm/exynos/exynos_drm_fimd.c                              |    4 
 drivers/gpu/drm/exynos/exynos_drm_gsc.c                               |    2 
 drivers/gpu/drm/nouveau/nouveau_vmm.c                                 |    3 
 drivers/gpu/drm/panel/panel-edp.c                                     |    4 
 drivers/gpu/drm/panel/panel-simple.c                                  |    2 
 drivers/gpu/drm/tidss/tidss_crtc.c                                    |   10 
 drivers/iio/adc/ad7091r-base.c                                        |  169 ++++
 drivers/iio/adc/ad7091r-base.h                                        |    8 
 drivers/iio/adc/ad7091r5.c                                            |   28 
 drivers/media/common/videobuf2/videobuf2-dma-sg.c                     |   10 
 drivers/media/i2c/imx355.c                                            |   12 
 drivers/media/i2c/ov13b10.c                                           |   86 +-
 drivers/media/i2c/ov9734.c                                            |   19 
 drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c                  |    6 
 drivers/mmc/core/block.c                                              |   46 +
 drivers/mmc/host/mmc_spi.c                                            |  186 ----
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                             |    5 
 drivers/net/ethernet/freescale/fec_main.c                             |    2 
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c                       |   27 
 drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c           |    1 
 drivers/net/ethernet/mellanox/mlx5/core/en/params.c                   |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.h              |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c                     |   26 
 drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c                     |    2 
 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c          |   17 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c                     |    3 
 drivers/net/fjes/fjes_hw.c                                            |   37 
 drivers/net/hyperv/netvsc_drv.c                                       |    4 
 drivers/net/phy/micrel.c                                              |   11 
 drivers/net/tun.c                                                     |   10 
 drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c                      |    2 
 drivers/opp/core.c                                                    |    6 
 drivers/parisc/power.c                                                |    2 
 drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c |   64 -
 drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.h |   20 
 drivers/platform/x86/p2sb.c                                           |  180 +++-
 drivers/rpmsg/virtio_rpmsg_bus.c                                      |    1 
 drivers/rtc/rtc-cmos.c                                                |   28 
 drivers/rtc/rtc-mc146818-lib.c                                        |   39 -
 drivers/s390/crypto/vfio_ap_ops.c                                     |   72 -
 drivers/spi/spi-bcm-qspi.c                                            |    4 
 drivers/spi/spi.c                                                     |    4 
 drivers/thermal/intel/intel_hfi.c                                     |  106 ++
 drivers/tty/serial/sc16is7xx.c                                        |  389 +++++-----
 drivers/ufs/core/ufshcd.c                                             |    7 
 drivers/usb/dwc3/gadget.c                                             |   70 -
 fs/afs/dir.c                                                          |    8 
 fs/btrfs/ctree.h                                                      |    1 
 fs/btrfs/delayed-inode.c                                              |    5 
 fs/btrfs/delayed-inode.h                                              |    1 
 fs/btrfs/extent-tree.c                                                |   53 +
 fs/btrfs/inode.c                                                      |  172 ++--
 fs/btrfs/ioctl.c                                                      |    7 
 fs/btrfs/ref-verify.c                                                 |    6 
 fs/btrfs/sysfs.c                                                      |    4 
 fs/btrfs/tree-checker.c                                               |    2 
 fs/dlm/lowcomms.c                                                     |   14 
 fs/erofs/decompressor.c                                               |   49 -
 fs/exec.c                                                             |    3 
 fs/ext4/mballoc.c                                                     |   15 
 fs/fscache/cache.c                                                    |    3 
 fs/ioctl.c                                                            |    3 
 fs/namei.c                                                            |   60 -
 fs/pipe.c                                                             |   19 
 fs/smb/server/connection.c                                            |    1 
 fs/smb/server/ksmbd_netlink.h                                         |    3 
 fs/smb/server/oplock.c                                                |   16 
 fs/smb/server/smb2pdu.c                                               |    8 
 fs/smb/server/transport_ipc.c                                         |    4 
 fs/ubifs/dir.c                                                        |    2 
 fs/xfs/xfs_super.c                                                    |   27 
 include/linux/async.h                                                 |    2 
 include/linux/lsm_hook_defs.h                                         |    2 
 include/linux/mc146818rtc.h                                           |    3 
 include/linux/mmzone.h                                                |   14 
 include/linux/pipe_fs_i.h                                             |   16 
 include/linux/rmap.h                                                  |    4 
 include/linux/security.h                                              |    9 
 include/linux/serial_core.h                                           |   79 ++
 include/linux/skmsg.h                                                 |    6 
 include/linux/syscalls.h                                              |    1 
 include/net/inet_connection_sock.h                                    |    8 
 include/net/inet_sock.h                                               |    5 
 include/net/llc_pdu.h                                                 |    6 
 include/net/sock.h                                                    |   18 
 include/uapi/linux/btrfs.h                                            |    3 
 kernel/async.c                                                        |   85 +-
 kernel/power/swap.c                                                   |   38 
 kernel/rcu/tree.c                                                     |   34 
 kernel/rcu/tree_exp.h                                                 |    3 
 kernel/time/tick-sched.c                                              |    5 
 kernel/trace/tracing_map.c                                            |    7 
 mm/page_alloc.c                                                       |   16 
 mm/sparse.c                                                           |   17 
 net/8021q/vlan_netlink.c                                              |    4 
 net/core/dev.c                                                        |    9 
 net/core/dev.h                                                        |    3 
 net/core/request_sock.c                                               |    3 
 net/core/sock.c                                                       |   11 
 net/ipv4/af_inet.c                                                    |    3 
 net/ipv4/inet_connection_sock.c                                       |    4 
 net/ipv4/tcp.c                                                        |    1 
 net/ipv6/af_inet6.c                                                   |    3 
 net/llc/af_llc.c                                                      |   24 
 net/llc/llc_core.c                                                    |    7 
 net/mac80211/sta_info.c                                               |    5 
 net/netfilter/nf_tables_api.c                                         |   20 
 net/netfilter/nft_chain_filter.c                                      |   11 
 net/netfilter/nft_compat.c                                            |   12 
 net/netfilter/nft_flow_offload.c                                      |    5 
 net/netfilter/nft_limit.c                                             |   23 
 net/netfilter/nft_nat.c                                               |    5 
 net/netfilter/nft_rt.c                                                |    5 
 net/netfilter/nft_socket.c                                            |    5 
 net/netfilter/nft_synproxy.c                                          |    7 
 net/netfilter/nft_tproxy.c                                            |    5 
 net/netfilter/nft_xfrm.c                                              |    5 
 net/netlink/af_netlink.c                                              |    2 
 net/rds/af_rds.c                                                      |    2 
 net/smc/smc_diag.c                                                    |    2 
 scripts/get_abi.pl                                                    |    2 
 security/security.c                                                   |   18 
 security/selinux/hooks.c                                              |   28 
 security/smack/smack_lsm.c                                            |    1 
 security/tomoyo/tomoyo.c                                              |    1 
 tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh       |    9 
 193 files changed, 2418 insertions(+), 1385 deletions(-)

Al Viro (1):
rename(): fix the locking of subdirectories

Aleksander Jan Bajkowski (1):
MIPS: lantiq: register smp_ops on non-smp platforms

Alfred Piccioni (1):
lsm: new security_file_ioctl_compat() hook

Amelie Delaunay (1):
dmaengine: fix NULL pointer in channel unregistration function

Andy Shevchenko (1):
mmc: mmc_spi: remove custom DMA mapped buffers

Anthony Krowiak (1):
s390/vfio-ap: unpin pages on gisc registration failure

Arec Kao (1):
media: ov13b10: Support device probe in non-zero ACPI D state

Arnd Bergmann (1):
drm/exynos: fix accidental on-stack copy of exynos_drm_plane

Avri Altman (1):
mmc: core: Use mrq.sbc in close-ended ffu

Bart Van Assche (1):
scsi: ufs: core: Remove the ufshcd_hba_exit() call from ufshcd_async_scan()

Bernd Edlinger (2):
net: stmmac: Wait a bit for the reset to take effect
exec: Fix error handling in begin_new_exec()

Bhaumik Bhatt (1):
bus: mhi: host: Add spinlock to protect WP access when queueing TREs

Bingbu Cao (3):
media: imx355: Enable runtime PM before registering async sub-device
media: ov9734: Enable runtime PM before registering async sub-device
media: ov13b10: Enable runtime PM before registering async sub-device

Charan Teja Kalla (2):
mm/sparsemem: fix race in accessing memory_section->usage
mm: page_alloc: unreserve highatomic page blocks before oom

Christian Marangi (1):
PM / devfreq: Fix buffer overflow in trans_stat_show

Chung-Chiang Cheng (1):
btrfs: tree-checker: fix inline ref size in error messages

Cristian Marussi (1):
firmware: arm_scmi: Check mailbox/SMT channel for consistency

Dan Carpenter (3):
netfs, fscache: Prevent Oops in fscache_put_cache() drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking drm/bridge: nxp-ptn3460: simplify some error checking

Dave Airlie (1):
nouveau/vmm: don't set addr on the fail path to avoid warning

Dave Chinner (1):
xfs: read only mounts with fsopen mount API are busted

David Disseldorp (1):
btrfs: sysfs: validate scrub_speed_max value

David Howells (1):
afs: Hide silly-rename files from userspace

David Lechner (1):
spi: fix finalize message on error return

David Sterba (1):
btrfs: don't warn if discard range is not aligned to sector

Dinghao Liu (1):
net/mlx5e: fix a potential double-free in fs_any_create_groups

Douglas Anderson (2):
drm/bridge: parade-ps8640: Wait for HPD when doing an AUX transfer drm/bridge: parade-ps8640: Make sure we drop the AUX mutex in the error case

Emmanuel Grumbach (1):
wifi: iwlwifi: fix a memory corruption

Eric Dumazet (3):
llc: make llc_ui_sendmsg() more robust against bonding changes
udp: fix busy polling
nbd: always initialize struct msghdr completely

Fedor Pchelkin (2):
btrfs: ref-verify: free ref cache before clearing mount opt drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume

Filipe Manana (4):
btrfs: fix infinite directory reads
btrfs: set last dir index to the current last index when opening dir
btrfs: refresh dir last index during a rewinddir(3) call
btrfs: fix race between reading a directory and adding entries to it

Florian Westphal (3):
netfilter: nft_limit: reject configurations that cause integer overflow
netfilter: nf_tables: restrict anonymous set and map names to 16 bytes
netfilter: nf_tables: reject QUEUE/DROP verdict parameters

Frederic Weisbecker (1):
rcu: Defer RCU kthreads wakeup when CPU is dying

Gao Xiang (2):
erofs: get rid of the remaining kmap_atomic()
erofs: fix lz4 inplace decompression

Greg Kroah-Hartman (1):

      Linux 6.1.76

Helge Deller (2):
parisc/firmware: Fix F-extend for PDC addresses parisc/power: Fix power soft-off button emulation on qemu

Herbert Xu (3):
crypto: api - Disallow identical driver names
hwrng: core - Fix page fault dead lock on mmap-ed hwrng
crypto: s390/aes - Fix buffer overread in CTR mode

Hongchen Zhang (1):
PM: hibernate: Enforce ordering during image compression/decompression

Horatiu Vultur (1):
net: micrel: Fix PTP frame parsing for lan8814

Hsin-Yi Wang (2):
drm/panel-edp: drm/panel-edp: Fix AUO B116XAK01 name and timing drm/bridge: anx7625: Ensure bridge is suspended in disable()

Huacai Chen (1):
LoongArch/smp: Call rcutree_report_cpu_starting() earlier

Hugo Villeneuve (10):
serial: sc16is7xx: improve regmap debugfs by using one regmap per port
serial: sc16is7xx: remove wasteful static buffer in sc16is7xx_regmap_name()
serial: sc16is7xx: remove global regmap from struct sc16is7xx_port
serial: sc16is7xx: remove unused line structure member
serial: sc16is7xx: change EFR lock to operate on each channels
serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO
serial: sc16is7xx: fix invalid sc16is7xx_lines bitfield in case of probe error
serial: sc16is7xx: remove obsolete loop in sc16is7xx_port_irq()
serial: sc16is7xx: improve do/while loop in sc16is7xx_irq()
serial: sc16is7xx: fix unconditional activation of THRI interrupt

Ilya Dryomov (1):
rbd: don't move requests to the running list on errors

Jakub Kicinski (2):
net: fix removing a namespace with conflicting altnames
selftests: netdevsim: fix the udp_tunnel_nic test

Jenishkumar Maheshbhai Patel (1):
net: mvpp2: clear BM pool before initialization

Johan Hovold (10):
arm64: dts: qcom: sc7180: fix USB wakeup interrupt types
arm64: dts: qcom: sdm845: fix USB wakeup interrupt types
arm64: dts: qcom: sm8150: fix USB wakeup interrupt types
arm64: dts: qcom: sc7280: fix usb_1 wakeup interrupt types
arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts
arm64: dts: qcom: sm8150: fix USB DP/DM HS PHY interrupts
ARM: dts: qcom: sdx55: fix USB wakeup interrupt types
ARM: dts: qcom: sdx55: fix pdc '#interrupt-cells'
ARM: dts: qcom: sdx55: fix USB DP/DM HS PHY interrupts
ARM: dts: qcom: sdx55: fix USB SS wakeup

Johannes Berg (1):
wifi: mac80211: fix potential sta-link leak

Jonathan Gray (1):
Revert "drm/amd: Enable PCIe PME from D3"

Jordan Rife (1):
dlm: use kernel_connect() and kernel_bind()

Josef Bacik (1):
arm64: properly install vmlinuz.efi

Kamal Dasu (1):
spi: bcm-qspi: fix SFDP BFPT read by usig mspi read

Krishna chaitanya chundru (1):
bus: mhi: host: Add alignment check for event ring read pointer

Kuniyuki Iwashima (1):

      llc: Drop support for ETH_P_TR_802_2.

Leon Romanovsky (2):
net/mlx5e: Allow software parsing when IPsec crypto is enabled net/mlx5e: Handle hardware IPsec limits events

Li Lingfeng (1):
block: Move checking GENHD_FL_NO_PART to bdev_add_partition()

Li zeming (1):
PM: core: Remove unnecessary (void *) conversions

Lin Ma (2):
vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING
ksmbd: fix global oob in ksmbd_nl_policy

Lukas Schauer (1):
pipe: wakeup wr_wait after setting max_usage

Ma Jun (1):
drm/amdgpu/pm: Fix the power source flag error

Manivannan Sadhasivam (1):
bus: mhi: ep: Do not allocate event ring element on stack

Marcelo Schmitt (3):
iio: adc: ad7091r: Set alert bit in config register
iio: adc: ad7091r: Allow users to configure device events
iio: adc: ad7091r: Enable internal vref if external vref is not supplied

Mario Limonciello (7):
rtc: cmos: Use ACPI alarm for non-Intel x86 systems too
rtc: Adjust failure return code for cmos_set_alarm()
rtc: mc146818-lib: Adjust failure return code for mc146818_get_time()
rtc: Add support for configuring the UIP timeout for RTC reads
rtc: Extend timeout for waiting for UIP to clear to 1s
gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04 drm/amd/display: Disable PSR-SU on Parade 0803 TCON again

Markus Niebel (1):
drm: panel-simple: add missing bus flags for Tianma tm070jvhg[30/33]

Matti Vaittinen (1):
drm/bridge: sii902x: Use devm_regulator_bulk_get_enable()

Max Kellermann (1):
fs/pipe: move check to pipe_has_watch_queue()

Michael Chan (1):
bnxt_en: Wait for FLR to complete during probe

Michael Grzeschik (1):
media: videobuf2-dma-sg: fix vmap callback

Michael Kelley (1):
hv_netvsc: Calculate correct ring size when PAGE_SIZE is not 4 Kbytes

Namjae Jeon (5):
ksmbd: set v2 lease version on lease upgrade
ksmbd: fix potential circular locking issue in smb2_set_ea()
ksmbd: don't increment epoch if current state and request state are same
ksmbd: send lease break notification on FILE_RENAME_INFORMATION
ksmbd: Add missing set_freezable() for freezable kthread

Naohiro Aota (2):
btrfs: zoned: factor out prepare_allocation_zoned()
btrfs: zoned: optimize hint byte for zoned allocator

Nathan Chancellor (1):
platform/x86: intel-uncore-freq: Fix types in sysfs callbacks

Nicholas Kazlauskas (1):
drm/amd/display: Port DENTIST hang and TDR fixes to OTG disable W/A

Omar Sandoval (2):
btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume being deleted
btrfs: don't abort filesystem when attempting to snapshot deleted subvolume

Pablo Neira Ayuso (2):
netfilter: nf_tables: validate NFPROTO_* family
netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain

Paul Cercueil (1):
ARM: dts: samsung: exynos4210-i9100: Unconditionally enable LDO12

Petr Pavlu (1):
tracing: Ensure visibility when inserting an element into tracing_map

Pin-yen Lin (1):
drm/bridge: parade-ps8640: Ensure bridge is suspended in .post_disable()

Qiang Yu (1):
bus: mhi: host: Drop chan lock before queuing buffers

Qu Wenruo (1):
btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args

Quanquan Cao (1):
cxl/region:Fix overflow issue in alloc_hpa()

Rafael J. Wysocki (4):
async: Split async_schedule_node_domain()
async: Introduce async_schedule_dev_nocall()
cpufreq: intel_pstate: Refine computation of P-state for given frequency
PM: sleep: Fix possible deadlocks in core system-wide PM code

Rahul Rameshbabu (1):
net/mlx5: Use mlx5 device constant for selecting CQ period mode for ASO

Randy Dunlap (1):
serial: core: fix kernel-doc for uart_port_unlock_irqrestore()

Ricardo Neri (3):
thermal: intel: hfi: Refactor enabling code into helper functions
thermal: intel: hfi: Disable an HFI instance when all its CPUs go offline
thermal: intel: hfi: Add syscore callbacks for system-wide PM

Richard Palethorpe (1):
x86/entry/ia32: Ensure s32 is sign extended to s64

Rob Herring (1):

      arm64: Rename ARM64_WORKAROUND_2966298

Salvatore Dipietro (1):
tcp: Add memory barrier to tcp_push()

Sasha Levin (1):
Revert "powerpc/64s: Increase default stack size to 32KB"

Sean Christopherson (1):
Revert "nSVM: Check for reserved encodings of TLB_CONTROL in nested VMCB"

Serge Semin (1):
mips: Fix max_mapnr being uninitialized on early stages

Sharath Srinivasan (1):
net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv

Shenwei Wang (1):
net: fec: fix the unhandled context fault from smmu

Shin'ichiro Kawasaki (1):
platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe

Steven Rostedt (Google) (1):
mm/rmap: fix misplaced parenthesis of a likely()

Suraj Jitindar Singh (1):
ext4: allow for the last group to be marked as trimmed

Thomas Gleixner (2):
serial: core: Provide port lock wrappers
serial: sc16is7xx: Use port lock wrappers

Tim Chen (1):
tick/sched: Preserve number of idle sleeps across CPU hotplug events

Tomi Valkeinen (3):
drm/tidss: Fix atomic_flush check drm/bridge: sii902x: Fix probing race issue drm/bridge: sii902x: Fix audio codec unregistration

Tony Krowiak (3):
s390/vfio-ap: always filter entire AP matrix
s390/vfio-ap: loop over the shadow APCB when filtering guest's AP configuration s390/vfio-ap: let on_scan_complete() callback filter matrix and update guest's APCB

Vegard Nossum (2):
docs: kernel_abi.py: fix command injection
scripts/get_abi: fix source path leak

Ville Syrjälä (1):
drm: Don't unref the same fb many times by mistake due to deadlock handling

Viresh Kumar (1):
OPP: Pass rounded rate to _set_opp()

Wayne Lin (1):
drm/amd/display: pbn_div need be updated for hotplug event

Wen Gu (1):
net/smc: fix illegal rmb_desc access in SMC-D connection dump

Wenhua Lin (1):
gpio: eic-sprd: Clear interrupt after set the interrupt type

Wesley Cheng (3):
usb: dwc3: gadget: Refactor EP0 forced stall/restart into a separate API
usb: dwc3: gadget: Queue PM runtime idle on disconnect event
usb: dwc3: gadget: Handle EP0 request dequeuing properly

Xi Ruoyao (1):
mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan

Xiaolei Wang (1):
rpmsg: virtio: Free driver_override when rpmsg_remove()

Yevgeny Kliteynik (2):
net/mlx5: DR, Use the right GVMI number for drop action net/mlx5: DR, Can't go to uplink vport on RX rule

Yunjian Wang (2):
tun: fix missing dropped counter in tun_xdp_act
tun: add missing rx stats accounting in tun_xdp_act

Zheng Wang (1):
media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run

Zhengchao Shao (3):
tcp: make sure init the accept_queue's spinlocks once
netlink: fix potential sleeping issue in mqueue_flush_file
ipv6: init the accept_queue's spinlocks in inet6_create

Zhihao Cheng (1):

      ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path

Zhipeng Lu (2):
net/mlx5e: fix a double-free in arfs_create_groups
fjes: fix memleaks in fjes_hw_setup

author maintainer
#1 lore raw
Documentation/ABI/testing/sysfs-class-devfreq +3 -0
index 5e6b74f30406..1e7e0bb4c14e 100644
@@ -52,6 +52,9 @@ Description:
 
 			echo 0 > /sys/class/devfreq/.../trans_stat
 
+		If the transition table is bigger than PAGE_SIZE, reading
+		this will return an -EFBIG error.
+
 What:		/sys/class/devfreq/.../available_frequencies
 Date:		October 2012
 Contact:	Nishanth Menon <[email protected]>
Documentation/admin-guide/abi-obsolete.rst +1 -1
index d095867899c5..594e697aa1b2 100644
@@ -7,5 +7,5 @@ marked to be removed at some later point in time.
 The description of the interface will document the reason why it is
 obsolete and when it can be expected to be removed.
 
-.. kernel-abi:: $srctree/Documentation/ABI/obsolete
+.. kernel-abi:: ABI/obsolete
    :rst:
Documentation/admin-guide/abi-removed.rst +1 -1
index f7e9e43023c1..f9e000c81828 100644
@@ -1,5 +1,5 @@
 ABI removed symbols
 ===================
 
-.. kernel-abi:: $srctree/Documentation/ABI/removed
+.. kernel-abi:: ABI/removed
    :rst:
Documentation/admin-guide/abi-stable.rst +1 -1
index 70490736e0d3..fc3361d847b1 100644
@@ -10,5 +10,5 @@ for at least 2 years.
 Most interfaces (like syscalls) are expected to never change and always
 be available.
 
-.. kernel-abi:: $srctree/Documentation/ABI/stable
+.. kernel-abi:: ABI/stable
    :rst:
Documentation/admin-guide/abi-testing.rst +1 -1
index b205b16a72d0..19767926b344 100644
@@ -16,5 +16,5 @@ Programs that use these interfaces are strongly encouraged to add their
 name to the description of these interfaces, so that the kernel
 developers can easily notify them if any changes occur.
 
-.. kernel-abi:: $srctree/Documentation/ABI/testing
+.. kernel-abi:: ABI/testing
    :rst:
Documentation/filesystems/directory-locking.rst +15 -14
index dccd61c7c5c3..193c22687851 100644
@@ -22,13 +22,16 @@ exclusive.
 3) object removal.  Locking rules: caller locks parent, finds victim,
 locks victim and calls the method.  Locks are exclusive.
 
-4) rename() that is _not_ cross-directory.  Locking rules: caller locks the
-parent and finds source and target.  We lock both (provided they exist).  If we
-need to lock two inodes of different type (dir vs non-dir), we lock directory
-first.  If we need to lock two inodes of the same type, lock them in inode
-pointer order.  Then call the method.  All locks are exclusive.
-NB: we might get away with locking the source (and target in exchange
-case) shared.
+4) rename() that is _not_ cross-directory.  Locking rules: caller locks
+the parent and finds source and target.  Then we decide which of the
+source and target need to be locked.  Source needs to be locked if it's a
+non-directory; target - if it's a non-directory or about to be removed.
+Take the locks that need to be taken, in inode pointer order if need
+to take both (that can happen only when both source and target are
+non-directories - the source because it wouldn't be locked otherwise
+and the target because mixing directory and non-directory is allowed
+only with RENAME_EXCHANGE, and that won't be removing the target).
+After the locks had been taken, call the method.  All locks are exclusive.
 
 5) link creation.  Locking rules:
 
@@ -44,20 +47,17 @@ rules:
 
 	* lock the filesystem
 	* lock parents in "ancestors first" order. If one is not ancestor of
-	  the other, lock them in inode pointer order.
+	  the other, lock the parent of source first.
 	* find source and target.
 	* if old parent is equal to or is a descendent of target
 	  fail with -ENOTEMPTY
 	* if new parent is equal to or is a descendent of source
 	  fail with -ELOOP
-	* Lock both the source and the target provided they exist. If we
-	  need to lock two inodes of different type (dir vs non-dir), we lock
-	  the directory first. If we need to lock two inodes of the same type,
-	  lock them in inode pointer order.
+	* Lock subdirectories involved (source before target).
+	* Lock non-directories involved, in inode pointer order.
 	* call the method.
 
-All ->i_rwsem are taken exclusive.  Again, we might get away with locking
-the source (and target in exchange case) shared.
+All ->i_rwsem are taken exclusive.
 
 The rules above obviously guarantee that all directories that are going to be
 read, modified or removed by method will be locked by caller.
@@ -67,6 +67,7 @@ If no directory is its own ancestor, the scheme above is deadlock-free.
 
 Proof:
 
+[XXX: will be updated once we are done massaging the lock_rename()]
 	First of all, at any moment we have a linear ordering of the
 	objects - A < B iff (A is an ancestor of B) or (B is not an ancestor
         of A and ptr(A) < ptr(B)).
Documentation/filesystems/locking.rst +4 -1
index 8f737e76935c..555215c416d9 100644
@@ -99,7 +99,7 @@ symlink:	exclusive
 mkdir:		exclusive
 unlink:		exclusive (both)
 rmdir:		exclusive (both)(see below)
-rename:		exclusive (all)	(see below)
+rename:		exclusive (both parents, some children)	(see below)
 readlink:	no
 get_link:	no
 setattr:	exclusive
@@ -119,6 +119,9 @@ fileattr_set:	exclusive
 	Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem
 	exclusive on victim.
 	cross-directory ->rename() has (per-superblock) ->s_vfs_rename_sem.
+	->unlink() and ->rename() have ->i_rwsem exclusive on all non-directories
+	involved.
+	->rename() has ->i_rwsem exclusive on any subdirectory that changes parent.
 
 See Documentation/filesystems/directory-locking.rst for more detailed discussion
 of the locking scheme for directory operations.
Documentation/filesystems/porting.rst +18 -0
index df0dc37e6f58..c6aaf340f179 100644
@@ -943,3 +943,21 @@ file pointer instead of struct dentry pointer.  d_tmpfile() is similarly
 changed to simplify callers.  The passed file is in a non-open state and on
 success must be opened before returning (e.g. by calling
 finish_open_simple()).
+
+---
+
+**mandatory**
+
+If ->rename() update of .. on cross-directory move needs an exclusion with
+directory modifications, do *not* lock the subdirectory in question in your
+->rename() - it's done by the caller now [that item should've been added in
+28eceeda130f "fs: Lock moved directories"].
+
+---
+
+**mandatory**
+
+On same-directory ->rename() the (tautological) update of .. is not protected
+by any locks; just don't do it if the old parent is the same as the new one.
+We really can't lock two subdirectories in same-directory rename - not without
+deadlocks.
Documentation/sphinx/kernel_abi.py +10 -46

78 lines not on this page · raw message

Makefile +1 -1
index 7cd49d9eadbf..9dd167178ab4 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 75
+SUBLEVEL = 76
 EXTRAVERSION =
 NAME = Curry Ramen
 
arch/alpha/kernel/rtc.c +1 -1
index fb3025396ac9..cfdf90bc8b3f 100644
@@ -80,7 +80,7 @@ init_rtc_epoch(void)
 static int
 alpha_rtc_read_time(struct device *dev, struct rtc_time *tm)
 {
-	int ret = mc146818_get_time(tm);
+	int ret = mc146818_get_time(tm, 10);
 
 	if (ret < 0) {
 		dev_err_ratelimited(dev, "unable to read current time\n");
arch/arm/boot/dts/exynos4210-i9100.dts +8 -0
index 53e023fc1cac..b4c7b642e456 100644
@@ -521,6 +521,14 @@ vtcam_reg: LDO12 {
 				regulator-name = "VT_CAM_1.8V";
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
+
+				/*
+				 * Force-enable this regulator; otherwise the
+				 * kernel hangs very early in the boot process
+				 * for about 12 seconds, without apparent
+				 * reason.
+				 */
+				regulator-always-on;
 			};
 
 			vcclcd_reg: LDO13 {
arch/arm/boot/dts/qcom-sdx55.dtsi +5 -5
index a4bf1d5ee206..b85820448b9d 100644
@@ -495,10 +495,10 @@ usb: usb@a6f8800 {
 					  <&gcc GCC_USB30_MASTER_CLK>;
 			assigned-clock-rates = <19200000>, <200000000>;
 
-			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
+			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 51 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 11 IRQ_TYPE_EDGE_BOTH>,
+					      <&pdc 10 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
 					  "dm_hs_phy_irq", "dp_hs_phy_irq";
 
@@ -522,7 +522,7 @@ pdc: interrupt-controller@b210000 {
 			compatible = "qcom,sdx55-pdc", "qcom,pdc";
 			reg = <0x0b210000 0x30000>;
 			qcom,pdc-ranges = <0 179 52>;
-			#interrupt-cells = <3>;
+			#interrupt-cells = <2>;
 			interrupt-parent = <&intc>;
 			interrupt-controller;
 		};
arch/arm64/Kconfig +4 -0
index ea70eb960565..c15f71501c6c 100644
@@ -983,8 +983,12 @@ config ARM64_ERRATUM_2457168
 
 	  If unsure, say Y.
 
+config ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD
+	bool
+
 config ARM64_ERRATUM_2966298
 	bool "Cortex-A520: 2966298: workaround for speculatively executed unprivileged load"
+	select ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD
 	default y
 	help
 	  This option adds the workaround for ARM Cortex-A520 erratum 2966298.
arch/arm64/boot/dts/qcom/sc7180.dtsi +2 -2
index 78e537f1d796..13fe1c92bf35 100644
@@ -2769,8 +2769,8 @@ usb_1: usb@a6f8800 {
 
 			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
 					      <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
-					      <&pdc 8 IRQ_TYPE_LEVEL_HIGH>,
-					      <&pdc 9 IRQ_TYPE_LEVEL_HIGH>;
+					      <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
+					      <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
 					  "dm_hs_phy_irq", "dp_hs_phy_irq";
 
arch/arm64/boot/dts/qcom/sc7280.dtsi +2 -2
index 7fc8c2045022..04106d725400 100644
@@ -3664,9 +3664,9 @@ usb_1: usb@a6f8800 {
 			assigned-clock-rates = <19200000>, <200000000>;
 
 			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-					      <&pdc 14 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
 					      <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
-					      <&pdc 17 IRQ_TYPE_EDGE_BOTH>;
+					      <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
 			interrupt-names = "hs_phy_irq",
 					  "dp_hs_phy_irq",
 					  "dm_hs_phy_irq",
arch/arm64/boot/dts/qcom/sdm845.dtsi +8 -8
index 1e6841902900..4d5905ef0b41 100644
@@ -4048,10 +4048,10 @@ usb_1: usb@a6f8800 {
 					  <&gcc GCC_USB30_PRIM_MASTER_CLK>;
 			assigned-clock-rates = <19200000>, <150000000>;
 
-			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
+			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+					      <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc_intc 8 IRQ_TYPE_EDGE_BOTH>,
+					      <&pdc_intc 9 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
 					  "dm_hs_phy_irq", "dp_hs_phy_irq";
 
@@ -4099,10 +4099,10 @@ usb_2: usb@a8f8800 {
 					  <&gcc GCC_USB30_SEC_MASTER_CLK>;
 			assigned-clock-rates = <19200000>, <150000000>;
 
-			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
+			interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+					      <&intc GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc_intc 10 IRQ_TYPE_EDGE_BOTH>,
+					      <&pdc_intc 11 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
 					  "dm_hs_phy_irq", "dp_hs_phy_irq";
 
arch/arm64/boot/dts/qcom/sm8150.dtsi +8 -8
index c3c12b0cd416..8efd0e227d78 100644
@@ -3628,10 +3628,10 @@ usb_1: usb@a6f8800 {
 					  <&gcc GCC_USB30_PRIM_MASTER_CLK>;
 			assigned-clock-rates = <19200000>, <200000000>;
 
-			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
+			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+					      <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
+					      <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
 					  "dm_hs_phy_irq", "dp_hs_phy_irq";
 
@@ -3677,10 +3677,10 @@ usb_2: usb@a8f8800 {
 					  <&gcc GCC_USB30_SEC_MASTER_CLK>;
 			assigned-clock-rates = <19200000>, <200000000>;
 
-			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
+			interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+					      <&intc GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 10 IRQ_TYPE_EDGE_BOTH>,
+					      <&pdc 11 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
 					  "dm_hs_phy_irq", "dp_hs_phy_irq";
 
arch/arm64/boot/install.sh +2 -1
index 7399d706967a..9b7a09808a3d 100755
@@ -17,7 +17,8 @@
 #   $3 - kernel map file
 #   $4 - default install path (blank if root directory)
 
-if [ "$(basename $2)" = "Image.gz" ]; then
+if [ "$(basename $2)" = "Image.gz" ] || [ "$(basename $2)" = "vmlinuz.efi" ]
+then
 # Compressed install
   echo "Installing compressed kernel"
   base=vmlinuz
arch/arm64/kernel/cpu_errata.c +2 -2
index 3f917124684c..61f22e9c92b4 100644
@@ -723,10 +723,10 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
 		.cpu_enable = cpu_clear_bf16_from_user_emulation,
 	},
 #endif
-#ifdef CONFIG_ARM64_ERRATUM_2966298
+#ifdef CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD
 	{
 		.desc = "ARM erratum 2966298",
-		.capability = ARM64_WORKAROUND_2966298,
+		.capability = ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD,
 		/* Cortex-A520 r0p0 - r0p1 */
 		ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A520, 0, 0, 1),
 	},
arch/arm64/kernel/entry.S +1 -1
index de16fa917e1b..62146d48dba7 100644
@@ -419,7 +419,7 @@ alternative_else_nop_endif
 	ldp	x28, x29, [sp, #16 * 14]
 
 	.if	\el == 0
-alternative_if ARM64_WORKAROUND_2966298
+alternative_if ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD
 	tlbi	vale1, xzr
 	dsb	nsh
 alternative_else_nop_endif
arch/arm64/tools/cpucaps +1 -1
index e73830d9f136..2dc7ddee5f04 100644
@@ -71,7 +71,6 @@ WORKAROUND_2064142
 WORKAROUND_2077057
 WORKAROUND_2457168
 WORKAROUND_2658417
-WORKAROUND_2966298
 WORKAROUND_AMPERE_AC03_CPU_38
 WORKAROUND_TRBE_OVERWRITE_FILL_MODE
 WORKAROUND_TSB_FLUSH_FAILURE
@@ -87,3 +86,4 @@ WORKAROUND_NVIDIA_CARMEL_CNP
 WORKAROUND_QCOM_FALKOR_E1003
 WORKAROUND_REPEAT_TLBI
 WORKAROUND_SPECULATIVE_AT
+WORKAROUND_SPECULATIVE_UNPRIV_LOAD
arch/loongarch/kernel/smp.c +2 -1
index 14508d429ffa..434bfc1cd31a 100644
@@ -471,8 +471,9 @@ asmlinkage void start_secondary(void)
 	unsigned int cpu;
 
 	sync_counter();
-	cpu = smp_processor_id();
+	cpu = raw_smp_processor_id();
 	set_my_cpu_offset(per_cpu_offset(cpu));
+	rcu_cpu_starting(cpu);
 
 	cpu_probe();
 	constant_clockevent_init();
arch/mips/kernel/elf.c +6 -0
index 5582a4ca1e9e..7aa2c2360ff6 100644
@@ -11,6 +11,7 @@
 
 #include <asm/cpu-features.h>
 #include <asm/cpu-info.h>
+#include <asm/fpu.h>
 
 #ifdef CONFIG_MIPS_FP_SUPPORT
 
@@ -309,6 +310,11 @@ void mips_set_personality_nan(struct arch_elf_state *state)
 	struct cpuinfo_mips *c = &boot_cpu_data;
 	struct task_struct *t = current;
 
+	/* Do this early so t->thread.fpu.fcr31 won't be clobbered in case
+	 * we are preempted before the lose_fpu(0) in start_thread.
+	 */
+	lose_fpu(0);
+
 	t->thread.fpu.fcr31 = c->fpu_csr31;
 	switch (state->nan_2008) {
 	case 0:
arch/mips/lantiq/prom.c +3 -4
index be4829cc7a3a..28da4e720d17 100644
@@ -114,10 +114,9 @@ void __init prom_init(void)
 	prom_init_cmdline();
 
 #if defined(CONFIG_MIPS_MT_SMP)
-	if (cpu_has_mipsmt) {
-		lantiq_smp_ops = vsmp_smp_ops;
+	lantiq_smp_ops = vsmp_smp_ops;
+	if (cpu_has_mipsmt)
 		lantiq_smp_ops.init_secondary = lantiq_init_secondary;
-		register_smp_ops(&lantiq_smp_ops);
-	}
+	register_smp_ops(&lantiq_smp_ops);
 #endif
 }
arch/mips/mm/init.c +5 -7
index 5a8002839550..e8660d06f663 100644
@@ -417,7 +417,12 @@ void __init paging_init(void)
 		       (highend_pfn - max_low_pfn) << (PAGE_SHIFT - 10));
 		max_zone_pfns[ZONE_HIGHMEM] = max_low_pfn;
 	}
+
+	max_mapnr = highend_pfn ? highend_pfn : max_low_pfn;
+#else
+	max_mapnr = max_low_pfn;
 #endif
+	high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
 
 	free_area_init(max_zone_pfns);
 }
@@ -453,13 +458,6 @@ void __init mem_init(void)
 	 */
 	BUILD_BUG_ON(IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT));
 
-#ifdef CONFIG_HIGHMEM
-	max_mapnr = highend_pfn ? highend_pfn : max_low_pfn;
-#else
-	max_mapnr = max_low_pfn;
-#endif
-	high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
-
 	maar_init();
 	memblock_free_all();
 	setup_zero_pages();	/* Setup zeroed pages.  */
arch/parisc/kernel/firmware.c +2 -2
index 3e051a973e9b..92276bcf19d7 100644
@@ -123,10 +123,10 @@ static unsigned long f_extend(unsigned long address)
 #ifdef CONFIG_64BIT
 	if(unlikely(parisc_narrow_firmware)) {
 		if((address & 0xff000000) == 0xf0000000)
-			return 0xf0f0f0f000000000UL | (u32)address;
+			return (0xfffffff0UL << 32) | (u32)address;
 
 		if((address & 0xf0000000) == 0xf0000000)
-			return 0xffffffff00000000UL | (u32)address;
+			return (0xffffffffUL << 32) | (u32)address;
 	}
 #endif
 	return address;
arch/powerpc/Kconfig +0 -1
index 2c94f9cf1ce0..6050e6e10d32 100644
@@ -806,7 +806,6 @@ config THREAD_SHIFT
 	int "Thread shift" if EXPERT
 	range 13 15
 	default "15" if PPC_256K_PAGES
-	default "15" if PPC_PSERIES || PPC_POWERNV
 	default "14" if PPC64
 	default "13"
 	help
arch/s390/crypto/aes_s390.c +3 -1
index 526c3f40f6a2..7b66e81e5f87 100644
@@ -601,7 +601,9 @@ static int ctr_aes_crypt(struct skcipher_request *req)
 	 * final block may be < AES_BLOCK_SIZE, copy only nbytes
 	 */
 	if (nbytes) {
-		cpacf_kmctr(sctx->fc, sctx->key, buf, walk.src.virt.addr,
+		memset(buf, 0, AES_BLOCK_SIZE);
+		memcpy(buf, walk.src.virt.addr, nbytes);
+		cpacf_kmctr(sctx->fc, sctx->key, buf, buf,
 			    AES_BLOCK_SIZE, walk.iv);
 		memcpy(walk.dst.virt.addr, buf, nbytes);
 		crypto_inc(walk.iv, AES_BLOCK_SIZE);
arch/s390/crypto/paes_s390.c +3 -1
index 621322eb0e68..d84d87349718 100644
@@ -688,9 +688,11 @@ static int ctr_paes_crypt(struct skcipher_request *req)
 	 * final block may be < AES_BLOCK_SIZE, copy only nbytes
 	 */
 	if (nbytes) {
+		memset(buf, 0, AES_BLOCK_SIZE);
+		memcpy(buf, walk.src.virt.addr, nbytes);
 		while (1) {
 			if (cpacf_kmctr(ctx->fc, &param, buf,
-					walk.src.virt.addr, AES_BLOCK_SIZE,
+					buf, AES_BLOCK_SIZE,
 					walk.iv) == AES_BLOCK_SIZE)
 				break;
 			if (__paes_convert_key(ctx))
arch/x86/include/asm/syscall_wrapper.h +21 -4
index fd2669b1cb2d..e3323a9dc911 100644
@@ -58,12 +58,29 @@ extern long __ia32_sys_ni_syscall(const struct pt_regs *regs);
 		,,regs->di,,regs->si,,regs->dx				\
 		,,regs->r10,,regs->r8,,regs->r9)			\
 
+
+/* SYSCALL_PT_ARGS is Adapted from s390x */
+#define SYSCALL_PT_ARG6(m, t1, t2, t3, t4, t5, t6)			\
+	SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5), m(t6, (regs->bp))
+#define SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5)				\
+	SYSCALL_PT_ARG4(m, t1, t2, t3, t4),  m(t5, (regs->di))
+#define SYSCALL_PT_ARG4(m, t1, t2, t3, t4)				\
+	SYSCALL_PT_ARG3(m, t1, t2, t3),  m(t4, (regs->si))
+#define SYSCALL_PT_ARG3(m, t1, t2, t3)					\
+	SYSCALL_PT_ARG2(m, t1, t2), m(t3, (regs->dx))
+#define SYSCALL_PT_ARG2(m, t1, t2)					\
+	SYSCALL_PT_ARG1(m, t1), m(t2, (regs->cx))
+#define SYSCALL_PT_ARG1(m, t1) m(t1, (regs->bx))
+#define SYSCALL_PT_ARGS(x, ...) SYSCALL_PT_ARG##x(__VA_ARGS__)
+
+#define __SC_COMPAT_CAST(t, a)						\
+	(__typeof(__builtin_choose_expr(__TYPE_IS_L(t), 0, 0U)))	\
+	(unsigned int)a
+
 /* Mapping of registers to parameters for syscalls on i386 */
 #define SC_IA32_REGS_TO_ARGS(x, ...)					\
-	__MAP(x,__SC_ARGS						\
-	      ,,(unsigned int)regs->bx,,(unsigned int)regs->cx		\
-	      ,,(unsigned int)regs->dx,,(unsigned int)regs->si		\
-	      ,,(unsigned int)regs->di,,(unsigned int)regs->bp)
+	SYSCALL_PT_ARGS(x, __SC_COMPAT_CAST,				\
+			__MAP(x, __SC_TYPE, __VA_ARGS__))		\
 
 #define __SYS_STUB0(abi, name)						\
 	long __##abi##_##name(const struct pt_regs *regs);		\
arch/x86/kernel/hpet.c +1 -1
index 71f336425e58..54732da52dc1 100644
@@ -1436,7 +1436,7 @@ irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id)
 	memset(&curr_time, 0, sizeof(struct rtc_time));
 
 	if (hpet_rtc_flags & (RTC_UIE | RTC_AIE)) {
-		if (unlikely(mc146818_get_time(&curr_time) < 0)) {
+		if (unlikely(mc146818_get_time(&curr_time, 10) < 0)) {
 			pr_err_ratelimited("unable to read current time from RTC\n");
 			return IRQ_HANDLED;
 		}
arch/x86/kernel/rtc.c +1 -1
index 349046434513..344c141133e4 100644
@@ -67,7 +67,7 @@ void mach_get_cmos_time(struct timespec64 *now)
 		return;
 	}
 
-	if (mc146818_get_time(&tm)) {
+	if (mc146818_get_time(&tm, 1000)) {
 		pr_err("Unable to read current time from RTC\n");
 		now->tv_sec = now->tv_nsec = 0;
 		return;
arch/x86/kvm/svm/nested.c +0 -14
index bc288e6bde64..5d4d78c9a787 100644
@@ -239,18 +239,6 @@ static bool nested_svm_check_bitmap_pa(struct kvm_vcpu *vcpu, u64 pa, u32 size)
 	    kvm_vcpu_is_legal_gpa(vcpu, addr + size - 1);
 }
 
-static bool nested_svm_check_tlb_ctl(struct kvm_vcpu *vcpu, u8 tlb_ctl)
-{
-	/* Nested FLUSHBYASID is not supported yet.  */
-	switch(tlb_ctl) {
-		case TLB_CONTROL_DO_NOTHING:
-		case TLB_CONTROL_FLUSH_ALL_ASID:
-			return true;
-		default:
-			return false;
-	}
-}
-
 static bool __nested_vmcb_check_controls(struct kvm_vcpu *vcpu,
 					 struct vmcb_ctrl_area_cached *control)
 {
@@ -270,8 +258,6 @@ static bool __nested_vmcb_check_controls(struct kvm_vcpu *vcpu,
 					   IOPM_SIZE)))
 		return false;
 
-	if (CC(!nested_svm_check_tlb_ctl(vcpu, control->tlb_ctl)))
-		return false;
 
 	return true;
 }
block/ioctl.c +0 -2
index ebe4a2653622..47567ba1185a 100644
@@ -20,8 +20,6 @@ static int blkpg_do_ioctl(struct block_device *bdev,
 	struct blkpg_partition p;
 	sector_t start, length;
 
-	if (disk->flags & GENHD_FL_NO_PART)
-		return -EINVAL;
 	if (!capable(CAP_SYS_ADMIN))
 		return -EACCES;
 	if (copy_from_user(&p, upart, sizeof(struct blkpg_partition)))
block/partitions/core.c +5 -0
index b8112f52d388..3927f4283f6b 100644
@@ -453,6 +453,11 @@ int bdev_add_partition(struct gendisk *disk, int partno, sector_t start,
 		goto out;
 	}
 
+	if (disk->flags & GENHD_FL_NO_PART) {
+		ret = -EINVAL;
+		goto out;
+	}
+
 	if (partition_overlaps(disk, start, length, -1)) {
 		ret = -EBUSY;
 		goto out;
crypto/algapi.c +1 -0
index 5dc9ccdd5a51..c73d1359b9d4 100644
@@ -290,6 +290,7 @@ static struct crypto_larval *__crypto_register_alg(struct crypto_alg *alg)
 		}
 
 		if (!strcmp(q->cra_driver_name, alg->cra_name) ||
+		    !strcmp(q->cra_driver_name, alg->cra_driver_name) ||
 		    !strcmp(q->cra_name, alg->cra_driver_name))
 			goto err;
 	}
drivers/base/power/main.c +74 -86

299 lines not on this page · raw message

drivers/base/power/trace.c +1 -1
index 72b7a92337b1..cd6e559648b2 100644
@@ -120,7 +120,7 @@ static unsigned int read_magic_time(void)
 	struct rtc_time time;
 	unsigned int val;
 
-	if (mc146818_get_time(&time) < 0) {
+	if (mc146818_get_time(&time, 1000) < 0) {
 		pr_err("Unable to read current time from RTC\n");
 		return 0;
 	}
drivers/block/nbd.c +1 -5
index 8037aaefeb2e..9a53165de4ce 100644
@@ -494,7 +494,7 @@ static int __sock_xmit(struct nbd_device *nbd, struct socket *sock, int send,
 		       struct iov_iter *iter, int msg_flags, int *sent)
 {
 	int result;
-	struct msghdr msg;
+	struct msghdr msg = { };
 	unsigned int noreclaim_flag;
 
 	if (unlikely(!sock)) {
@@ -509,10 +509,6 @@ static int __sock_xmit(struct nbd_device *nbd, struct socket *sock, int send,
 	noreclaim_flag = memalloc_noreclaim_save();
 	do {
 		sock->sk->sk_allocation = GFP_NOIO | __GFP_MEMALLOC;
-		msg.msg_name = NULL;
-		msg.msg_namelen = 0;
-		msg.msg_control = NULL;
-		msg.msg_controllen = 0;
 		msg.msg_flags = msg_flags | MSG_NOSIGNAL;
 
 		if (send)
drivers/block/rbd.c +14 -8
index afc92869cba4..f58ca9ce3503 100644
@@ -3453,14 +3453,15 @@ static bool rbd_lock_add_request(struct rbd_img_request *img_req)
 static void rbd_lock_del_request(struct rbd_img_request *img_req)
 {
 	struct rbd_device *rbd_dev = img_req->rbd_dev;
-	bool need_wakeup;
+	bool need_wakeup = false;
 
 	lockdep_assert_held(&rbd_dev->lock_rwsem);
 	spin_lock(&rbd_dev->lock_lists_lock);
-	rbd_assert(!list_empty(&img_req->lock_item));
-	list_del_init(&img_req->lock_item);
-	need_wakeup = (rbd_dev->lock_state == RBD_LOCK_STATE_RELEASING &&
-		       list_empty(&rbd_dev->running_list));
+	if (!list_empty(&img_req->lock_item)) {
+		list_del_init(&img_req->lock_item);
+		need_wakeup = (rbd_dev->lock_state == RBD_LOCK_STATE_RELEASING &&
+			       list_empty(&rbd_dev->running_list));
+	}
 	spin_unlock(&rbd_dev->lock_lists_lock);
 	if (need_wakeup)
 		complete(&rbd_dev->releasing_wait);
@@ -3843,14 +3844,19 @@ static void wake_lock_waiters(struct rbd_device *rbd_dev, int result)
 		return;
 	}
 
-	list_for_each_entry(img_req, &rbd_dev->acquiring_list, lock_item) {
+	while (!list_empty(&rbd_dev->acquiring_list)) {
+		img_req = list_first_entry(&rbd_dev->acquiring_list,
+					   struct rbd_img_request, lock_item);
 		mutex_lock(&img_req->state_mutex);
 		rbd_assert(img_req->state == RBD_IMG_EXCLUSIVE_LOCK);
+		if (!result)
+			list_move_tail(&img_req->lock_item,
+				       &rbd_dev->running_list);
+		else
+			list_del_init(&img_req->lock_item);
 		rbd_img_schedule(img_req, result);
 		mutex_unlock(&img_req->state_mutex);
 	}
-
-	list_splice_tail_init(&rbd_dev->acquiring_list, &rbd_dev->running_list);
 }
 
 static bool locker_equal(const struct ceph_locker *lhs,
drivers/bus/mhi/ep/main.c +50 -18

95 lines not on this page · raw message

drivers/bus/mhi/host/main.c +19 -10
index 0c3a009ed9bb..8378c3319cd5 100644
@@ -268,7 +268,8 @@ static void mhi_del_ring_element(struct mhi_controller *mhi_cntrl,
 
 static bool is_valid_ring_ptr(struct mhi_ring *ring, dma_addr_t addr)
 {
-	return addr >= ring->iommu_base && addr < ring->iommu_base + ring->len;
+	return addr >= ring->iommu_base && addr < ring->iommu_base + ring->len &&
+			!(addr & (sizeof(struct mhi_ring_element) - 1));
 }
 
 int mhi_destroy_device(struct device *dev, void *data)
@@ -642,6 +643,8 @@ static int parse_xfer_event(struct mhi_controller *mhi_cntrl,
 			mhi_del_ring_element(mhi_cntrl, tre_ring);
 			local_rp = tre_ring->rp;
 
+			read_unlock_bh(&mhi_chan->lock);
+
 			/* notify client */
 			mhi_chan->xfer_cb(mhi_chan->mhi_dev, &result);
 
@@ -667,6 +670,8 @@ static int parse_xfer_event(struct mhi_controller *mhi_cntrl,
 					kfree(buf_info->cb_buf);
 				}
 			}
+
+			read_lock_bh(&mhi_chan->lock);
 		}
 		break;
 	} /* CC_EOT */
@@ -1119,17 +1124,15 @@ static int mhi_queue(struct mhi_device *mhi_dev, struct mhi_buf_info *buf_info,
 	if (unlikely(MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)))
 		return -EIO;
 
-	read_lock_irqsave(&mhi_cntrl->pm_lock, flags);
-
 	ret = mhi_is_ring_full(mhi_cntrl, tre_ring);
-	if (unlikely(ret)) {
-		ret = -EAGAIN;
-		goto exit_unlock;
-	}
+	if (unlikely(ret))
+		return -EAGAIN;
 
 	ret = mhi_gen_tre(mhi_cntrl, mhi_chan, buf_info, mflags);
 	if (unlikely(ret))
-		goto exit_unlock;
+		return ret;
+
+	read_lock_irqsave(&mhi_cntrl->pm_lock, flags);
 
 	/* Packet is queued, take a usage ref to exit M3 if necessary
 	 * for host->device buffer, balanced put is done on buffer completion
@@ -1149,7 +1152,6 @@ static int mhi_queue(struct mhi_device *mhi_dev, struct mhi_buf_info *buf_info,
 	if (dir == DMA_FROM_DEVICE)
 		mhi_cntrl->runtime_put(mhi_cntrl);
 
-exit_unlock:
 	read_unlock_irqrestore(&mhi_cntrl->pm_lock, flags);
 
 	return ret;
@@ -1201,6 +1203,9 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 	int eot, eob, chain, bei;
 	int ret;
 
+	/* Protect accesses for reading and incrementing WP */
+	write_lock_bh(&mhi_chan->lock);
+
 	buf_ring = &mhi_chan->buf_ring;
 	tre_ring = &mhi_chan->tre_ring;
 
@@ -1218,8 +1223,10 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 
 	if (!info->pre_mapped) {
 		ret = mhi_cntrl->map_single(mhi_cntrl, buf_info);
-		if (ret)
+		if (ret) {
+			write_unlock_bh(&mhi_chan->lock);
 			return ret;
+		}
 	}
 
 	eob = !!(flags & MHI_EOB);
@@ -1236,6 +1243,8 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 	mhi_add_ring_element(mhi_cntrl, tre_ring);
 	mhi_add_ring_element(mhi_cntrl, buf_ring);
 
+	write_unlock_bh(&mhi_chan->lock);
+
 	return 0;
 }
 
drivers/char/hw_random/core.c +21 -13
index 8f31f9d81030..c319f9937709 100644
@@ -24,10 +24,13 @@
 #include <linux/random.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 #include <linux/uaccess.h>
 
 #define RNG_MODULE_NAME		"hw_random"
 
+#define RNG_BUFFER_SIZE (SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES)
+
 static struct hwrng *current_rng;
 /* the current rng has been explicitly chosen by user via sysfs */
 static int cur_rng_set_by_user;
@@ -59,7 +62,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
 
 static size_t rng_buffer_size(void)
 {
-	return SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES;
+	return RNG_BUFFER_SIZE;
 }
 
 static void add_early_randomness(struct hwrng *rng)
@@ -211,6 +214,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
 static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 			    size_t size, loff_t *offp)
 {
+	u8 buffer[RNG_BUFFER_SIZE];
 	ssize_t ret = 0;
 	int err = 0;
 	int bytes_read, len;
@@ -238,34 +242,37 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 			if (bytes_read < 0) {
 				err = bytes_read;
 				goto out_unlock_reading;
+			} else if (bytes_read == 0 &&
+				   (filp->f_flags & O_NONBLOCK)) {
+				err = -EAGAIN;
+				goto out_unlock_reading;
 			}
+
 			data_avail = bytes_read;
 		}
 
-		if (!data_avail) {
-			if (filp->f_flags & O_NONBLOCK) {
-				err = -EAGAIN;
-				goto out_unlock_reading;
-			}
-		} else {
-			len = data_avail;
+		len = data_avail;
+		if (len) {
 			if (len > size)
 				len = size;
 
 			data_avail -= len;
 
-			if (copy_to_user(buf + ret, rng_buffer + data_avail,
-								len)) {
+			memcpy(buffer, rng_buffer + data_avail, len);
+		}
+		mutex_unlock(&reading_mutex);
+		put_rng(rng);
+
+		if (len) {
+			if (copy_to_user(buf + ret, buffer, len)) {
 				err = -EFAULT;
-				goto out_unlock_reading;
+				goto out;
 			}
 
 			size -= len;
 			ret += len;
 		}
 
-		mutex_unlock(&reading_mutex);
-		put_rng(rng);
 
 		if (need_resched())
 			schedule_timeout_interruptible(1);
@@ -276,6 +283,7 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 		}
 	}
 out:
+	memzero_explicit(buffer, sizeof(buffer));
 	return ret ? : err;
 
 out_unlock_reading:
drivers/cpufreq/intel_pstate.c +34 -21

100 lines not on this page · raw message

drivers/cxl/core/region.c +2 -2
index 2f7187dbfa2d..5b7d848a6f01 100644
@@ -450,7 +450,7 @@ static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size)
 	struct cxl_root_decoder *cxlrd = to_cxl_root_decoder(cxlr->dev.parent);
 	struct cxl_region_params *p = &cxlr->params;
 	struct resource *res;
-	u32 remainder = 0;
+	u64 remainder = 0;
 
 	lockdep_assert_held_write(&cxl_region_rwsem);
 
@@ -470,7 +470,7 @@ static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size)
 	    (cxlr->mode == CXL_DECODER_PMEM && uuid_is_null(&p->uuid)))
 		return -ENXIO;
 
-	div_u64_rem(size, SZ_256M * p->interleave_ways, &remainder);
+	div64_u64_rem(size, (u64)SZ_256M * p->interleave_ways, &remainder);
 	if (remainder)
 		return -EINVAL;
 
drivers/devfreq/devfreq.c +39 -18

84 lines not on this page · raw message

drivers/dma/dmaengine.c +3 -0
index 8a6e6b60d66f..892e8389232e 100644
@@ -1103,6 +1103,9 @@ EXPORT_SYMBOL_GPL(dma_async_device_channel_register);
 static void __dma_async_device_channel_unregister(struct dma_device *device,
 						  struct dma_chan *chan)
 {
+	if (chan->local == NULL)
+		return;
+
 	WARN_ONCE(!device->device_release && chan->client_count,
 		  "%s called while %d clients hold a reference\n",
 		  __func__, chan->client_count);
drivers/firmware/arm_scmi/common.h +1 -0
index a1c0154c31c6..4ac72754c255 100644
@@ -244,6 +244,7 @@ void shmem_fetch_notification(struct scmi_shared_mem __iomem *shmem,
 void shmem_clear_channel(struct scmi_shared_mem __iomem *shmem);
 bool shmem_poll_done(struct scmi_shared_mem __iomem *shmem,
 		     struct scmi_xfer *xfer);
+bool shmem_channel_free(struct scmi_shared_mem __iomem *shmem);
 
 /* declarations for message passing transports */
 struct scmi_msg_payld;
drivers/firmware/arm_scmi/mailbox.c +14 -0
index 25d31dfdad15..81c902672a30 100644
@@ -43,6 +43,20 @@ static void rx_callback(struct mbox_client *cl, void *m)
 {
 	struct scmi_mailbox *smbox = client_to_scmi_mailbox(cl);
 
+	/*
+	 * An A2P IRQ is NOT valid when received while the platform still has
+	 * the ownership of the channel, because the platform at first releases
+	 * the SMT channel and then sends the completion interrupt.
+	 *
+	 * This addresses a possible race condition in which a spurious IRQ from
+	 * a previous timed-out reply which arrived late could be wrongly
+	 * associated with the next pending transaction.
+	 */
+	if (cl->knows_txdone && !shmem_channel_free(smbox->shmem)) {
+		dev_warn(smbox->cinfo->dev, "Ignoring spurious A2P IRQ !\n");
+		return;
+	}
+
 	scmi_rx_callback(smbox->cinfo, shmem_read_header(smbox->shmem), NULL);
 }
 
drivers/firmware/arm_scmi/shmem.c +6 -0
index 87b4f4d35f06..517d52fb3bcb 100644
@@ -122,3 +122,9 @@ bool shmem_poll_done(struct scmi_shared_mem __iomem *shmem,
 		(SCMI_SHMEM_CHAN_STAT_CHANNEL_ERROR |
 		 SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE);
 }
+
+bool shmem_channel_free(struct scmi_shared_mem __iomem *shmem)
+{
+	return (ioread32(&shmem->channel_status) &
+			SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE);
+}
drivers/gpio/gpio-eic-sprd.c +28 -4
index 8d722e026e9c..c2857ed0c78a 100644
@@ -318,20 +318,27 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 		switch (flow_type) {
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IEV, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IC, 1);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IEV, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IC, 1);
 			break;
 		case IRQ_TYPE_EDGE_RISING:
 		case IRQ_TYPE_EDGE_FALLING:
 		case IRQ_TYPE_EDGE_BOTH:
 			state = sprd_eic_get(chip, offset);
-			if (state)
+			if (state) {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_DBNC_IEV, 0);
-			else
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_DBNC_IC, 1);
+			} else {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_DBNC_IEV, 1);
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_DBNC_IC, 1);
+			}
 			break;
 		default:
 			return -ENOTSUPP;
@@ -343,20 +350,27 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 		switch (flow_type) {
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTCLR, 1);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTCLR, 1);
 			break;
 		case IRQ_TYPE_EDGE_RISING:
 		case IRQ_TYPE_EDGE_FALLING:
 		case IRQ_TYPE_EDGE_BOTH:
 			state = sprd_eic_get(chip, offset);
-			if (state)
+			if (state) {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_LATCH_INTPOL, 0);
-			else
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_LATCH_INTCLR, 1);
+			} else {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_LATCH_INTPOL, 1);
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_LATCH_INTCLR, 1);
+			}
 			break;
 		default:
 			return -ENOTSUPP;
@@ -370,29 +384,34 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_FALLING:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_BOTH:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		default:
@@ -405,29 +424,34 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_FALLING:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_BOTH:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		default:
drivers/gpio/gpiolib-acpi.c +14 -0
index 787d47e667ad..33d73687e463 100644
@@ -1626,6 +1626,20 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = {
 			.ignore_wake = "ELAN0415:00@9",
 		},
 	},
+	{
+		/*
+		 * Spurious wakeups from TP_ATTN# pin
+		 * Found in BIOS 0.35
+		 * https://gitlab.freedesktop.org/drm/amd/-/issues/3073
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "GPD"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "G1619-04"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "PNP0C50:00@8",
+		},
+	},
 	{} /* Terminating entry */
 };
 
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +0 -2
index a8e1f2cfe12d..b9983ca99eb7 100644
@@ -2202,8 +2202,6 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
 
 		pci_wake_from_d3(pdev, TRUE);
 
-		pci_wake_from_d3(pdev, TRUE);
-
 		/*
 		 * For runpm implemented via BACO, PMFW will handle the
 		 * timing for BACO in and out:
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -2
index 13e0b521e3db..f02e509d5fac 100644
@@ -6677,8 +6677,7 @@ static int dm_encoder_helper_atomic_check(struct drm_encoder *encoder,
 	if (IS_ERR(mst_state))
 		return PTR_ERR(mst_state);
 
-	if (!mst_state->pbn_div)
-		mst_state->pbn_div = dm_mst_get_pbn_divider(aconnector->mst_port->dc_link);
+	mst_state->pbn_div = dm_mst_get_pbn_divider(aconnector->mst_port->dc_link);
 
 	if (!state->duplicated) {
 		int max_bpc = conn_state->max_requested_bpc;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c +9 -12
index e43b4d7dc60e..c8136a05a8d3 100644
@@ -131,30 +131,27 @@ static int dcn314_get_active_display_cnt_wa(
 	return display_count;
 }
 
-static void dcn314_disable_otg_wa(struct clk_mgr *clk_mgr_base, struct dc_state *context, bool disable)
+static void dcn314_disable_otg_wa(struct clk_mgr *clk_mgr_base, struct dc_state *context,
+				  bool safe_to_lower, bool disable)
 {
 	struct dc *dc = clk_mgr_base->ctx->dc;
 	int i;
 
 	for (i = 0; i < dc->res_pool->pipe_count; ++i) {
-		struct pipe_ctx *pipe = &dc->current_state->res_ctx.pipe_ctx[i];
+		struct pipe_ctx *pipe = safe_to_lower
+			? &context->res_ctx.pipe_ctx[i]
+			: &dc->current_state->res_ctx.pipe_ctx[i];
 
 		if (pipe->top_pipe || pipe->prev_odm_pipe)
 			continue;
 		if (pipe->stream && (pipe->stream->dpms_off || dc_is_virtual_signal(pipe->stream->signal))) {
-			struct stream_encoder *stream_enc = pipe->stream_res.stream_enc;
-
 			if (disable) {
-				if (stream_enc && stream_enc->funcs->disable_fifo)
-					pipe->stream_res.stream_enc->funcs->disable_fifo(stream_enc);
+				if (pipe->stream_res.tg && pipe->stream_res.tg->funcs->immediate_disable_crtc)
+					pipe->stream_res.tg->funcs->immediate_disable_crtc(pipe->stream_res.tg);
 
-				pipe->stream_res.tg->funcs->immediate_disable_crtc(pipe->stream_res.tg);
 				reset_sync_context_for_pipe(dc, context, i);
 			} else {
 				pipe->stream_res.tg->funcs->enable_crtc(pipe->stream_res.tg);
-
-				if (stream_enc && stream_enc->funcs->enable_fifo)
-					pipe->stream_res.stream_enc->funcs->enable_fifo(stream_enc);
 			}
 		}
 	}
@@ -254,11 +251,11 @@ void dcn314_update_clocks(struct clk_mgr *clk_mgr_base,
 	}
 
 	if (should_set_clock(safe_to_lower, new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz)) {
-		dcn314_disable_otg_wa(clk_mgr_base, context, true);
+		dcn314_disable_otg_wa(clk_mgr_base, context, safe_to_lower, true);
 
 		clk_mgr_base->clks.dispclk_khz = new_clocks->dispclk_khz;
 		dcn314_smu_set_dispclk(clk_mgr, clk_mgr_base->clks.dispclk_khz);
-		dcn314_disable_otg_wa(clk_mgr_base, context, false);
+		dcn314_disable_otg_wa(clk_mgr_base, context, safe_to_lower, false);
 
 		update_dispclk = true;
 	}
drivers/gpu/drm/amd/display/modules/power/power_helpers.c +2 -0
index 67287ad07226..e2f436dea565 100644
@@ -818,6 +818,8 @@ bool is_psr_su_specific_panel(struct dc_link *link)
 				isPSRSUSupported = false;
 			else if (dpcd_caps->sink_dev_id_str[1] == 0x08 && dpcd_caps->sink_dev_id_str[0] == 0x03)
 				isPSRSUSupported = false;
+			else if (dpcd_caps->sink_dev_id_str[1] == 0x08 && dpcd_caps->sink_dev_id_str[0] == 0x03)
+				isPSRSUSupported = false;
 			else if (dpcd_caps->psr_info.force_psrsu_cap == 0x1)
 				isPSRSUSupported = true;
 		}
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +3 -10
index 47ff3694ffa5..1d0693dad818 100644
@@ -24,6 +24,7 @@
 
 #include <linux/firmware.h>
 #include <linux/pci.h>
+#include <linux/power_supply.h>
 #include <linux/reboot.h>
 
 #include "amdgpu.h"
@@ -731,16 +732,8 @@ static int smu_late_init(void *handle)
 	 * handle the switch automatically. Driver involvement
 	 * is unnecessary.
 	 */
-	if (!smu->dc_controlled_by_gpio) {
-		ret = smu_set_power_source(smu,
-					   adev->pm.ac_power ? SMU_POWER_SOURCE_AC :
-					   SMU_POWER_SOURCE_DC);
-		if (ret) {
-			dev_err(adev->dev, "Failed to switch to %s mode!\n",
-				adev->pm.ac_power ? "AC" : "DC");
-			return ret;
-		}
-	}
+	adev->pm.ac_power = power_supply_is_system_supplied() > 0;
+	smu_set_ac_dc(smu);
 
 	if ((adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 1)) ||
 	    (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 3)))
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c +2 -0
index d490b571c8ff..2e061a74a0b7 100644
@@ -1467,10 +1467,12 @@ static int smu_v11_0_irq_process(struct amdgpu_device *adev,
 			case 0x3:
 				dev_dbg(adev->dev, "Switched to AC mode!\n");
 				schedule_work(&smu->interrupt_work);
+				adev->pm.ac_power = true;
 				break;
 			case 0x4:
 				dev_dbg(adev->dev, "Switched to DC mode!\n");
 				schedule_work(&smu->interrupt_work);
+				adev->pm.ac_power = false;
 				break;
 			case 0x7:
 				/*
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +2 -0
index 1b0fb93539ec..f3257cf4b06f 100644
@@ -1415,10 +1415,12 @@ static int smu_v13_0_irq_process(struct amdgpu_device *adev,
 			case 0x3:
 				dev_dbg(adev->dev, "Switched to AC mode!\n");
 				smu_v13_0_ack_ac_dc_interrupt(smu);
+				adev->pm.ac_power = true;
 				break;
 			case 0x4:
 				dev_dbg(adev->dev, "Switched to DC mode!\n");
 				smu_v13_0_ack_ac_dc_interrupt(smu);
+				adev->pm.ac_power = false;
 				break;
 			case 0x7:
 				/*
drivers/gpu/drm/bridge/analogix/anx7625.c +6 -1
index cf86cc05b7fc..5f8137e9cfd7 100644
@@ -1742,6 +1742,7 @@ static ssize_t anx7625_aux_transfer(struct drm_dp_aux *aux,
 	u8 request = msg->request & ~DP_AUX_I2C_MOT;
 	int ret = 0;
 
+	mutex_lock(&ctx->aux_lock);
 	pm_runtime_get_sync(dev);
 	msg->reply = 0;
 	switch (request) {
@@ -1758,6 +1759,7 @@ static ssize_t anx7625_aux_transfer(struct drm_dp_aux *aux,
 					msg->size, msg->buffer);
 	pm_runtime_mark_last_busy(dev);
 	pm_runtime_put_autosuspend(dev);
+	mutex_unlock(&ctx->aux_lock);
 
 	return ret;
 }
@@ -2454,7 +2456,9 @@ static void anx7625_bridge_atomic_disable(struct drm_bridge *bridge,
 	ctx->connector = NULL;
 	anx7625_dp_stop(ctx);
 
-	pm_runtime_put_sync(dev);
+	mutex_lock(&ctx->aux_lock);
+	pm_runtime_put_sync_suspend(dev);
+	mutex_unlock(&ctx->aux_lock);
 }
 
 static enum drm_connector_status
@@ -2648,6 +2652,7 @@ static int anx7625_i2c_probe(struct i2c_client *client)
 
 	mutex_init(&platform->lock);
 	mutex_init(&platform->hdcp_wq_lock);
+	mutex_init(&platform->aux_lock);
 
 	INIT_DELAYED_WORK(&platform->hdcp_work, hdcp_check_work_func);
 	platform->hdcp_workqueue = create_workqueue("hdcp workqueue");
drivers/gpu/drm/bridge/analogix/anx7625.h +2 -0
index 14f33d6be289..239956199e1b 100644
@@ -471,6 +471,8 @@ struct anx7625_data {
 	struct workqueue_struct *hdcp_workqueue;
 	/* Lock for hdcp work queue */
 	struct mutex hdcp_wq_lock;
+	/* Lock for aux transfer and disable */
+	struct mutex aux_lock;
 	char edid_block;
 	struct display_timing dt;
 	u8 display_timing_valid;
drivers/gpu/drm/bridge/nxp-ptn3460.c +3 -3
index 0851101a8c72..8686b20ac317 100644
@@ -54,13 +54,13 @@ static int ptn3460_read_bytes(struct ptn3460_bridge *ptn_bridge, char addr,
 	int ret;
 
 	ret = i2c_master_send(ptn_bridge->client, &addr, 1);
-	if (ret <= 0) {
+	if (ret < 0) {
 		DRM_ERROR("Failed to send i2c command, ret=%d\n", ret);
 		return ret;
 	}
 
 	ret = i2c_master_recv(ptn_bridge->client, buf, len);
-	if (ret <= 0) {
+	if (ret < 0) {
 		DRM_ERROR("Failed to recv i2c data, ret=%d\n", ret);
 		return ret;
 	}
@@ -78,7 +78,7 @@ static int ptn3460_write_byte(struct ptn3460_bridge *ptn_bridge, char addr,
 	buf[1] = val;
 
 	ret = i2c_master_send(ptn_bridge->client, buf, ARRAY_SIZE(buf));
-	if (ret <= 0) {
+	if (ret < 0) {
 		DRM_ERROR("Failed to send i2c command, ret=%d\n", ret);
 		return ret;
 	}
drivers/gpu/drm/bridge/parade-ps8640.c +23 -0
index 083337a27966..09737acc2cf4 100644
@@ -106,6 +106,7 @@ struct ps8640 {
 	struct device_link *link;
 	bool pre_enabled;
 	bool need_post_hpd_delay;
+	struct mutex aux_lock;
 };
 
 static const struct regmap_config ps8640_regmap_config[] = {
@@ -353,11 +354,20 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux,
 	struct device *dev = &ps_bridge->page[PAGE0_DP_CNTL]->dev;
 	int ret;
 
+	mutex_lock(&ps_bridge->aux_lock);
 	pm_runtime_get_sync(dev);
+	ret = _ps8640_wait_hpd_asserted(ps_bridge, 200 * 1000);
+	if (ret) {
+		pm_runtime_put_sync_suspend(dev);
+		goto exit;
+	}
 	ret = ps8640_aux_transfer_msg(aux, msg);
 	pm_runtime_mark_last_busy(dev);
 	pm_runtime_put_autosuspend(dev);
 
+exit:
+	mutex_unlock(&ps_bridge->aux_lock);
+
 	return ret;
 }
 
@@ -476,7 +486,18 @@ static void ps8640_post_disable(struct drm_bridge *bridge)
 	ps_bridge->pre_enabled = false;
 
 	ps8640_bridge_vdo_control(ps_bridge, DISABLE);
+
+	/*
+	 * The bridge seems to expect everything to be power cycled at the
+	 * disable process, so grab a lock here to make sure
+	 * ps8640_aux_transfer() is not holding a runtime PM reference and
+	 * preventing the bridge from suspend.
+	 */
+	mutex_lock(&ps_bridge->aux_lock);
+
 	pm_runtime_put_sync_suspend(&ps_bridge->page[PAGE0_DP_CNTL]->dev);
+
+	mutex_unlock(&ps_bridge->aux_lock);
 }
 
 static int ps8640_bridge_attach(struct drm_bridge *bridge,
@@ -657,6 +678,8 @@ static int ps8640_probe(struct i2c_client *client)
 	if (!ps_bridge)
 		return -ENOMEM;
 
+	mutex_init(&ps_bridge->aux_lock);
+
 	ps_bridge->supplies[0].supply = "vdd12";
 	ps_bridge->supplies[1].supply = "vdd33";
 	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ps_bridge->supplies),
drivers/gpu/drm/bridge/sii902x.c +33 -35

109 lines not on this page · raw message

drivers/gpu/drm/drm_plane.c +1 -0
index 33357629a7f5..7a4af43e2cd1 100644
@@ -1382,6 +1382,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
 out:
 	if (fb)
 		drm_framebuffer_put(fb);
+	fb = NULL;
 	if (plane->old_fb)
 		drm_framebuffer_put(plane->old_fb);
 	plane->old_fb = NULL;
drivers/gpu/drm/exynos/exynos5433_drm_decon.c +2 -2
index 8155d7e650f1..4bc5d9470acd 100644
@@ -319,9 +319,9 @@ static void decon_win_set_bldmod(struct decon_context *ctx, unsigned int win,
 static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,
 				 struct drm_framebuffer *fb)
 {
-	struct exynos_drm_plane plane = ctx->planes[win];
+	struct exynos_drm_plane *plane = &ctx->planes[win];
 	struct exynos_drm_plane_state *state =
-		to_exynos_plane_state(plane.base.state);
+		to_exynos_plane_state(plane->base.state);
 	unsigned int alpha = state->base.alpha;
 	unsigned int pixel_alpha;
 	unsigned long val;
drivers/gpu/drm/exynos/exynos_drm_fimd.c +2 -2
index ae6636e6658e..529033b980b2 100644
@@ -662,9 +662,9 @@ static void fimd_win_set_bldmod(struct fimd_context *ctx, unsigned int win,
 static void fimd_win_set_pixfmt(struct fimd_context *ctx, unsigned int win,
 				struct drm_framebuffer *fb, int width)
 {
-	struct exynos_drm_plane plane = ctx->planes[win];
+	struct exynos_drm_plane *plane = &ctx->planes[win];
 	struct exynos_drm_plane_state *state =
-		to_exynos_plane_state(plane.base.state);
+		to_exynos_plane_state(plane->base.state);
 	uint32_t pixel_format = fb->format->format;
 	unsigned int alpha = state->base.alpha;
 	u32 val = WINCONx_ENWIN;
drivers/gpu/drm/exynos/exynos_drm_gsc.c +1 -1
index 964dceb28c1e..68ea92742b06 100644
@@ -1342,7 +1342,7 @@ static int __maybe_unused gsc_runtime_resume(struct device *dev)
 	for (i = 0; i < ctx->num_clocks; i++) {
 		ret = clk_prepare_enable(ctx->clocks[i]);
 		if (ret) {
-			while (--i > 0)
+			while (--i >= 0)
 				clk_disable_unprepare(ctx->clocks[i]);
 			return ret;
 		}
drivers/gpu/drm/nouveau/nouveau_vmm.c +3 -0
index 67d6619fcd5e..29b5dedf6db8 100644
@@ -108,6 +108,9 @@ nouveau_vma_new(struct nouveau_bo *nvbo, struct nouveau_vmm *vmm,
 	} else {
 		ret = nvif_vmm_get(&vmm->vmm, PTES, false, mem->mem.page, 0,
 				   mem->mem.size, &tmp);
+		if (ret)
+			goto done;
+
 		vma->addr = tmp.addr;
 	}
 
drivers/gpu/drm/panel/panel-edp.c +3 -1
index a163585a2a52..ecd6238749f7 100644
@@ -975,6 +975,8 @@ static const struct panel_desc auo_b116xak01 = {
 	},
 	.delay = {
 		.hpd_absent = 200,
+		.unprepare = 500,
+		.enable = 50,
 	},
 };
 
@@ -1870,7 +1872,7 @@ static const struct edp_panel_entry edp_panels[] = {
 	EDP_PANEL_ENTRY('A', 'U', 'O', 0x1062, &delay_200_500_e50, "B120XAN01.0"),
 	EDP_PANEL_ENTRY('A', 'U', 'O', 0x1e9b, &delay_200_500_e50, "B133UAN02.1"),
 	EDP_PANEL_ENTRY('A', 'U', 'O', 0x1ea5, &delay_200_500_e50, "B116XAK01.6"),
-	EDP_PANEL_ENTRY('A', 'U', 'O', 0x405c, &auo_b116xak01.delay, "B116XAK01"),
+	EDP_PANEL_ENTRY('A', 'U', 'O', 0x405c, &auo_b116xak01.delay, "B116XAK01.0"),
 	EDP_PANEL_ENTRY('A', 'U', 'O', 0x615c, &delay_200_500_e50, "B116XAN06.1"),
 	EDP_PANEL_ENTRY('A', 'U', 'O', 0x8594, &delay_200_500_e50, "B133UAN01.0"),
 
drivers/gpu/drm/panel/panel-simple.c +2 -0
index 005377f58eb4..b714ee1bcbaa 100644
@@ -3603,6 +3603,7 @@ static const struct panel_desc tianma_tm070jdhg30 = {
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH,
 };
 
 static const struct panel_desc tianma_tm070jvhg33 = {
@@ -3615,6 +3616,7 @@ static const struct panel_desc tianma_tm070jvhg33 = {
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH,
 };
 
 static const struct display_timing tianma_tm070rvhg71_timing = {
drivers/gpu/drm/tidss/tidss_crtc.c +5 -5
index cd3c43a6c806..cb66a425dd20 100644
@@ -170,13 +170,13 @@ static void tidss_crtc_atomic_flush(struct drm_crtc *crtc,
 	struct tidss_device *tidss = to_tidss(ddev);
 	unsigned long flags;
 
-	dev_dbg(ddev->dev,
-		"%s: %s enabled %d, needs modeset %d, event %p\n", __func__,
-		crtc->name, drm_atomic_crtc_needs_modeset(crtc->state),
-		crtc->state->enable, crtc->state->event);
+	dev_dbg(ddev->dev, "%s: %s is %sactive, %s modeset, event %p\n",
+		__func__, crtc->name, crtc->state->active ? "" : "not ",
+		drm_atomic_crtc_needs_modeset(crtc->state) ? "needs" : "doesn't need",
+		crtc->state->event);
 
 	/* There is nothing to do if CRTC is not going to be enabled. */
-	if (!crtc->state->enable)
+	if (!crtc->state->active)
 		return;
 
 	/*
drivers/iio/adc/ad7091r-base.c +169 -0

208 lines not on this page · raw message

drivers/iio/adc/ad7091r-base.h +8 -0
index 509748aef9b1..b9e1c8bf3440 100644
@@ -8,6 +8,12 @@
 #ifndef __DRIVERS_IIO_ADC_AD7091R_BASE_H__
 #define __DRIVERS_IIO_ADC_AD7091R_BASE_H__
 
+#define AD7091R_REG_CONF_INT_VREF	BIT(0)
+
+/* AD7091R_REG_CH_LIMIT */
+#define AD7091R_HIGH_LIMIT		0xFFF
+#define AD7091R_LOW_LIMIT		0x0
+
 struct device;
 struct ad7091r_state;
 
@@ -17,6 +23,8 @@ struct ad7091r_chip_info {
 	unsigned int vref_mV;
 };
 
+extern const struct iio_event_spec ad7091r_events[3];
+
 extern const struct regmap_config ad7091r_regmap_config;
 
 int ad7091r_probe(struct device *dev, const char *name,
drivers/iio/adc/ad7091r5.c +4 -24
index 47f5763023a4..12d475463945 100644
@@ -12,26 +12,6 @@
 
 #include "ad7091r-base.h"
 
-static const struct iio_event_spec ad7091r5_events[] = {
-	{
-		.type = IIO_EV_TYPE_THRESH,
-		.dir = IIO_EV_DIR_RISING,
-		.mask_separate = BIT(IIO_EV_INFO_VALUE) |
-				 BIT(IIO_EV_INFO_ENABLE),
-	},
-	{
-		.type = IIO_EV_TYPE_THRESH,
-		.dir = IIO_EV_DIR_FALLING,
-		.mask_separate = BIT(IIO_EV_INFO_VALUE) |
-				 BIT(IIO_EV_INFO_ENABLE),
-	},
-	{
-		.type = IIO_EV_TYPE_THRESH,
-		.dir = IIO_EV_DIR_EITHER,
-		.mask_separate = BIT(IIO_EV_INFO_HYSTERESIS),
-	},
-};
-
 #define AD7091R_CHANNEL(idx, bits, ev, num_ev) { \
 	.type = IIO_VOLTAGE, \
 	.info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \
@@ -44,10 +24,10 @@ static const struct iio_event_spec ad7091r5_events[] = {
 	.scan_type.realbits = bits, \
 }
 static const struct iio_chan_spec ad7091r5_channels_irq[] = {
-	AD7091R_CHANNEL(0, 12, ad7091r5_events, ARRAY_SIZE(ad7091r5_events)),
-	AD7091R_CHANNEL(1, 12, ad7091r5_events, ARRAY_SIZE(ad7091r5_events)),
-	AD7091R_CHANNEL(2, 12, ad7091r5_events, ARRAY_SIZE(ad7091r5_events)),
-	AD7091R_CHANNEL(3, 12, ad7091r5_events, ARRAY_SIZE(ad7091r5_events)),
+	AD7091R_CHANNEL(0, 12, ad7091r_events, ARRAY_SIZE(ad7091r_events)),
+	AD7091R_CHANNEL(1, 12, ad7091r_events, ARRAY_SIZE(ad7091r_events)),
+	AD7091R_CHANNEL(2, 12, ad7091r_events, ARRAY_SIZE(ad7091r_events)),
+	AD7091R_CHANNEL(3, 12, ad7091r_events, ARRAY_SIZE(ad7091r_events)),
 };
 
 static const struct iio_chan_spec ad7091r5_channels_noirq[] = {
drivers/media/common/videobuf2/videobuf2-dma-sg.c +8 -2
index fa69158a65b1..cb1e4bc69dba 100644
@@ -494,9 +494,15 @@ vb2_dma_sg_dmabuf_ops_end_cpu_access(struct dma_buf *dbuf,
 static int vb2_dma_sg_dmabuf_ops_vmap(struct dma_buf *dbuf,
 				      struct iosys_map *map)
 {
-	struct vb2_dma_sg_buf *buf = dbuf->priv;
+	struct vb2_dma_sg_buf *buf;
+	void *vaddr;
+
+	buf = dbuf->priv;
+	vaddr = vb2_dma_sg_vaddr(buf->vb, buf);
+	if (!vaddr)
+		return -EINVAL;
 
-	iosys_map_set_vaddr(map, buf->vaddr);
+	iosys_map_set_vaddr(map, vaddr);
 
 	return 0;
 }
drivers/media/i2c/imx355.c +7 -5
index b46178681c05..7fb02ba56012 100644
@@ -1784,10 +1784,6 @@ static int imx355_probe(struct i2c_client *client)
 		goto error_handler_free;
 	}
 
-	ret = v4l2_async_register_subdev_sensor(&imx355->sd);
-	if (ret < 0)
-		goto error_media_entity;
-
 	/*
 	 * Device is already turned on by i2c-core with ACPI domain PM.
 	 * Enable runtime PM and turn off the device.
@@ -1796,9 +1792,15 @@ static int imx355_probe(struct i2c_client *client)
 	pm_runtime_enable(&client->dev);
 	pm_runtime_idle(&client->dev);
 
+	ret = v4l2_async_register_subdev_sensor(&imx355->sd);
+	if (ret < 0)
+		goto error_media_entity_runtime_pm;
+
 	return 0;
 
-error_media_entity:
+error_media_entity_runtime_pm:
+	pm_runtime_disable(&client->dev);
+	pm_runtime_set_suspended(&client->dev);
 	media_entity_cleanup(&imx355->sd.entity);
 
 error_handler_free:
drivers/media/i2c/ov13b10.c +55 -31

150 lines not on this page · raw message

drivers/media/i2c/ov9734.c +11 -8
index 8b0a158cb297..c5592ddb0cff 100644
@@ -939,6 +939,7 @@ static void ov9734_remove(struct i2c_client *client)
 	media_entity_cleanup(&sd->entity);
 	v4l2_ctrl_handler_free(sd->ctrl_handler);
 	pm_runtime_disable(&client->dev);
+	pm_runtime_set_suspended(&client->dev);
 	mutex_destroy(&ov9734->mutex);
 }
 
@@ -984,13 +985,6 @@ static int ov9734_probe(struct i2c_client *client)
 		goto probe_error_v4l2_ctrl_handler_free;
 	}
 
-	ret = v4l2_async_register_subdev_sensor(&ov9734->sd);
-	if (ret < 0) {
-		dev_err(&client->dev, "failed to register V4L2 subdev: %d",
-			ret);
-		goto probe_error_media_entity_cleanup;
-	}
-
 	/*
 	 * Device is already turned on by i2c-core with ACPI domain PM.
 	 * Enable runtime PM and turn off the device.
@@ -999,9 +993,18 @@ static int ov9734_probe(struct i2c_client *client)
 	pm_runtime_enable(&client->dev);
 	pm_runtime_idle(&client->dev);
 
+	ret = v4l2_async_register_subdev_sensor(&ov9734->sd);
+	if (ret < 0) {
+		dev_err(&client->dev, "failed to register V4L2 subdev: %d",
+			ret);
+		goto probe_error_media_entity_cleanup_pm;
+	}
+
 	return 0;
 
-probe_error_media_entity_cleanup:
+probe_error_media_entity_cleanup_pm:
+	pm_runtime_disable(&client->dev);
+	pm_runtime_set_suspended(&client->dev);
 	media_entity_cleanup(&ov9734->sd.entity);
 
 probe_error_v4l2_ctrl_handler_free:
drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c +3 -3
index 3071b61946c3..f911d3c7dd86 100644
@@ -974,13 +974,13 @@ static void mtk_jpeg_dec_device_run(void *priv)
 	if (ret < 0)
 		goto dec_end;
 
-	schedule_delayed_work(&jpeg->job_timeout_work,
-			      msecs_to_jiffies(MTK_JPEG_HW_TIMEOUT_MSEC));
-
 	mtk_jpeg_set_dec_src(ctx, &src_buf->vb2_buf, &bs);
 	if (mtk_jpeg_set_dec_dst(ctx, &jpeg_src_buf->dec_param, &dst_buf->vb2_buf, &fb))
 		goto dec_end;
 
+	schedule_delayed_work(&jpeg->job_timeout_work,
+			      msecs_to_jiffies(MTK_JPEG_HW_TIMEOUT_MSEC));
+
 	spin_lock_irqsave(&jpeg->hw_lock, flags);
 	mtk_jpeg_dec_reset(jpeg->reg_base);
 	mtk_jpeg_dec_set_config(jpeg->reg_base,
drivers/mmc/core/block.c +43 -3

102 lines not on this page · raw message

drivers/mmc/host/mmc_spi.c +5 -181

329 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt.c +5 -0
index df4d88d35701..f810b5dc25f0 100644

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

drivers/net/ethernet/freescale/fec_main.c +2 -0
index 6d1b76002282..97d12c7eea77 100644

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

drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +26 -1
index f936640cca4e..2f80ee84c7ec 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c +1 -0
index e1283531e0b8..671adbad0a40 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/params.c +2 -2
index 29dd3a04c154..d3de1b7a80bf 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.h +1 -1
index 16bcceec16c4..785f188148d8 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c +15 -11
index dc0a0a27ac84..58eacba6de8c 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c +1 -1
index c971ff04dd04..c215252f2f53 100644

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

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c +12 -5
index a3e7602b044e..bf7517725d8c 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +3 -0
index 8f8de14347a9..e988a60c8561 100644

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

drivers/net/fjes/fjes_hw.c +30 -7
index 704e949484d0..b9b5554ea862 100644

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

drivers/net/hyperv/netvsc_drv.c +2 -2
index 0285894c892a..c1aac6ceb29e 100644

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

drivers/net/phy/micrel.c +11 -0
index 7cbcf51bae92..9481f172830f 100644

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

drivers/net/tun.c +8 -2
index d373953ddc30..367255bb44cd 100644

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

drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c +1 -1
index a1d34f3e7a9f..5979d904bbbd 100644

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

drivers/opp/core.c +3 -3
index f0d70ecc0271..71d3e3ba909a 100644

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

drivers/parisc/power.c +1 -1
index 332bcc0053a5..498bae2e3403 100644

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

drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c +32 -32

64 lines not on this page · raw message

drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.h +10 -10
index f5dcfa2fb285..2d9dc3151d6e 100644

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

drivers/platform/x86/p2sb.c +139 -41

180 lines not on this page · raw message

drivers/rpmsg/virtio_rpmsg_bus.c +1 -0
index 905ac7910c98..f1af0f674615 100644

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

drivers/rtc/rtc-cmos.c +17 -11
index 00e2ca7374ec..e0a798923ce0 100644

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

drivers/rtc/rtc-mc146818-lib.c +30 -9
index f1c09f1db044..651bf3c279c7 100644

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

drivers/s390/crypto/vfio_ap_ops.c +32 -40

72 lines not on this page · raw message

drivers/spi/spi-bcm-qspi.c +2 -2
index 137e7315a3cf..b24955910147 100644

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

drivers/spi/spi.c +4 -0
index 22d227878bc4..19688f333e0b 100644

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

drivers/thermal/intel/intel_hfi.c +85 -21

106 lines not on this page · raw message

drivers/tty/serial/sc16is7xx.c +203 -186

389 lines not on this page · raw message

drivers/ufs/core/ufshcd.c +2 -5
index 474e94a69b18..9fd4e9ed93b8 100644

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

drivers/usb/dwc3/gadget.c +38 -32

70 lines not on this page · raw message

fs/afs/dir.c +8 -0
index 07dc4ec73520..cf811b77ee67 100644

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

fs/btrfs/ctree.h +1 -0
index 27d06bb5e5c0..cca1acf2e037 100644

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

fs/btrfs/delayed-inode.c +3 -2
index 1331e56e8e84..c6426080cf0a 100644

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

fs/btrfs/delayed-inode.h +1 -0
index 0163ca637a96..fc6fae9640f8 100644

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

fs/btrfs/extent-tree.c +39 -14

53 lines not on this page · raw message

fs/btrfs/inode.c +110 -62

172 lines not on this page · raw message

fs/btrfs/ioctl.c +7 -0
index e8e4781c48a5..8516c70b5edc 100644

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

fs/btrfs/ref-verify.c +4 -2
index 4b052d4009d3..8083fe866d2b 100644

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

fs/btrfs/sysfs.c +4 -0
index 74fef1f49c35..fc468d1079c2 100644

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

fs/btrfs/tree-checker.c +1 -1
index 2b39c7f9226f..02e8398246ae 100644

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

fs/dlm/lowcomms.c +7 -7
index 6ed09edabea0..72f34f96d015 100644

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

fs/erofs/decompressor.c +25 -24

49 lines not on this page · raw message

fs/exec.c +3 -0
index 283012eb1aeb..39f7751c90fc 100644

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

fs/ext4/mballoc.c +10 -5
index a6e41746890d..33be702d6e38 100644

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

fs/fscache/cache.c +2 -1
index d645f8b302a2..9397ed39b0b4 100644

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

fs/ioctl.c +1 -2
index 80ac36aea913..2bd05509295a 100644

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

fs/namei.c +37 -23

60 lines not on this page · raw message

fs/pipe.c +8 -11
index 42c7ff41c2db..9873a6030df5 100644

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

fs/smb/server/connection.c +1 -0
index 7977827c6541..09e1e7771592 100644

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

fs/smb/server/ksmbd_netlink.h +2 -1
index b7521e41402e..0ebf91ffa236 100644

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

fs/smb/server/oplock.c +11 -5
index f1831e26adad..1253e9bde34c 100644

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

fs/smb/server/smb2pdu.c +5 -3
index 6826b562073e..4cfa45c2727e 100644

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

fs/smb/server/transport_ipc.c +2 -2
index b49d47bdafc9..f29bb03f0dc4 100644

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

fs/ubifs/dir.c +2 -0
index 66ba57a139d2..4d9782e2fab1 100644

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

fs/xfs/xfs_super.c +17 -10
index 4b179526913f..12662b169b71 100644

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

include/linux/async.h +2 -0
index cce4ad31e8fc..33c9ff4afb49 100644

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

include/linux/lsm_hook_defs.h +2 -0
index 02b19c508b78..6239a378c0ea 100644

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

include/linux/mc146818rtc.h +2 -1
index b0da04fe087b..34dfcc77f505 100644

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

include/linux/mmzone.h +11 -3
index 323ee36df683..638d2124d1cb 100644

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

include/linux/pipe_fs_i.h +16 -0
index 28b3c6a67397..1f1e7ae95320 100644

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

include/linux/rmap.h +2 -2
index 2bdba700bc3e..7d1ecd9b4373 100644

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

include/linux/security.h +9 -0
index a6c97cc57caa..2772f6375f14 100644

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

include/linux/serial_core.h +79 -0

79 lines not on this page · raw message

include/linux/skmsg.h +0 -6
index c953b8c0d2f4..bd4418377bac 100644

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

include/linux/syscalls.h +1 -0
index a34b0f9a9972..27a6ba1c0ec4 100644

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

include/net/inet_connection_sock.h +8 -0
index c2b15f7e5516..080968d6e6c5 100644

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

include/net/inet_sock.h +0 -5
index c2432c2addc8..c98890e21401 100644

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

include/net/llc_pdu.h +2 -4
index 49aa79c7b278..581cd37aa98b 100644

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

include/net/sock.h +17 -1
index 6b51e85ae69e..579732d47dfc 100644

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

include/uapi/linux/btrfs.h +3 -0
index d4d4fa0bb362..24b54635bae9 100644

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

kernel/async.c +63 -22

85 lines not on this page · raw message

kernel/power/swap.c +19 -19
index cc44c37699de..5ab54ab5ace7 100644

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

kernel/rcu/tree.c +33 -1
index 15df37bc052a..9d7464a90f85 100644

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

kernel/rcu/tree_exp.h +1 -2
index aa3ec3c3b9f7..6d2cbed96b46 100644

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

kernel/time/tick-sched.c +5 -0
index 1a5d02224d46..8cfdc6b978d7 100644

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

kernel/trace/tracing_map.c +6 -1
index c774e560f2f9..a4dcf0f24352 100644

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

mm/page_alloc.c +8 -8
index 4583f8a42d91..c783806eefc9 100644

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

mm/sparse.c +9 -8
index e5a8a3a0edd7..05d1e7b6c6db 100644

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

net/8021q/vlan_netlink.c +4 -0
index 214532173536..a3b68243fd4b 100644

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

net/core/dev.c +9 -0
index 0a5566b6f8a2..1ba3662faf0a 100644

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

net/core/dev.h +3 -0
index 9ca91457c197..db9ff8cd8d46 100644

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

net/core/request_sock.c +0 -3
index f35c2e998406..63de5c635842 100644

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

net/core/sock.c +9 -2
index c50a14a02edd..c8803b95ea0d 100644

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

net/ipv4/af_inet.c +3 -0
index c13b8ed63f87..2f646335d218 100644

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

net/ipv4/inet_connection_sock.c +4 -0
index 80ce0112e24b..79fa19a36bbd 100644

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

net/ipv4/tcp.c +1 -0
index 0b7844a8d571..90e24c3f6557 100644

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

net/ipv6/af_inet6.c +3 -0
index a2f29ca51600..0b42eb8c55aa 100644

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

net/llc/af_llc.c +16 -8
index 9ffbc667be6c..19c478bd85bd 100644

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

net/llc/llc_core.c +0 -7
index 6e387aadffce..4f16d9c88350 100644

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

net/mac80211/sta_info.c +4 -1
index 49b71453dec3..f3d6c3e4c970 100644

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

net/netfilter/nf_tables_api.c +10 -10
index 2702294ac46c..1edb2138260a 100644

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

net/netfilter/nft_chain_filter.c +9 -2
index 680fe557686e..274b6f7e6bb5 100644

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

net/netfilter/nft_compat.c +12 -0
index c16172427622..6952da7dfc02 100644

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

net/netfilter/nft_flow_offload.c +5 -0
index 8a43f6f9c90b..3d9f6dda5aeb 100644

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

net/netfilter/nft_limit.c +16 -7
index 75c05ef885a9..36ded7d43262 100644

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

net/netfilter/nft_nat.c +5 -0
index 353c090f8891..ba7bcce724ef 100644

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

net/netfilter/nft_rt.c +5 -0
index 71931ec91721..7d21e16499bf 100644

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

net/netfilter/nft_socket.c +5 -0
index 777561b71fcb..f28324fd8d71 100644

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

net/netfilter/nft_synproxy.c +5 -2
index 6cf9a04fbfe2..a450f28a5ef6 100644

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

net/netfilter/nft_tproxy.c +5 -0
index 62da25ad264b..adb50c39572e 100644

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

net/netfilter/nft_xfrm.c +5 -0
index 1c5343c936a8..30259846c352 100644

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

net/netlink/af_netlink.c +1 -1
index cb833302270a..6857a4965fe8 100644

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

net/rds/af_rds.c +1 -1
index 3ff6995244e5..d107f7605db4 100644

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

net/smc/smc_diag.c +1 -1
index 801044e7d194..7a907186a33a 100644

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

scripts/get_abi.pl +1 -1
index 0ffd5531242a..408bfd0216da 100755

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

security/security.c +18 -0
index 5fa286ae9908..fc15b963e102 100644

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

security/selinux/hooks.c +28 -0
index d45e9fa74e62..78f3da39b031 100644

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

security/smack/smack_lsm.c +1 -0
index cd6a03e945eb..fbadc61feedd 100644

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

security/tomoyo/tomoyo.c +1 -0
index 71e82d855ebf..fb599401bc7d 100644

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

tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh +9 -0
index 1b08e042cf94..185b02d2d4cd 100755

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.