Skip to contentSkip to conversation

Linux 5.10.82

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Nov 26, 2021 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.10.82 kernel.

All users of the 5.10 kernel series must upgrade.

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

thanks,

greg k-h

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

 Makefile                                                   |    2 
 arch/arm/boot/dts/bcm-nsp.dtsi                             |    4 
 arch/arm/boot/dts/bcm53016-meraki-mr32.dts                 |   22 +
 arch/arm/boot/dts/ls1021a-tsn.dts                          |    2 
 arch/arm/boot/dts/ls1021a.dtsi                             |   66 ++--
 arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi                  |    2 
 arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi          |    2 
 arch/arm/boot/dts/qcom-ipq8064-rb3011.dts                  |    6 
 arch/arm/boot/dts/ste-ux500-samsung-skomer.dts             |    8 
 arch/arm/boot/dts/sun8i-a33.dtsi                           |    4 
 arch/arm/boot/dts/sun8i-a83t.dtsi                          |    4 
 arch/arm/boot/dts/sun8i-h3.dtsi                            |    4 
 arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi             |    6 
 arch/arm64/boot/dts/allwinner/sun50i-a64-cpu-opp.dtsi      |    2 
 arch/arm64/boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi       |    2 
 arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi               |    2 
 arch/arm64/boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi       |    2 
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi             |   16 -
 arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi             |   16 -
 arch/arm64/boot/dts/hisilicon/hi3660.dtsi                  |    4 
 arch/arm64/boot/dts/hisilicon/hi6220.dtsi                  |    2 
 arch/arm64/boot/dts/qcom/ipq6018.dtsi                      |    2 
 arch/arm64/boot/dts/qcom/msm8998.dtsi                      |   20 -
 arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts       |    4 
 arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts     |    4 
 arch/arm64/boot/dts/xilinx/zynqmp.dtsi                     |    4 
 arch/arm64/kernel/vdso32/Makefile                          |    3 
 arch/hexagon/include/asm/timer-regs.h                      |   26 -
 arch/hexagon/include/asm/timex.h                           |    3 
 arch/hexagon/kernel/time.c                                 |   12 
 arch/hexagon/lib/io.c                                      |    4 
 arch/mips/Kconfig                                          |    3 
 arch/mips/bcm63xx/clk.c                                    |    6 
 arch/mips/generic/yamon-dt.c                               |    2 
 arch/mips/lantiq/clk.c                                     |    6 
 arch/mips/sni/time.c                                       |    4 
 arch/powerpc/boot/dts/charon.dts                           |    2 
 arch/powerpc/boot/dts/digsy_mtc.dts                        |    2 
 arch/powerpc/boot/dts/lite5200.dts                         |    2 
 arch/powerpc/boot/dts/lite5200b.dts                        |    2 
 arch/powerpc/boot/dts/media5200.dts                        |    2 
 arch/powerpc/boot/dts/mpc5200b.dtsi                        |    2 
 arch/powerpc/boot/dts/o2d.dts                              |    2 
 arch/powerpc/boot/dts/o2d.dtsi                             |    2 
 arch/powerpc/boot/dts/o2dnt2.dts                           |    2 
 arch/powerpc/boot/dts/o3dnt.dts                            |    2 
 arch/powerpc/boot/dts/pcm032.dts                           |    2 
 arch/powerpc/boot/dts/tqm5200.dts                          |    2 
 arch/powerpc/kernel/head_8xx.S                             |   13 
 arch/powerpc/kvm/book3s_hv_rmhandlers.S                    |    4 
 arch/powerpc/sysdev/dcr-low.S                              |    2 
 arch/s390/include/asm/kexec.h                              |    6 
 arch/s390/kernel/ipl.c                                     |    3 
 arch/s390/kernel/machine_kexec_file.c                      |   18 +
 arch/sh/Kconfig.debug                                      |    1 
 arch/sh/include/asm/sfp-machine.h                          |    8 
 arch/sh/kernel/cpu/sh4a/smp-shx3.c                         |    5 
 arch/sh/math-emu/math.c                                    |  103 -------
 arch/x86/Kconfig                                           |    3 
 arch/x86/events/intel/core.c                               |    4 
 arch/x86/events/intel/uncore_snbep.c                       |    4 
 arch/x86/hyperv/hv_init.c                                  |    3 
 arch/x86/kvm/vmx/nested.c                                  |   22 +
 block/blk-core.c                                           |    4 
 block/ioprio.c                                             |    9 
 drivers/base/firmware_loader/main.c                        |   13 
 drivers/bus/ti-sysc.c                                      |  110 +++++++
 drivers/clk/clk-ast2600.c                                  |   12 
 drivers/clk/imx/clk-imx6ul.c                               |    2 
 drivers/clk/ingenic/cgu.c                                  |    6 
 drivers/clk/qcom/gcc-msm8996.c                             |   15 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c             |    1 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c      |    4 
 drivers/gpu/drm/amd/display/dc/dml/display_mode_enums.h    |    4 
 drivers/gpu/drm/i915/display/intel_dp.c                    |   11 
 drivers/gpu/drm/nouveau/nouveau_drm.c                      |   42 ++
 drivers/gpu/drm/nouveau/nouveau_drv.h                      |    5 
 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c       |    1 
 drivers/gpu/drm/udl/udl_connector.c                        |    2 
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c               |    6 
 drivers/infiniband/hw/bnxt_re/ib_verbs.c                   |   12 
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_init_ops.h       |    4 
 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c               |    2 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c           |    4 
 drivers/net/ethernet/intel/e100.c                          |   18 -
 drivers/net/ethernet/intel/i40e/i40e.h                     |    2 
 drivers/net/ethernet/intel/i40e/i40e_main.c                |  160 +++++++----
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c         |  121 ++------
 drivers/net/ethernet/intel/iavf/iavf_ethtool.c             |   30 +-
 drivers/net/ethernet/intel/iavf/iavf_main.c                |   14 
 drivers/net/ethernet/intel/ice/ice_main.c                  |    3 
 drivers/net/ethernet/mellanox/mlx5/core/cq.c               |    5 
 drivers/net/ethernet/mellanox/mlx5/core/debugfs.c          |    4 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c          |   11 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h          |    2 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c |   28 -
 drivers/net/ethernet/mellanox/mlx5/core/lag.c              |   28 -
 drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c             |    5 
 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c        |   24 +
 drivers/net/ipa/ipa_endpoint.c                             |    2 
 drivers/net/tun.c                                          |    5 
 drivers/pinctrl/qcom/pinctrl-sdm845.c                      |    1 
 drivers/platform/x86/hp_accel.c                            |    2 
 drivers/scsi/advansys.c                                    |    4 
 drivers/scsi/lpfc/lpfc_sli.c                               |    1 
 drivers/scsi/qla2xxx/qla_mbx.c                             |    6 
 drivers/scsi/scsi_debug.c                                  |   11 
 drivers/scsi/scsi_sysfs.c                                  |   30 +-
 drivers/scsi/ufs/ufshcd.c                                  |   57 +--
 drivers/scsi/ufs/ufshcd.h                                  |    1 
 drivers/sh/maple/maple.c                                   |    5 
 drivers/staging/rtl8723bs/core/rtw_mlme_ext.c              |    7 
 drivers/staging/rtl8723bs/core/rtw_recv.c                  |   10 
 drivers/staging/rtl8723bs/core/rtw_sta_mgt.c               |   22 -
 drivers/staging/rtl8723bs/core/rtw_xmit.c                  |   16 -
 drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c             |    2 
 drivers/staging/wfx/bus_sdio.c                             |   17 -
 drivers/target/target_core_alua.c                          |    1 
 drivers/target/target_core_device.c                        |    2 
 drivers/target/target_core_internal.h                      |    1 
 drivers/target/target_core_transport.c                     |   76 +++--
 drivers/tty/tty_buffer.c                                   |    3 
 drivers/usb/host/max3421-hcd.c                             |   25 -
 drivers/usb/host/ohci-tmio.c                               |    2 
 drivers/usb/musb/tusb6010.c                                |    5 
 drivers/usb/typec/tps6598x.c                               |    2 
 drivers/video/console/sticon.c                             |   12 
 fs/btrfs/async-thread.c                                    |   14 
 fs/btrfs/volumes.c                                         |   21 -
 fs/f2fs/f2fs.h                                             |    3 
 fs/f2fs/super.c                                            |    4 
 fs/inode.c                                                 |    7 
 fs/udf/dir.c                                               |   32 ++
 fs/udf/namei.c                                             |    3 
 fs/udf/super.c                                             |    2 
 include/linux/fs.h                                         |    2 
 include/linux/perf_event.h                                 |    1 
 include/linux/platform_data/ti-sysc.h                      |    1 
 include/linux/trace_events.h                               |    2 
 include/linux/virtio_net.h                                 |    7 
 include/net/nfc/nci_core.h                                 |    1 
 include/rdma/rdma_netlink.h                                |    2 
 include/sound/hdaudio_ext.h                                |    2 
 include/target/target_core_base.h                          |    6 
 include/trace/events/f2fs.h                                |   12 
 include/uapi/linux/tcp.h                                   |    2 
 ipc/util.c                                                 |    6 
 kernel/events/core.c                                       |  142 ++++-----
 kernel/sched/core.c                                        |    3 
 kernel/trace/trace_events_hist.c                           |   14 
 mm/hugetlb.c                                               |   23 +
 mm/slab.h                                                  |    2 
 net/core/sock.c                                            |  189 ++++++-------
 net/ipv4/tcp.c                                             |  122 ++++++--
 net/nfc/core.c                                             |   32 +-
 net/nfc/nci/core.c                                         |   34 +-
 net/sched/act_mirred.c                                     |   11 
 net/smc/smc_core.c                                         |    3 
 net/tipc/crypto.c                                          |    4 
 net/tipc/link.c                                            |    7 
 net/wireless/util.c                                        |    1 
 security/selinux/ss/hashtab.c                              |   17 -
 sound/core/Makefile                                        |    2 
 sound/hda/ext/hdac_ext_stream.c                            |   46 +--
 sound/hda/hdac_stream.c                                    |    4 
 sound/hda/intel-dsp-config.c                               |   22 +
 sound/isa/Kconfig                                          |    2 
 sound/isa/gus/gus_dma.c                                    |    2 
 sound/pci/Kconfig                                          |    1 
 sound/soc/codecs/nau8824.c                                 |   40 ++
 sound/soc/soc-dapm.c                                       |   29 +
 sound/soc/sof/intel/hda-dai.c                              |    7 
 tools/perf/bench/futex-lock-pi.c                           |    1 
 tools/perf/bench/futex-requeue.c                           |    1 
 tools/perf/bench/futex-wake-parallel.c                     |    1 
 tools/perf/bench/futex-wake.c                              |    1 
 tools/perf/tests/shell/record+zstd_comp_decomp.sh          |    2 
 tools/perf/util/bpf-event.c                                |    6 
 tools/perf/util/env.c                                      |    5 
 tools/perf/util/env.h                                      |    2 
 180 files changed, 1482 insertions(+), 982 deletions(-)

Adrian Hunter (2):
scsi: ufs: core: Fix task management completion
scsi: ufs: core: Fix task management completion timeout race

Alex Elder (1):
net: ipa: disable HOLB drop when updating timer

Alexander Antonov (2):
perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server

Alexander Mikhalitsyn (1):
ipc: WARN if trying to remove ipc object which is absent

Alistair Delva (1):
block: Check ADMIN before NICE for IOPRIO_CLASS_RT

Alvin Lee (1):
drm/amd/display: Update swizzle mode enums

Amit Kumar Mahapatra (1):
arm64: zynqmp: Do not duplicate flash partition label property

Anatolij Gustschin (1):
powerpc/5200: dts: fix memory node unit name

AngeloGioacchino Del Regno (1):
arm64: dts: qcom: msm8998: Fix CPU/L2 idle state latency and residency

Arjun Roy (3):
net-zerocopy: Copy straggler unaligned data for TCP Rx. zerocopy.
net-zerocopy: Refactor skb frag fast-forward op.
tcp: Fix uninitialized access in skb frags array for Rx 0cp.

Baoquan He (1):
s390/kexec: fix memory leak of ipl report buffer

Bart Van Assche (1):
MIPS: sni: Fix the build

Bjorn Andersson (1):
pinctrl: qcom: sdm845: Enable dual edge errata

Bongsu Jeon (1):
net: nfc: nci: Change the NCI close sequence

Chao Yu (1):
f2fs: fix incorrect return value in f2fs_sanity_check_ckpt()

Chengfeng Ye (1):
ALSA: gus: fix null pointer dereference on pointer block

Christian Lamparter (1):
ARM: BCM53016: Specify switch ports for Meraki MR32

Christophe JAILLET (1):
platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()'

Christophe Leroy (2):
powerpc/8xx: Fix Oops with STRICT_KERNEL_RWX without DEBUG_RODATA_TEST powerpc/8xx: Fix pinned TLBs with CONFIG_STRICT_KERNEL_RWX

Colin Ian King (1):
MIPS: generic/yamon-dt: fix uninitialized variable error

David Heidelberg (1):
ARM: dts: qcom: fix memory and mdio nodes naming for RB3011

Dmitry Baryshkov (1):
clk: qcom: gcc-msm8996: Drop (again) gcc_aggre1_pnoc_ahb_clk

Eric Dumazet (1):
net: reduce indentation level in sk_clone_lock()

Eryk Rybak (3):
i40e: Fix correct max_pkt_size on VF RX queue
i40e: Fix changing previously set num_queue_pairs for PFs
i40e: Fix ping is lost after configuring ADq on VF

Ewan D. Milne (1):
scsi: qla2xxx: Fix mailbox direction flags in qla2xxx_get_adapter_id()

Fabio Aiuto (1):
staging: rtl8723bs: remove possible deadlock when disconnect (v2)

Gao Xiang (1):
f2fs: fix up f2fs_lookup tracepoints

Greg Kroah-Hartman (1):

      Linux 5.10.82

Grzegorz Szczurek (2):
iavf: Fix for setting queues to 0
i40e: Fix display error code in dmesg

Guanghui Feng (1):
tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc

Guo Zhi (1):
scsi: advansys: Fix kernel pointer leak

Hans Verkuil (1):
drm/nouveau: hdmigv100.c: fix corrupted HDMI Vendor InfoFrame

Hans de Goede (1):
ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect

Heiko Carstens (1):
s390/kexec: fix return code handling

Hyeong-Jun Kim (1):
f2fs: compress: disallow disabling compress on non-empty compressed file

Ian Rogers (1):
perf bpf: Avoid memory leak from perf_env__insert_btf()

Imre Deak (1):
drm/i915/dp: Ensure sink rate values are always valid

Jacob Keller (1):
iavf: prevent accidental free of filter structure

James Clark (1):
perf tests: Remove bash construct from record+zstd_comp_decomp.sh

James Smart (1):
scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()

Jan Kara (1):
udf: Fix crash after seekdir

Jedrzej Jagielski (1):
i40e: Fix creation of first queue by omitting it if is not power of two

Jeremy Cline (3):
drm/nouveau: Add a dedicated mutex for the clients list drm/nouveau: use drm_dev_unplug() during device removal drm/nouveau: clean up all clients on device removal

Jesse Brandeburg (1):
e100: fix device suspend/resume

Joel Stanley (1):
clk/ast2600: Fix soc revision for AHB

Johan Hovold (1):
drm/udl: fix control-message timeout

Jonathan Davies (1):
net: virtio_net_hdr_to_skb: count transport header in UFO

Josef Bacik (2):
fs: export an inode_update_time helper
btrfs: update device path inode time instead of bd_inode

Jérôme Pouiller (1):
staging: wfx: ensure IRQ is ready before enabling it

Karen Sornek (1):
i40e: Fix warning message and call stack during rmmod i40e driver

Keoseong Park (1):
f2fs: fix to use WHINT_MODE

Laibin Qiu (1):
blkcg: Remove extra blkcg_bio_issue_init

Leon Romanovsky (2):
RDMA/netlink: Add __maybe_unused to static inline in C file
ice: Delete always true check of PF pointer

Li Yang (2):
ARM: dts: ls1021a: move thermal-zones node out of soc/
ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash

Like Xu (1):

      perf/x86/vlbr: Add c->flags to vlbr event constraints

Lin Ma (3):
NFC: reorganize the functions in nci_request
NFC: reorder the logic in nfc_{un,}register_device
NFC: add NCI_UNREG flag to eliminate the race

Linus Walleij (1):
ARM: dts: ux500: Skomer regulator fixes

Lu Wei (1):
maple: fix wrong return value of maple_bus_init().

Luis Chamberlain (1):
firmware_loader: fix pre-allocated buf built-in firmware use

Maher Sanalla (1):
net/mlx5: Lag, update tracker when state change event received

Masami Hiramatsu (1):
tracing/histogram: Do not copy the fixed-size char array field over the field size

Mateusz Palczewski (1):
iavf: Fix return of set the new channel count

Matthew Hagan (1):
ARM: dts: NSP: Fix mpcore, mmc node names

Matthias Brugger (1):
arm64: dts: rockchip: Disable CDN DP on Pinebook Pro

Maxim Levitsky (1):

      KVM: nVMX: don't use vcpu->arch.efer when checking host state on nested state load

Maxime Ripard (3):
ARM: dts: sunxi: Fix OPPs node name
arm64: dts: allwinner: h5: Fix GPU thermal zone node name
arm64: dts: allwinner: a100: Fix thermal zone node name

Meng Li (1):
net: stmmac: socfpga: add runtime suspend/resume callback for stratix10 platform

Michael Ellerman (2):
powerpc/dcr: Use cmplwi instead of 3-argument cmpli
KVM: PPC: Book3S HV: Use GLOBAL_TOC for kvmppc_h_set_dabr/xdabr()

Michael Walle (2):
arm64: dts: hisilicon: fix arm,sp805 compatible string
arm64: dts: freescale: fix arm,sp805 compatible string

Michal Maloszewski (1):
i40e: Fix NULL ptr dereference on VSI filter sync

Michal Simek (1):
arm64: zynqmp: Fix serial compatible string

Mike Christie (3):
scsi: target: Fix ordered tag handling
scsi: target: Fix alua_tg_pt_gps_count tracking
scsi: core: sysfs: Fix hang when device state is set via sysfs

Mitch Williams (1):
iavf: validate pointers

Nadav Amit (1):
hugetlbfs: flush TLBs correctly after huge_pmd_unshare

Nathan Chancellor (2):
hexagon: export raw I/O routines for modules
hexagon: clean up timer-regs.h

Nguyen Dinh Phi (1):
cfg80211: call cfg80211_stop_ap when switch from P2P_GO type

Nicholas Nunley (2):
iavf: check for null in iavf_fix_features
iavf: free q_vectors before queues in iavf_disable_vf

Nick Desaulniers (2):
sh: check return code of request_irq
arm64: vdso32: suppress error message for 'make mrproper'

Nicolas Dichtel (1):
tun: fix bonding active backup with arp monitoring

Nikolay Borisov (1):
btrfs: fix memory ordering between normal and ordered work functions

Ondrej Mosnacek (1):
selinux: fix NULL-pointer dereference when hashtab allocation fails

Paul Cercueil (1):
clk: ingenic: Fix bugs with divided dividers

Pavel Skripkin (2):
net: bnx2x: fix variable dereferenced before check
net: dpaa2-eth: fix use-after-free in dpaa2_eth_remove

Pierre-Louis Bossart (4):
ASoC: SOF: Intel: hda-dai: fix potential locking issue
ALSA: intel-dsp-config: add quirk for APL/GLK/TGL devices based on ES8336 codec
ALSA: hda: hdac_ext_stream: fix potential locking issues
ALSA: hda: hdac_stream: fix potential locking issue in snd_hdac_stream_assign()

Piotr Marczak (1):
iavf: Fix failure to exit out from last all-multicast mode

Punit Agrawal (1):
net: stmmac: dwmac-rk: Fix ethernet on rk3399 based devices

Raed Salem (1):
net/mlx5: E-Switch, return error if encap isn't supported

Randy Dunlap (8):
ALSA: ISA: not for M68K
sh: fix kconfig unmet dependency warning for FRAME_POINTER
sh: math-emu: drop unused functions
sh: define __BIG_ENDIAN for math-emu
mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set
mips: bcm63xx: add support for clk_get_parent()
mips: lantiq: add support for clk_get_parent() x86/Kconfig: Fix an unused variable error in dell-smm-hwmon

Roger Quadros (1):
ARM: dts: omap: fix gpmc,mux-add-data type

Roi Dayan (1):
net/mlx5: E-Switch, Change mode lock from mutex to rw semaphore

Rustam Kovhaev (1):
mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag

Sasha Levin (1):
Revert "perf: Rework perf_event_exit_event()"

Sean Christopherson (1):
x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails

Selvin Xavier (1):
RDMA/bnxt_re: Check if the vlan is valid before reporting

Shawn Guo (1):
arm64: dts: qcom: ipq6018: Fix qcom,controlled-remotely property

Sohaib Mohamed (1):
perf bench futex: Fix memory leak of perf_cpu_map__new()

Sriharsha Basavapatna (1):
bnxt_en: reject indirect blk offload when hw-tc-offload is off

Stefan Riedmueller (1):
clk: imx: imx6ul: Move csi_sel mux to correct base register

Steven Rostedt (VMware) (1):
tracing: Add length protection to histogram string copies

Surabhi Boob (1):
iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset

Sven Peter (1):
usb: typec: tipd: Remove WARN_ON in tps6598x_block_read

Sven Schnelle (1):
parisc/sticon: fix reverse colors

Tadeusz Struk (1):
tipc: check for null after calling kmemdup

Takashi Iwai (1):
ASoC: DAPM: Cover regression by kctl change notification fix

Teng Qi (1):
iio: imu: st_lsm6dsx: Avoid potential array overflow in st_lsm6dsx_set_odr()

Tetsuo Handa (1):
sock: fix /proc/net/sockstat underflow in sk_clone_lock()

Tony Lindgren (2):
bus: ti-sysc: Add quirk handling for reinit on context lost
bus: ti-sysc: Use context lost quirk for otg

Uwe Kleine-König (1):
usb: max-3421: Use driver data instead of maintaining a list of bound devices

Valentine Fatiev (1):

      net/mlx5e: nullify cq->dbg pointer in mlx5_debug_cq_remove()

Vincent Donnefort (1):
sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()

Wen Gu (1):
net/smc: Make sure the link_id is unique

Xin Long (2):
tipc: only accept encrypted MSG_CRYPTO msgs
net: sched: act_mirred: drop dst for the direction from egress to ingress

Yang Yingliang (2):
usb: musb: tusb6010: check return value after calling platform_get_resource()
usb: host: ohci-tmio: check return value after calling platform_get_resource()

Ye Bin (2):
scsi: scsi_debug: Fix out-of-bound read in resp_readcap16()
scsi: scsi_debug: Fix out-of-bound read in resp_report_tgtpgs()

hongao (1):
drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga and dvi connectors

author maintainer
#1 lore raw
Makefile +1 -1
index 1baeadb574f1..84b15766ad66 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 81
+SUBLEVEL = 82
 EXTRAVERSION =
 NAME = Dare mighty things
 
arch/arm/boot/dts/bcm-nsp.dtsi +2 -2
index 605b6d2f4a56..1dae02bb82c2 100644
@@ -77,7 +77,7 @@ pmu {
 		interrupt-affinity = <&cpu0>, <&cpu1>;
 	};
 
-	mpcore@19000000 {
+	mpcore-bus@19000000 {
 		compatible = "simple-bus";
 		ranges = <0x00000000 0x19000000 0x00023000>;
 		#address-cells = <1>;
@@ -219,7 +219,7 @@ dma: dma@20000 {
 			status = "disabled";
 		};
 
-		sdio: sdhci@21000 {
+		sdio: mmc@21000 {
 			compatible = "brcm,sdhci-iproc-cygnus";
 			reg = <0x21000 0x100>;
 			interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
arch/arm/boot/dts/bcm53016-meraki-mr32.dts +22 -0
index 612d61852bfb..577a4dc604d9 100644
@@ -195,3 +195,25 @@ partition4@800000 {
 		};
 	};
 };
+
+&srab {
+	status = "okay";
+
+	ports {
+		port@0 {
+			reg = <0>;
+			label = "poe";
+		};
+
+		port@5 {
+			reg = <5>;
+			label = "cpu";
+			ethernet = <&gmac0>;
+
+			fixed-link {
+				speed = <1000>;
+				duplex-full;
+			};
+		};
+	};
+};
arch/arm/boot/dts/ls1021a-tsn.dts +1 -1
index 9d8f0c2a8aba..aca78b5eddf2 100644
@@ -251,7 +251,7 @@ &qspi {
 
 	flash@0 {
 		/* Rev. A uses 64MB flash, Rev. B & C use 32MB flash */
-		compatible = "jedec,spi-nor", "s25fl256s1", "s25fl512s";
+		compatible = "jedec,spi-nor";
 		spi-max-frequency = <20000000>;
 		#address-cells = <1>;
 		#size-cells = <1>;
arch/arm/boot/dts/ls1021a.dtsi +33 -33

76 lines not on this page · raw message

arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi +1 -1
index 7f6aefd13451..e7534fe9c53c 100644
@@ -29,7 +29,7 @@ ethernet@gpmc {
 		compatible = "smsc,lan9221","smsc,lan9115";
 		bank-width = <2>;
 
-		gpmc,mux-add-data;
+		gpmc,mux-add-data = <0>;
 		gpmc,cs-on-ns = <0>;
 		gpmc,cs-rd-off-ns = <42>;
 		gpmc,cs-wr-off-ns = <36>;
arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi +1 -1
index e5da3bc6f105..218a10c0d815 100644
@@ -22,7 +22,7 @@ smsc2: ethernet@4,0 {
 		compatible = "smsc,lan9221","smsc,lan9115";
 		bank-width = <2>;
 
-		gpmc,mux-add-data;
+		gpmc,mux-add-data = <0>;
 		gpmc,cs-on-ns = <0>;
 		gpmc,cs-rd-off-ns = <42>;
 		gpmc,cs-wr-off-ns = <36>;
arch/arm/boot/dts/qcom-ipq8064-rb3011.dts +3 -3
index 282b89ce3d45..33545cf40f3a 100644
@@ -19,12 +19,12 @@ chosen {
 		stdout-path = "serial0:115200n8";
 	};
 
-	memory@0 {
+	memory@42000000 {
 		reg = <0x42000000 0x3e000000>;
 		device_type = "memory";
 	};
 
-	mdio0: mdio@0 {
+	mdio0: mdio-0 {
 		status = "okay";
 		compatible = "virtual,mdio-gpio";
 		gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>,
@@ -91,7 +91,7 @@ port@5 {
 		};
 	};
 
-	mdio1: mdio@1 {
+	mdio1: mdio-1 {
 		status = "okay";
 		compatible = "virtual,mdio-gpio";
 		gpios = <&qcom_pinmux 11 GPIO_ACTIVE_HIGH>,
arch/arm/boot/dts/ste-ux500-samsung-skomer.dts +4 -4
index 27722c42b61c..08bddbf0336d 100644
@@ -262,10 +262,10 @@ ab8500_ldo_aux1 {
 					};
 
 					ab8500_ldo_aux2 {
-						/* Supplies the Cypress TMA140 touchscreen only with 3.3V */
+						/* Supplies the Cypress TMA140 touchscreen only with 3.0V */
 						regulator-name = "AUX2";
-						regulator-min-microvolt = <3300000>;
-						regulator-max-microvolt = <3300000>;
+						regulator-min-microvolt = <3000000>;
+						regulator-max-microvolt = <3000000>;
 					};
 
 					ab8500_ldo_aux3 {
@@ -284,9 +284,9 @@ ab8500_ldo_aux4 {
 
 					ab8500_ldo_aux5 {
 						regulator-name = "AUX5";
+						/* Intended for 1V8 for touchscreen but actually left unused */
 						regulator-min-microvolt = <1050000>;
 						regulator-max-microvolt = <2790000>;
-						regulator-always-on;
 					};
 
 					ab8500_ldo_aux6 {
arch/arm/boot/dts/sun8i-a33.dtsi +2 -2
index c458f5fb124f..46f4242e9f95 100644
@@ -46,7 +46,7 @@
 #include <dt-bindings/thermal/thermal.h>
 
 / {
-	cpu0_opp_table: opp_table0 {
+	cpu0_opp_table: opp-table-cpu {
 		compatible = "operating-points-v2";
 		opp-shared;
 
@@ -164,7 +164,7 @@ iio-hwmon {
 		io-channels = <&ths>;
 	};
 
-	mali_opp_table: gpu-opp-table {
+	mali_opp_table: opp-table-gpu {
 		compatible = "operating-points-v2";
 
 		opp-144000000 {
arch/arm/boot/dts/sun8i-a83t.dtsi +2 -2
index c010b27fdb6a..a746e449b0ba 100644
@@ -200,7 +200,7 @@ de: display-engine {
 		status = "disabled";
 	};
 
-	cpu0_opp_table: opp_table0 {
+	cpu0_opp_table: opp-table-cluster0 {
 		compatible = "operating-points-v2";
 		opp-shared;
 
@@ -253,7 +253,7 @@ opp-1200000000 {
 		};
 	};
 
-	cpu1_opp_table: opp_table1 {
+	cpu1_opp_table: opp-table-cluster1 {
 		compatible = "operating-points-v2";
 		opp-shared;
 
arch/arm/boot/dts/sun8i-h3.dtsi +2 -2
index 4e89701df91f..ae4f933abb89 100644
@@ -44,7 +44,7 @@
 #include <dt-bindings/thermal/thermal.h>
 
 / {
-	cpu0_opp_table: opp_table0 {
+	cpu0_opp_table: opp-table-cpu {
 		compatible = "operating-points-v2";
 		opp-shared;
 
@@ -112,7 +112,7 @@ cpu3: cpu@3 {
 		};
 	};
 
-	gpu_opp_table: gpu-opp-table {
+	gpu_opp_table: opp-table-gpu {
 		compatible = "operating-points-v2";
 
 		opp-120000000 {
arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi +3 -3
index cc321c04f121..f6d7d7f7fdab 100644
@@ -343,19 +343,19 @@ r_i2c1: i2c@7081800 {
 	};
 
 	thermal-zones {
-		cpu-thermal-zone {
+		cpu-thermal {
 			polling-delay-passive = <0>;
 			polling-delay = <0>;
 			thermal-sensors = <&ths 0>;
 		};
 
-		ddr-thermal-zone {
+		ddr-thermal {
 			polling-delay-passive = <0>;
 			polling-delay = <0>;
 			thermal-sensors = <&ths 2>;
 		};
 
-		gpu-thermal-zone {
+		gpu-thermal {
 			polling-delay-passive = <0>;
 			polling-delay = <0>;
 			thermal-sensors = <&ths 1>;
arch/arm64/boot/dts/allwinner/sun50i-a64-cpu-opp.dtsi +1 -1
index 578c37490d90..e39db51eb448 100644
@@ -4,7 +4,7 @@
  */
 
 / {
-	cpu0_opp_table: opp_table0 {
+	cpu0_opp_table: opp-table-cpu {
 		compatible = "operating-points-v2";
 		opp-shared;
 
arch/arm64/boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi +1 -1
index b2657201957e..1afad8b437d7 100644
@@ -2,7 +2,7 @@
 // Copyright (C) 2020 Chen-Yu Tsai <[email protected]>
 
 / {
-	cpu_opp_table: cpu-opp-table {
+	cpu_opp_table: opp-table-cpu {
 		compatible = "operating-points-v2";
 		opp-shared;
 
arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +1 -1
index 10489e508695..0ee8a5adf02b 100644
@@ -204,7 +204,7 @@ cpu-hot-limit {
 			};
 		};
 
-		gpu_thermal {
+		gpu-thermal {
 			polling-delay-passive = <0>;
 			polling-delay = <0>;
 			thermal-sensors = <&ths 1>;
arch/arm64/boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi +1 -1
index 1a5eddc5a40f..653452926d85 100644
@@ -3,7 +3,7 @@
 // Copyright (C) 2020 Clément Péron <[email protected]>
 
 / {
-	cpu_opp_table: cpu-opp-table {
+	cpu_opp_table: opp-table-cpu {
 		compatible = "allwinner,sun50i-h6-operating-points";
 		nvmem-cells = <&cpu_speed_grade>;
 		opp-shared;
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +8 -8
index 692d8f4a206d..334af263d7b5 100644
@@ -673,56 +673,56 @@ ptp-timer@8b95000 {
 		};
 
 		cluster1_core0_watchdog: wdt@c000000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc000000 0x0 0x1000>;
 			clocks = <&clockgen 4 15>, <&clockgen 4 15>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster1_core1_watchdog: wdt@c010000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc010000 0x0 0x1000>;
 			clocks = <&clockgen 4 15>, <&clockgen 4 15>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster1_core2_watchdog: wdt@c020000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc020000 0x0 0x1000>;
 			clocks = <&clockgen 4 15>, <&clockgen 4 15>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster1_core3_watchdog: wdt@c030000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc030000 0x0 0x1000>;
 			clocks = <&clockgen 4 15>, <&clockgen 4 15>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core0_watchdog: wdt@c100000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc100000 0x0 0x1000>;
 			clocks = <&clockgen 4 15>, <&clockgen 4 15>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core1_watchdog: wdt@c110000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc110000 0x0 0x1000>;
 			clocks = <&clockgen 4 15>, <&clockgen 4 15>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core2_watchdog: wdt@c120000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc120000 0x0 0x1000>;
 			clocks = <&clockgen 4 15>, <&clockgen 4 15>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core3_watchdog: wdt@c130000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc130000 0x0 0x1000>;
 			clocks = <&clockgen 4 15>, <&clockgen 4 15>;
 			clock-names = "wdog_clk", "apb_pclk";
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +8 -8
index 4d34d82b898a..eb6641a3566e 100644
@@ -351,56 +351,56 @@ serial3: serial@21d0600 {
 		};
 
 		cluster1_core0_watchdog: wdt@c000000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc000000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster1_core1_watchdog: wdt@c010000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc010000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core0_watchdog: wdt@c100000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc100000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core1_watchdog: wdt@c110000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc110000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster3_core0_watchdog: wdt@c200000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc200000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster3_core1_watchdog: wdt@c210000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc210000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster4_core0_watchdog: wdt@c300000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc300000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
 			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster4_core1_watchdog: wdt@c310000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc310000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
 			clock-names = "wdog_clk", "apb_pclk";
arch/arm64/boot/dts/hisilicon/hi3660.dtsi +2 -2
index 994140fbc916..fe4dce23ef7e 100644
@@ -1086,7 +1086,7 @@ dwmmc2: dwmmc2@ff3ff000 {
 		};
 
 		watchdog0: watchdog@e8a06000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xe8a06000 0x0 0x1000>;
 			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&crg_ctrl HI3660_OSC32K>,
@@ -1095,7 +1095,7 @@ watchdog0: watchdog@e8a06000 {
 		};
 
 		watchdog1: watchdog@e8a07000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xe8a07000 0x0 0x1000>;
 			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&crg_ctrl HI3660_OSC32K>,
arch/arm64/boot/dts/hisilicon/hi6220.dtsi +1 -1
index 014735a9bc73..fbce014bdc27 100644
@@ -840,7 +840,7 @@ dwmmc_2: dwmmc2@f723f000 {
 		};
 
 		watchdog0: watchdog@f8005000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xf8005000 0x0 0x1000>;
 			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&ao_ctrl HI6220_WDT0_PCLK>,
arch/arm64/boot/dts/qcom/ipq6018.dtsi +1 -1
index 3ceb36cac512..9cb8f7a052df 100644
@@ -200,7 +200,7 @@ cryptobam: dma@704000 {
 			clock-names = "bam_clk";
 			#dma-cells = <1>;
 			qcom,ee = <1>;
-			qcom,controlled-remotely = <1>;
+			qcom,controlled-remotely;
 			qcom,config-pipe-trust-reg = <0>;
 		};
 
arch/arm64/boot/dts/qcom/msm8998.dtsi +12 -8
index c45870600909..9e04ac3f596d 100644
@@ -300,38 +300,42 @@ idle-states {
 			LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
 				compatible = "arm,idle-state";
 				idle-state-name = "little-retention";
+				/* CPU Retention (C2D), L2 Active */
 				arm,psci-suspend-param = <0x00000002>;
 				entry-latency-us = <81>;
 				exit-latency-us = <86>;
-				min-residency-us = <200>;
+				min-residency-us = <504>;
 			};
 
 			LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {
 				compatible = "arm,idle-state";
 				idle-state-name = "little-power-collapse";
+				/* CPU + L2 Power Collapse (C3, D4) */
 				arm,psci-suspend-param = <0x40000003>;
-				entry-latency-us = <273>;
-				exit-latency-us = <612>;
-				min-residency-us = <1000>;
+				entry-latency-us = <814>;
+				exit-latency-us = <4562>;
+				min-residency-us = <9183>;
 				local-timer-stop;
 			};
 
 			BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
 				compatible = "arm,idle-state";
 				idle-state-name = "big-retention";
+				/* CPU Retention (C2D), L2 Active */
 				arm,psci-suspend-param = <0x00000002>;
 				entry-latency-us = <79>;
 				exit-latency-us = <82>;
-				min-residency-us = <200>;
+				min-residency-us = <1302>;
 			};
 
 			BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
 				compatible = "arm,idle-state";
 				idle-state-name = "big-power-collapse";
+				/* CPU + L2 Power Collapse (C3, D4) */
 				arm,psci-suspend-param = <0x40000003>;
-				entry-latency-us = <336>;
-				exit-latency-us = <525>;
-				min-residency-us = <1000>;
+				entry-latency-us = <724>;
+				exit-latency-us = <2027>;
+				min-residency-us = <9419>;
 				local-timer-stop;
 			};
 		};
arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +0 -4
index 219b7507a10f..4297c1db5a41 100644
@@ -379,10 +379,6 @@ mains_charger: dc-charger {
 	};
 };
 
-&cdn_dp {
-	status = "okay";
-};
-
 &cpu_b0 {
 	cpu-supply = <&vdd_cpu_b>;
 };
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts +2 -2
index 4a86efa32d68..f7124e15f0ff 100644
@@ -131,7 +131,7 @@ spi0_flash0: flash@0 {
 		reg = <0>;
 
 		partition@0 {
-			label = "data";
+			label = "spi0-data";
 			reg = <0x0 0x100000>;
 		};
 	};
@@ -149,7 +149,7 @@ spi1_flash0: flash@0 {
 		reg = <0>;
 
 		partition@0 {
-			label = "data";
+			label = "spi1-data";
 			reg = <0x0 0x84000>;
 		};
 	};
arch/arm64/boot/dts/xilinx/zynqmp.dtsi +2 -2
index 771f60e0346d..9e198cacc37d 100644
@@ -688,7 +688,7 @@ ttc3: timer@ff140000 {
 		};
 
 		uart0: serial@ff000000 {
-			compatible = "cdns,uart-r1p12", "xlnx,xuartps";
+			compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
 			status = "disabled";
 			interrupt-parent = <&gic>;
 			interrupts = <0 21 4>;
@@ -698,7 +698,7 @@ uart0: serial@ff000000 {
 		};
 
 		uart1: serial@ff010000 {
-			compatible = "cdns,uart-r1p12", "xlnx,xuartps";
+			compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
 			status = "disabled";
 			interrupt-parent = <&gic>;
 			interrupts = <0 22 4>;
arch/arm64/kernel/vdso32/Makefile +2 -1
index 79280c53b9a6..a463b9bceed4 100644
@@ -48,7 +48,8 @@ cc32-as-instr = $(call try-run,\
 # As a result we set our own flags here.
 
 # KBUILD_CPPFLAGS and NOSTDINC_FLAGS from top-level Makefile
-VDSO_CPPFLAGS := -D__KERNEL__ -nostdinc -isystem $(shell $(CC_COMPAT) -print-file-name=include)
+VDSO_CPPFLAGS := -D__KERNEL__ -nostdinc
+VDSO_CPPFLAGS += -isystem $(shell $(CC_COMPAT) -print-file-name=include 2>/dev/null)
 VDSO_CPPFLAGS += $(LINUXINCLUDE)
 
 # Common C and assembly flags
arch/hexagon/include/asm/timer-regs.h deleted +0 -26
deleted file mode 100644
index ee6c61423a05..000000000000
@@ -1,26 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Timer support for Hexagon
- *
- * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
- */
-
-#ifndef _ASM_TIMER_REGS_H
-#define _ASM_TIMER_REGS_H
-
-/*  This stuff should go into a platform specific file  */
-#define TCX0_CLK_RATE		19200
-#define TIMER_ENABLE		0
-#define TIMER_CLR_ON_MATCH	1
-
-/*
- * 8x50 HDD Specs 5-8.  Simulator co-sim not fixed until
- * release 1.1, and then it's "adjustable" and probably not defaulted.
- */
-#define RTOS_TIMER_INT		3
-#ifdef CONFIG_HEXAGON_COMET
-#define RTOS_TIMER_REGS_ADDR	0xAB000000UL
-#endif
-#define SLEEP_CLK_RATE		32000
-
-#endif
arch/hexagon/include/asm/timex.h +1 -2
index 8d4ec76fceb4..dfe69e118b2b 100644
@@ -7,11 +7,10 @@
 #define _ASM_TIMEX_H
 
 #include <asm-generic/timex.h>
-#include <asm/timer-regs.h>
 #include <asm/hexagon_vm.h>
 
 /* Using TCX0 as our clock.  CLOCK_TICK_RATE scheduled to be removed. */
-#define CLOCK_TICK_RATE              TCX0_CLK_RATE
+#define CLOCK_TICK_RATE              19200
 
 #define ARCH_HAS_READ_CURRENT_TIMER
 
arch/hexagon/kernel/time.c +10 -2
index feffe527ac92..febc95714d75 100644
@@ -17,9 +17,10 @@
 #include <linux/of_irq.h>
 #include <linux/module.h>
 
-#include <asm/timer-regs.h>
 #include <asm/hexagon_vm.h>
 
+#define TIMER_ENABLE		BIT(0)
+
 /*
  * For the clocksource we need:
  *	pcycle frequency (600MHz)
@@ -33,6 +34,13 @@ cycles_t	pcycle_freq_mhz;
 cycles_t	thread_freq_mhz;
 cycles_t	sleep_clk_freq;
 
+/*
+ * 8x50 HDD Specs 5-8.  Simulator co-sim not fixed until
+ * release 1.1, and then it's "adjustable" and probably not defaulted.
+ */
+#define RTOS_TIMER_INT		3
+#define RTOS_TIMER_REGS_ADDR	0xAB000000UL
+
 static struct resource rtos_timer_resources[] = {
 	{
 		.start	= RTOS_TIMER_REGS_ADDR,
@@ -80,7 +88,7 @@ static int set_next_event(unsigned long delta, struct clock_event_device *evt)
 	iowrite32(0, &rtos_timer->clear);
 
 	iowrite32(delta, &rtos_timer->match);
-	iowrite32(1 << TIMER_ENABLE, &rtos_timer->enable);
+	iowrite32(TIMER_ENABLE, &rtos_timer->enable);
 	return 0;
 }
 
arch/hexagon/lib/io.c +4 -0
index d35d69d6588c..55f75392857b 100644
@@ -27,6 +27,7 @@ void __raw_readsw(const void __iomem *addr, void *data, int len)
 		*dst++ = *src;
 
 }
+EXPORT_SYMBOL(__raw_readsw);
 
 /*
  * __raw_writesw - read words a short at a time
@@ -47,6 +48,7 @@ void __raw_writesw(void __iomem *addr, const void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_writesw);
 
 /*  Pretty sure len is pre-adjusted for the length of the access already */
 void __raw_readsl(const void __iomem *addr, void *data, int len)
@@ -62,6 +64,7 @@ void __raw_readsl(const void __iomem *addr, void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_readsl);
 
 void __raw_writesl(void __iomem *addr, const void *data, int len)
 {
@@ -76,3 +79,4 @@ void __raw_writesl(void __iomem *addr, const void *data, int len)
 
 
 }
+EXPORT_SYMBOL(__raw_writesl);
arch/mips/Kconfig +3 -0
index 5c6e9ed9b2a7..94a748e95231 100644
@@ -320,6 +320,9 @@ config BCM63XX
 	select SYS_SUPPORTS_32BIT_KERNEL
 	select SYS_SUPPORTS_BIG_ENDIAN
 	select SYS_HAS_EARLY_PRINTK
+	select SYS_HAS_CPU_BMIPS32_3300
+	select SYS_HAS_CPU_BMIPS4350
+	select SYS_HAS_CPU_BMIPS4380
 	select SWAP_IO_SPACE
 	select GPIOLIB
 	select MIPS_L1_CACHE_SHIFT_4
arch/mips/bcm63xx/clk.c +6 -0
index 164115944a7f..aba6e2d6a736 100644
@@ -381,6 +381,12 @@ void clk_disable(struct clk *clk)
 
 EXPORT_SYMBOL(clk_disable);
 
+struct clk *clk_get_parent(struct clk *clk)
+{
+	return NULL;
+}
+EXPORT_SYMBOL(clk_get_parent);
+
 unsigned long clk_get_rate(struct clk *clk)
 {
 	if (!clk)
arch/mips/generic/yamon-dt.c +1 -1
index a3aa22c77cad..a07a5edbcda7 100644
@@ -75,7 +75,7 @@ static unsigned int __init gen_fdt_mem_array(
 __init int yamon_dt_append_memory(void *fdt,
 				  const struct yamon_mem_region *regions)
 {
-	unsigned long phys_memsize, memsize;
+	unsigned long phys_memsize = 0, memsize;
 	__be32 mem_array[2 * MAX_MEM_ARRAY_ENTRIES];
 	unsigned int mem_entries;
 	int i, err, mem_off;
arch/mips/lantiq/clk.c +6 -0
index dd819e31fcbb..4916cccf378f 100644
@@ -158,6 +158,12 @@ void clk_deactivate(struct clk *clk)
 }
 EXPORT_SYMBOL(clk_deactivate);
 
+struct clk *clk_get_parent(struct clk *clk)
+{
+	return NULL;
+}
+EXPORT_SYMBOL(clk_get_parent);
+
 static inline u32 get_counter_resolution(void)
 {
 	u32 res;
arch/mips/sni/time.c +2 -2
index 240bb68ec247..ff3ba7e77890 100644
@@ -18,14 +18,14 @@ static int a20r_set_periodic(struct clock_event_device *evt)
 {
 	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 12) = 0x34;
 	wmb();
-	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 0) = SNI_COUNTER0_DIV;
+	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 0) = SNI_COUNTER0_DIV & 0xff;
 	wmb();
 	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 0) = SNI_COUNTER0_DIV >> 8;
 	wmb();
 
 	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 12) = 0xb4;
 	wmb();
-	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 8) = SNI_COUNTER2_DIV;
+	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 8) = SNI_COUNTER2_DIV & 0xff;
 	wmb();
 	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 8) = SNI_COUNTER2_DIV >> 8;
 	wmb();
arch/powerpc/boot/dts/charon.dts +1 -1
index 408b486b13df..cd589539f313 100644
@@ -35,7 +35,7 @@ PowerPC,5200@0 {
 		};
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x00000000 0x08000000>;	// 128MB
 	};
arch/powerpc/boot/dts/digsy_mtc.dts +1 -1
index 0e5e9d3acf79..19a14e62e65f 100644
@@ -16,7 +16,7 @@ / {
 	model = "intercontrol,digsy-mtc";
 	compatible = "intercontrol,digsy-mtc";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x02000000>;	// 32MB
 	};
 
arch/powerpc/boot/dts/lite5200.dts +1 -1
index cb2782dd6132..e7b194775d78 100644
@@ -32,7 +32,7 @@ PowerPC,5200@0 {
 		};
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x00000000 0x04000000>;	// 64MB
 	};
arch/powerpc/boot/dts/lite5200b.dts +1 -1
index 2b86c81f9048..547cbe726ff2 100644
@@ -31,7 +31,7 @@ tmr3 {
 		led4 { gpios = <&gpio_simple 2 1>; };
 	};
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x10000000>;	// 256MB
 	};
 
arch/powerpc/boot/dts/media5200.dts +1 -1
index 61cae9dcddef..f3188018face 100644
@@ -32,7 +32,7 @@ PowerPC,5200@0 {
 		};
 	};
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x08000000>;	// 128MB RAM
 	};
 
arch/powerpc/boot/dts/mpc5200b.dtsi +1 -1
index 648fe31795f4..8b796f3b11da 100644
@@ -33,7 +33,7 @@ powerpc: PowerPC,5200@0 {
 		};
 	};
 
-	memory: memory {
+	memory: memory@0 {
 		device_type = "memory";
 		reg = <0x00000000 0x04000000>;	// 64MB
 	};
arch/powerpc/boot/dts/o2d.dts +1 -1
index 24a46f65e529..e0a8d3034417 100644
@@ -12,7 +12,7 @@ / {
 	model = "ifm,o2d";
 	compatible = "ifm,o2d";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x08000000>;  // 128MB
 	};
 
arch/powerpc/boot/dts/o2d.dtsi +1 -1
index 6661955a2be4..b55a9e5bd828 100644
@@ -19,7 +19,7 @@ / {
 	model = "ifm,o2d";
 	compatible = "ifm,o2d";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x04000000>;	// 64MB
 	};
 
arch/powerpc/boot/dts/o2dnt2.dts +1 -1
index eeba7f5507d5..c2eedbd1f5fc 100644
@@ -12,7 +12,7 @@ / {
 	model = "ifm,o2dnt2";
 	compatible = "ifm,o2d";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x08000000>;  // 128MB
 	};
 
arch/powerpc/boot/dts/o3dnt.dts +1 -1
index fd00396b0593..e4c1bdd41271 100644
@@ -12,7 +12,7 @@ / {
 	model = "ifm,o3dnt";
 	compatible = "ifm,o2d";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x04000000>;  // 64MB
 	};
 
arch/powerpc/boot/dts/pcm032.dts +1 -1
index 780e13d99e7b..1895bc95900c 100644
@@ -20,7 +20,7 @@ / {
 	model = "phytec,pcm032";
 	compatible = "phytec,pcm032";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x08000000>;	// 128MB
 	};
 
arch/powerpc/boot/dts/tqm5200.dts +1 -1
index 9ed0bc78967e..5bb25a9e40a0 100644
@@ -32,7 +32,7 @@ PowerPC,5200@0 {
 		};
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x00000000 0x04000000>;	// 64MB
 	};
arch/powerpc/kernel/head_8xx.S +7 -6
index ce5fd93499a7..a61b4ff3b710 100644
@@ -766,6 +766,7 @@ _GLOBAL(mmu_pin_tlb)
 #ifdef CONFIG_PIN_TLB_DATA
 	LOAD_REG_IMMEDIATE(r6, PAGE_OFFSET)
 	LOAD_REG_IMMEDIATE(r7, MI_SVALID | MI_PS8MEG | _PMD_ACCESSED)
+	li	r8, 0
 #ifdef CONFIG_PIN_TLB_IMMR
 	li	r0, 3
 #else
@@ -774,26 +775,26 @@ _GLOBAL(mmu_pin_tlb)
 	mtctr	r0
 	cmpwi	r4, 0
 	beq	4f
-	LOAD_REG_IMMEDIATE(r8, 0xf0 | _PAGE_RO | _PAGE_SPS | _PAGE_SH | _PAGE_PRESENT)
 	LOAD_REG_ADDR(r9, _sinittext)
 
 2:	ori	r0, r6, MD_EVALID
+	ori	r12, r8, 0xf0 | _PAGE_RO | _PAGE_SPS | _PAGE_SH | _PAGE_PRESENT
 	mtspr	SPRN_MD_CTR, r5
 	mtspr	SPRN_MD_EPN, r0
 	mtspr	SPRN_MD_TWC, r7
-	mtspr	SPRN_MD_RPN, r8
+	mtspr	SPRN_MD_RPN, r12
 	addi	r5, r5, 0x100
 	addis	r6, r6, SZ_8M@h
 	addis	r8, r8, SZ_8M@h
 	cmplw	r6, r9
 	bdnzt	lt, 2b
-
-4:	LOAD_REG_IMMEDIATE(r8, 0xf0 | _PAGE_SPS | _PAGE_SH | _PAGE_PRESENT)
+4:
 2:	ori	r0, r6, MD_EVALID
+	ori	r12, r8, 0xf0 | _PAGE_DIRTY | _PAGE_SPS | _PAGE_SH | _PAGE_PRESENT
 	mtspr	SPRN_MD_CTR, r5
 	mtspr	SPRN_MD_EPN, r0
 	mtspr	SPRN_MD_TWC, r7
-	mtspr	SPRN_MD_RPN, r8
+	mtspr	SPRN_MD_RPN, r12
 	addi	r5, r5, 0x100
 	addis	r6, r6, SZ_8M@h
 	addis	r8, r8, SZ_8M@h
@@ -814,7 +815,7 @@ _GLOBAL(mmu_pin_tlb)
 #endif
 #if defined(CONFIG_PIN_TLB_IMMR) || defined(CONFIG_PIN_TLB_DATA)
 	lis	r0, (MD_RSV4I | MD_TWAM)@h
-	mtspr	SPRN_MI_CTR, r0
+	mtspr	SPRN_MD_CTR, r0
 #endif
 	mtspr	SPRN_SRR1, r10
 	mtspr	SPRN_SRR0, r11
arch/powerpc/kvm/book3s_hv_rmhandlers.S +2 -2
index db78123166a8..b1d9afffd841 100644
@@ -2539,7 +2539,7 @@ hcall_real_table:
 	.globl	hcall_real_table_end
 hcall_real_table_end:
 
-_GLOBAL(kvmppc_h_set_xdabr)
+_GLOBAL_TOC(kvmppc_h_set_xdabr)
 EXPORT_SYMBOL_GPL(kvmppc_h_set_xdabr)
 	andi.	r0, r5, DABRX_USER | DABRX_KERNEL
 	beq	6f
@@ -2549,7 +2549,7 @@ EXPORT_SYMBOL_GPL(kvmppc_h_set_xdabr)
 6:	li	r3, H_PARAMETER
 	blr
 
-_GLOBAL(kvmppc_h_set_dabr)
+_GLOBAL_TOC(kvmppc_h_set_dabr)
 EXPORT_SYMBOL_GPL(kvmppc_h_set_dabr)
 	li	r5, DABRX_USER | DABRX_KERNEL
 3:
arch/powerpc/sysdev/dcr-low.S +1 -1
index efeeb1b885a1..329b9c4ae542 100644
@@ -11,7 +11,7 @@
 #include <asm/export.h>
 
 #define DCR_ACCESS_PROLOG(table) \
-	cmpli	cr0,r3,1024;	 \
+	cmplwi	cr0,r3,1024;	 \
 	rlwinm  r3,r3,4,18,27;   \
 	lis     r5,table@h;      \
 	ori     r5,r5,table@l;   \
arch/s390/include/asm/kexec.h +6 -0
index ea398a05f643..7f3c9ac34bd8 100644
@@ -74,6 +74,12 @@ void *kexec_file_add_components(struct kimage *image,
 int arch_kexec_do_relocs(int r_type, void *loc, unsigned long val,
 			 unsigned long addr);
 
+#define ARCH_HAS_KIMAGE_ARCH
+
+struct kimage_arch {
+	void *ipl_buf;
+};
+
 extern const struct kexec_file_ops s390_kexec_image_ops;
 extern const struct kexec_file_ops s390_kexec_elf_ops;
 
arch/s390/kernel/ipl.c +2 -1
index 98b3aca1de8e..6da06905ddce 100644
@@ -2156,7 +2156,7 @@ void *ipl_report_finish(struct ipl_report *report)
 
 	buf = vzalloc(report->size);
 	if (!buf)
-		return ERR_PTR(-ENOMEM);
+		goto out;
 	ptr = buf;
 
 	memcpy(ptr, report->ipib, report->ipib->hdr.len);
@@ -2195,6 +2195,7 @@ void *ipl_report_finish(struct ipl_report *report)
 	}
 
 	BUG_ON(ptr > buf + report->size);
+out:
 	return buf;
 }
 
arch/s390/kernel/machine_kexec_file.c +17 -1
index f9e4baa64b67..e7435f3a3d2d 100644
@@ -12,6 +12,7 @@
 #include <linux/kexec.h>
 #include <linux/module_signature.h>
 #include <linux/verification.h>
+#include <linux/vmalloc.h>
 #include <asm/boot_data.h>
 #include <asm/ipl.h>
 #include <asm/setup.h>
@@ -170,6 +171,7 @@ static int kexec_file_add_ipl_report(struct kimage *image,
 	struct kexec_buf buf;
 	unsigned long addr;
 	void *ptr, *end;
+	int ret;
 
 	buf.image = image;
 
@@ -199,9 +201,13 @@ static int kexec_file_add_ipl_report(struct kimage *image,
 		ptr += len;
 	}
 
+	ret = -ENOMEM;
 	buf.buffer = ipl_report_finish(data->report);
+	if (!buf.buffer)
+		goto out;
 	buf.bufsz = data->report->size;
 	buf.memsz = buf.bufsz;
+	image->arch.ipl_buf = buf.buffer;
 
 	data->memsz += buf.memsz;
 
@@ -209,7 +215,9 @@ static int kexec_file_add_ipl_report(struct kimage *image,
 		data->kernel_buf + offsetof(struct lowcore, ipl_parmblock_ptr);
 	*lc_ipl_parmblock_ptr = (__u32)buf.mem;
 
-	return kexec_add_buffer(&buf);
+	ret = kexec_add_buffer(&buf);
+out:
+	return ret;
 }
 
 void *kexec_file_add_components(struct kimage *image,
@@ -321,3 +329,11 @@ int arch_kexec_kernel_image_probe(struct kimage *image, void *buf,
 
 	return kexec_image_probe_default(image, buf, buf_len);
 }
+
+int arch_kimage_file_post_load_cleanup(struct kimage *image)
+{
+	vfree(image->arch.ipl_buf);
+	image->arch.ipl_buf = NULL;
+
+	return kexec_image_post_load_cleanup_default(image);
+}
arch/sh/Kconfig.debug +1 -0
index 28a43d63bde1..97b0e26cf05a 100644
@@ -57,6 +57,7 @@ config DUMP_CODE
 
 config DWARF_UNWINDER
 	bool "Enable the DWARF unwinder for stacktraces"
+	depends on DEBUG_KERNEL
 	select FRAME_POINTER
 	default n
 	help
arch/sh/include/asm/sfp-machine.h +8 -0
index cbc7cf8c97ce..2d2423478b71 100644
@@ -13,6 +13,14 @@
 #ifndef _SFP_MACHINE_H
 #define _SFP_MACHINE_H
 
+#ifdef __BIG_ENDIAN__
+#define __BYTE_ORDER __BIG_ENDIAN
+#define __LITTLE_ENDIAN 0
+#else
+#define __BYTE_ORDER __LITTLE_ENDIAN
+#define __BIG_ENDIAN 0
+#endif
+
 #define _FP_W_TYPE_SIZE		32
 #define _FP_W_TYPE		unsigned long
 #define _FP_WS_TYPE		signed long
arch/sh/kernel/cpu/sh4a/smp-shx3.c +3 -2
index f8a2bec0f260..1261dc7b84e8 100644
@@ -73,8 +73,9 @@ static void shx3_prepare_cpus(unsigned int max_cpus)
 	BUILD_BUG_ON(SMP_MSG_NR >= 8);
 
 	for (i = 0; i < SMP_MSG_NR; i++)
-		request_irq(104 + i, ipi_interrupt_handler,
-			    IRQF_PERCPU, "IPI", (void *)(long)i);
+		if (request_irq(104 + i, ipi_interrupt_handler,
+			    IRQF_PERCPU, "IPI", (void *)(long)i))
+			pr_err("Failed to request irq %d\n", i);
 
 	for (i = 0; i < max_cpus; i++)
 		set_cpu_present(i, true);
arch/sh/math-emu/math.c +0 -103

109 lines not on this page · raw message

arch/x86/Kconfig +2 -1
index 2b5957b27a3d..a853ed7240ee 100644
@@ -1266,7 +1266,8 @@ config TOSHIBA
 
 config I8K
 	tristate "Dell i8k legacy laptop support"
-	select HWMON
+	depends on HWMON
+	depends on PROC_FS
 	select SENSORS_DELL_SMM
 	help
 	  This option enables legacy /proc/i8k userspace interface in hwmon
arch/x86/events/intel/core.c +3 -1
index 4684bf9fcc42..a521135247eb 100644
@@ -2879,8 +2879,10 @@ intel_vlbr_constraints(struct perf_event *event)
 {
 	struct event_constraint *c = &vlbr_constraint;
 
-	if (unlikely(constraint_match(c, event->hw.config)))
+	if (unlikely(constraint_match(c, event->hw.config))) {
+		event->hw.flags |= c->flags;
 		return c;
+	}
 
 	return NULL;
 }
arch/x86/events/intel/uncore_snbep.c +4 -0
index c01b51d1cbdf..ba26792d9673 100644
@@ -3545,6 +3545,9 @@ static int skx_cha_hw_config(struct intel_uncore_box *box, struct perf_event *ev
 	struct hw_perf_event_extra *reg1 = &event->hw.extra_reg;
 	struct extra_reg *er;
 	int idx = 0;
+	/* Any of the CHA events may be filtered by Thread/Core-ID.*/
+	if (event->hw.config & SNBEP_CBO_PMON_CTL_TID_EN)
+		idx = SKX_CHA_MSR_PMON_BOX_FILTER_TID;
 
 	for (er = skx_uncore_cha_extra_regs; er->msr; er++) {
 		if (er->event != (event->hw.config & er->config_mask))
@@ -3612,6 +3615,7 @@ static struct event_constraint skx_uncore_iio_constraints[] = {
 	UNCORE_EVENT_CONSTRAINT(0xc0, 0xc),
 	UNCORE_EVENT_CONSTRAINT(0xc5, 0xc),
 	UNCORE_EVENT_CONSTRAINT(0xd4, 0xc),
+	UNCORE_EVENT_CONSTRAINT(0xd5, 0xc),
 	EVENT_CONSTRAINT_END
 };
 
arch/x86/hyperv/hv_init.c +3 -0
index 3cf403023259..01860c0d324d 100644
@@ -176,6 +176,9 @@ void set_hv_tscchange_cb(void (*cb)(void))
 		return;
 	}
 
+	if (!hv_vp_index)
+		return;
+
 	hv_reenlightenment_cb = cb;
 
 	/* Make sure callback is registered before we write to MSRs */
arch/x86/kvm/vmx/nested.c +17 -5
index d5f24a2f3e91..257ec2cbf69a 100644
@@ -2851,6 +2851,17 @@ static int nested_vmx_check_controls(struct kvm_vcpu *vcpu,
 	return 0;
 }
 
+static int nested_vmx_check_address_space_size(struct kvm_vcpu *vcpu,
+				       struct vmcs12 *vmcs12)
+{
+#ifdef CONFIG_X86_64
+	if (CC(!!(vmcs12->vm_exit_controls & VM_EXIT_HOST_ADDR_SPACE_SIZE) !=
+		!!(vcpu->arch.efer & EFER_LMA)))
+		return -EINVAL;
+#endif
+	return 0;
+}
+
 static int nested_vmx_check_host_state(struct kvm_vcpu *vcpu,
 				       struct vmcs12 *vmcs12)
 {
@@ -2875,18 +2886,16 @@ static int nested_vmx_check_host_state(struct kvm_vcpu *vcpu,
 		return -EINVAL;
 
 #ifdef CONFIG_X86_64
-	ia32e = !!(vcpu->arch.efer & EFER_LMA);
+	ia32e = !!(vmcs12->vm_exit_controls & VM_EXIT_HOST_ADDR_SPACE_SIZE);
 #else
 	ia32e = false;
 #endif
 
 	if (ia32e) {
-		if (CC(!(vmcs12->vm_exit_controls & VM_EXIT_HOST_ADDR_SPACE_SIZE)) ||
-		    CC(!(vmcs12->host_cr4 & X86_CR4_PAE)))
+		if (CC(!(vmcs12->host_cr4 & X86_CR4_PAE)))
 			return -EINVAL;
 	} else {
-		if (CC(vmcs12->vm_exit_controls & VM_EXIT_HOST_ADDR_SPACE_SIZE) ||
-		    CC(vmcs12->vm_entry_controls & VM_ENTRY_IA32E_MODE) ||
+		if (CC(vmcs12->vm_entry_controls & VM_ENTRY_IA32E_MODE) ||
 		    CC(vmcs12->host_cr4 & X86_CR4_PCIDE) ||
 		    CC((vmcs12->host_rip) >> 32))
 			return -EINVAL;
@@ -3555,6 +3564,9 @@ static int nested_vmx_run(struct kvm_vcpu *vcpu, bool launch)
 	if (nested_vmx_check_controls(vcpu, vmcs12))
 		return nested_vmx_fail(vcpu, VMXERR_ENTRY_INVALID_CONTROL_FIELD);
 
+	if (nested_vmx_check_address_space_size(vcpu, vmcs12))
+		return nested_vmx_fail(vcpu, VMXERR_ENTRY_INVALID_HOST_STATE_FIELD);
+
 	if (nested_vmx_check_host_state(vcpu, vmcs12))
 		return nested_vmx_fail(vcpu, VMXERR_ENTRY_INVALID_HOST_STATE_FIELD);
 
block/blk-core.c +1 -3
index fbc39756f37d..26664f2a139e 100644
@@ -897,10 +897,8 @@ static noinline_for_stack bool submit_bio_checks(struct bio *bio)
 	if (unlikely(!current->io_context))
 		create_task_io_context(current, GFP_ATOMIC, q->node);
 
-	if (blk_throtl_bio(bio)) {
-		blkcg_bio_issue_init(bio);
+	if (blk_throtl_bio(bio))
 		return false;
-	}
 
 	blk_cgroup_bio_start(bio);
 	blkcg_bio_issue_init(bio);
block/ioprio.c +8 -1
index 364d2294ba90..84da6c71b2cc 100644
@@ -69,7 +69,14 @@ int ioprio_check_cap(int ioprio)
 
 	switch (class) {
 		case IOPRIO_CLASS_RT:
-			if (!capable(CAP_SYS_NICE) && !capable(CAP_SYS_ADMIN))
+			/*
+			 * Originally this only checked for CAP_SYS_ADMIN,
+			 * which was implicitly allowed for pid 0 by security
+			 * modules such as SELinux. Make sure we check
+			 * CAP_SYS_ADMIN first to avoid a denial/avc for
+			 * possibly missing CAP_SYS_NICE permission.
+			 */
+			if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_NICE))
 				return -EPERM;
 			fallthrough;
 			/* rt has prio field too */
drivers/base/firmware_loader/main.c +7 -6
index f41e4e4993d3..1372f40d0371 100644
@@ -99,12 +99,15 @@ static struct firmware_cache fw_cache;
 extern struct builtin_fw __start_builtin_fw[];
 extern struct builtin_fw __end_builtin_fw[];
 
-static void fw_copy_to_prealloc_buf(struct firmware *fw,
+static bool fw_copy_to_prealloc_buf(struct firmware *fw,
 				    void *buf, size_t size)
 {
-	if (!buf || size < fw->size)
-		return;
+	if (!buf)
+		return true;
+	if (size < fw->size)
+		return false;
 	memcpy(buf, fw->data, fw->size);
+	return true;
 }
 
 static bool fw_get_builtin_firmware(struct firmware *fw, const char *name,
@@ -116,9 +119,7 @@ static bool fw_get_builtin_firmware(struct firmware *fw, const char *name,
 		if (strcmp(name, b_fw->name) == 0) {
 			fw->size = b_fw->size;
 			fw->data = b_fw->data;
-			fw_copy_to_prealloc_buf(fw, buf, size);
-
-			return true;
+			return fw_copy_to_prealloc_buf(fw, buf, size);
 		}
 	}
 
drivers/bus/ti-sysc.c +103 -7

186 lines not on this page · raw message

drivers/clk/clk-ast2600.c +7 -5
index bc3be5f3eae1..24dab2312bc6 100644
@@ -51,6 +51,8 @@ static DEFINE_SPINLOCK(aspeed_g6_clk_lock);
 static struct clk_hw_onecell_data *aspeed_g6_clk_data;
 
 static void __iomem *scu_g6_base;
+/* AST2600 revision: A0, A1, A2, etc */
+static u8 soc_rev;
 
 /*
  * Clocks marked with CLK_IS_CRITICAL:
@@ -191,9 +193,8 @@ static struct clk_hw *ast2600_calc_pll(const char *name, u32 val)
 static struct clk_hw *ast2600_calc_apll(const char *name, u32 val)
 {
 	unsigned int mult, div;
-	u32 chip_id = readl(scu_g6_base + ASPEED_G6_SILICON_REV);
 
-	if (((chip_id & CHIP_REVISION_ID) >> 16) >= 2) {
+	if (soc_rev >= 2) {
 		if (val & BIT(24)) {
 			/* Pass through mode */
 			mult = div = 1;
@@ -707,7 +708,7 @@ static const u32 ast2600_a1_axi_ahb200_tbl[] = {
 static void __init aspeed_g6_cc(struct regmap *map)
 {
 	struct clk_hw *hw;
-	u32 val, div, divbits, chip_id, axi_div, ahb_div;
+	u32 val, div, divbits, axi_div, ahb_div;
 
 	clk_hw_register_fixed_rate(NULL, "clkin", NULL, 0, 25000000);
 
@@ -738,8 +739,7 @@ static void __init aspeed_g6_cc(struct regmap *map)
 		axi_div = 2;
 
 	divbits = (val >> 11) & 0x3;
-	regmap_read(map, ASPEED_G6_SILICON_REV, &chip_id);
-	if (chip_id & BIT(16)) {
+	if (soc_rev >= 1) {
 		if (!divbits) {
 			ahb_div = ast2600_a1_axi_ahb200_tbl[(val >> 8) & 0x3];
 			if (val & BIT(16))
@@ -784,6 +784,8 @@ static void __init aspeed_g6_cc_init(struct device_node *np)
 	if (!scu_g6_base)
 		return;
 
+	soc_rev = (readl(scu_g6_base + ASPEED_G6_SILICON_REV) & CHIP_REVISION_ID) >> 16;
+
 	aspeed_g6_clk_data = kzalloc(struct_size(aspeed_g6_clk_data, hws,
 				      ASPEED_G6_NUM_CLKS), GFP_KERNEL);
 	if (!aspeed_g6_clk_data)
drivers/clk/imx/clk-imx6ul.c +1 -1
index 5dbb6a937732..206e4c43f68f 100644
@@ -161,7 +161,6 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node)
 	hws[IMX6UL_PLL5_BYPASS] = imx_clk_hw_mux_flags("pll5_bypass", base + 0xa0, 16, 1, pll5_bypass_sels, ARRAY_SIZE(pll5_bypass_sels), CLK_SET_RATE_PARENT);
 	hws[IMX6UL_PLL6_BYPASS] = imx_clk_hw_mux_flags("pll6_bypass", base + 0xe0, 16, 1, pll6_bypass_sels, ARRAY_SIZE(pll6_bypass_sels), CLK_SET_RATE_PARENT);
 	hws[IMX6UL_PLL7_BYPASS] = imx_clk_hw_mux_flags("pll7_bypass", base + 0x20, 16, 1, pll7_bypass_sels, ARRAY_SIZE(pll7_bypass_sels), CLK_SET_RATE_PARENT);
-	hws[IMX6UL_CLK_CSI_SEL] = imx_clk_hw_mux_flags("csi_sel", base + 0x3c, 9, 2, csi_sels, ARRAY_SIZE(csi_sels), CLK_SET_RATE_PARENT);
 
 	/* Do not bypass PLLs initially */
 	clk_set_parent(hws[IMX6UL_PLL1_BYPASS]->clk, hws[IMX6UL_CLK_PLL1]->clk);
@@ -270,6 +269,7 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node)
 	hws[IMX6UL_CLK_ECSPI_SEL]	  = imx_clk_hw_mux("ecspi_sel",	base + 0x38, 18, 1, ecspi_sels, ARRAY_SIZE(ecspi_sels));
 	hws[IMX6UL_CLK_LCDIF_PRE_SEL]	  = imx_clk_hw_mux_flags("lcdif_pre_sel", base + 0x38, 15, 3, lcdif_pre_sels, ARRAY_SIZE(lcdif_pre_sels), CLK_SET_RATE_PARENT);
 	hws[IMX6UL_CLK_LCDIF_SEL]	  = imx_clk_hw_mux("lcdif_sel",	base + 0x38, 9, 3, lcdif_sels, ARRAY_SIZE(lcdif_sels));
+	hws[IMX6UL_CLK_CSI_SEL]		  = imx_clk_hw_mux("csi_sel", base + 0x3c, 9, 2, csi_sels, ARRAY_SIZE(csi_sels));
 
 	hws[IMX6UL_CLK_LDB_DI0_DIV_SEL]  = imx_clk_hw_mux("ldb_di0", base + 0x20, 10, 1, ldb_di0_div_sels, ARRAY_SIZE(ldb_di0_div_sels));
 	hws[IMX6UL_CLK_LDB_DI1_DIV_SEL]  = imx_clk_hw_mux("ldb_di1", base + 0x20, 11, 1, ldb_di1_div_sels, ARRAY_SIZE(ldb_di1_div_sels));
drivers/clk/ingenic/cgu.c +3 -3
index c8e9cb6c8e39..2b9bb7d55efc 100644
@@ -425,15 +425,15 @@ ingenic_clk_calc_div(const struct ingenic_cgu_clk_info *clk_info,
 	}
 
 	/* Impose hardware constraints */
-	div = min_t(unsigned, div, 1 << clk_info->div.bits);
-	div = max_t(unsigned, div, 1);
+	div = clamp_t(unsigned int, div, clk_info->div.div,
+		      clk_info->div.div << clk_info->div.bits);
 
 	/*
 	 * If the divider value itself must be divided before being written to
 	 * the divider register, we must ensure we don't have any bits set that
 	 * would be lost as a result of doing so.
 	 */
-	div /= clk_info->div.div;
+	div = DIV_ROUND_UP(div, clk_info->div.div);
 	div *= clk_info->div.div;
 
 	return div;
drivers/clk/qcom/gcc-msm8996.c +0 -15
index 3c3a7ff04562..9b1674b28d45 100644
@@ -2937,20 +2937,6 @@ static struct clk_branch gcc_smmu_aggre0_ahb_clk = {
 	},
 };
 
-static struct clk_branch gcc_aggre1_pnoc_ahb_clk = {
-	.halt_reg = 0x82014,
-	.clkr = {
-		.enable_reg = 0x82014,
-		.enable_mask = BIT(0),
-		.hw.init = &(struct clk_init_data){
-			.name = "gcc_aggre1_pnoc_ahb_clk",
-			.parent_names = (const char *[]){ "periph_noc_clk_src" },
-			.num_parents = 1,
-			.ops = &clk_branch2_ops,
-		},
-	},
-};
-
 static struct clk_branch gcc_aggre2_ufs_axi_clk = {
 	.halt_reg = 0x83014,
 	.clkr = {
@@ -3474,7 +3460,6 @@ static struct clk_regmap *gcc_msm8996_clocks[] = {
 	[GCC_AGGRE0_CNOC_AHB_CLK] = &gcc_aggre0_cnoc_ahb_clk.clkr,
 	[GCC_SMMU_AGGRE0_AXI_CLK] = &gcc_smmu_aggre0_axi_clk.clkr,
 	[GCC_SMMU_AGGRE0_AHB_CLK] = &gcc_smmu_aggre0_ahb_clk.clkr,
-	[GCC_AGGRE1_PNOC_AHB_CLK] = &gcc_aggre1_pnoc_ahb_clk.clkr,
 	[GCC_AGGRE2_UFS_AXI_CLK] = &gcc_aggre2_ufs_axi_clk.clkr,
 	[GCC_AGGRE2_USB3_AXI_CLK] = &gcc_aggre2_usb3_axi_clk.clkr,
 	[GCC_QSPI_AHB_CLK] = &gcc_qspi_ahb_clk.clkr,
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +1 -0
index b9c11c2b2885..0de66f59adb8 100644
@@ -827,6 +827,7 @@ static int amdgpu_connector_vga_get_modes(struct drm_connector *connector)
 
 	amdgpu_connector_get_edid(connector);
 	ret = amdgpu_connector_ddc_get_modes(connector);
+	amdgpu_get_native_mode(connector);
 
 	return ret;
 }
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +3 -1
index 312181654646..53ac82693532 100644
@@ -1852,7 +1852,9 @@ static void swizzle_to_dml_params(
 	case DC_SW_VAR_D_X:
 		*sw_mode = dm_sw_var_d_x;
 		break;
-
+	case DC_SW_VAR_R_X:
+		*sw_mode = dm_sw_var_r_x;
+		break;
 	default:
 		ASSERT(0); /* Not supported */
 		break;
drivers/gpu/drm/amd/display/dc/dml/display_mode_enums.h +2 -2
index 64f9c735f74d..e73cee275729 100644
@@ -80,11 +80,11 @@ enum dm_swizzle_mode {
 	dm_sw_SPARE_13 = 24,
 	dm_sw_64kb_s_x = 25,
 	dm_sw_64kb_d_x = 26,
-	dm_sw_SPARE_14 = 27,
+	dm_sw_64kb_r_x = 27,
 	dm_sw_SPARE_15 = 28,
 	dm_sw_var_s_x = 29,
 	dm_sw_var_d_x = 30,
-	dm_sw_64kb_r_x,
+	dm_sw_var_r_x = 31,
 	dm_sw_gfx7_2d_thin_l_vp,
 	dm_sw_gfx7_2d_thin_gl,
 };
drivers/gpu/drm/i915/display/intel_dp.c +11 -0
index 65d73eb5e155..1c1931f5c958 100644
@@ -154,6 +154,12 @@ static void vlv_steal_power_sequencer(struct drm_i915_private *dev_priv,
 				      enum pipe pipe);
 static void intel_dp_unset_edid(struct intel_dp *intel_dp);
 
+static void intel_dp_set_default_sink_rates(struct intel_dp *intel_dp)
+{
+	intel_dp->sink_rates[0] = 162000;
+	intel_dp->num_sink_rates = 1;
+}
+
 /* update sink rates from dpcd */
 static void intel_dp_set_sink_rates(struct intel_dp *intel_dp)
 {
@@ -4678,6 +4684,9 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp)
 	 */
 	intel_psr_init_dpcd(intel_dp);
 
+	/* Clear the default sink rates */
+	intel_dp->num_sink_rates = 0;
+
 	/* Read the eDP 1.4+ supported link rates. */
 	if (intel_dp->edp_dpcd[0] >= DP_EDP_14) {
 		__le16 sink_rates[DP_MAX_SUPPORTED_RATES];
@@ -7779,6 +7788,8 @@ intel_dp_init_connector(struct intel_digital_port *dig_port,
 		return false;
 
 	intel_dp_set_source_rates(intel_dp);
+	intel_dp_set_default_sink_rates(intel_dp);
+	intel_dp_set_common_rates(intel_dp);
 
 	intel_dp->reset_link_params = true;
 	intel_dp->pps_pipe = INVALID_PIPE;
drivers/gpu/drm/nouveau/nouveau_drm.c +37 -5

94 lines not on this page · raw message

drivers/gpu/drm/nouveau/nouveau_drv.h +5 -0
index b8025507a9e4..8b252dca0fc3 100644
@@ -142,6 +142,11 @@ struct nouveau_drm {
 
 	struct list_head clients;
 
+	/**
+	 * @clients_lock: Protects access to the @clients list of &struct nouveau_cli.
+	 */
+	struct mutex clients_lock;
+
 	u8 old_pm_cap;
 
 	struct {
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c +0 -1
index 6e3c450eaace..3ff49344abc7 100644
@@ -62,7 +62,6 @@ gv100_hdmi_ctrl(struct nvkm_ior *ior, int head, bool enable, u8 max_ac_packet,
 		nvkm_wr32(device, 0x6f0108 + hdmi, vendor_infoframe.header);
 		nvkm_wr32(device, 0x6f010c + hdmi, vendor_infoframe.subpack0_low);
 		nvkm_wr32(device, 0x6f0110 + hdmi, vendor_infoframe.subpack0_high);
-		nvkm_wr32(device, 0x6f0110 + hdmi, 0x00000000);
 		nvkm_wr32(device, 0x6f0114 + hdmi, 0x00000000);
 		nvkm_wr32(device, 0x6f0118 + hdmi, 0x00000000);
 		nvkm_wr32(device, 0x6f011c + hdmi, 0x00000000);
drivers/gpu/drm/udl/udl_connector.c +1 -1
index cdc1c42e1669..aac41a809924 100644
@@ -30,7 +30,7 @@ static int udl_get_edid_block(void *data, u8 *buf, unsigned int block,
 		ret = usb_control_msg(udl->udev,
 				      usb_rcvctrlpipe(udl->udev, 0),
 					  (0x02), (0x80 | (0x02 << 5)), bval,
-					  0xA1, read_buff, 2, HZ);
+					  0xA1, read_buff, 2, 1000);
 		if (ret < 1) {
 			DRM_ERROR("Read EDID byte %d failed err %x\n", i, ret);
 			kfree(read_buff);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c +4 -2
index 2ab1ac5a2412..558ca3843bb9 100644
@@ -1465,6 +1465,8 @@ st_lsm6dsx_set_odr(struct st_lsm6dsx_sensor *sensor, u32 req_odr)
 	int err;
 
 	switch (sensor->id) {
+	case ST_LSM6DSX_ID_GYRO:
+		break;
 	case ST_LSM6DSX_ID_EXT0:
 	case ST_LSM6DSX_ID_EXT1:
 	case ST_LSM6DSX_ID_EXT2:
@@ -1490,8 +1492,8 @@ st_lsm6dsx_set_odr(struct st_lsm6dsx_sensor *sensor, u32 req_odr)
 		}
 		break;
 	}
-	default:
-		break;
+	default: /* should never occur */
+		return -EINVAL;
 	}
 
 	if (req_odr > 0) {
drivers/infiniband/hw/bnxt_re/ib_verbs.c +9 -3
index 441952a5eca4..10d77f50f818 100644
@@ -3368,8 +3368,11 @@ static void bnxt_re_process_res_ud_wc(struct bnxt_re_qp *qp,
 				      struct ib_wc *wc,
 				      struct bnxt_qplib_cqe *cqe)
 {
+	struct bnxt_re_dev *rdev;
+	u16 vlan_id = 0;
 	u8 nw_type;
 
+	rdev = qp->rdev;
 	wc->opcode = IB_WC_RECV;
 	wc->status = __rc_to_ib_wc_status(cqe->status);
 
@@ -3381,9 +3384,12 @@ static void bnxt_re_process_res_ud_wc(struct bnxt_re_qp *qp,
 		memcpy(wc->smac, cqe->smac, ETH_ALEN);
 		wc->wc_flags |= IB_WC_WITH_SMAC;
 		if (cqe->flags & CQ_RES_UD_FLAGS_META_FORMAT_VLAN) {
-			wc->vlan_id = (cqe->cfa_meta & 0xFFF);
-			if (wc->vlan_id < 0x1000)
-				wc->wc_flags |= IB_WC_WITH_VLAN;
+			vlan_id = (cqe->cfa_meta & 0xFFF);
+		}
+		/* Mark only if vlan_id is non zero */
+		if (vlan_id && bnxt_re_check_if_vlan_valid(rdev, vlan_id)) {
+			wc->vlan_id = vlan_id;
+			wc->wc_flags |= IB_WC_WITH_VLAN;
 		}
 		nw_type = (cqe->flags & CQ_RES_UD_FLAGS_ROCE_IP_VER_MASK) >>
 			   CQ_RES_UD_FLAGS_ROCE_IP_VER_SFT;
drivers/net/ethernet/broadcom/bnx2x/bnx2x_init_ops.h +3 -1
index 1835d2e451c0..fc7fce642666 100644
@@ -635,11 +635,13 @@ static int bnx2x_ilt_client_mem_op(struct bnx2x *bp, int cli_num,
 {
 	int i, rc;
 	struct bnx2x_ilt *ilt = BP_ILT(bp);
-	struct ilt_client_info *ilt_cli = &ilt->clients[cli_num];
+	struct ilt_client_info *ilt_cli;
 
 	if (!ilt || !ilt->lines)
 		return -1;
 
+	ilt_cli = &ilt->clients[cli_num];
+
 	if (ilt_cli->flags & (ILT_CLIENT_SKIP_INIT | ILT_CLIENT_SKIP_MEM))
 		return 0;
 
drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +1 -1
index 2186706cf913..3e9b1f59e381 100644
@@ -1854,7 +1854,7 @@ static int bnxt_tc_setup_indr_block_cb(enum tc_setup_type type,
 	struct flow_cls_offload *flower = type_data;
 	struct bnxt *bp = priv->bp;
 
-	if (flower->common.chain_index)
+	if (!tc_cls_can_offload_and_chain0(bp->dev, type_data))
 		return -EOPNOTSUPP;
 
 	switch (type) {
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +2 -2
index f91c67489e62..a4ef35216e2f 100644
@@ -4432,10 +4432,10 @@ static int dpaa2_eth_remove(struct fsl_mc_device *ls_dev)
 
 	fsl_mc_portal_free(priv->mc_io);
 
-	free_netdev(net_dev);
-
 	dev_dbg(net_dev->dev.parent, "Removed interface %s\n", net_dev->name);
 
+	free_netdev(net_dev);
+
 	return 0;
 }
 
drivers/net/ethernet/intel/e100.c +13 -5
index ee86ea12fa37..9295a9a1efc7 100644
@@ -2997,9 +2997,10 @@ static void __e100_shutdown(struct pci_dev *pdev, bool *enable_wake)
 	struct net_device *netdev = pci_get_drvdata(pdev);
 	struct nic *nic = netdev_priv(netdev);
 
+	netif_device_detach(netdev);
+
 	if (netif_running(netdev))
 		e100_down(nic);
-	netif_device_detach(netdev);
 
 	if ((nic->flags & wol_magic) | e100_asf(nic)) {
 		/* enable reverse auto-negotiation */
@@ -3016,7 +3017,7 @@ static void __e100_shutdown(struct pci_dev *pdev, bool *enable_wake)
 		*enable_wake = false;
 	}
 
-	pci_clear_master(pdev);
+	pci_disable_device(pdev);
 }
 
 static int __e100_power_off(struct pci_dev *pdev, bool wake)
@@ -3036,8 +3037,6 @@ static int __maybe_unused e100_suspend(struct device *dev_d)
 
 	__e100_shutdown(to_pci_dev(dev_d), &wake);
 
-	device_wakeup_disable(dev_d);
-
 	return 0;
 }
 
@@ -3045,6 +3044,14 @@ static int __maybe_unused e100_resume(struct device *dev_d)
 {
 	struct net_device *netdev = dev_get_drvdata(dev_d);
 	struct nic *nic = netdev_priv(netdev);
+	int err;
+
+	err = pci_enable_device(to_pci_dev(dev_d));
+	if (err) {
+		netdev_err(netdev, "Resume cannot enable PCI device, aborting\n");
+		return err;
+	}
+	pci_set_master(to_pci_dev(dev_d));
 
 	/* disable reverse auto-negotiation */
 	if (nic->phy == phy_82552_v) {
@@ -3056,10 +3063,11 @@ static int __maybe_unused e100_resume(struct device *dev_d)
 		           smartspeed & ~(E100_82552_REV_ANEG));
 	}
 
-	netif_device_attach(netdev);
 	if (netif_running(netdev))
 		e100_up(nic);
 
+	netif_device_attach(netdev);
+
 	return 0;
 }
 
drivers/net/ethernet/intel/i40e/i40e.h +2 -0
index fe1258778cbc..5b83d1bc0e74 100644
@@ -159,6 +159,7 @@ enum i40e_vsi_state_t {
 	__I40E_VSI_OVERFLOW_PROMISC,
 	__I40E_VSI_REINIT_REQUESTED,
 	__I40E_VSI_DOWN_REQUESTED,
+	__I40E_VSI_RELEASING,
 	/* This must be last as it determines the size of the BITMAP */
 	__I40E_VSI_STATE_SIZE__,
 };
@@ -1144,6 +1145,7 @@ void i40e_ptp_save_hw_time(struct i40e_pf *pf);
 void i40e_ptp_restore_hw_time(struct i40e_pf *pf);
 void i40e_ptp_init(struct i40e_pf *pf);
 void i40e_ptp_stop(struct i40e_pf *pf);
+int i40e_update_adq_vsi_queues(struct i40e_vsi *vsi, int vsi_offset);
 int i40e_is_vsi_uplink_mode_veb(struct i40e_vsi *vsi);
 i40e_status i40e_get_partition_bw_setting(struct i40e_pf *pf);
 i40e_status i40e_set_partition_bw_setting(struct i40e_pf *pf);
drivers/net/ethernet/intel/i40e/i40e_main.c +104 -56

229 lines not on this page · raw message

drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +41 -80

225 lines not on this page · raw message

drivers/net/ethernet/intel/iavf/iavf_ethtool.c +22 -8
index c93567f4d0f7..ea85b06857fa 100644
@@ -892,6 +892,7 @@ static int iavf_set_channels(struct net_device *netdev,
 {
 	struct iavf_adapter *adapter = netdev_priv(netdev);
 	u32 num_req = ch->combined_count;
+	int i;
 
 	if ((adapter->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_ADQ) &&
 	    adapter->num_tc) {
@@ -902,7 +903,7 @@ static int iavf_set_channels(struct net_device *netdev,
 	/* All of these should have already been checked by ethtool before this
 	 * even gets to us, but just to be sure.
 	 */
-	if (num_req > adapter->vsi_res->num_queue_pairs)
+	if (num_req == 0 || num_req > adapter->vsi_res->num_queue_pairs)
 		return -EINVAL;
 
 	if (num_req == adapter->num_active_queues)
@@ -914,6 +915,20 @@ static int iavf_set_channels(struct net_device *netdev,
 	adapter->num_req_queues = num_req;
 	adapter->flags |= IAVF_FLAG_REINIT_ITR_NEEDED;
 	iavf_schedule_reset(adapter);
+
+	/* wait for the reset is done */
+	for (i = 0; i < IAVF_RESET_WAIT_COMPLETE_COUNT; i++) {
+		msleep(IAVF_RESET_WAIT_MS);
+		if (adapter->flags & IAVF_FLAG_RESET_PENDING)
+			continue;
+		break;
+	}
+	if (i == IAVF_RESET_WAIT_COMPLETE_COUNT) {
+		adapter->flags &= ~IAVF_FLAG_REINIT_ITR_NEEDED;
+		adapter->num_active_queues = num_req;
+		return -EOPNOTSUPP;
+	}
+
 	return 0;
 }
 
@@ -960,14 +975,13 @@ static int iavf_get_rxfh(struct net_device *netdev, u32 *indir, u8 *key,
 
 	if (hfunc)
 		*hfunc = ETH_RSS_HASH_TOP;
-	if (!indir)
-		return 0;
-
-	memcpy(key, adapter->rss_key, adapter->rss_key_size);
+	if (key)
+		memcpy(key, adapter->rss_key, adapter->rss_key_size);
 
-	/* Each 32 bits pointed by 'indir' is stored with a lut entry */
-	for (i = 0; i < adapter->rss_lut_size; i++)
-		indir[i] = (u32)adapter->rss_lut[i];
+	if (indir)
+		/* Each 32 bits pointed by 'indir' is stored with a lut entry */
+		for (i = 0; i < adapter->rss_lut_size; i++)
+			indir[i] = (u32)adapter->rss_lut[i];
 
 	return 0;
 }
drivers/net/ethernet/intel/iavf/iavf_main.c +7 -7
index f06c079e812e..643679cad865 100644
@@ -1616,8 +1616,7 @@ static int iavf_process_aq_command(struct iavf_adapter *adapter)
 		iavf_set_promiscuous(adapter, FLAG_VF_MULTICAST_PROMISC);
 		return 0;
 	}
-
-	if ((adapter->aq_required & IAVF_FLAG_AQ_RELEASE_PROMISC) &&
+	if ((adapter->aq_required & IAVF_FLAG_AQ_RELEASE_PROMISC) ||
 	    (adapter->aq_required & IAVF_FLAG_AQ_RELEASE_ALLMULTI)) {
 		iavf_set_promiscuous(adapter, 0);
 		return 0;
@@ -2047,8 +2046,8 @@ static void iavf_disable_vf(struct iavf_adapter *adapter)
 
 	iavf_free_misc_irq(adapter);
 	iavf_reset_interrupt_capability(adapter);
-	iavf_free_queues(adapter);
 	iavf_free_q_vectors(adapter);
+	iavf_free_queues(adapter);
 	memset(adapter->vf_res, 0, IAVF_VIRTCHNL_VF_RESOURCE_SIZE);
 	iavf_shutdown_adminq(&adapter->hw);
 	adapter->netdev->flags &= ~IFF_UP;
@@ -2330,7 +2329,7 @@ static void iavf_adminq_task(struct work_struct *work)
 
 	/* check for error indications */
 	val = rd32(hw, hw->aq.arq.len);
-	if (val == 0xdeadbeef) /* indicates device in reset */
+	if (val == 0xdeadbeef || val == 0xffffffff) /* device in reset */
 		goto freedom;
 	oldval = val;
 	if (val & IAVF_VF_ARQLEN1_ARQVFE_MASK) {
@@ -3028,11 +3027,11 @@ static int iavf_configure_clsflower(struct iavf_adapter *adapter,
 	/* start out with flow type and eth type IPv4 to begin with */
 	filter->f.flow_type = VIRTCHNL_TCP_V4_FLOW;
 	err = iavf_parse_cls_flower(adapter, cls_flower, filter);
-	if (err < 0)
+	if (err)
 		goto err;
 
 	err = iavf_handle_tclass(adapter, tc, filter);
-	if (err < 0)
+	if (err)
 		goto err;
 
 	/* add filter to the list */
@@ -3419,7 +3418,8 @@ static netdev_features_t iavf_fix_features(struct net_device *netdev,
 {
 	struct iavf_adapter *adapter = netdev_priv(netdev);
 
-	if (!(adapter->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN))
+	if (adapter->vf_res &&
+	    !(adapter->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN))
 		features &= ~(NETIF_F_HW_VLAN_CTAG_TX |
 			      NETIF_F_HW_VLAN_CTAG_RX |
 			      NETIF_F_HW_VLAN_CTAG_FILTER);
drivers/net/ethernet/intel/ice/ice_main.c +0 -3
index 66d92a0cfef3..5b67d24b2b5e 100644
@@ -4361,9 +4361,6 @@ static void ice_remove(struct pci_dev *pdev)
 	struct ice_pf *pf = pci_get_drvdata(pdev);
 	int i;
 
-	if (!pf)
-		return;
-
 	for (i = 0; i < ICE_MAX_RESET_WAIT; i++) {
 		if (!ice_is_reset_in_progress(pf->state))
 			break;
drivers/net/ethernet/mellanox/mlx5/core/cq.c +3 -2
index c74600be570e..68d7ca17b6f5 100644
@@ -163,13 +163,14 @@ int mlx5_core_destroy_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq)
 	MLX5_SET(destroy_cq_in, in, cqn, cq->cqn);
 	MLX5_SET(destroy_cq_in, in, uid, cq->uid);
 	err = mlx5_cmd_exec_in(dev, destroy_cq, in);
+	if (err)
+		return err;
 
 	synchronize_irq(cq->irqn);
-
 	mlx5_cq_put(cq);
 	wait_for_completion(&cq->free);
 
-	return err;
+	return 0;
 }
 EXPORT_SYMBOL(mlx5_core_destroy_cq);
 
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c +3 -1
index 07c8d9811bc8..10d195042ab5 100644
@@ -507,6 +507,8 @@ void mlx5_debug_cq_remove(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq)
 	if (!mlx5_debugfs_root)
 		return;
 
-	if (cq->dbg)
+	if (cq->dbg) {
 		rem_res_tree(cq->dbg);
+		cq->dbg = NULL;
+	}
 }
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +5 -6
index 401b2f5128dd..78cc6f0bbc72 100644
@@ -1663,7 +1663,7 @@ int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int num_vfs)
 	if (!ESW_ALLOWED(esw))
 		return 0;
 
-	mutex_lock(&esw->mode_lock);
+	down_write(&esw->mode_lock);
 	if (esw->mode == MLX5_ESWITCH_NONE) {
 		ret = mlx5_eswitch_enable_locked(esw, MLX5_ESWITCH_LEGACY, num_vfs);
 	} else {
@@ -1675,7 +1675,7 @@ int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int num_vfs)
 		if (!ret)
 			esw->esw_funcs.num_vfs = num_vfs;
 	}
-	mutex_unlock(&esw->mode_lock);
+	up_write(&esw->mode_lock);
 	return ret;
 }
 
@@ -1719,10 +1719,10 @@ void mlx5_eswitch_disable(struct mlx5_eswitch *esw, bool clear_vf)
 	if (!ESW_ALLOWED(esw))
 		return;
 
-	mutex_lock(&esw->mode_lock);
+	down_write(&esw->mode_lock);
 	mlx5_eswitch_disable_locked(esw, clear_vf);
 	esw->esw_funcs.num_vfs = 0;
-	mutex_unlock(&esw->mode_lock);
+	up_write(&esw->mode_lock);
 }
 
 int mlx5_eswitch_init(struct mlx5_core_dev *dev)
@@ -1778,7 +1778,7 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev)
 	atomic64_set(&esw->offloads.num_flows, 0);
 	ida_init(&esw->offloads.vport_metadata_ida);
 	mutex_init(&esw->state_lock);
-	mutex_init(&esw->mode_lock);
+	init_rwsem(&esw->mode_lock);
 
 	mlx5_esw_for_all_vports(esw, i, vport) {
 		vport->vport = mlx5_eswitch_index_to_vport_num(esw, i);
@@ -1813,7 +1813,6 @@ void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw)
 	esw->dev->priv.eswitch = NULL;
 	destroy_workqueue(esw->work_queue);
 	esw_offloads_cleanup_reps(esw);
-	mutex_destroy(&esw->mode_lock);
 	mutex_destroy(&esw->state_lock);
 	ida_destroy(&esw->offloads.vport_metadata_ida);
 	mlx5e_mod_hdr_tbl_destroy(&esw->offloads.mod_hdr);
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +1 -1
index cf87de94418f..59c674f157a8 100644
@@ -262,7 +262,7 @@ struct mlx5_eswitch {
 	/* Protects eswitch mode change that occurs via one or more
 	 * user commands, i.e. sriov state change, devlink commands.
 	 */
-	struct mutex mode_lock;
+	struct rw_semaphore mode_lock;
 
 	struct {
 		bool            enabled;
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +14 -14
index 5801f55ff077..e06b1ba7d234 100644
@@ -2508,7 +2508,7 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode,
 	if (esw_mode_from_devlink(mode, &mlx5_mode))
 		return -EINVAL;
 
-	mutex_lock(&esw->mode_lock);
+	down_write(&esw->mode_lock);
 	cur_mlx5_mode = esw->mode;
 	if (cur_mlx5_mode == mlx5_mode)
 		goto unlock;
@@ -2521,7 +2521,7 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode,
 		err = -EINVAL;
 
 unlock:
-	mutex_unlock(&esw->mode_lock);
+	up_write(&esw->mode_lock);
 	return err;
 }
 
@@ -2534,14 +2534,14 @@ int mlx5_devlink_eswitch_mode_get(struct devlink *devlink, u16 *mode)
 	if (IS_ERR(esw))
 		return PTR_ERR(esw);
 
-	mutex_lock(&esw->mode_lock);
+	down_write(&esw->mode_lock);
 	err = eswitch_devlink_esw_mode_check(esw);
 	if (err)
 		goto unlock;
 
 	err = esw_mode_to_devlink(esw->mode, mode);
 unlock:
-	mutex_unlock(&esw->mode_lock);
+	up_write(&esw->mode_lock);
 	return err;
 }
 
@@ -2557,7 +2557,7 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode,
 	if (IS_ERR(esw))
 		return PTR_ERR(esw);
 
-	mutex_lock(&esw->mode_lock);
+	down_write(&esw->mode_lock);
 	err = eswitch_devlink_esw_mode_check(esw);
 	if (err)
 		goto out;
@@ -2599,7 +2599,7 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode,
 	}
 
 	esw->offloads.inline_mode = mlx5_mode;
-	mutex_unlock(&esw->mode_lock);
+	up_write(&esw->mode_lock);
 	return 0;
 
 revert_inline_mode:
@@ -2609,7 +2609,7 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode,
 						 vport,
 						 esw->offloads.inline_mode);
 out:
-	mutex_unlock(&esw->mode_lock);
+	up_write(&esw->mode_lock);
 	return err;
 }
 
@@ -2622,14 +2622,14 @@ int mlx5_devlink_eswitch_inline_mode_get(struct devlink *devlink, u8 *mode)
 	if (IS_ERR(esw))
 		return PTR_ERR(esw);
 
-	mutex_lock(&esw->mode_lock);
+	down_write(&esw->mode_lock);
 	err = eswitch_devlink_esw_mode_check(esw);
 	if (err)
 		goto unlock;
 
 	err = esw_inline_mode_to_devlink(esw->offloads.inline_mode, mode);
 unlock:
-	mutex_unlock(&esw->mode_lock);
+	up_write(&esw->mode_lock);
 	return err;
 }
 
@@ -2645,7 +2645,7 @@ int mlx5_devlink_eswitch_encap_mode_set(struct devlink *devlink,
 	if (IS_ERR(esw))
 		return PTR_ERR(esw);
 
-	mutex_lock(&esw->mode_lock);
+	down_write(&esw->mode_lock);
 	err = eswitch_devlink_esw_mode_check(esw);
 	if (err)
 		goto unlock;
@@ -2691,7 +2691,7 @@ int mlx5_devlink_eswitch_encap_mode_set(struct devlink *devlink,
 	}
 
 unlock:
-	mutex_unlock(&esw->mode_lock);
+	up_write(&esw->mode_lock);
 	return err;
 }
 
@@ -2706,15 +2706,15 @@ int mlx5_devlink_eswitch_encap_mode_get(struct devlink *devlink,
 		return PTR_ERR(esw);
 
 
-	mutex_lock(&esw->mode_lock);
+	down_write(&esw->mode_lock);
 	err = eswitch_devlink_esw_mode_check(esw);
 	if (err)
 		goto unlock;
 
 	*encap = esw->offloads.encap;
 unlock:
-	mutex_unlock(&esw->mode_lock);
-	return 0;
+	up_write(&esw->mode_lock);
+	return err;
 }
 
 static bool
drivers/net/ethernet/mellanox/mlx5/core/lag.c +13 -15
index fe5476a76464..11cc3ea5010a 100644
@@ -365,6 +365,7 @@ static int mlx5_handle_changeupper_event(struct mlx5_lag *ldev,
 	bool is_bonded, is_in_lag, mode_supported;
 	int bond_status = 0;
 	int num_slaves = 0;
+	int changed = 0;
 	int idx;
 
 	if (!netif_is_lag_master(upper))
@@ -401,27 +402,27 @@ static int mlx5_handle_changeupper_event(struct mlx5_lag *ldev,
 	 */
 	is_in_lag = num_slaves == MLX5_MAX_PORTS && bond_status == 0x3;
 
-	if (!mlx5_lag_is_ready(ldev) && is_in_lag) {
-		NL_SET_ERR_MSG_MOD(info->info.extack,
-				   "Can't activate LAG offload, PF is configured with more than 64 VFs");
-		return 0;
-	}
-
 	/* Lag mode must be activebackup or hash. */
 	mode_supported = tracker->tx_type == NETDEV_LAG_TX_TYPE_ACTIVEBACKUP ||
 			 tracker->tx_type == NETDEV_LAG_TX_TYPE_HASH;
 
-	if (is_in_lag && !mode_supported)
-		NL_SET_ERR_MSG_MOD(info->info.extack,
-				   "Can't activate LAG offload, TX type isn't supported");
-
 	is_bonded = is_in_lag && mode_supported;
 	if (tracker->is_bonded != is_bonded) {
 		tracker->is_bonded = is_bonded;
-		return 1;
+		changed = 1;
 	}
 
-	return 0;
+	if (!is_in_lag)
+		return changed;
+
+	if (!mlx5_lag_is_ready(ldev))
+		NL_SET_ERR_MSG_MOD(info->info.extack,
+				   "Can't activate LAG offload, PF is configured with more than 64 VFs");
+	else if (!mode_supported)
+		NL_SET_ERR_MSG_MOD(info->info.extack,
+				   "Can't activate LAG offload, TX type isn't supported");
+
+	return changed;
 }
 
 static int mlx5_handle_changelowerstate_event(struct mlx5_lag *ldev,
@@ -464,9 +465,6 @@ static int mlx5_lag_netdev_event(struct notifier_block *this,
 
 	ldev    = container_of(this, struct mlx5_lag, nb);
 
-	if (!mlx5_lag_is_ready(ldev) && event == NETDEV_CHANGELOWERSTATE)
-		return NOTIFY_DONE;
-
 	tracker = ldev->tracker;
 
 	switch (event) {
drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c +5 -0
index 143b2cb13bf9..e7fbc9b30bf9 100644
@@ -21,6 +21,7 @@
 #include <linux/delay.h>
 #include <linux/mfd/syscon.h>
 #include <linux/regmap.h>
+#include <linux/pm_runtime.h>
 
 #include "stmmac_platform.h"
 
@@ -1335,6 +1336,8 @@ static int rk_gmac_powerup(struct rk_priv_data *bsp_priv)
 		return ret;
 	}
 
+	pm_runtime_get_sync(dev);
+
 	if (bsp_priv->integrated_phy)
 		rk_gmac_integrated_phy_powerup(bsp_priv);
 
@@ -1346,6 +1349,8 @@ static void rk_gmac_powerdown(struct rk_priv_data *gmac)
 	if (gmac->integrated_phy)
 		rk_gmac_integrated_phy_powerdown(gmac);
 
+	pm_runtime_put_sync(&gmac->pdev->dev);
+
 	phy_power_on(gmac, false);
 	gmac_clk_enable(gmac, false);
 }
drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c +22 -2
index 70d41783329d..f37b6d57b2fe 100644
@@ -485,8 +485,28 @@ static int socfpga_dwmac_resume(struct device *dev)
 }
 #endif /* CONFIG_PM_SLEEP */
 
-static SIMPLE_DEV_PM_OPS(socfpga_dwmac_pm_ops, stmmac_suspend,
-					       socfpga_dwmac_resume);
+static int __maybe_unused socfpga_dwmac_runtime_suspend(struct device *dev)
+{
+	struct net_device *ndev = dev_get_drvdata(dev);
+	struct stmmac_priv *priv = netdev_priv(ndev);
+
+	stmmac_bus_clks_config(priv, false);
+
+	return 0;
+}
+
+static int __maybe_unused socfpga_dwmac_runtime_resume(struct device *dev)
+{
+	struct net_device *ndev = dev_get_drvdata(dev);
+	struct stmmac_priv *priv = netdev_priv(ndev);
+
+	return stmmac_bus_clks_config(priv, true);
+}
+
+static const struct dev_pm_ops socfpga_dwmac_pm_ops = {
+	SET_SYSTEM_SLEEP_PM_OPS(stmmac_suspend, socfpga_dwmac_resume)
+	SET_RUNTIME_PM_OPS(socfpga_dwmac_runtime_suspend, socfpga_dwmac_runtime_resume, NULL)
+};
 
 static const struct socfpga_dwmac_ops socfpga_gen5_ops = {
 	.set_phy_mode = socfpga_gen5_set_phy_mode,
drivers/net/ipa/ipa_endpoint.c +2 -0
index b40b711cf4bd..a37aae00e128 100644
@@ -703,6 +703,7 @@ static void ipa_endpoint_init_hol_block_timer(struct ipa_endpoint *endpoint,
 	u32 offset;
 	u32 val;
 
+	/* This should only be changed when HOL_BLOCK_EN is disabled */
 	offset = IPA_REG_ENDP_INIT_HOL_BLOCK_TIMER_N_OFFSET(endpoint_id);
 	val = ipa_reg_init_hol_block_timer_val(ipa, microseconds);
 	iowrite32(val, ipa->reg_virt + offset);
@@ -730,6 +731,7 @@ void ipa_endpoint_modem_hol_block_clear_all(struct ipa *ipa)
 		if (endpoint->toward_ipa || endpoint->ee_id != GSI_EE_MODEM)
 			continue;
 
+		ipa_endpoint_init_hol_block_enable(endpoint, false);
 		ipa_endpoint_init_hol_block_timer(endpoint, 0);
 		ipa_endpoint_init_hol_block_enable(endpoint, true);
 	}
drivers/net/tun.c +5 -0
index c671d8e25774..ffbc7eda95ee 100644
@@ -1021,6 +1021,7 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb, struct net_device *dev)
 {
 	struct tun_struct *tun = netdev_priv(dev);
 	int txq = skb->queue_mapping;
+	struct netdev_queue *queue;
 	struct tun_file *tfile;
 	int len = skb->len;
 
@@ -1065,6 +1066,10 @@ static netdev_tx_t tun_net_xmit(struct sk_buff *skb, struct net_device *dev)
 	if (ptr_ring_produce(&tfile->tx_ring, skb))
 		goto drop;
 
+	/* NETIF_F_LLTX requires to do our own update of trans_start */
+	queue = netdev_get_tx_queue(dev, txq);
+	queue->trans_start = jiffies;
+
 	/* Notify and wake up reader process */
 	if (tfile->flags & TUN_FASYNC)
 		kill_fasync(&tfile->fasync, SIGIO, POLL_IN);
drivers/pinctrl/qcom/pinctrl-sdm845.c +1 -0
index c51793f6546f..fdfd7b8f3a76 100644
@@ -1310,6 +1310,7 @@ static const struct msm_pinctrl_soc_data sdm845_pinctrl = {
 	.ngpios = 151,
 	.wakeirq_map = sdm845_pdc_map,
 	.nwakeirq_map = ARRAY_SIZE(sdm845_pdc_map),
+	.wakeirq_dual_edge_errata = true,
 };
 
 static const struct msm_pinctrl_soc_data sdm845_acpi_pinctrl = {
drivers/platform/x86/hp_accel.c +2 -0
index 8c0867bda828..0dfaa1a43b67 100644
@@ -372,9 +372,11 @@ static int lis3lv02d_add(struct acpi_device *device)
 	INIT_WORK(&hpled_led.work, delayed_set_status_worker);
 	ret = led_classdev_register(NULL, &hpled_led.led_classdev);
 	if (ret) {
+		i8042_remove_filter(hp_accel_i8042_filter);
 		lis3lv02d_joystick_disable(&lis3_dev);
 		lis3lv02d_poweroff(&lis3_dev);
 		flush_work(&hpled_led.work);
+		lis3lv02d_remove_fs(&lis3_dev);
 		return ret;
 	}
 
drivers/scsi/advansys.c +2 -2
index c2c7850ff7b4..727d8f019edd 100644
@@ -3366,8 +3366,8 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost)
 		   shost->host_no);
 
 	seq_printf(m,
-		   " iop_base 0x%lx, cable_detect: %X, err_code %u\n",
-		   (unsigned long)v->iop_base,
+		   " iop_base 0x%p, cable_detect: %X, err_code %u\n",
+		   v->iop_base,
 		   AdvReadWordRegister(iop_base,IOPW_SCSI_CFG1) & CABLE_DETECT,
 		   v->err_code);
 
drivers/scsi/lpfc/lpfc_sli.c +1 -0
index 990b700de689..06a23718a7c7 100644
@@ -20080,6 +20080,7 @@ lpfc_drain_txq(struct lpfc_hba *phba)
 					fail_msg,
 					piocbq->iotag, piocbq->sli4_xritag);
 			list_add_tail(&piocbq->list, &completions);
+			fail_msg = NULL;
 		}
 		spin_unlock_irqrestore(&pring->ring_lock, iflags);
 	}
drivers/scsi/qla2xxx/qla_mbx.c +2 -4
index 4ebd8851a0c9..734745f45021 100644
@@ -1650,10 +1650,8 @@ qla2x00_get_adapter_id(scsi_qla_host_t *vha, uint16_t *id, uint8_t *al_pa,
 		mcp->in_mb |= MBX_13|MBX_12|MBX_11|MBX_10;
 	if (IS_FWI2_CAPABLE(vha->hw))
 		mcp->in_mb |= MBX_19|MBX_18|MBX_17|MBX_16;
-	if (IS_QLA27XX(vha->hw) || IS_QLA28XX(vha->hw)) {
-		mcp->in_mb |= MBX_15;
-		mcp->out_mb |= MBX_7|MBX_21|MBX_22|MBX_23;
-	}
+	if (IS_QLA27XX(vha->hw) || IS_QLA28XX(vha->hw))
+		mcp->in_mb |= MBX_15|MBX_21|MBX_22|MBX_23;
 
 	mcp->tov = MBX_TOV_SECONDS;
 	mcp->flags = 0;
drivers/scsi/scsi_debug.c +6 -5
index b6540b92f566..3fc7c2a31c19 100644
@@ -1855,7 +1855,7 @@ static int resp_readcap16(struct scsi_cmnd *scp,
 {
 	unsigned char *cmd = scp->cmnd;
 	unsigned char arr[SDEBUG_READCAP16_ARR_SZ];
-	int alloc_len;
+	u32 alloc_len;
 
 	alloc_len = get_unaligned_be32(cmd + 10);
 	/* following just in case virtual_gb changed */
@@ -1884,7 +1884,7 @@ static int resp_readcap16(struct scsi_cmnd *scp,
 	}
 
 	return fill_from_dev_buffer(scp, arr,
-			    min_t(int, alloc_len, SDEBUG_READCAP16_ARR_SZ));
+			    min_t(u32, alloc_len, SDEBUG_READCAP16_ARR_SZ));
 }
 
 #define SDEBUG_MAX_TGTPGS_ARR_SZ 1412
@@ -1895,8 +1895,9 @@ static int resp_report_tgtpgs(struct scsi_cmnd *scp,
 	unsigned char *cmd = scp->cmnd;
 	unsigned char *arr;
 	int host_no = devip->sdbg_host->shost->host_no;
-	int n, ret, alen, rlen;
 	int port_group_a, port_group_b, port_a, port_b;
+	u32 alen, n, rlen;
+	int ret;
 
 	alen = get_unaligned_be32(cmd + 6);
 	arr = kzalloc(SDEBUG_MAX_TGTPGS_ARR_SZ, GFP_ATOMIC);
@@ -1958,9 +1959,9 @@ static int resp_report_tgtpgs(struct scsi_cmnd *scp,
 	 * - The constructed command length
 	 * - The maximum array size
 	 */
-	rlen = min_t(int, alen, n);
+	rlen = min(alen, n);
 	ret = fill_from_dev_buffer(scp, arr,
-			   min_t(int, rlen, SDEBUG_MAX_TGTPGS_ARR_SZ));
+			   min_t(u32, rlen, SDEBUG_MAX_TGTPGS_ARR_SZ));
 	kfree(arr);
 	return ret;
 }
drivers/scsi/scsi_sysfs.c +19 -11
index 1378bb1a7371..8de67679a878 100644
@@ -796,6 +796,7 @@ store_state_field(struct device *dev, struct device_attribute *attr,
 	int i, ret;
 	struct scsi_device *sdev = to_scsi_device(dev);
 	enum scsi_device_state state = 0;
+	bool rescan_dev = false;
 
 	for (i = 0; i < ARRAY_SIZE(sdev_states); i++) {
 		const int len = strlen(sdev_states[i].name);
@@ -814,20 +815,27 @@ store_state_field(struct device *dev, struct device_attribute *attr,
 	}
 
 	mutex_lock(&sdev->state_mutex);
-	ret = scsi_device_set_state(sdev, state);
-	/*
-	 * If the device state changes to SDEV_RUNNING, we need to
-	 * run the queue to avoid I/O hang, and rescan the device
-	 * to revalidate it. Running the queue first is necessary
-	 * because another thread may be waiting inside
-	 * blk_mq_freeze_queue_wait() and because that call may be
-	 * waiting for pending I/O to finish.
-	 */
-	if (ret == 0 && state == SDEV_RUNNING) {
+	if (sdev->sdev_state == SDEV_RUNNING && state == SDEV_RUNNING) {
+		ret = count;
+	} else {
+		ret = scsi_device_set_state(sdev, state);
+		if (ret == 0 && state == SDEV_RUNNING)
+			rescan_dev = true;
+	}
+	mutex_unlock(&sdev->state_mutex);
+
+	if (rescan_dev) {
+		/*
+		 * If the device state changes to SDEV_RUNNING, we need to
+		 * run the queue to avoid I/O hang, and rescan the device
+		 * to revalidate it. Running the queue first is necessary
+		 * because another thread may be waiting inside
+		 * blk_mq_freeze_queue_wait() and because that call may be
+		 * waiting for pending I/O to finish.
+		 */
 		blk_mq_run_hw_queues(sdev->request_queue, true);
 		scsi_rescan_device(dev);
 	}
-	mutex_unlock(&sdev->state_mutex);
 
 	return ret == 0 ? count : -EINVAL;
 }
drivers/scsi/ufs/ufshcd.c +23 -34

96 lines not on this page · raw message

drivers/scsi/ufs/ufshcd.h +1 -0
index 1ba9c786feb6..35dd5197ccb9 100644
@@ -734,6 +734,7 @@ struct ufs_hba {
 
 	struct blk_mq_tag_set tmf_tag_set;
 	struct request_queue *tmf_queue;
+	struct request **tmf_rqs;
 
 	struct uic_command *active_uic_cmd;
 	struct mutex uic_cmd_mutex;
drivers/sh/maple/maple.c +4 -1
index e5d7fb81ad66..44a931d41a13 100644
@@ -835,8 +835,10 @@ static int __init maple_bus_init(void)
 
 	maple_queue_cache = KMEM_CACHE(maple_buffer, SLAB_HWCACHE_ALIGN);
 
-	if (!maple_queue_cache)
+	if (!maple_queue_cache) {
+		retval = -ENOMEM;
 		goto cleanup_bothirqs;
+	}
 
 	INIT_LIST_HEAD(&maple_waitq);
 	INIT_LIST_HEAD(&maple_sentq);
@@ -849,6 +851,7 @@ static int __init maple_bus_init(void)
 		if (!mdev[i]) {
 			while (i-- > 0)
 				maple_free_dev(mdev[i]);
+			retval = -ENOMEM;
 			goto cleanup_cache;
 		}
 		baseunits[i] = mdev[i];
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c +2 -5
index b912ad2f4b72..4df6d04315e3 100644
@@ -6679,7 +6679,6 @@ u8 chk_bmc_sleepq_hdl(struct adapter *padapter, unsigned char *pbuf)
 	struct sta_info *psta_bmc;
 	struct list_head	*xmitframe_plist, *xmitframe_phead;
 	struct xmit_frame *pxmitframe = NULL;
-	struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
 	struct sta_priv  *pstapriv = &padapter->stapriv;
 
 	/* for BC/MC Frames */
@@ -6690,8 +6689,7 @@ u8 chk_bmc_sleepq_hdl(struct adapter *padapter, unsigned char *pbuf)
 	if ((pstapriv->tim_bitmap&BIT(0)) && (psta_bmc->sleepq_len > 0)) {
 		msleep(10);/*  10ms, ATIM(HIQ) Windows */
 
-		/* spin_lock_bh(&psta_bmc->sleep_q.lock); */
-		spin_lock_bh(&pxmitpriv->lock);
+		spin_lock_bh(&psta_bmc->sleep_q.lock);
 
[… more lines in the raw message]

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

drivers/staging/rtl8723bs/core/rtw_recv.c +3 -7
index 6979f8dbccb8..0d47e6e12177 100644

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

drivers/staging/rtl8723bs/core/rtw_sta_mgt.c +12 -10
index e3f56c6cc882..b1784b4e466f 100644

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

drivers/staging/rtl8723bs/core/rtw_xmit.c +7 -9
index 6ecaff9728fd..d78cff7ed6a0 100644

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

drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c +0 -2
index 44799c4a9f35..ce5bf2861d0c 100644

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

drivers/staging/wfx/bus_sdio.c +10 -7
index e06d7e1ebe9c..61b8cc05f293 100644

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

drivers/target/target_core_alua.c +0 -1
index 6b72afee2f8b..b240bd1ccb71 100644

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

drivers/target/target_core_device.c +2 -0
index 405d82d44717..109f019d2148 100644

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

drivers/target/target_core_internal.h +1 -0
index e7b3c6e5d574..e4f072a680d4 100644

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

drivers/target/target_core_transport.c +54 -22

76 lines not on this page · raw message

drivers/tty/tty_buffer.c +3 -0
index bd2d91546e32..0fc473321d3e 100644

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

drivers/usb/host/max3421-hcd.c +5 -20
index c86d413226eb..b875da01c530 100644

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

drivers/usb/host/ohci-tmio.c +1 -1
index 08ec2ab0d95a..3f3d62dc0674 100644

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

drivers/usb/musb/tusb6010.c +5 -0
index 0c2afed4131b..038307f66198 100644

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

drivers/usb/typec/tps6598x.c +1 -1
index 30bfc314b743..6cb5c8e2c853 100644

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

drivers/video/console/sticon.c +6 -6
index 1b451165311c..40496e9e9b43 100644

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

fs/btrfs/async-thread.c +14 -0
index 309516e6a968..43c89952b7d2 100644

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

fs/btrfs/volumes.c +13 -8
index d9e582e40b5b..e462de991723 100644

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

fs/f2fs/f2fs.h +1 -2
index 2d7799bd30b1..bc488a7d0190 100644

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

fs/f2fs/super.c +2 -2
index de543168b370..b7287b722e9e 100644

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

fs/inode.c +4 -3
index 5eea9912a0b9..638d5d5bf42d 100644

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

fs/udf/dir.c +30 -2
index c19dba45aa20..d0f92a52e3ba 100644

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

fs/udf/namei.c +3 -0
index f4a72ff8cf95..9f3aced46c68 100644

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

fs/udf/super.c +2 -0
index 5d2b820ef303..3448098e5476 100644

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

include/linux/fs.h +2 -0
index 43bb6a51e42d..42d246a94228 100644

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

include/linux/perf_event.h +0 -1
index c095e713cf08..ce14fb2772b5 100644

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

include/linux/platform_data/ti-sysc.h +1 -0
index 9837fb011f2f..989aa30c598d 100644

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

include/linux/trace_events.h +1 -1
index d321fe5ad1a1..c57b79301a75 100644

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

include/linux/virtio_net.h +6 -1
index b465f8f3e554..04e87f4b9417 100644

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

include/net/nfc/nci_core.h +1 -0
index 33979017b782..004e49f74841 100644

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

include/rdma/rdma_netlink.h +1 -1
index 2758d9df71ee..c2a79aeee113 100644

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

include/sound/hdaudio_ext.h +2 -0
index 7abf74c1c474..75048ea178f6 100644

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

include/target/target_core_base.h +4 -2
index 549947d407cf..18a5dcd275f8 100644

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

include/trace/events/f2fs.h +6 -6
index 56b113e3cd6a..df293bc7f03b 100644

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

include/uapi/linux/tcp.h +2 -0
index cfcb10b75483..62db78b9c1a0 100644

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

ipc/util.c +3 -3
index cfa0045e748d..bbb5190af6d9 100644

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

kernel/events/core.c +63 -79

142 lines not on this page · raw message

kernel/sched/core.c +3 -0
index bc8ff11e6024..e456cce772a3 100644

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

kernel/trace/trace_events_hist.c +10 -4
index 1b7f90e00eb0..c2ec467a5766 100644

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

mm/hugetlb.c +19 -4
index 6e92ab0ae070..fce705fc2848 100644

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

mm/slab.h +1 -1
index 944e8b2040ae..6952e10cf33b 100644

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

net/core/sock.c +93 -96

189 lines not on this page · raw message

net/ipv4/tcp.c +97 -25

122 lines not on this page · raw message

net/nfc/core.c +18 -14
index eb377f87bcae..6800470dd6df 100644

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

net/nfc/nci/core.c +26 -8
index 32e8154363ca..e38719e2ee58 100644

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

net/sched/act_mirred.c +8 -3
index 0b0eb18919c0..24d561d8d9c9 100644

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

net/smc/smc_core.c +2 -1
index c491dd8e67cd..109d790eaebe 100644

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

net/tipc/crypto.c +4 -0
index 23b100f36ee4..d8a2f424786f 100644

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

net/tipc/link.c +5 -2
index c92e6984933c..29591955d08a 100644

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

net/wireless/util.c +1 -0
index 3f8c46bb6d9a..4b32e85c2d9a 100644

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

security/selinux/ss/hashtab.c +12 -5
index dab8c25c739b..7335f67ce54e 100644

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

sound/core/Makefile +2 -0
index ee4a4a6b99ba..d123587c0fd8 100644

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

sound/hda/ext/hdac_ext_stream.c +28 -18

46 lines not on this page · raw message

sound/hda/hdac_stream.c +2 -2
index abe7a1b16fe1..ce77a5320163 100644

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

sound/hda/intel-dsp-config.c +20 -2
index 61e1de6d7be0..6cdb3db7507b 100644

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

sound/isa/Kconfig +1 -1
index 6ffa48dd5983..570b88e0b201 100644

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

sound/isa/gus/gus_dma.c +2 -0
index a1c770d826dd..6d664dd8dde0 100644

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

sound/pci/Kconfig +1 -0
index 93bc9bef7641..41ce12597177 100644

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

sound/soc/codecs/nau8824.c +40 -0
index 15bd8335f667..c8ccfa2fff84 100644

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

sound/soc/soc-dapm.c +23 -6
index 08960167d34f..2924d89bf0da 100644

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

sound/soc/sof/intel/hda-dai.c +4 -3
index c6cb8c212eca..ef316311e959 100644

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

tools/perf/bench/futex-lock-pi.c +1 -0
index bb25d8beb3b8..159bc89e6a79 100644

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

tools/perf/bench/futex-requeue.c +1 -0
index 7a15c2e61022..105b36cdc42d 100644

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

tools/perf/bench/futex-wake-parallel.c +1 -0
index cd2b81a845ac..a129c94eb3fe 100644

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

tools/perf/bench/futex-wake.c +1 -0
index 2dfcef3e371e..507ff533612c 100644

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

tools/perf/tests/shell/record+zstd_comp_decomp.sh +1 -1
index 045723b3d992..c62af807198d 100755

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

tools/perf/util/bpf-event.c +5 -1
index c8101575dbf4..4eb02762104b 100644

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

tools/perf/util/env.c +4 -1
index f0dceb527ca3..d81ed1bc14bd 100644

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

tools/perf/util/env.h +1 -1
index a12972652006..01378a955dd5 100644

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

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

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